Questo sito web utilizza cookie tecnici e, previo Suo consenso, cookie di profilazione, nostri e di terze parti. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsente all'uso dei cookie. Leggi la nostra Cookie Policy per esteso.OK

LA GUIDA PRATICA

Ghidra, il tool della NSA per scoprire vulnerabilità: ecco come funziona

La National Security Agency statunitense ha rilasciato Ghidra, uno strumento per il reverse engineering utile a scoprire eventuali vulnerabilità in reti e sistemi. Ecco di cosa si tratta e una breve guida pratica all’uso

20 Mar 2019
C
Matteo Cuscusa

Ethical Hacker & Security Expert


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.

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.

WHITEPAPER
Cybersecurity: come superare efficacemente le vulnerabilità delle tecniche di Intelligenza Artificia
Sicurezza

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.

La porta 18001 non è la stessa utilizzata per la collaboration (porta 13100), quindi si tratta di un errore nella compilazione del parametro con il valore * anziche 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.

A questo punto è necessario creare un nuovo progetto cliccando su File/New Project e selezionare Non-Shared Project o Shared Project a seconda che si voglia lavorare in locale o su Ghidra Server.

Nel nostro caso selezioniamo Non-Shared Project e compiliamo i campi necessari che ci verranno proposti durante il wizard di configurazione.

Selezioniamo il programma da analizzare alla ricerca di eventuali vulnerabilità e trasciniamolo tramite un’operazione di drag and drop nel progetto non appena creato.

Ghidra andrà a popolare il formato del file e il linguaggio del microprocessore.

Completata questa fase, verrà mostrata una finestra informativa con tutte le informazioni sul software appena importato.

A questo punto, è possibile iniziare ad utilizzare i vari strumenti di Ghidra trascinando l’icona relativa al software che compare nel nostro progetto su quella del tool desiderato presente nella tool chest, procedendo all’analisi del programma.

Chiaramente è possibile selezionare e modificare le opzioni degli analyzer accedendo al menu Analysis Opyions.

WHITEPAPER
Mobile security: come proteggere gli smartphone dai malware
Sicurezza

All’interno del Code Browser è adesso possibile procedere con tutte le relative attività di reverse engineering.

@RIPRODUZIONE RISERVATA

Articolo 1 di 4