
CERT Kaiju ist eine Erweiterung des Binary-Analyse-Frameworks für die Ghidra Software Reverse Engineering Suite. Dieses Repository ist ein "Mirror" – bitte reichen Sie Tickets, Fehlerberichte oder Pull-Requests im Upstream-Repository bei @CERTCC ein: https://github.com/certcc/kaiju
CERT Kaiju ist eine Sammlung von Binäranalyse-Werkzeugen für Ghidra.
Dies ist eine Ghidra/Java-Implementierung einiger Funktionen des [CERT Pharos Binary Analysis Framework][pharos], insbesondere der Funktions-Hashing- und Malware-Analyse-Werkzeuge, es wird jedoch erwartet, dass im Laufe der Zeit neue Werkzeuge und Fähigkeiten hinzukommen.
Da es sich um eine neue Initiative handelt, hat diese Implementierung noch nicht die vollständige Funktionsparität mit der ursprünglichen C++-Implementierung auf Basis von ROSE; der Wechsel zu Java und Ghidra hat jedoch einige neue Funktionen ermöglicht, die im ursprünglichen Framework nicht verfügbar waren – insbesondere eine verbesserte Handhabung von Nicht-x86-Architekturen.
Da eine erhebliche Neuarchitektur des Frameworks und der Werkzeuge stattfindet und der Wechsel zu Java und Ghidra andere Fähigkeiten als die C++-Implementierung ermöglicht, wurde beschlossen, ein neues Branding zu verwenden, um Verwirrung zwischen den Implementierungen bei der Diskussion der verschiedenen Werkzeuge und Fähigkeiten zu vermeiden.
Unsere Absicht für die nahe Zukunft ist es, sowohl das ursprüngliche Pharos-Framework als auch Kaiju parallel zu pflegen, da beide einzigartige Funktionen und Fähigkeiten bieten können.
HINWEIS: Als Prototyp können bei der Auswertung der von diesem Plugin erstellten Funktions-Hashes viele Probleme auftreten. Im Gegensatz zur Pharos-Implementierung erstellt das Funktions-Hashing-Modul von Kaiju beispielsweise Hashes für sehr kleine Funktionen (z. B. solche mit einer einzelnen Anweisung wie RET, was zu vielen unbeabsichtigten Kollisionen führt). Daher können die Analyseergebnisse zwischen diesem Plugin und Pharos fn2hash variieren.
[Vorgefertigte Kaiju-Pakete][prebuilts] sind verfügbar. Laden Sie einfach die ZIP-Datei herunter, die Ihrer Version von Ghidra entspricht, und installieren Sie sie gemäß den nachstehenden Anweisungen. Es wird empfohlen, die Installation über die grafische Oberfläche von Ghidra durchzuführen, es ist aber auch möglich, das Archiv manuell in das entsprechende Verzeichnis zu entpacken.
CERT Kaiju erfordert die folgenden Laufzeitabhängigkeiten:
Z3 wird als Teil der vorgefertigten Pakete vorkompiliert bereitgestellt, oder Sie können Z3 selbst erstellen oder das Paket Ihrer Linux-Distribution verwenden.
Starten Sie Ghidra und wählen Sie im Startfenster aus dem Menü: Datei > Erweiterung installieren. Klicken Sie auf das Pluszeichen oben im Erweiterungsfenster, navigieren Sie zur .zip-Datei im Dateibrowser und wählen Sie sie aus, und klicken Sie auf OK. Die Erweiterung wird installiert und ein Kontrollkästchen neben dem Namen der Erweiterung im Fenster wird markiert, um Sie zu informieren, dass sie installiert und bereit ist.
Die Oberfläche wird Sie auffordern, Ghidra neu zu starten, um die Erweiterung zu verwenden. Starten Sie einfach neu, und dann stehen Kaijus zusätzliche Funktionen interaktiv oder in Skripten zur Verfügung.
Einige Funktionen erfordern möglicherweise das Aktivieren von Kaiju-Plugins. Öffnen Sie dazu den Code-Browser und navigieren Sie zum Menü Datei > Konfigurieren. Klicken Sie im sich öffnenden Fenster auf den Link Konfigurieren unter dem Symbol der Kategorie „CERT Kaiju“. Ein Popup zeigt alle verfügbaren öffentlich veröffentlichten Kaiju-Plugins an. Aktivieren Sie die gewünschten Plugins und klicken Sie auf OK. Sie haben nun Zugriff auf interaktive Plugin-Funktionen.
Wenn ein Plugin nach der Aktivierung nicht sofort sichtbar ist, finden Sie es im Menü Fenster im Code-Browser.
Experimentelle „Alpha“-Versionen zukünftiger Werkzeuge können in der Kategorie „Experimental“ verfügbar sein, falls Sie diese testen möchten. Diese Plugins sind jedoch definitiv experimentell und werden nicht unterstützt und sind nicht für den Produktionseinsatz empfohlen. Wir freuen uns jedoch über frühzeitiges Feedback!
Ghidra-Erweiterungen wie Kaiju können auch manuell installiert werden, indem Sie den Inhalt der Erweiterung in das entsprechende Verzeichnis Ihrer Ghidra-Installation entpacken. Weitere Informationen finden Sie im Ghidra-Installationshandbuch.
Sie können die Kaiju-Erweiterung auch direkt aus dem Quellcode erstellen. Siehe die Datei INSTALL.md im obersten Kaiju-Quellverzeichnis.
Kaijus Werkzeuge können entweder interaktiv grafisch oder über einen „Headless“-Modus verwendet werden, der sich besser für Batch-Jobs eignet. Einige Werkzeuge sind aufgrund ihrer Art möglicherweise nur für die grafische oder die headless-Verwendung verfügbar.
Kaiju erstellt eine interaktive grafische Oberfläche (GUI) in Ghidra unter Verwendung von Java Swing und der Plugin-Architektur von Ghidra.
Die meisten Werkzeuge von Kaiju sind eigentlich Analyse-Plugins, die automatisch ausgeführt werden, wenn die Option „Auto Analysis“ gewählt wird, entweder beim Import einer neuen auszuführenden Datei oder durch direktes Auswählen von Analyse > Auto-Analyse... im Code-Browser-Fenster. Sie werden mehrere CERT-Analyse-Plugins sehen, die im Auto-Analyse-Tool standardmäßig ausgewählt sind, aber Sie können nach Belieben aktivieren/deaktivieren.
Die Analysewerkzeuge müssen jedoch ausgeführt werden, bevor die verschiedenen GUI-Werkzeuge funktionieren. In einigen Randfällen kann es sogar hilfreich sein, die Auto-Analyse zweimal auszuführen, um sicherzustellen, dass alle Metadaten erzeugt werden, um korrekte Partitionierungs- und Disassemblierungsinformationen zu erstellen, die wiederum die Hashing-Ergebnisse beeinflussen können.
Analysatoren werden automatisch während der Analysephase von Ghidra ausgeführt und umfassen: