La NSA présente GHIDRA, son système de retro-conception

TL ; DR : La NSA va présenter et rendre open source son principal logiciel de retro-engineering.

Contexte

A partir du 7 Mars 2017, Wikileaks (1), publia des éléments (documents, exécutables, …) de la CIA (2) datés de 2013 à 2016, regroupés sous le nom de Vault 7.

On ne sait officiellement pas comment Wikileaks a obtenu ces éléments, mais toujours est-il que Joshua Adam Schulte, employé de la NSA (3), fait actuellement face à un procès, mais pas pour fuite volontaire d’informations (probablement plus pour une négligence ayant permis la fuite).

De nombreux outils de compromission furent divulgués, dont un logiciel de « retro-conception » appelé GHIDRA (concrètement, un outil de décompilation avancé), développé par la NSA, datant du début des années 2000 et continuellement amélioré depuis. Cet outil aurait été partagé avec les autres agences gouvernementales US depuis 2010, ce qui explique qu’il soit sorti du bois lors du hack d’une autre agence gouvernementale, en l’occurrence, la CIA.

Il faut savoir que la décompilation est un exercice très compliqué et réalisé par des outils coûteux comme IDA avec son plugin HEXRAY.

La nouveauté

Lors de la conférence RSA, qui se tiendra le 4 Mars 2019 à San Francisco,  le « Senior NSA Adviser » Robert Joyce  fera une démonstration de l’outil (inscription ici). Il a indiqué que la NSA le publierait gratuitement, très probablement sur sa plate-forme open source, comme elle l’a déjà fait pour 32 de ses projets par le passé.

Le fait que la NSA rende open source un de ses outils internes n’est pas surprenant. L'agence l’a déjà fait ces dernières années (4), notamment avec un outil qui a connu beaucoup de succès pour automatiser des transferts massifs de données entre applications (et qui a très bien pris le virage du Cloud) : NiFi.

La plate-forme GHIDRA (écrite en Java, disponible sous Windows, macOS, et Linux) se compose d’une multitude de modules accessibles via une interface graphique qualifiée d’ergonomique, comme on en attendrait d’un logiciel commercial. Elle permet d’analyser une grande variété d’instructions de processeurs (OpCode) et de systèmes d’exploitation Windows, macOS, Linux, Android et iOS. C’est important de savoir analyser une grande variété d’instructions, car une des principales difficultés de la « retro-conception », aujourd’hui, est le processus de décompilation. C’est à dire le travail de conversion du langage machine en langage de programmation (et dans le cas de GHIDRA, en C) et à partir duquel on pourra déduire l’algorithme implémenté et donc le fonctionnement logique de l’outil, plus simplement qu’avec du code assembleur.

L’architecture modulaire permet d’ajouter des « packages » pour faire appel à des fonctionnalités particulières en fonction du langage machine analysé et de son architecture. L’outil semble apprécié par les employés du gouvernement US, qui l’utilisent régulièrement (entre autres cas d’utilisation) dans des rôles plutôt défensifs type SOC (5)pour comprendre le fonctionnement de « malwares » découverts sur les réseaux de l’état US.

De tels outils, sur le principe, existent déjà. Citons par exemple IDA Pro (6), principal logiciel de désassemblage du marché.

Retours d’expérience

Un utilisateur ayant eu accès à GHIDRA indique que pour du Windows x64, IDA Pro aurait l’avantage, mais que pour les gros programmes complexes il se dirigerait plutôt vers GHIDRA (voici un fil Reddit où l’utilisateur « hash_define » fait part de son expérience, que je vous invite à parcourir si vous voulez plus de détails sur l’outil).

Cependant, la majorité des retours d’expérience tendent à dire que GHIDRA est plus lent et bogué que IDA Pro. Ainsi, en le rendant open-source, la NSA permettra à la communauté de prendre le relais de la maintenance et de l’évolution du produit, ce qui devrait améliorer ses performances et peut-être surpasser et couler IDA Pro (qui n’ont pas dû accueillir la nouvelle de la publication de l’outil avec une grande joie). C’est l’avenir qui nous le dira.

Mais si un outil efficace (même partiellement) de décompilation est mis à la disposition de tous (encore faut-il avoir les compétences de l’exploiter), ils ne seront pas les seuls à se faire des cheveux blancs… Cela dit, nous n'en sommes pas encore là.

Notes

1 - Wikileaks, site vitrine de publication donnant la parole aux lanceurs d’alertes, dont le créateur Julian Assange est désormais cloîtré à l’embrassade de l’Equateur à Londres, dont il ne peut plus sortir de peur d’être arrêté et extradé vers les US.

2 - Principale agence de renseignements, d’espionnage et d’influence à l’extérieur du territoire US.

3 - Principale agence de renseignements technique, orientée électronique et cyber, en charge de la sécurité intérieure US et du contre-espionnage. A ne pas confondre avec le FBI (agence d’enquête fédérale) qui a principalement une vocation judiciaire.

4 - Au total la NSA a rendu « open source » 32 de ses projets dans le cadre de son programme Technology Transfer Program (TTP) et a récemment ouvert un compte GitHub officiel.

5 - Pour comprendre les agissements d’une vérole, quels protocoles elle va utiliser pour affecter quelle partie de l’infra.

6 - Dont le principal inconvénient est son coût de licence à plusieurs milliers de dollars US.