Sécurité
OWASP Appsec Tutorial Series
OWASP (Open Web Application Security Project) vient de lancer une nouvelle série de petites vidéos (5 à 10 min) de présentation des grandes notions de sécurité. Pour l’instant il n’y a que « Injection Attacks » (SQLi) et « Cross Site Scripting » (XSS), mais d’autres vont suivre. C’est bien fait, c’est clair (mais en anglais), c’est vivant, et sur un fond de samba. Donc à suivre de près :-)
C’est par ici : OWASP Appsec Tutorial Series
OWASP Appsec Tutorial Series
Trouver, exploiter et corriger des failles de sécurité dans un site web
XSS, XSRF, XSSI, path traversal, code execution, SQL injection, etc… : des noms barbares qui désignent des types de failles de sécu. Si vous ne connaissez pas, ou pas bien, la question et que ça vous interpelle, Google met à disposition Gruyere (anciennement Jarlsberg). Comme son nom l’indique :-), il s’agit d’une appli web pleine de trous (de sécurité), et vous apprenez au fil des exercices à repérer et exploiter un certain nombre de failles, puis ensuite comment s’en protéger. C’est plutôt très bien fait, assez bien expliqué. Si le sujet vous intéresse et que vous n’êtes pas allergique à l’anglais, je vous le recommande vivement ! A noter également : quelques cours intéressants sur la programmation web (Google Code University), qui peuvent aider, en particulier les deux vidéos de présentation de Javascript.
Update (31/03/2011) : Je viens de tomber sur Web Security Dojo, il s’agit d’une machine virtuelle (VirtualBox ou VMware, au choix) qui contient un paquet d’outils de sécurité web (dont Gruyere) :
- OWASP’s WebGoat
- Google Gruyere
- DVWA (Damn Vulnerable Web App)
- Hacme Casino
- OWASP InsecureWebApp
- w3af
- et d’autres sites fournis par Maven Security
Et les outils classique de tout bon pentester : metasploit, burp suite, dirbuster, etc…
Update (11/05/2011) : Une liste assez complète de sites et d’outils pour « s’entrainer » : Pentesting Vulnerable Study Frameworks Complete List
MooseFS : filesystem distribué redondant
GlusterFS, Lustre : peut être avez-vous déjà essayé ces systèmes de fichiers distribués. Mais il existe une alternative très intéressante, et encore peu connu : MooseFS. Il s’agit d’un système de fichiers distribué et redondant, c’est-à-dire résistant aux pannes d’un ou plusieurs noeuds de stockage. Il est disponible en open source, développé par la société polonaise Gemius, et dispo pour Linux, FreeBSD, OpenSolaris (ce qu’il en reste) et MacOS X. La version 1.6.20 est disponible depuis le 17/01/2011 : les développeurs sont réactifs et suivent de très près la liste de diffusion et les remontés de bugs de leurs utilisateurs.
Le principe est simple (et très Google-like) : des machines de stockage low-cost, et une duplication des données sur ces différents noeuds. Pas besoin de SAN très onéreux ou de systèmes ultra complexes : des petits serveurs bon marché avec de gros disques font parfaitement l’affaire, même pas besoin de RAID hardware, MooseFS est résistant. Les fichiers sont découpés en morceaux (appelés chunks) puis répartis sur les différents chunkservers (noeuds de stockage) : selon le paramétrage voulu pour ces fichiers, ou pour le répertoire dans lequel ils se trouvent, chaque chunk sera répliqué sur x noeuds (différents). Ainsi, la perte de l’un des noeuds sera totalement transparente pour l’utilisateur, et sans aucune perte de données !
J’ai un « petit » cluster de 12 serveurs de 4 To chacun, soit un volume brut de 48 To, qui tourne depuis plusieurs mois sans jamais avoir eu le moindre problème. Ce cluster a pourtant tout testé : le crash électrique dans la baie, le crash de plusieurs serveurs de stockage successifs, des fichiers effacés par une erreur humaine (et récupérés proprement car MooseFS gère une trash). Pas le moindre octet perdu, et les perfs sont relativement correctes. Bref, un filesystem très intéressant, qui mérite vraiment d’être plus connu, et merveilleux pour du stockage lourd où la sécurité des données est critique. La liste de diffusion compte plusieurs déçus de GlusterFS, qui revivent depuis :-), et un cluster de plusieurs péta-octets est même en cours de mise en service par une société américaine. A suivre…
Update (15/04/2011) : Dans le dernier numéro de GNU Linux Magazine France (n°137, avril 2011), vous trouverez un long article sur MooseFS.
Backups distants sécurisés
Faire des backups, c’est primordial. Sécuriser le stockage de ses backups l’est autant :
- sur la même machine : si le disque dur crash, on perd les données et les backups… bien joué…
- sur un des nombreux sites web dédié au stockage en ligne : pourquoi pas, mais c’est cher, et il faut avoir confiance dans la société qui gère vos données.
- sur un serveur distant qui vous appartient : ouaip, mais encore faut-il avoir un autre serveur (ou un serveur dédié virtuel pas cher !)
- sur un serveur distant qui ne vous appartient pas : un collègue qui vous prête généreusement un bout de disque. Encore une fois, il faut avoir confiance en lui, vous lui confiez (l’accès à) vos données.
Bref, il n’y a pas vraiment de solution idéale : Vos données devront être stockées ailleurs, sur une machine où vous ne serez probablement pas le seul à avoir accès, et là il faut avoir confiance ! Ou pas…
Voici une solution simple : En prenant un serveur dédié virtuel (voir précédent billet) à pas cher :-), vous disposez de quelques dizaines de Go de sauvegarde pour une poignée de centimes d’euros par mois. En général, ce sera sur un serveur OpenVZ aux USA, géré par on ne sait qui, sécurisé on ne sait comment. Vous pouvez alors utiliser openssl pour chiffrer vos données à l’aide d’un algorithme de chiffrement symétrique sur les jolis .tar.gz que vous générez (par exemple), puis les envoyer en scp vers ce VDS de backup. Dans les grandes lignes, voici la marche à suivre :
1) Générer un mot de passe sûr (secure), fiable et que vous pouvez retenir facilement, ou stocker en lui sûr. Si vous êtes en manque d’inspiration, on peut par exemple faire ceci :
$ cat /dev/urandom | tr -cd '[:graph:]' | head -c 20 > mon_pass$ cat mon_pass; echoV+7*Vde|th"h[=fUXc"=$
ATTENTION : Conservez le fichier mon_pass bien au chaud, évidemment, sinon vos données ne seront pas récupérables le jour où vous en aurez besoin !
2) Générer vos fichiers de sauvegarde (disons un bon gros .tar.gz de derrière les fagots)
3) Encodage du fichier en AES-256-ECB, avec votre password :
openssl enc -aes-256-ecb -in mon_backup.tar.gz -out mon_backup.tar.gz.secure -kfile mon_pass
Le fichier mon_backup.tar.gz.secure contient la version chiffrée de vos backups, que vous pouvez maintenant laisser trainer n’importe où :-)
4) Copie du backup sécurisé vers le serveur pas/peu secure
5) En cas de catastrophe, pour décoder votre fichier de backup et en récupérer le contenu (à l’aide de votre fichier de password, que vous aurez eu l’intelligence de bien sauvegarder au chaud) :
openssl enc -d -aes-256-ecb -in mon_backup.tar.gz.secure -out mon_backup.tar.gz -kfile mon_pass
Et hop !
Sinon, deuxième possibilité, dans le même esprit : Utiliser Duplicity avec GnuPG.
Certifications orientées sécurité
Si vous vous êtes déjà intéressé à la question, peut être avez-vous remarqué que les certifications sur le thème de la sécurité sont de plus en plus nombreuses ces temps-ci, surtout outre-atlantique. En France on trouve plusieurs organismes qui forment à la CEH (Certified Ethical Hacker), une certification portée par l’organisme américain EC-Council, et reconnue par le département de la défense américaine (voir ici). Cette certification est assez généraliste, et brosse la majeure partie des domaines de la sécurité. Sa reconnaissance par le DoD est un sérieux atout, même si je doute que l’on puisse transformer, en cinq jours seulement, un n00b en véritable « hacker » :-)
Toutefois, une petite nouvelle semble pousser assez fort : eCPPT (eLearnSecurity Certified ProfessionalPenetration Tester), proposée par la start-up italienne eLearnSecurity. Il ne s’agit plus d’une formation/certification classique sur site, cette fois-ci tout se fait en ligne (cours) et à distance (certification) : slides, vidéos, labs, forums. Du coup, le prix annoncé est très très abordable ($599) comparé à une formation CEH (3600€) ! Les premiers commentaires des sites spécialisés (ici et là), ainsi que des premiers certifiés (par exemple ici, ou par là), sont très élogieux. Cette formation est divisée en trois grosses parties : système, réseaux, applications web. Apparemment la partie orientée sécurité web est assez pointue, le reste un peu plus « léger » (tout est relatif, les shellcodes en assembleur ne sont pas non plus à la portée du premier codeur Java/waïbdeuzéro venu). De ce que j’ai pu lire, le niveau semble bien au-dessus du niveau requis pour avoir la CEH. Bref, une certif à suivre de très très près, d’autant qu’ils ont le bon goût de proposer un paiement étalé sur trois mois ($250, puis $200, puis $200) si vous n’avez pas la chance de vous la faire financer par votre employeur.
Si quelqu’un a une expérience avec une de ces deux certifications, ou bien une opinion éclairée sur la question, je suis très intéressé !

