Ce mini-site a pour but de regrouper en un lieu centralisé certaines de mes recherches techniques en sécurité des systèmes d'information. Il s'agit d'une partie de mes travaux personnels que je souhaite publier et pour lesquels je ne suis pas lié par un accord de "non-disclosure". Je travaille dans ce domaine depuis 2001, mais je ne placerai sur ce site que mes nouveaux travaux, réalisés à partir de juin 2004.
Au sein de la sécurité des systèmes d'information, je m'intéresse plus particulièrement à l'audit de sécurité applicatif, aux pots à miels (je participe au French Honeynet Project), aux tests intrusifs et à l'analyse forensics.
Je suis joignable par courrier électronique à l'adresse gael AT melix DOT net. Ma clé PGP est disponible ici.
Vulnérabilités applicatives liées à la gestion des limites de mémoire
Résumé : La consommation de toutes les ressources mémoire d'une application peut entraîner un dysfonctionnement, voire un "crash" de celle-ci. Je montrerai que l'impact de cette attaque est parfois largement sous-estimé : au-delà du déni de service, elle peut permettre dans certaines conditions l'exécution de code arbitraire dans l'espace mémoire du processus. D'une manière plus globale, j'étudierai l'impact d'une forte utilisation de la mémoire et des limitations liées à la taille de stockage des variables sur la sécurité des applications. Les différences entre les architectures 32 bits et 64 bits seront abordées, ainsi qu'entre les systèmes d'exploitation (MS Windows, Linux, Linux avec grsecurity, Solaris, HP-UX, FreeBSD, OpenBSD). Je détaillerai les différents types de bugs liés à ce thème, les techniques d'exploitation associées, et la façon de les prévenir.
Présenté du 4 au 6 mai 2005 à Vancouver lors de la conférence CanSecWest, et en français lors du SSTIC 2005.
Télécharger l'article tiré des actes de la conférence (format PDF)
Télécharger la présentation (format PDF, en anglais)
Mesure locale des temps d'exécution : application au contrôle d'intégrité et au fingerprinting. Contribution au SSTIC 2004.
Télécharger la présentation (format PDF)
Télécharger l'article tiré des actes de la conférence (format Postscript)
Résumé : L'environnement système lors de l'exécution d'un programme n'est jamais exactement le même. Certaines variations sont anodines (place libre sur le disque dur, type et charge du processeur, nombre de connexions réseau ouvertes...). D'autres peuvent être révélatrices d'une activité hostile d'espionnage ou de camouflage sur le système (comportement du noyau et des bibliothèques dynamiques, "traçage" du processus, lancement dans une machine virtuelle...).
Je propose d'utiliser l'analyse temporelle pour prendre l'empreinte de certaines parties critiques de l'environnement d'exécution d'un processus. Des critères de comparaison sont définis pour différencier les variations acceptables de celles qui déclencheront une alerte de sécurité. Nous verrons en particulier comment cette technique permet de détecter différents types de rootkits depuis un processus utilisateur non privilégié.
Un aperçu de ce travail a été publié en anglais sur SecurityFocus par F. Raynal et Thorsten Holz au sein de leur article Defeating Honeypots: System Issues.
Dans le cadre du programme VCP de la société iDefense, j'ai réalisé un audit de sécurité du code source d'applications clientes écrites en langage C et C++. J'ai ainsi découvert plusieurs vulnérabilités et obtenu la première place au classement "VCP Incentive" du 4ème trimestre 2004.
Dans le cadre du Security Bug Bounty, un audit manuel du code source C++ m'a permis de découvrir plusieurs vulnérabilités critiques dans Mozilla et ses produits dérivés (Netscape, Firefox, Thunderbird, Galeon...)
Evaluation des risques posés par l'usage de machines virtuelles, par exemple dans le cadre de la mise en place de pots à miel. J'ai mis à jour plusieurs vulnérabilités, certaines permettant de sortir de la machine virtuelle pour attaquer le système principal.
ktime.tgz - Démonstration du procédé de détection de "rootkits" par mesure du temps. Téléchargement désactivé : je fournis ce code sur simple demande par courrier électronique.
qemu-fun.c - Démonstration des risques de sécurité posés par Qemu en mode 'fast'. Lire le README.