“Ghidra is a software reverse engineering (SRE) framework created and maintained by the National Security Agency Research Directorate. This framework includes a suite of full-featured, high-end software analysis tools that enable users to analyze compiled code on a variety of platforms including Windows, Mac OS, and Linux.”
E’ difficile parlare di un argomento così tecnico come il reverse engineering usando termini comprensibili. Siete avvisati! Premessa quindi la natura estremamente tecnica del post, passiamo alla sostanza.
L’NSA – si, proprio la National Security Agency – ha rilasciato il framework Ghidra per il software reverse engineering, ovvero l’analisi di come funziona un certo programma senza averne i sorgenti.
Per chi non ha confidenza con l’argomento, ricordo che le CPU sono progettate per eseguire istruzioni codificate in linguaggio binario (composto da 0 e 1). E’ molto difficile riuscire a scrivere codice direttamente in binario, quindi negli anni sono nati degli strumenti chiamati “compilatori” (o “interpreti”, nel caso di linguaggi interpretati) che traducono un linguaggio di programmazione in codice eseguibile dai PC.
Si va dai linguaggi a più alto livello, come Go, Python, C, a quelli più vicini al codice macchina, come l’assembly.
Generalmente tutto il codice non open-source, per il quale non è disponibile il codice sorgente, viene distribuito in giro sotto forma di “eseguibile”, ovvero il file contenente le istruzioni da eseguire in codice macchina.
Proviamo ad immaginarlo in termini culinari: posso portarvi un piatto e fornirvi anche la ricetta (open-source) oppure solo il piatto, e custodire gelosamente per me gli ingredienti e il procedimento (closed-source).
Volgarmente, gli strumenti per il reverse engineering servono ad effettuare le analisi sulla pietanza per risalire alla ricetta.
Per fare qualche esempio sull’importanza di questi strumenti, vi dico che gran parte delle analisi sui malware e sui virus che circolano in Rete, quasi sempre “eseguibili”, sono effettuate con questi strumenti. Grazie alla decompilazione del codice binario, è possibile capire le operazioni eseguite e, quindi, sviluppare tutte le contromisure necessarie.
La scelta della National Security Agency, una delle Agenzie di sicurezza più famose – e misteriose – al mondo, è politicamente importante: un contributo probabilmente decisivo alla comunità mondiale nell’analisi del software, per affrontare una serie di “problems that involve analyzing malicious code and generating deep insights for SRE analysts who seek a better understanding of potential vulnerabilities in networks and systems”.
Ghidra, scaricabile liberamente da GitHub attraverso il sito web ghidra-sre.org, “includes a suite of full-featured, high-end software analysis tools that enable users to analyze compiled code on a variety of platforms including Windows, Mac OS, and Linux. Capabilities include disassembly, assembly, decompilation, graphing, and scripting, along with hundreds of other features. Ghidra supports a wide variety of process instruction sets and executable formats and can be run in both user-interactive and automated modes.“
Lo avete provato? Fate sapere cosa ne pensate!