At the RSA Conference in San Francisco this week, the National Security Agency released to the public one of its internal tools, Ghidra 9.0, which is used for software reverse engineering. The NSA has been using it internally for a decade.
Reverse engineering software changes the ones and zeros computers understand back into a human-readable structure. The point is to show what that clump of binary code actually does.
It is currently available at the official website, along with supporting documentation. NSA says that it will release the source code under an open source license on GitHub.
Ghidra is written in Java, and requires 4 GB RAM along with 1 GB storage for installed Ghidra binaries. It works on Windows, Mac and Linux.
It will work on the following processors at the moment: X86 16/32/64, ARM/AARCH64, PowerPC 32/64, VLE, MIPS 16/32/64,micro, 68xxx, Java/DEX bytecode, PA-RISC, PIC 12/16/17/18/24, Sparc 32/64, CR16C, Z80, 6502, 8051, MSP430, AVR8 and AVR32.
Ghidra is developed and tested against the OpenJDK (Java development kit) that is distributed from jdk.java.net. The NSA says that using this OpenJDK distribution gives the most stable experience.
Ghidra is a direct competitor to IDA Pro, a commercial program that has required usage fees in the thousands of dollars per year besides having an intrusive buyer qualification process. IDA -- which has a debugger not yet present in Ghidra -- has been the only real game in town until now. Yet, Ghidra supports MIPS (Microprocessor without Interlocked Pipelined Stages) decompiling for RISC computers which IDA Pro does not.
Response to the release by the infosec community as expressed on Twitter, has been overwhelmingly positive.
Maddie Stone, who reverse engineers for Google, was positively giddy there. "Ghidra's out and we've got those ARM proc modules, the UNDO button, and the ability to collaborate on analysis... for FREE!" she said.
The Undo/redo functionality seems to be a particular favorite of many. It allows someone to try out an idea without messing up what they have previously saved.
Of course, the community came up with an initial bug. A London-based hacker found what could be a way to backdoor the tool. "Ghidra opens up JDWP in debug mode listening on port 18001, you can use it to execute code remotely," he said on Twitter.
But, this behavior seems to be a condition that only happens in debug mode. It does not happen when Ghidra is in normal mode. It can be easily fixed by changing one line of code as well.
The NSA has previously made tools available to the public through its Technology Transfer Program (TTP). Security-Enhanced Linux and Security-Enhanced Android are but two of the examples.
Having Ghidra available to the public at no cost may well be a decisive marker in cybersecurity defense. This will widely distribute a professional quality analytic tool that gives the community a way to fight back at attacks by understanding them.
This isn't done yet, not by a long shot.
— Larry Loeb has written for many of the last century's major "dead tree" computer magazines, having been, among other things, a consulting editor for BYTE magazine and senior editor for the launch of WebWeek.