Si chiama Ghidra il tool di reverse engineering rilasciato dalla National Security Agency statunitense, che ha dato l’annuncio nel corso della RSA Security Conference 2019 di San Francisco.
Durante la conferenza dedicata alla sicurezza informatica, un portavoce della NSA ha dichiarato: “A supporto della missione di sicurezza informatica della NSA, Ghidra è stato creato per risolvere problemi di scalabilità e collaborazione su complesse attività di SRE (software di reverse engineering) e per fornire una piattaforma di ricerca SRE personalizzabile ed estensibile. La NSA ha applicato le funzionalità di Ghidra SRE a una serie di problemi che riguardano l’analisi del codice dannoso per gli analisti SRE che cercano una migliore comprensione delle potenziali vulnerabilità nelle reti e nei sistemi”.
In accordo con quanto presentato alla RSA Security Conference, la NSA ha reso Ghidra open source con licenza Apache 2.0 per le seguenti ragioni:
- migliorare i tool di cybersecurity disponibili;
- creare una nuova community;
- promuovere un uso educativo;
- restituire qualcosa ai contribuenti.
Indice degli argomenti
Ghidra: il software per smascherare i malware
Ghidra non è un tool di hacking, ma una suite software di reverse engineering (SRE) sviluppata dal NSA Research Directorate in codice Java. Può essere utilizzato sia in modalità con interfaccia grafica che headless batch mode attraverso riga di comando.
I software di reverse engineering sono un asset fondamentale per i ricercatori e gli analisti di malware, in quanto permettono di comprendere come i malware stessi funzionano e quali possano essere le conseguenze ed i danni in caso di attacchi cyber. Sono inoltre molto importanti per aziende e governi, che possono verificare la liceità del codice dei software utilizzati.
Ghidra include strumenti high end per l’analisi del software che consentono agli utenti di analizzare il codice compilato su svariate piattaforme, tra cui Windows, Linux e Mac OS. Le funzionalità principali comprendono disassemblaggio, assemblaggio e decompilazione. Rimane chiaramente possibile per gli utenti sviluppare i propri script e plugin.
L’analista di Avira Shahab Hamzeloofard ha effettuato i primi test su Ghidra, dichiarando che le feature più interessanti sono nel code browser e nel decompiler che funziona per tutti i processori supportati, nonché la possibilità di collaboration, paragonandolo al blasonato IDA. Al momento Ghidra non è tuttavia dotato di un debugger, cosa che, insieme al fatto che altri prodotti come IDA siano lo standard de facto, potrebbe ostacolare un’ampia adozione da parte della community di cyber security.
I processori ad oggi supportati (la lista completa è reperibile in ghidra_9.0/Ghidra/Processors/) sono:
- X86 16/32/64
- ARM/AARCH64
- PowerPC 32/64, VLE
- MIPS 16/32/64,micro
- 68k
- Java / DEXbytecode
- PA-RISC
- PIC 12/16/17/18/24
- Sparc 32/64
- CR16C
- Z80
- 6502
- 8051
- MSP430
- AVR8, AVR32
Ghidra: c’è da fidarsi?
Vista la reputazione della NSA, in molti si sono interrogati sul fatto che il prodotto possa contenere backdoor. Potrebbe Ghidra essere in grado di esporre gli elaboratori degli utilizzatori agli occhi della NSA? Il progetto, ad oggi, è open source, e nascondere una backdoor all’interno del codice pubblicamente disponibile sarebbe un rischio troppo elevato per la reputazione dell’agenzia.
Nonostante quindi siano molto basse le possibilità che Ghidra contenga malware, i sospetti sono tuttavia ancora presenti. Matthew HackerFantastic Hickey, cofondatore di Hacker House, ha rilevato come, eseguendo Ghidra in debug mode, venga aperta la porta 18001 sulla rete locale, e la stessa resti in ascolto per l’esecuzione di comandi inviati da qualsiasi elaboratore si connetta a tale porta.
La modalità debug non è tuttavia attivata di default e non siamo quindi probabilmente di fronte ad una vera backdoor, quanto ad un bug che può essere facilmente corretto modificando la riga 150 del file ghidra_9.0/support/launch.sh, sostituendo il parametro * con 127.0.0.1.
Rob Joyce di NSA ha dichiarato durante la conferenza RSA che l’intenzione è quella di continuare a sviluppare Ghidra, rilasciando un debugger, un emulatore e tool di analisi migliorati.
Come funziona Ghidra: breve guida pratica
Ghidra supporta le seguenti piattaforme:
- Microsoft Windows 7 o 10 (64-bit)
- Linux (64-bit)
- macOS (OS X) 10.8.3+
Le specifiche hardware minime sono:
- 4 GB RAM
- 1 GB Storage
- Dual monitor suggerito
Il software necessario è:
- Java 11 Runtime and Development Kit (JDK) – si suggerisce di utilizzare OpenJDK distribuito da jdk.java.net
Ghidra non necessita di alcuna installazione, è sufficiente scaricare il pacchetto ed estrarlo nella cartella desiderata.
Una volta estratto l’archivio, la directory ghidra_9.0 si presenta popolata da queste cartelle e file:
- docs: documentazione di Ghidra
- Extensions: componenti opzionali che possono ampliare le funzionalità del prodotto
- Ghidra: directory principale che contiene i file necessari per eseguire Ghidra
- GPL: programmi di supporto
- licenses: licenze utilizzate da Ghidra
- server: file necessari per la configurazione di Ghidra server
- support: file utilizzati per il debugging del tool
- ghidraRun.bat – ghidraRun: script per eseguire Ghidra
- LICENSE.txt: informazione sulla licenza di Ghidra
Per eseguire Ghidra in GUI mode (cioè in modalità grafica) è sufficiente eseguire il file ghidraRun.bat su Windows e ghidraRun su Linux o Mac.
Viene così caricata l’interfaccia grafica di Ghidra.
Nel nostro caso selezioniamo Non-Shared Project e compiliamo i campi necessari che ci verranno proposti durante il wizard di configurazione.
Completata questa fase, verrà mostrata una finestra informativa con tutte le informazioni sul software appena importato.