Korben, roi d’internet, logo bébé avec des lunettes en mode thug life Korben, roi d’internet, logo bébé avec des lunettes en mode thug life

Korben Upgrade your mind

PMCMA – Le générateur d’exploits

Après une démo à la dernière Blackhat, les petits gars de Toucan System, une boite de sécurité informatique de Chamalières (yeah !), viennent de sortir leur debuggeur pour Linux baptisé PMCMA.

PMCMA ça veut dire Post Memory Corruption Memory Analysis. Derrière ce nom barbare se cache en fait un outil capable d’exploiter un bug dans un logiciel, plus précisément un accès invalide en mémoire, et d’écrire de manière automatisé un exploit pour celui-ci.

Ce genre d’exploit accompagné d’un rapport de debug permettra aux développeurs de mettre plus facilement le doigt sur le problème. Mais si vous êtes un simple utilisateur d’application et que vous avez prévenu telle ou telle société de le présence d’un bug dans leur application, un petit PoC (Proof of Concept) comme ceux générés par PMCMA permettra de leur faire prendre conscience peut être un peu plus rapidement qu’il y a un vrai problème à corriger d’urgence.

Enfin, comme le disent les gens de Toucan System dans leur FAQ, ça peut aussi servir aux scripts kiddies qui le souhaitent d’aller encore plus vite en prison 😉

Voici le texte de présentation de l’outil en français :

Pmcma est un outil GNU/Linux permettant de déterminer si un bug donné est une faille de sécurité en cherchant à écrire un exploit pour celle ci de manière largement automatisée. Il fonctionne pour l’heure sur les microprocesseurs Intel x86 et x86_64.

Plus précisément, dans le cas de corruptions mémoires entrainant un accès invalide en écriture à une adresse mémoire donnée (du fait d’un dépassement de tampon dans une zone inscriptible quelconque par exemple, ou encore du fait d’un integer overflow ou encore d’une chaine de format manquante), l’écriture d’un exploit dépend de la capacité d’un attaquant à écraser un pointeur vers une fonction qui sera ensuite exécuté, afin de détourner le flot d’exécution vers un code arbitraire.

Or, trouver ces pointeurs vers des fonctions est dans la pratique une tâche excessivement compliquée et particulièrement longue. En effet, les debuggers actuels ne sont pas adaptés à cette tâche : le « single stepping » n’est pas possible sur des applications excédant quelques milliers de lignes de code, et l’analyse statique donne de très mauvais résultats (tous les pointeurs sur fonction ne sont pas effectivement exécutés durant l’execution d’un chemin donné, sans même parler de la difficulté à déterminer ceux qui le sont dans des librairies).
Pour palier à ces difficultés, pmcma permet désormais d’effectuer toutes ces étapes de « reverse engineering » de manière totalement automatisée.

Pour ce faire, lors d’un accès invalide en mémoire, pmcma utilise une technique entièrement nouvelle, qui consiste à injecter un shellcode minimal dans le processus, de manière à l’obliger à forker un grand nombre de fois. Dans chacun des processus ainsi créés (qui sont en tout point identiques au processus original, tant du point de vue de l’agencement des sections en mémoire, de leurs permissions, que du point de vue de l’état des variables et autres zones inscriptibles au moment du crash – données globales des librairies en particulier), pmcma modifie alors une adresse mémoire différente avec une valeur « canari » (par exemple 0xf1f2f3f4, qui pointe vers une adresse du noyau sur tous les processeurs Intel x86 et n’est donc pas executable depuis l’userland – ring 3), supprime le signal 11 que le processus original aurait du recevoir, puis continue l’execution de chacun des processus fils. Si d’aventure l’un de ces processus devait exécuter l’adresse correspondant à la valeur du canari, alors un pointeur vers une fonction effectivement utilisé vient d’être trouvé.

Pmcma est également capable de fournir une métrique de répétabilité de l’attaque relatif à l’ASLR (méchanisme dit de « randomisation » de l’espace d’adressage, présent sur tous les systèmes d’exploitation modernes).

bhus_2011_brossard

Les sources sont disponibles sous license open source Apache 2.0. Vous trouverez plus d’infos sur http://www.pmcma.org et plus de détails techniques ici.

Merci à Jonathan Brossard, le papa de PMCMA pour les détails.


Réponses notables

Continuer la discussion sur Korben Communauté

4 commentaires supplémentaires dans les réponses

Participants

Salaire des développeurs : France vs Royaume-Uni : rester ou s’expatrier à l’heure du Brexit ?

Londres reste la première destination en Europe pour les développeurs du monde entier, qui sont désormais près de 360 000 à travailler dans la capitale britannique. Pour autant, les centres technologiques rivaux connaissent une expansion rapide. Maintenant que le Brexit a enfin été annoncé, la France parie qu’elle peut renverser la Grande-Bretagne de son statut de plus grande nation technologique d’Europe. 

Londres est dans une bataille avec d’autres villes européennes pour attirer ces travailleurs hautement qualifiés, et les données suggèrent également que les rivaux européens augmentent leurs effectifs technologiques à un rythme plus rapide, bien qu’à partir d’une base plus faible. Le nombre de développeurs à Paris a augmenté de près de 60% dans le même temps.

Depuis son élection, le Président Macron a séduit les entrepreneurs technologiques avec une série d’initiatives sous la forme d’allégements fiscaux, de subventions et de crédits pour la recherche. En mars 2018, il a promis d’investir 1,5 milliard d’euros dans la recherche en intelligence artificielle jusqu’en 2022. Cela a permis à la France d’ouvrir de nouveaux centres de recherches afin de rester compétitif sur différents sujets. Par exemple, le secteur du jeu vidéo a récemment explosé en France avec la création de nouvelles sociétés (Voodoo et leur 200M$ / 173M€ levés en 2018) et le développement de ses institutions (Ubisoft) qui permettent au pays d’avoir les meilleurs studios de création de jeu au monde. 

Toutefois, les rémunérations françaises proposées aux développeurs sont peu attractives. La société talent.io spécialisée dans le recrutement de profils tech a réalisé une étude en comparant les salaires des développeurs français, allemands et britanniques – selon leurs expériences et le type de poste. Selon les différentes données, la France arrive en bas de chaque classement en étant surpassée à chaque fois par sa rivale britannique. Cependant, talent.io rappelle que le coût de la vie n’est pas compris dans ses données et peut avoir un impact significatif sur le niveau de vie. 

Parier sur la vieille dame ou sur la startup nation? Désormais sortie du Brexit, le Royaume-Uni a quelques cartes à jouer pour rester dans la course de l’innovation et séduire les développeurs.

En recherche de poste ou curieux de découvrir de nouvelles opportunités ? Il est temps de juger par vous-même votre valeur sur le marché. Dans un secteur qui n’a jamais autant évalué, talent.io examine chaque opportunité pour ne vous proposer que le meilleur en France et à l’étranger.

CV, lettre de motivation, candidature ? Rien de tout cela n’est nécessaire, les entreprises postulent directement à vous et l’inscription ne prend que 2 minutes. 

En savoir + sur votre prochain Job