Archive pour la catégorie ‘Sécurité’

Sécuriser ses uploads

Vendredi 30 septembre 2011

Avec le piratage tout récent du site Ubuntu-fr.org qui a révélé une faille se situant dans les uploads d’images, il est normal que l’on se préoccupe de la sécurité de son propre site au niveau des uploads.

La faille en question

Mis à part des include() mal sécurisées, les injections SQL et la faille XSS, une autre faille courante se situe dans le traitement des uploads d’images. Si la vérification n’est pas faite adéquatement, un pirate peut arriver à envoyer une image en PHP sous ce format image.png\.php en faisant en sorte de tromper la vérification du type de fichier (possible avec un plugin). C’est d’ailleurs par ce procédé que le pirate a réussi à uploader un avatar en PHP contenant les instructions permettant de récupérer les accès et d’ajouter d’autres fichiers PHP sur le site. Vous pouvez en savoir plus sur l’attaque en consultant ce fil de discussion.

Comment prévenir ce type d’attaque ?

Cela dépend si vous êtes en hébergement mutualisé ou dédié/VPS, ainsi que l’utilisation ou non d’un CMS.

Dans le cas d’un hébergement dédié ou d’un VPS, vous pouvez ajouter des directives directement dans le fichier de configuration d’Apache pour interdire l’exécution de fichiers PHP dans un répertoire donné.

Sinon, si vous êtes en mutualisé, cela va aller selon votre contexte :

Utilisation d’un .htaccess

Si vous utilisez un CMS ou que les changements à apporter sur votre script d’upload ne peuvent pas être mis en ligne rapidement, vous pouvez créer un fichier .htaccess où vous y collerez les directives suivantes (merci à Willy de Servhome) :

<Files ~ "^.*\.(cgi|pl|php[3-5]{0,1}|shtm?l?|aspx?|cfml?|jsp?)$">
order allow,deny
deny from all
</Files>

Enregistrez-le puis placez-le directement dans le répertoire d’upload de votre site.
Ces directives ont l’avantage de filtrer de façon récursive dans un dossier contenant d’autres dossiers, comme c’est le cas des sites WordPress par exemple.

Même si vous avez codé votre site à la main, vous aurez au moins l’esprit plus tranquille en attendant de pouvoir retravailler votre code.

Sécuriser son code PHP

Quand le script de traitement des uploads est bien fait, il n’y a pas de risque qu’un fichier de type image.png\.php passe entre les mailles, même avec un plugin.

Pour cela, je vous invite à lire cette doc du site Commenc Ça Marche sur les erreurs de sécurité fréquentes en PHP : Erreurs courantes en PHP.

Dans le cas d’un CMS, vous pouvez toujours aller demander sur le forum de support pour savoir si le traitement des images envoyées est sécurisé contre ce type d’intrusion.

[Facebook] Attention aux attrapes !!

Jeudi 10 mars 2011

Aujourd’hui, une de mes cousines vient de se faire avoir par deux attrapes le même jour. Je viens donc vous montrer les attrapes suivantes, afin que vous ne cliquiez pas dessus, sous peine que ça se transmette automatiquement à tous vos contacts sans que vous le vouliez !

Attrape numéro 1 : Faux logiciel de smileys

Les smileys, ya rien de plus attrayant… Or, si vous recevez un lien ressemblant à ceci :

Ne cliquez surtout pas ! Ma cousine a eu le malheur de cliquez sur le bouton « Partager » dans la page en question, en croyant pouvoir télécharger le logiciel en question, et le lien s’est automatiquement transmis à tous ses amis Facebook, incluant moi !

Voici une capture de la page piégée :

Attrape #2 : 2012, encore !

Et voici la seconde attrape, dont ma cousine s’est également fait avoir le même jour. Cette fois-ci, ça nous demande de voir « ce que le gouvernement nous cache au sujet du 21 décembre 2012″ (tsé la fameuse pseudo-fin du monde dont les faits ne sont basés sur AUCUNE preuve scientifique !). Voici comment ça se présente :

Là aussi, ne cliquez pas. Tout comme pour le faux logiciels de smileys, ça vous demande de cliquer sur un bouton, « J’aime » cette fois-ci. Si vous avez le malheur de cliquer, là aussi tous vos amis recevront le lien !

Il en existe d’autres, comme par exemple le « Baise dans le métro » et le « Chat qui s »endort » (merci Wimzie), donc restez vigilants !

Comment ne plus se faire prendre ?

il faut premièrement savoir que quand on est sur le site même de Facebook, on ne doit faire confiance aux boutons « J’aime » et « Partager » QUE s’ils sont localisés aux endroits habituels. Cela veut dire que si le bouton « J’aime » est localisé juste à côté du nom de la page, le bouton est fiable. Par contre, si le bouton est localisé en plein milieu du message de la page et qu’en plus le message vous demande EXPLICITEMENT de cliquer sur le bouton, MÉFIANCE ! Car celui qui a créé cette page peut avoir mis n’importe quoi derrière ce bouton, ce qui veut dire qu’il peut avoir inséré un script malicieux !

Et si j’ai déjà cliqué ?

Vous n’aurez pas d’autres choix que de 1) Avertir tous vos amis de ne pas cliquer, puis 2), ne pas prendre de chances et changer le mot de passe de votre compte Facebook. Et en passant, si des lecteurs ici connaissent des moyens supplémentaires pour réparer les dégâts, n’hésitez pas à utiliser les commentaires.

[EDIT le 11/03 à 15:40] Je viens juste d’avoir vent d’un article en parlant justement de ce phénomène qu’on doit appeler « likejacking ». Je remercie Wimzie pour l’avoir partagé.
Voici le lien pour ceux qui sont sur FB : Épidémie de likejacking sur Facebook

Je finis avec ces quelques liens à lire :