
CERT Kaiju è un'estensione del framework di analisi binaria per la suite di reverse engineering software Ghidra. Questo repository è un "mirror" – per favore, apri ticket, segnalazioni di bug o pull request nella repository upstream su @CERTCC: https://github.com/certcc/kaiju
CERT Kaiju è una raccolta di strumenti di analisi binaria per Ghidra.
Si tratta di un'implementazione Ghidra/Java di alcune funzionalità del [CERT Pharos Binary Analysis Framework][pharos], in particolare degli strumenti di hashing delle funzioni e analisi malware, ma si prevede che nel tempo crescerà con nuovi strumenti e capacità.
Trattandosi di un nuovo sforzo, questa implementazione non ha ancora la piena parità di funzionalità con l'implementazione C++ originale basata su ROSE; tuttavia, il passaggio a Java e Ghidra ha effettivamente abilitato alcune nuove funzionalità non disponibili nel framework originale – in particolare, una migliore gestione delle architetture non x86. Poiché è in corso un significativo ri-architettamento del framework e degli strumenti, e il passaggio a Java e Ghidra abilita capacità diverse rispetto all'implementazione C++, si è deciso di utilizzare un nuovo marchio in modo che ci sia meno confusione tra le implementazioni quando si discutono i diversi strumenti e capacità.
La nostra intenzione per il prossimo futuro è di mantenere sia il framework Pharos originale che Kaiju, fianco a fianco, poiché entrambi possono fornire funzionalità e capacità uniche.
AVVERTENZA: Essendo un prototipo, possono sorgere molti problemi durante la valutazione degli hash delle funzioni creati da questo plugin. Ad esempio, a differenza dell'implementazione Pharos, il modulo di hashing delle funzioni di Kaiju creerà hash per funzioni molto piccole (ad esempio, quelle con una singola istruzione come RET, causando molte più collisioni indesiderate). Di conseguenza, i risultati analitici possono variare tra questo plugin e Pharos fn2hash.
Sono disponibili [pacchetti Kaiju precompilati][prebuilts]. È sufficiente scaricare il file ZIP corrispondente alla versione di Ghidra in uso e installare secondo le istruzioni seguenti. Si consiglia di installare tramite l'interfaccia grafica di Ghidra, ma è anche possibile decomprimere manualmente il file nella directory appropriata per l'installazione.
CERT Kaiju richiede le seguenti dipendenze runtime:
Z3 è fornito precompilato come parte dei pacchetti precompilati, oppure è possibile compilare Z3 autonomamente o utilizzare il pacchetto della propria distribuzione Linux.
Avviare Ghidra e, dalla finestra iniziale, selezionare dal menu:
File > Install Extension. Fare clic sul segno più nella parte superiore della
finestra delle estensioni, navigare e selezionare il file .zip nel browser
dei file e premere OK. L'estensione verrà installata e una casella di spunta
sarà segnata accanto al nome dell'estensione nella finestra
per informarvi che è installata e pronta.
L'interfaccia chiederà di riavviare Ghidra per iniziare a utilizzare l'estensione. Basta riavviare, e poi le funzionalità extra di Kaiju saranno disponibili per l'uso interattivo o negli script.
Alcune funzionalità potrebbero richiedere l'attivazione dei plugin Kaiju. Per farlo,
aprire il Code Browser, quindi navigare al menu File > Configure.
Nella finestra che appare, fare clic sul collegamento Configure sotto
l'icona della categoria "CERT Kaiju". Un pop-up mostrerà tutti i plugin Kaiju
disponibili pubblicamente rilasciati. Selezionare i plugin
che si desidera attivare, quindi premere OK. Si avrà ora accesso alle
funzionalità interattive dei plugin.
Se un plugin non è immediatamente visibile dopo l'attivazione, è possibile
trovarlo sotto il menu Window nel Code Browser.
Versioni sperimentali "alpha" di futuri strumenti potrebbero essere disponibili nella categoria "Experimental" se si desidera testarli. Tuttavia questi plugin sono decisamente sperimentali e non supportati e non raccomandati per l'uso in produzione. Accogliamo comunque con favore i feedback precoci!
Le estensioni di Ghidra come Kaiju possono anche essere installate manualmente decomprimendo il contenuto dell'estensione nella directory appropriata della propria installazione di Ghidra. Per maggiori informazioni, consultare La Guida all'Installazione di Ghidra.
È anche possibile compilare l'estensione Kaiju direttamente dal codice sorgente.
Vedere il file INSTALL.md incluso nella directory principale del sorgente Kaiju.
Gli strumenti di Kaiju possono essere utilizzati sia in modo grafico interattivo, sia tramite una modalità "headless" più adatta per lavori batch. Alcuni strumenti potrebbero essere disponibili solo per uso grafico o headless, a seconda della natura dello strumento.
Kaiju crea un'interfaccia grafica interattiva (GUI) all'interno di Ghidra utilizzando Java Swing e l'architettura dei plugin di Ghidra.
La maggior parte degli strumenti di Kaiju sono in realtà plugin di Analisi che vengono eseguiti automaticamente
quando viene scelta l'opzione "Auto Analysis", sia all'importazione di
un nuovo eseguibile da disassemblare, sia scegliendo direttamente
Analysis > Auto Analyze... dalla finestra del code browser. Si vedranno
diversi plugin di Analisi CERT selezionati per impostazione predefinita nello strumento Auto Analyze,
ma è possibile abilitare/disabilitare qualsiasi plugin a piacere.
Gli strumenti di Analisi devono essere eseguiti prima che funzionino i vari strumenti GUI, tuttavia. In alcuni casi limite, può essere utile eseguire l' Auto Analysis due volte per garantire che tutti i metadati siano prodotti per creare una corretta partizione e informazioni di disassemblaggio, che a loro volta possono influenzare i risultati dell'hashing.
Gli Analizzatori vengono eseguiti automaticamente durante la fase di analisi di Ghidra e includono: