GitHub

NationalSecurityAgency/ghidra — Ghidra is a software reverse engineering (SRE) framework

NSA가 공개한 리버스 엔지니어링 프레임워크 Ghidra — 디컴파일부터 스크립팅까지 지원하는 SRE 도구 모음

미국 국가안보국(NSA) 연구국이 개발하고 유지보수하는 소프트웨어 리버스 엔지니어링(SRE) 프레임워크 Ghidra가 GitHub에 올랐습니다. 디스어셈블리, 디컴파일, 그래프 시각화, 스크립팅 등을 지원하며 Java나 Python으로 확장할 수 있는 오픈소스 프로젝트입니다. 악성코드 분석과 취약점 연구에 활용되는 대표적인 무료 SRE 도구입니다.

본문

미국 국가안보국(NSA)이 만들고 관리하는 소프트웨어 리버스 엔지니어링 프레임워크 Ghidra가 GitHub에서 다시 주목받고 있습니다. 상용 리버스 엔지니어링 도구가 고가인 상황에서 NSA가 직접 공개한 이 프레임워크는 보안 연구자와 개발자에게 사실상 표준에 가까운 무료 대안으로 자리 잡았습니다.

Ghidra의 기능과 지원 환경

Ghidra는 Windows, macOS, Linux 등 다양한 플랫폼에서 컴파일된 코드를 분석할 수 있는 고급 소프트웨어 분석 도구 모음입니다. 핵심 기능으로는 디스어셈블리(disassembly), 어셈블리, 디컴파일(decompilation), 그래핑(graphing), 스크립팅이 있으며 그 외에도 수백 가지 기능을 포함합니다. 다양한 프로세서 명령어 세트와 실행 파일 포맷을 지원하고, 사용자가 직접 조작하는 대화형 모드와 자동화 모드 모두로 실행할 수 있습니다. 사용자는 Java 또는 Python으로 자체 Ghidra 확장 컴포넌트와 스크립트를 개발할 수도 있습니다.

NSA가 Ghidra를 만든 이유

원문에 따르면 Ghidra는 NSA의 사이버 보안 임무를 지원하기 위해, 복잡한 SRE 작업에서 발생하는 확장성(scaling)과 협업(teaming) 문제를 해결하고, 사용자 정의와 확장이 가능한 SRE 연구 플랫폼을 제공하기 위해 만들어졌습니다. NSA는 Ghidra의 SRE 역량을 악성코드 분석처럼 네트워크와 시스템의 잠재 취약점을 더 깊이 이해하려는 분석가들에게 통찰을 제공하는 다양한 문제에 적용해 왔다고 밝힙니다.

설치와 빌드 절차

공식 사전 빌드 릴리스를 설치하려면 64비트 JDK 25가 필요합니다. Releases 페이지의 Assets에서 ghidra_<버전>_<릴리스>_<날짜>.zip 형태의 멀티플랫폼 릴리스 파일을 내려받으면 되며, 'Source Code'로 이름 붙은 파일은 설치용이 아니라고 명시되어 있습니다. 기존 설치 위에 덮어 압축을 풀면 안 되며, 압축 해제 후 ./ghidraRun(Windows는 ghidraRun.bat)으로 실행하거나 ./support/pyghidraRun으로 PyGhidra를 실행할 수 있습니다. 소스에서 직접 빌드하려면 JDK 25, Gradle 9.1.0 이상(또는 인터넷 연결 시 제공되는 Gradle wrapper), 번들 pip이 포함된 Python 3.9~3.14가 필요하고, Linux/macOS에서는 GCC 또는 Clang과 make, Windows에서는 MSVC·Windows SDK·C++ ATL이 포함된 Visual Studio 2017 이상이 필요합니다. gradle -I gradle/support/fetchDependencies.gradle로 의존성을 받은 뒤 gradle buildGhidra를 실행하면 build/dist/에 압축된 개발 빌드가 생성됩니다.

확장 개발과 기여

Ghidra는 Eclipse용 GhidraDev 플러그인을 통해 사용자 정의 스크립트와 확장 작성을 지원하며, 릴리스의 Extensions/Eclipse/GhidraDev/ 경로에서 플러그인과 설명을 찾을 수 있습니다. Script Manager의 Visual Studio Code 아이콘으로 스크립트를 편집할 수도 있고, CodeBrowser의 Tools -> Create VSCode Module project 메뉴로 완전한 VS Code 프로젝트를 생성할 수 있습니다. 다만 두 통합 기능 모두 완전히 빌드된 Ghidra 설치본을 대상으로만 개발을 지원한다는 제한이 있습니다. Ghidra 도구 자체를 개발할 때는 개발 프로세스가 Eclipse에 맞춰 최적화되어 있으므로 Eclipse IDE for Java Developers 사용이 강력히 권장되며, gradle prepdev eclipse buildNatives 실행 후 기존 프로젝트를 임포트해 디버깅할 수 있습니다. 버그 수정이나 새 기능 기여는 Contributor's Guide를 통해 참여할 수 있습니다.

보안 주의 사항

원문은 Ghidra의 특정 버전에 알려진 보안 취약점이 존재한다고 경고하며, 사용 전에 Ghidra의 Security Advisories를 읽고 자신이 어떤 영향을 받을 수 있는지 확인하라고 안내합니다. 악성코드 분석 도구 특성상 분석 대상 자체가 위협이 될 수 있으므로, 최신 버전 사용과 권고 확인이 중요합니다.

원문: GitHub / 번역·요약: Trawling