Auf der RSA-Sicherheitskonferenz in San Francisco hat der hochrangige NSA-Beamte Rob Joyce ein Software-Analyse-Werkzeug des Geheimdienstes als Open-Source-Projekt vorgestellt. Dass das Tool namens Ghidra existiert, ist der Öffentlichkeit seit den Vault-7-Veröffentlichungen von Wikileaks bekannt, ab sofort kann das Reverse-Engineering-Werkzeug von der weltweiten Security-Gemeinde frei benutzt werden – und jeder kann dabei helfen, den Code der Software besser zu machen.

Das wird auch deswegen in der Community als Sensation gehandelt, weil Ghidra der erste ernstzunehmende Konkurrent zu IDA Pro zu sein scheint, der Software, an der bisher kein Weg vorbeiführte, wenn man Executables in ihre Einzelteile zerlegen und analysieren wollte. Mit Ausnahme von dessen Free Version, die allerdings Closed-Source ist und im Gegensatz zu Ghidra nicht kontinuierlich gepflegt wird, kosten Profi-Versionen tausende Dollar pro Lizenz. Die NSA-Software ist kostenlos.

Die Jagd nach Hintertüren ist eröffnet

Verständlicherweise schlägt dem Open-Source-Projekt allerdings auch einiges an Misstrauen entgegen, angesichts der Tatsache, dass der Code vom in Hacker-Kreisen wohl berüchtigtsten US-Geheimdienst stammt. NSA-Berater Joyce, der das Projekt auf der RSA-Konferenz vorstellte, gab sich deswegen von Anfang an Mühe, möglichst viele der Bedenken der Anwesenden Kryptografen und Sicherheits-Experten schon im Keim zu ersticken.

Der Code enthalte keine Hintertüren, versprach er den Anwesenden, wie die englische IT-Nachrichtenseite The Register berichtet. Die Reverse-Engineering-Gemeinde sei wohl auch die schlechteste Community, der man so etwas unterschieben könne, witzelte der NSA-Mann. Und er scheint Recht behalten zu haben, denn keinen Tag nach der Veröffentlichung des Quellcodes fand ein findiger Programmierer bereits einen ziemlich heftigen Programmierfehler, den man wohl getrost als Sicherheitsrisiko einordnen darf.

Aktiviert man den Debug-Modus von Ghidra, öffnet die Software den Java-Debug-Port 18001. Eigentlich handelt es sich hier um eine legitime Funktion, die das Remote-Debugging etwa von Schadcode in einer isolierten VM-Umgebung unter Verwendung des JDWP (Java Debug Wire)-Protokolls ermöglicht. Der Fehler besteht nun aber darin, dass die Software, statt sich auf das lokale Netz zu beschränken, auf allen verfügbaren Netzwerk-Interfaces, also auch ins öffentliche Netz, lauscht. Um das Programm tatsächlich angreifbar zu machen, muss allerdings explizit der Debug-Launcher von Ghidra gestartet werden.

Dass es sich um eine absichtlich eingebaute NSA-Hintertür handelt, ist eher unwahrscheinlich. Zumal sich der Fehler laut seinem Entdecker recht einfach beheben lässt: Es genüge, ein "*" an einer bestimmten Stelle im Programmcode durch 127.0.0.1 (localhost) zu ersetzen.

Warum veröffentlicht die NSA das Tool?

Bei der Vorstellung des Programms betonte Joyce, ein Ziel der NSA bei der Veröffentlichung von Ghidra sei es, Sicherheitsforschern überall auf der Welt die Möglichkeit zu geben, Software auf Schwachstellen zu untersuchen und so sicherer zu machen. Innerhalb der Agency wird das Programm aber wohl eher dazu benutzt, Schwachstellen in Programmen zu finden, welche die NSA für Angriffe nutzen kann. Auch bei der Untersuchung von Schadprogrammen befeindeter Geheimdienste wird Ghidra der NSA von Nutzen sein.

Der Öffentlichkeit verspricht der Geheimdienst, das Projekt weiter zu pflegen und in Zukunft weitere Werkzeuge zu veröffentlichen, die in die Software integriert werden können. Die Software öffentlich zu machen habe den Vorteil, so Joyce, dass potenzielle NSA-Rekruten sich schon vor ihrer Bewerbung bei der Agency in deren Tools einarbeiten können. Ob das der wirkliche Grund für die Veröffentlichung ist, bleibt allerdings unklar – eventuell hat die NSA intern schon viel bessere Reverse-Engineering-Tools im Einsatz.

Was taugt Ghidra?

Ghidra läuft unter Windows, MacOS und Linux und benötigt dazu lediglich eine unterstützte Version des Java Runtime Environment samt Entwicklungsumgebung JDK. Das Programm läuft nur auf 64-Bit-Architekturen und ist in Java geschrieben, unterstützt aber auch Python-Plugins. Laut Joyce mochte ein NSA-Analyst Java nicht, zog es vor, mit Python zu arbeiten und brachte dieses Feature kurzerhand in den Quellcode ein.

Ghidra besitzt eine klassische grafische Benutzeroberfläche, die zwar nicht schön, aber funktional ist, und lässt sich ebenfalls von der Kommandozeile aus skripten. Außerdem können mehrere Analysten zusammen an einem Reverse-Engineering-Projekt arbeiten, in dem sie die Server-Unterstützung des Programms aktivieren und die Projektdatei zentral verwalten. Marktführer IDA Pro benötigt für solche Kollaborationsfunktionen zusätzliche Plugins.

Ghidra stellt den Code-Flow eines Programms in Graphen dar, die IDA-Pro-Nutzern sehr bekannt vorkommen dürften (Bild: Fabian A. Scherschel)

Die NSA-Software, die laut der Agency 1,2 Millionen Code-Zeilen umfasst, lässt sich einfach installieren und wird mit einer ziemlich ausführlichen Dokumentation ausgeliefert. Auf den ersten Blick macht das Werkzeug einen sehr ausgereiften und fortgeschrittenen Eindruck.

Durch Schönhzeit glänzt Ghidra ebenso wenig wie der Platzhirsch IDA Pro. In punkto Funktionsumfang scheint die Software mit der Konkurrenz jedenfalls mithalten zu können: Unabhängig von der Plattform, auf der Ghidra installiert ist, kann das Tool Executables für x86, ARM, MIPS und eine ganze Reihe weiterer Prozessoren analysieren. Es übersetzt Binaries in Assemblersprache und von dort aus in Pseudo-C-Code, der sich dem ursprünglich geschriebenen Programm-Code anzunähern versucht. Ghidra hilft dem Analysten mittels grafischer Darstellung, den Code-Flow der Datei zu verstehen und ermöglicht ihm unter anderem auch das Hinzufügen von Kommentaren.

Ersten Stimmen aus der Security-Gemeinde zufolge handelt es sich um ein sehr mächtiges Tool, das vor allem für die Nutzer interessant sein könnte, die sich keine Lizenz für IDA Pro oder vergleichbare Programme leisten können oder wollen. Und manche Ghidra-Funktionen, etwa das Undo-System der Software, scheinen die Konkurrenz deutlich in den Schatten zu stellen. Auch die Tatsache, dass es sich um ein Open-Source-Projekt handelt, das von der Community verbessert und erweitert werden kann, erfreut viele Beobachter. Wie gut Ghidra wirklich ist, werden allerdings nur eingehende Tests zeigen können.

Siehe dazu auch:

Ghidra- Download schnell und sicher von heise.de

(fab)