Thomas Dullien (Halvar Flake) - L'incroyable parcours d'un génie du Reverse Engineering

Wait 5 sec.

.center-shortcode * {text-align: center !important;}.center-shortcode p {text-align: center !important;width: 100%;margin-left: auto;margin-right: auto;}.center-shortcode img {display: block;margin: 0 auto;}.center-shortcode p em,.center-shortcode em {font-style: italic;text-align: center !important;display: inline-block;width: 100%;}Cet article fait partie dema série de l’été spécial hackerset ce sera le dernier ! Je vais faire une petite pause maintenant même si j’en ai encore un bon paquet à écrire… Mais ce sera pour bientôt… Bonne lecture ! Et bonne reprise !Pour ce dernier article de ma série de l’été, je vais vous raconter l’histoire d’un type absolument génial que vous ne connaissez peut-être pas mais qui, lui aussi, a mis sa pierre à l’édifice de la sécurité informatique. Thomas Dullien, plus connu sous le pseudo “Halvar Flake”, c’est un peu le MacGyver du reverse engineering, sauf qu’au lieu de désamorcer des bombes avec un trombone, il désamorce des malwares avec des graphes mathématiques.Ce gars est surtout à l’origine deBinDiff, un outil légendaire capable de comparer des binaires, très utile par exemple pour comprendre ce que Microsoft a patché dans une mise à jour de sécurité. Cet outil peut vous sortir une analyse graphique qui vous montre exactement où se trouvent les différences entre l’ancienne et la nouvelle version. À l’époque, en 2005, cet outil c’était comme avoir des super-pouvoirs.Mais commençons par le début. Thomas Dullien, c’est un mathématicien allemand qui a grandi à une époque où Internet commençait tout juste à exploser. Le gars était destiné à devenir avocat, mais à la dernière minute, il change d’avis et s’inscrit en maths à l’Université de Bochum. Best decision ever, comme on dit. Il finit par obtenir son Master en mathématiques en 2008, après avoir commencé un doctorat qu’il abandonne pour se concentrer sur son entreprise.Son pseudo “Halvar Flake” vient d’un personnage de dessin animé. C’est le chef d’un village viking dans la série télé “Vicky le Viking”. Et l’anecdote est géniale quand il l’explique : “J’étais petit, gros, j’avais des cheveux longs, et je buvais beaucoup de bière, alors les gens m’appelaient Halvar”, raconte-t-il avec humour. Bon, aujourd’hui le nom est resté même si la description ne colle plus vraiment !.center-shortcode * {text-align: center !important;}.center-shortcode p {text-align: center !important;width: 100%;margin-left: auto;margin-right: auto;}.center-shortcode img {display: block;margin: 0 auto;}.center-shortcode p em,.center-shortcode em {font-style: italic;text-align: center !important;display: inline-block;width: 100%;}Dans les années 90, alors qu’il est encore adolescent, Thomas commence à s’intéresser au reverse engineering et à la gestion des droits numériques (DRM). À l’époque, c’est le Far West total. Les protections logicielles sont simplistes, les entreprises pensent que leur code est impénétrable, et de petits génies comme lui s’amusent à démonter tout ça pièce par pièce. Il écrit même son premier fuzzer à 19 ans, mais refuse de l’utiliser lui-même par fierté… en vrai il préfère trouver les bugs en lisant le code ! Des années plus tard, il admettra que c’était stupide et que le fuzzing est quand même une technique incroyablement efficace.En 2000, à seulement 19-20 ans, il fait alors sa première présentation à Black Hat Amsterdam sur “Auditing binaries for security vulnerabilities”. En réalité, il voulait rencontrer un pote du Sri Lanka mais aucun des deux n’avait les moyens de payer le billet d’avion alors ils ont décidé de faire une présentation à la même conférence. C’est donc comme ça qu’il commence sa carrière de formateur en reverse engineering… une carrière qui durera plus de 20 ans.Pendant les années qui suivent, Halvar devient alors LA référence en matière de reverse engineering. Il développe des techniques révolutionnaires comme l’exploitation des tas Windows (heap exploitation), le patch diffing (comparer des versions patchées et non patchées de logiciels), et plein d’autres trucs que les chercheurs en sécurité utilisent encore aujourd’hui. Il donne des talks sur l’analyse binaire basée sur les graphes à Blackhat USA 2002, Blackhat Asia 2002, et CanSecWest 2002, où il se plaint déjà qu’IDA Pro ne gère pas bien les fonctions non-contiguës !Mais son coup de génie, c’est au printemps 2004 quand il fonde SABRE Security, qui deviendra rapidement zynamics. L’idée c’est qu’au lieu de comparer les binaires octet par octet comme tout le monde, il utilise la théorie des graphes. En gros il faut voir ça comme une carte routière avec des intersections (les fonctions) et des routes (les appels entre fonctions). Et chaque programme a la sienne. BinDiff compare alors ces cartes pour trouver les différences.Cette approche est innovante parce qu’elle fonctionne même si les programmes sont compilés avec des options différentes ou des compilateurs différents. Entre la publication DIMVA de 2004 et début 2005, Rolf Rolles, un autre génie du reverse engineering, contribue au projet avec de nouvelles idées qui améliorent grandement la capacité de BinDiff à matcher les blocs de base..center-shortcode * {text-align: center !important;}.center-shortcode p {text-align: center !important;width: 100%;margin-left: auto;margin-right: auto;}.center-shortcode img {display: block;margin: 0 auto;}.center-shortcode p em,.center-shortcode em {font-style: italic;text-align: center !important;display: inline-block;width: 100%;}Puis en 2005, ils publient ensemble “Graph-based comparison of executable objects” au SSTIC… une présentation que Thomas donne en français et qu’il décrit comme “la seule présentation de conférence que j’ai jamais donnée en français. Et parce que j’étais terrifié, c’est probablement aussi celle que j’ai le plus répétée de ma vie”.En 2006, coup de tonnerre : zynamics remporte le prix Horst Görtz, avec une récompense de 100 000 euros, pour leur technologie de classification de malwares. C’est à l’époque le plus gros prix privé en sciences naturelles d’Allemagne ! Ce prix récompense leur travail sur la similarité de code basée sur les graphes et cet argent leur permet de rester indépendants sans avoir besoin de capital-risque. “Le capital-risque était trop restrictif”, explique Thomas, qui finissait alors son Master tout en dirigeant l’entreprise.L’entreprise grandit alors jusqu’à une douzaine d’employés, tous des ninjas du reverse engineering. Ils développent non seulement BinDiff, mais aussiBinNavi(essentiellement un IDE pour le reverse engineering centré sur la visualisation interactive de graphes, l’analyse de couverture et le débogage différentiel) etVxClass, qu’ils décrivent comme “un laboratoire d’analyse antivirus dans une boîte”.L’impact de BinDiff sur l’industrie est énorme. Le nom devient même un verbe… les gens disent “je vais bindiff ça” pour dire qu’ils vont comparer deux binaires. C’est un peu comme quand on dit “googler”… alors quand votre outil devient un verbe, vous savez que vous avez réussi !.center-shortcode * {text-align: center !important;}.center-shortcode p {text-align: center !important;width: 100%;margin-left: auto;margin-right: auto;}.center-shortcode img {display: block;margin: 0 auto;}.center-shortcode p em,.center-shortcode em {font-style: italic;text-align: center !important;display: inline-block;width: 100%;}Thomas DullienMais l’histoire prend un tournant dramatique en juillet 2007. Halvar arrive aux États-Unis pour donner sa formation annuelle à Black Hat Las Vegas, une formation qu’il donne depuis 7 ans sans problème. Mais cette fois, catastrophe, les douanes américaines trouvent ses supports de présentation dans ses bagages et le retiennent pendant 4 heures et demie. “Si vous allez faire du profit en tant que conférencier individuel, vous avez besoin d’un visa différent”, lui disent-ils. Le problème c’est qu’il avait un contrat avec Black Hat Consulting en direct en tant qu’individu, pas en tant que représentant de son entreprise.L’ironie de la situation c’est que la plupart des participants à ses formations sont des employés du gouvernement américain ! Mais ça ne change rien et ils le renvoient en Allemagne sur le prochain vol. “Vous n’avez aucun droit, parce que techniquement vous n’êtes pas encore dans le pays”, lui ont-ils dit. Le programme d’exemption de visa lui est désormais interdit à vie. La communauté Black Hat est furieuse, mais Thomas reste philosophe… il finit par obtenir un visa business et revient l’année suivante, plus fort que jamais.VxClass devient alors rapidement le produit phare de zynamics. C’est une infrastructure capable de traiter automatiquement les nouveaux malwares en les classifiant automatiquement en familles en utilisant l’analyse de graphes de flux de contrôle. L’outil peut générer des signatures privées en octets (au format ClamAV) pour toute une famille de malwares. VxClass peut par exemple, à partir de 160 extraits de malwares, les classifier automatiquement comme une seule famille et générer un seul pattern pour trouver chaque variante. Mandiant annonce même l’intégration avec VxClass dans leur logiciel de forensique mémoire Memoryze..center-shortcode * {text-align: center !important;}.center-shortcode p {text-align: center !important;width: 100%;margin-left: auto;margin-right: auto;}.center-shortcode img {display: block;margin: 0 auto;}.center-shortcode p em,.center-shortcode em {font-style: italic;text-align: center !important;display: inline-block;width: 100%;}Le chevauchement de 2 malwares de la même “famille”Et en mars 2011, Google rachète zynamics. C’est la consécration ! C’est d’ailleurs probablement VxClass qui intéresse le plus Google dans ce deal, étant donné l’intérêt de l’entreprise pour classifier les malwares et les sites malveillants. Le prix de BinDiff passe alors de plusieurs milliers de dollars à seulement 200 dollars. Google veut démocratiser ces outils de sécurité, et Halvar se retrouve propulsé dans la cour des grands avec le titre de Staff Engineer..center-shortcode * {text-align: center !important;}.center-shortcode p {text-align: center !important;width: 100%;margin-left: auto;margin-right: auto;}.center-shortcode img {display: block;margin: 0 auto;}.center-shortcode p em,.center-shortcode em {font-style: italic;text-align: center !important;display: inline-block;width: 100%;}Illustration du principe de l’attaque RowhammerChez Google, il travaille d’abord sur l’intégration et le scaling de sa technologie, puis il retourne à la recherche pure et dure et c’est là qu’il tombe sur quelque chose d’absolument dingue : le Rowhammer.Le Rowhammer avait été découvert en juin 2014 par des chercheurs de Carnegie Mellon et Intel Labs (Yoongu Kim et ses collègues) dans leur papier “Flipping Bits in Memory Without Accessing Them”. Mais là où les académiques voient un problème de fiabilité, Thomas et Mark Seaborn de l’équipe Project Zero de Google voient une faille de sécurité monumentale.Le Rowhammer, c’est une de ces découvertes qui font dire “mais comment c’est possible ?!”. En gros, imaginez que la mémoire de votre ordinateur est comme un parking avec des places très serrées. Si vous ouvrez et fermez la portière de votre voiture des milliers de fois très rapidement (on appelle ça “marteler” une ligne de mémoire), les vibrations peuvent faire bouger les voitures garées à côté (les bits dans les lignes adjacentes). Plus concrètement, quand on accède sans arrêt à une même zone de la mémoire, ça crée des perturbations électriques qui peuvent modifier les données stockées juste à côté… un peu comme si l’électricité “débordait” sur les zones voisines.En mars 2015, Thomas et Mark publient alors leur exploit sur le blog de Project Zero. Les contributions techniques de Thomas incluent une méthode pour attaquer la mémoire des deux côtés en même temps (le “double-sided hammering”… imaginez-vous en train de marteler un mur par les deux faces pour le faire céder plus vite) et une technique astucieuse (le “PTE spraying”) pour transformer cette faille en véritable exploit, même s’il admet modestement que Mark a fait 90% du travail.Ils surnomment même affectueusement le premier ordinateur où l’exploit fonctionne “Flippy the laptop” ! Leur exploit fonctionne donc en utilisant le row hammering pour induire un bit flip (une inversion de bit) dans une entrée de table de pages (PTE) qui la fait pointer vers une page physique contenant une table de pages appartenant cette fois au processus attaquant. Ça donne alors au processus attaquant un accès en lecture-écriture à une de ses propres tables de pages, et donc à toute la mémoire physique. Les chercheurs rapportent des bit flips avec seulement 98 000 activations de lignes !La présentation de leurs résultats à Black Hat 2015 fait alors l’effet d’une bombe. Hé oui, une faille qui existe dans pratiquement toute la RAM moderne, qui ne peut pas être patchée par du logiciel, et qui peut être exploitée même depuis JavaScript dans un navigateur ! C’est le cauchemar ultime des responsables sécurité. Cette découverte devient alors le point d’origine de toute une famille d’attaques hardware (RowPress, Half-Double, etc.).En août 2015, Halvar reçoit le Pwnie Award pour l’ensemble de sa carrière. C’est l’Oscar de la sécurité informatique, avec un jury de chercheurs en sécurité renommés qui sélectionne les gagnants. Et ces derniers reçoivent des trophées “My Little Pony” dorés ! À seulement 34 ans, il est alors décrit comme un “gourou du reverse engineering ayant déjà révolutionné le domaine plusieurs fois”..center-shortcode * {text-align: center !important;}.center-shortcode p {text-align: center !important;width: 100%;margin-left: auto;margin-right: auto;}.center-shortcode img {display: block;margin: 0 auto;}.center-shortcode p em,.center-shortcode em {font-style: italic;text-align: center !important;display: inline-block;width: 100%;}Le fameux trophée Pwnie Award - un “My Little Pony” doré remis aux légendes de la sécurité informatiqueQuoi qu’il en soit, cette découverte du Rowhammer change profondément la vision de Thomas sur l’informatique. Il se passionne pour la physique informatique, c’est-à-dire ce qui se passe réellement dans le processus de fabrication des puces. “C’est le plus grand spectacle sur Terre”, dit-il, et tire plusieurs leçons importantes. La première c’est qu’on a besoin d’une vraie théorie de l’exploitation. Aussi, que le hardware n’est pas correctement analysé pour anticiper tout ce qui pourrait arriver de pire, et enfin que la recherche sur les défauts des puces dus aux variations de fabrication est extrêmement intéressante.Après un congé sabbatique d’un an, il retourne alors chez Google en 2016 et rejoint Project Zero, l’équipe d’élite qui cherche les failles zero-day. Son travail se concentre sur la découverte automatique de fonctions de bibliothèques liées statiquement dans les binaires et sur des recherches de similarité ultra-efficaces sur d’énormes quantités de code.Mais en janvier 2019, nouveau virage à 180 degrés. Thomas quitte Google et co-fonde Optimyze. Cette fois, il change complètement de domaine : fini la sécurité, place à la performance et à l’économie du cloud ! Après 20 ans passés à casser des trucs, il décide de les rendre plus efficaces.L’idée d’Optimyze est géniale puisqu’avec la fin de la loi de Moore et le passage au SaaS/Cloud, l’efficacité logicielle redevient super importante. Leur produit est un profileur continu multi-runtime qui peut s’installer sur des milliers de machines Linux et vous dire exactement où votre flotte dépense ses cycles CPU, jusqu’à la ligne de code, peu importe le langage (C/C++, Java, Ruby, PHP, Perl, Python, etc.). Le tout avec une technologie eBPF qui permet un déploiement sans friction.Thomas remarque en effet qu’il y a, je cite, “une quantité énorme de calculs inutiles partout”. Avec les coûts du cloud qui explosent et l’attention croissante sur le CO2 et l’efficacité énergétique, aider les entreprises à optimiser leur code devient crucial. “Avec la fin de la loi de Moore et de Dennard scaling, combinée avec le passage au cloud et la transformation digitale continue de la société, l’efficacité computationnelle va recommencer à compter”, explique-t-il.En octobre 2021, Elastic rachète Optimyze. Leur idée c’est de combiner le profiling continu d’Optimyze avec les capacités d’analyse et de machine learning d’Elastic pour offrir une observabilité unifiée. Thomas devient alors Distinguished Engineer chez Elastic, où il continue à travailler sur l’efficacité à grande échelle.Début 2024, après avoir intégré Optimyze dans l’écosystème Elastic, Thomas annonce à nouveau qu’il quitte l’entreprise pour prendre une pause prolongée. Il veut se reposer, et se consacrer à sa famille, sa santé et l’écriture. Mais il ne reste pas inactif longtemps puisque depuis 2019, il est aussi Venture Partner chez eCAPITAL, où il se concentre sur les investissements en cybersécurité et technologies climatiques. Enfin, depuis 2025, il dirige avec Gregor Jehle le groupe de projet Engineering au CNSS e.V.Ces dernières années, on le voit donner des conférences passionnantes. Par exemple à QCon London en mars 2023, où il présente “Adventures in Performance”. Il y explique comment les choix de design des langages impactent les performances. Notamment comment la culture monorepo de Google et la culture “two-pizza team” d’Amazon affectent l’efficacité du code, et pourquoi la variance statistique est l’ennemi.À ISSTA 2024 en septembre à Vienne, il donne une keynote intitulée “Reasons for the Unreasonable Success of Fuzzing”, où il analyse pourquoi le fuzzing marche si bien alors que théoriquement, ça ne devrait pas. Il raconte notamment comment dans la culture hacker des années 90, le terme “fuzz-tester” était utilisé comme une insulte pour ceux qui ne savaient pas trouver des bugs en lisant le code.Ce qui est fascinant avec Thomas Dullien, c’est surtout sa capacité à voir les problèmes sous un angle complètement différent. Là où d’autres voient des bugs, il voit des opportunités. Là où d’autres voient de la complexité, il voit de jolis graphes. Là où d’autres voient des problèmes de fiabilité hardware, il voit des failles de sécurité. C’est cette vision unique qui lui a permis de faire progresser ses domaines de prédilection.Son approche de l’enseignement est aussi unique. Ses formations Black Hat étaient limitées à 18 étudiants maximum, avec des prérequis techniques élevés et aujourd’hui, Thomas continue d’influencer l’industrie. Que ce soit par ses recherches, ses talks, ou les outils qu’il a créés, son impact est partout. BinDiff est maintenant open source et supporte IDA Pro, Binary Ninja et Ghidra. Le Rowhammer a donné naissance à toute une famille d’attaques hardware et les idées d’Optimyze sur l’efficacité logicielle deviennent de plus en plus pertinentes avec la crise climatique.Voilà l’histoire de Thomas Dullien. C’est l’histoire d’un gars qui a su transformer sa curiosité en innovations. Une chose est sûre, quand Halvar Flake s’intéresse à quelque chose, l’industrie entière devrait y prêter attention. Que ce soit pour casser des trucs, les analyser, ou les rendre plus efficaces, il trouve toujours un angle nouveau que personne n’avait anticipé.Sources :Site personnel de Thomas Dullien,Google Project Zero - Exploiting the DRAM rowhammer bug,Black Hat Archives - 2007 US Entry Denial Incident,Silver Bullet Podcast - Interview with Halvar Flake,Elastic acquiert Optimyze,ISSTA 2024 - Keynote on Fuzzing,QCon London 2024 - Adventures in Performance,Heise - Horst Görtz Prize 2006,Dark Reading - Pwnie Awards 2015,OffensiveCon - Halvar Flake Biography,eCAPITAL - Thomas Dullien Venture Partner,GitHub - BinDiff Open Source,zynamics - BinDiff,Intel Technology Podcast - Interview with Thomas Dullien,Wikipedia - Row hammer