GHIDRA, le framework d'ingénierie inverse de logiciels de la NSA sera publié en open source
Le 5 mars prochain

Le , par Bill Fassinou

131PARTAGES

15  0 
L’un des événement majeurs de la conférence RSA (une série de conférences portant sur la sécurité de l'information) du 4 au 8 mars prochain à San Francisco sera sans doute la présentation par la NSA au grand public de son outil d’ingénierie inversée dénommée GHIDRA en open source. On pourrait peut-être dire que l’agence gouvernementale est devenue ami du open source depuis 2017 après la création de son compte GitHub. En effet, courant juin 2017, la société gouvernementale avait fourni une liste d’outils qu’elle avait développé en interne et qui sont désormais accessibles au public via Open Source Software (OSS) dans le cadre de son programme TTP (Technology Transfer Program). D’après le site de la NSA, le programme de transfert de technologie transfère la technologie mise au point par la NSA à l'industrie, aux universités et à d'autres organismes de recherche, au profit de l'économie et de la mission de l'Agence. Le programme dispose d'un vaste portefeuille de technologies brevetées dans plusieurs domaines technologiques.

Le dépôt GitHub de la société présente plus de 32 projets à code source ouvert dont Apache Accumulo, un magasin clé/valeur trié et distribué qui fournit un stockage et une récupération de données robustes et évolutifs et ajoute un contrôle d'accès basé sur les cellules et un mécanisme de programmation côté serveur permettant de modifier les paires clé/valeur à différents moments du processus de gestion des données ; ou encore Apache Nifi, son célèbre outil pour automatiser le flux de données entre les systèmes. Ce dernier met en œuvre les concepts de la programmation par flux et résout les problèmes de flux de données communs rencontrés par les entreprises. Cette fois, c’est au tour de l’outil d’ingénierie inversée GHIDRA d’être publié en open source le 5 mars prochain. Il s’agit là, d’un logiciel pour désassembler pour décomposer les fichiers exécutables en un code d’assemblage pouvant ensuite être analysé par les humains.


Le logiciel peut également analyser les fichiers binaires de tous les principaux systèmes d'exploitation, tels que Windows, Mac, Linux, Android et iOS, et une architecture modulaire permet aux utilisateurs d'ajouter des packages au cas où ils auraient besoin de fonctionnalités supplémentaires. L’outil serait développé en Java avec une interface graphique conviviale comme l’annonce le site de la conférence. « La NSA a développé un framework d’ingénierie inversée de logiciels appelé GHIDRA, qui sera présenté pour la première fois à RSAC (RSA Conférence) 2019. Une fonctionnalité d'interface graphique interactive permettant aux ingénieurs de rétro-exploitation de tirer parti d'un ensemble intégré de fonctionnalités s'exécutant sur diverses plates-formes, notamment Windows, Mac OS, et Linux et prend en charge une variété de jeux d’instructions de processeur. La plateforme GHIDRA inclut toutes les fonctionnalités attendues dans les outils commerciaux haut de gamme, avec des fonctionnalités nouvelles et étendues de la NSA, développées de manière unique, et sera publiée pour une utilisation publique gratuite à RSA », lit-on sur le site de RSA Conference.

Security Affairs informe que le logiciel a été mentionné pour la première fois dans les publications dénommées Vault 7 de Wikileaks. C’est une série de documents que WikiLeaks avait commencé à publier le 7 mars 2017 et qui donnaient des détails sur les activités de la CIA dans le domaine de la surveillance électronique et de la cyber-guerre.
Dans son article, WikiLeaks indiquait avoir obtenu des milliers de fichiers qui proviendraient d'un réseau de haute sécurité de la CIA qui détaille les techniques, les outils et les capacités de piratage de la CIA. Un trésor de fichiers qui présente également des informations sur GHIDRA. Le magazine a d’ailleurs saisi l’occasion pour dire comment installer le logiciel. Pour installer GHIDRA, écrit-il, il faut simplement à décompresser les fichiers zip dans un dossier de votre choix. Chacun des packages Ghidra est destiné à être décompressé directement au-dessus de la même structure de dossiers.

Par exemple, l'extraction de Ghidra_7.0.2_TSSI_20151120_common.zip dans le dossier C:\Ghidra décompressera tout dans C:\Ghidra\ghidra_7.0.2 . Les autres packages de la version 7.0.2 déposeront leurs fichiers dans la même structure de répertoires relatifs. Quelle que soit la plate-forme utilisée pour exécuter Ghidra ou les types de fichiers binaires que vous allez analyser dans Ghidra, vous aurez besoin du package commun. D'autres packages offrent la possibilité d'analyser différentes plates-formes (Windows, OSX, Linux, etc.) ou d'inclure des plugins permettant des fonctionnalités supplémentaires (Cryptanalyse, interaction avec OllyDbg, le débogueur Ghidra).

En se référant au site communautaire Reddit, on remarque que certains comparent l’outil à un autre de la même fonction appelé IDA. Pour eux, bien que IDA soit payant et ne disposant pas d’une interface graphique aussi meilleure que GHIDRA, il serait mieux que ce dernier surtout dans sa façon de gérer les fichiers exécutables. Pour d’autres, c’est une bonne chose de disposer à portée de main un tel outil gratuitement à défaut de payer de fortes sommes pour s’approprier IDA. D’autres comparaison avec IDA interviennent également en l'occurrence ceux qui qualifient IDA d’être nettement meilleur que GHIDRA à certains égards. Ils estiment que les gens n’ont pas choisi IDA uniquement pour la qualité mais que GHIDRA était très restreint.

Même les personnes ayant accès à GHIDRA étaient hésitantes, car elles ne voulaient pas apprendre un outil qu’elles ne pourraient pas offrir à un autre employeur. Les autres acteurs de ce marché, Binari Ninja et Hopper Disassembler, sont beaucoup plus récents, disent-ils. Pour s’expliquer, ils demandent d’imaginer présenter un nouvel éditeur, tel que vi ou emacs, mais avec une toute autre chose. Cela pourrait même être un éditeur légèrement meilleur. L'absorption sera lente. Les gens ne veulent pas réapprendre ou racheter. Selon eux, jusqu'à récemment, les gens préféreraient IDA plutôt que GHIDRA.

Sources : Security Affairs, RSA Conference

Et vous ?

Qu'en pensez-vous ?
Entre GHIDRA et IDA, lequel préféreriez-vous ? Pourquoi ?

Voir aussi

La NSA rend disponibles via Open Source Software certains des outils qu'elle a développés en interne dans le cadre de son programme TTP

La NSA aurait découvert l'identité réelle de Satoshi Nakamoto, le mystérieux créateur du Bitcoin

Un ex-employé de la NSA condamné à 5,5 ans de prison pour être rentré avec des infos classifiées, il assure qu'il voulait une promotion

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de TheLastShot
Membre confirmé https://www.developpez.com
Le 07/01/2019 à 19:39
La NSA qui publie un de leurs outils en open source ? Nan sérieusement, elle est où l'arnaque ?
Avatar de melka one
Membre éprouvé https://www.developpez.com
Le 07/01/2019 à 22:39
les pirate vont ce régalé
Avatar de dbugfree
Membre à l'essai https://www.developpez.com
Le 08/01/2019 à 2:04
Sûrement que GHIDRA est trop à la traîne, reste à savoir s'ils l'utilisent encore... Ou s'ils comptent sur la communauté pour rattraper le retard ?
Ou alors ils l'ont truffé de backdoors en espérant que les chinois vont y jeter un œil ^^
Avatar de benjani13
Membre extrêmement actif https://www.developpez.com
Le 08/01/2019 à 11:35
Citation Envoyé par dbugfree Voir le message
Sûrement que GHIDRA est trop à la traîne, reste à savoir s'ils l'utilisent encore... Ou s'ils comptent sur la communauté pour rattraper le retard ?
Selon un témoignage d'un ancien utilisateur sur reddit, GHIDRA concurrence bien le combo classique IDA Pro + Hexrays. GHIDRA aurait ses avantages et ses faiblesses, mais semble être au niveau, et serait donc gratuit. C'est tout de même un petit pavé dans la marre face au coût élevé des licences d'IDA Pro et Hexrays. En tout cas les reversers sont impatients de tester cet outil. Si la communauté s'empare de l'outil (vu qu'il passe open source), ça peut devenir sympa.
Avatar de abriotde
Membre éprouvé https://www.developpez.com
Le 08/01/2019 à 13:31
Nan sérieusement, elle est où l'arnaque ?
Il y en a pas il l'ont dis, les employé de la NSA refusent d'utiliser GHIDRA car sur le CV ça ne sert à rien... S'il devient Open-Source, cela sera utile.
Mais la raison fondamentale, est d'amortir les coût de développement en s'appuyant sur une communauté et d'autres entreprises. C'est tellement contre-productif que la NSA développe un outils, que Google développe le même ou même n'importe qu'elle société étrangère... Le tout sans jamais le partage, le vendre ou quoi que ce soit.
Avatar de pascaldm
Membre habitué https://www.developpez.com
Le 11/01/2019 à 11:57
J'attends le 5 mars avec impatience....

Je suis curieux de tester GHIDRA. Je possède une licence IDA Pro nominative mais sous Windows et mon employeur ne paie plus la maintenance annuelle... et je n'arrive pas à faire débourser 3000 € pour une Licence IDA Pro (avec le décompilateur) sous Linux. GHIDRA utilise nativement un module de désassemblage (listing ASM) et un module de décompilation.

J'ai bien essayé Hopper sous Linux mais ce n'est pas une réussite, l'environement Linux supporté était trop restreint. C'est plutôt destiné aux environnements Apple et il manque cruellement de fonctionnalité avancée même si l'usage est très similaire à IDA.

Finalement, j’utilise radare2 sous Linux et avec la GUI cutter sous Windows. Mais sous Windows j'utilise principalement IDA Pro. r2 dispose de nombreuses fonctionnalités utiles au développement d'exploit, mail il est bogué et pas vraiment convivial, il faut connaître les nombreuses commandes et on perd vite le fil en essayant de trouver comment faire quelque chose...

GHIDRA est basé sur Java ce qui en fait un outil multi-plateforme. Mon problème est que je travaille quasi exclusivement sous Linux et que je recherche donc des outils natifs Linux. Aujourd’hui, j'ai IDA Pro dans des VMs Windows sur des hosts Linux ...

L'intérêt d'ouvrir GHIDRA c'est pour la richesse des plugins qui pourront être mis à contribution par la communauté du reverse comme c'est le cas avec IDA Pro. La base est potentiellement plus large si le produit est gratuit et multi-plateforme. En outre, le retour d'expérience sur GHIDRA dans la communauté est plutôt positif pour ceux qui ont eu l'occasion d'y accéder.

Enfin un outil digne d'intérêt ? On verra ça au printemps !
Avatar de Stéphane le calme
Chroniqueur Actualités https://www.developpez.com
Le 06/03/2019 à 13:27
La NSA publie en open source Ghidra, son framework d'ingénierie inversée de logiciels,
pour « aider à analyser les codes malveillants »

Chose promise, chose due : la NSA avait indiqué qu’elle allait publier en open source son outil d’ingénierie inversée dénommée Ghidra durant la conférence RSA qui a commencé le 4 mars et va s’achever le 8 mars 2019.

Comme l’indique l’Agence dans un billet explicatif :

Citation Envoyé par NSA
Ghidra est un framework d'ingénierie inversée des logiciels développé par la Direction de la recherche de la NSA pour la mission de cybersécurité de la NSA. Il facilite l'analyse des codes malveillants et des logiciels malveillants, tels que les virus, et permet aux professionnels de la cybersécurité de mieux comprendre les vulnérabilités potentielles de leurs réseaux et de leurs systèmes.
Parmi les fonctionnalités clés de Ghidra, nous retrouvons :
  • un outil qui est livré avec une suite d'outils d'analyse logicielle permettant d'analyser le code compilé sur diverses plateformes, notamment Windows, macOS et Linux
  • un framework dont les capacités incluent le désassemblage, l'assemblage, la décompilation, la représentation graphique et la création de scripts, et des centaines d'autres fonctionnalités
  • un outil qui prend en charge une grande variété de jeux d'instructions de processeur et de formats exécutables et peut être exécuté à la fois en modes interactif et automatisé.
  • la possibilité pour les utilisateurs de développer leurs propres composants et / ou scripts de plug-in Ghidra à l'aide de l'API exposée



Une page d'aide est disponible pour les développeurs qui souhaitent l'utiliser. Vous en saurez plus par exemple sur la façon de l'installer, de l'utiliser etc. La NSA a pris également la peine de fournir une FAQ qui sera améliorée en fonction des questions que pourront poser les développeurs de la communauté.

La NSA rend disponibles via Open Source Software certains des outils qu'elle a développés en interne

Ghidra est l’un des nombreux projets de logiciels open source développés au sein de la National Security Agency. Il faut préciser qu’en juin 2017, la NSA a fourni une liste d’outils qu’elle a développés et qui sont désormais accessibles au public via Open Source Software (OSS) dans le cadre de son TTP (Technology Transfer Program). Pour rappel, c’est dans le cadre de son programme TTP que la NSA transfère la technologie qu’elle a développée en interne à l'industrie, au milieu universitaire et à d'autres organismes de recherche, des transferts qui vont « profiter à l'économie et à la mission de l'Agence ».

Bien sûr, le programme comporte un large éventail de technologies brevetées dans de multiples domaines technologiques.

Pourquoi l’OSS ? La NSA affirme que cette dernière « invite au développement coopératif de la technologie, en encourageant l'utilisation générale et l'adoption. Le public bénéficie en adoptant, en améliorant, en adaptant ou en commercialisant le logiciel. Le gouvernement bénéficie des améliorations apportées par la communauté open source à la technologie ».

Parmi ces outils figurent :

Apache Accumulo : un magasin de clés/valeurs réparti, qui fournit un stockage et une récupération de données robustes et évolutifs. Il ajoute un contrôle d'accès basé sur les cellules et un mécanisme de programmation côté serveur qui peut modifier les paires de clé/valeur à différents points du processus de gestion des données.

Parmi les fonctionnalités majeures, la NSA évoque :
  • la programmation côté serveur : Accumulo dispose d'un mécanisme de programmation (appelé Iterators) qui peut modifier les paires de clé/valeur à différents points du processus de gestion des données ;
  • contrôle d'accès par cellule : chaque paire de clé/valeur Accumulo possède sa propre étiquette de sécurité qui limite les résultats de requêtes basés sur les autorisations d'utilisateur ;
  • conçu pour l'évolutivité : Accumulo s'exécute sur un cluster en utilisant une ou plusieurs instances HDFS. Les nœuds peuvent être ajoutés ou supprimés lorsque la quantité de données stockées dans Accumulo change ;
  • stable : Accumulo dispose d'une API client stable qui suit la version sémantique. Chaque version d'Accumulo passe par des tests approfondis.


CASA (Certificate Authority Situational Awareness): qui révèle les certificats invalides provenant d'autorités de certification de confiance, sur systèmes Windows. CASA est disponible en tant qu’application Splunk.

JAVA PATHFINDER MANGO (JPF-MANGO) : outil d'analyse de code statique s'appuyant sur des méthodes formelles. Il fait partie du projet NASA Ames Java PathFinder, permettant de vérifier des binaires exécutables Java (bytecode).

APACHE NIFI : qui automatise le flux de données entre les systèmes. NiFi met en œuvre des concepts de programmation basée sur le flux et résout les problèmes courants de flux de données rencontrés par les entreprises.

Certains des capacités et objectifs de haut niveau d'Apache NiFi incluent :
  • une interface utilisateur basée sur le Web qui propose une expérience sans interruption entre la conception, le contrôle, la rétroaction et le suivi ;
  • un logiciel hautement configurable : il est par exemple possible d’appliquer une priorité dynamique ou de modifier le flux à l’exécution ;
  • la provenance des données : l’outil donne la possibilité de suivre le flux de données du début à la fin ;
  • conçu pour l'extension : avec cet outil, vous serez en mesure de créer vos propres processeurs et plus encore ;
  • sécurité : il embarque le SSL, SSH, HTTPS, du contenu chiffré et, etc. Il dispose également d’une autorisation multilocataire ainsi que d’une autorisation interne / gestion des politiques.



OPENATTESTATION : qui vérifie l'intégrité du système en établissant une mesure de base du module TPM (Trusted Platform Module) d'un système et surveille les changements dans cette mesure. Initialement basé sur le logiciel d'intégrité de l'hôte de NSA au démarrage (HIS).

Les principales caractéristiques comprennent :
  • la prise en charge des principaux systèmes d'exploitation hôtes Linux ;
  • le schéma de rapport basé sur PCR ainsi que les règles de politique ;
  • l’API de requête basée sur RESTful ;
  • la mise en œuvre du portail web/interface graphique de référence ;
  • le relevé/comparaison des données historiques des RAP ;
  • la gestion de la liste blanche ;
  • le contrôle d'accès flexible au serveur d'attestation ;
  • la prise en charge de Tomcat 2-way SSL/TLS pour les API de requête ;
  • les rapports SAML.


Dans la page répertoriant les outils mis à la disposition du public, la NSA note que certains d'entre eux seront « bientôt » disponible, comme :

  • EOWS, un outil prototype Web qui met en œuvre les fonctionnalités OCIL (Open Checklist Interactive Language) pour créer, gérer et répondre à des questionnaires.
  • OPAL, qui gère et standardise les disques durs commerciaux existants.
  • PRESSUREWAVE, qui couple des fonctionnalités de stockage d’objets d’entreprise avec un langage de politique flexible pour la personnalisation du contrôle d’accès, la conservation et le stockage des données au sein du même système


Télécharger Ghidra

Source : NSA, technologies de la NSA publiées en open source

Et vous ?

Allez-vous l'essayer ?

Voir aussi :

Un ex-employé de la NSA condamné à 5,5 ans de prison pour être rentré avec des infos classifiées, il assure qu'il voulait une promotion
USA : une sous-traitante de la NSA écope de plus de 5 ans de prison pour divulgation d'un rapport sur les cyberattaques attribuées aux Russes
La NSA annonce la destruction de millions de données d'appels collectées depuis 2015, qu'elle n'était pas autorisée à exploiter
La NSA aurait lancé un programme d'espionnage visant à pister les utilisateurs de bitcoins du monde entier, d'après des documents publiés par Snowden
Trois exploits de la NSA réécrits pour affecter toutes les versions de Windows lancées à partir de l'an 2000
Avatar de Citrax
Membre actif https://www.developpez.com
Le 06/03/2019 à 18:44
Si le logiciel est clean et sans back door alors on doit dire merci la NSA ?
Avatar de Aiekick
Membre extrêmement actif https://www.developpez.com
Le 06/03/2019 à 20:26
a installer sur un pc sans carte reseau au cas ou..
Avatar de pascaldm
Membre habitué https://www.developpez.com
Le 08/03/2019 à 18:24
Voilà, ça y est, j'ai installé GHIDRA sous Linux et Windows pour tester le produit en environnement contrôlé.

Les premiers retours sont très favorables. J'ai une licence IDA Pro avec le décompilateur. La licence est à 3000 € et le support annuel est jugé trop cher par mon employeur... Je dois donc faire avec la version de 2014 sous Windows uniquement.

Avec GHIDRA, j'ai un outil gratuit qui fonctionne également sous Linux. Les graphes du Control Flow, le désassemblage etc. sont des fonctionnalités équivalentes à IDA Pro. La décompilation a l'avantage d'être liée dynamiquement au désassemblage, ce qui fait que toute modification dans une fenêtre est répercutée dans l'autre. Cela aide beaucoup pour l'analyse de code, le renommage de fonctions et variables, l'ajout de commentaires.

Autre point, le désassemblage identifie clairement les variables locales et argument de fonctions par rapport à la pile. C'est vraiment clair et pédagogique. La décompilation fait apparaître les conventions d'appels utilisées. GHIDRA supporte aussi des plug-in externes (Java ou Python).

Enfin, GHIDRA proposent un résumé sur le binaire et affiche les structures des sections et des champs dans l'entête du binaire. C'est bien pratique et cela évite d'utiliser de nombreux autres outils. Comme outil intégré, c'est pas mal.

Ce qu'il y vraiment en plus dans GHIDRA c'est l'assemblage. On peut donc patcher un code, inclure des instructions dans un binaire et produire un exécutable. IDA ne le propose pas. GHIDRA est clairement fait pour l'analyse de code malveillant, la recherche de vulnérabilités et le piégeage de binaire.

Par contre GHIDRA ne propose pas le support de debugger externe comme IDA Pro. Du moins pas encore, certaines fonctionnalités laissent penser que c'est prévu. Cependant, les debuggers gratuits existent pour les principales plateformes.

GHIDRA est en version 9. La version 7.1 avait fuité par Wikileaks. Mais sans support officiel, cela n'avait pas grand intérêt. L'adoption par la communauté a de bonne chance d'être importante, ce qui est primordial pour la richesse des plug-ins.
A la création d'un projet, on choisit entre le mode standalone ou partagé. J'ai 'habitude de travailler seul. Je n'ai donc pas regardé les fonctionnalités de partage, mais elles existent.

Je trouve l'usage plus intuitif qu'IDA Pro et surtout radare2. Je n'ai pas fait le tour du produit, ni travaillé dans un réel contexte, j'ai juste chargé différents binaires 32 et 64 bits ELF et PE pour faire le tour des principales fonctionnalités. Il faudra que kes teste avec du code embarqués MIPS et ARM, et provenant d'OS temps-réel pour voir le support par GHIDRA.

Les imports/exports de bibliothèques sont facilement accessibles ainsi que les structures, les sections, etc. Il y a aussi une aide en ligne qui détaille des instructions assembleurs. C'est pratique lorsque l'on est pas sûr de bien comprendre certaines instructions peu utilisées ou méconnues et leur impact du les flags.

Franchement, j'adopte GHIDRA sur Linux mais aussi sous Windows. C'est vraiment une bonne surprise.
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web