GHIDRA – NSA za darmo udostępnia własne narzędzia do inżynierii wstecznej

Maciej Olanicki , 06.03.2019 r.
nsa
W styczniu National Security Agency zapowiedziało udostępnienie wykorzystywanego przez agencję oprogramowania do inżynierii wstecznej – frameworka GHIDRA. W końcu doczekaliśmy się premiery programu i dokumentacji, dzięki której każdy może nauczyć się wykorzystywanych przez NSA sposobów na analizę malware. Nie obyło się jednak bez kontrowersji.

GHIDRA – framework inżynierii wstecznej NSA dostępny

GHIDRA to przygotowane w Javie narzędzie służące do inżynierii wstecznej. Dzięki niej możliwe jest na przykład odzyskanie kodu źródłowego z pliku binarnego – mechanizm trudny do przecenienia na przykład podczas analizy złośliwego oprogramowania. GHIDRA posiada wygodny graficzny interfejs, zaś do jej działania wymagane jest wyłącznie Java Development Kit 11. Instrukcje instalacji opisują konieczność wskazywania lokalizacji JDK, ale podczas naszych testów nie było takiej konieczności. Na Ubuntu wystarczyło zainstalować JDK 11 poleceniem sudo apt-get install openjdk-11-jdk i uruchomić skrypt ghidraRUN, by GHIDRA automatycznie odnalazła JDK i poprawnie się uruchomiła.

ghidra2

Podstawowym narzędziem wykorzystywanym w GHIDRZE jest Code Browser i trzeba przyznać, że robi wrażenie, z jak ogromną łatwością możliwe jest odzyskanie kodu asemblera z binarki. Na powyższym zrzucie widoczny jest właśnie asembler popularnego otwartego odtwarzacza muzyki foobar2000. Aby rozpocząć analizę wystarczyło dosłownie wybrać z menu pozycję Import i na dysku odnaleźć EXE foobara. Kilkanaście sekund później Code Browser wyświetlał już powyższy widok. Aktualnie GHIDRA obsługuje instrukcje procesorów w architekurze: X86 16/32/64, ARM/AARCH64, PowerPC 32/64, VLE, MIPS 16/32/64, micro, 68xxx, kod bajtowy Java/DEX, PA-RISC, PIC 12/16/17/18/24, Sparc 32/64, CR16C, Z80, 6502, 8051, MSP430, AVR8, AVR32.

Wobec GHIDRY nie brakuje zastrzeżeń

Mimo tego że GHIDRA jest narzędziem diablo ciekawym, dającym ogromne możliwości, a jednocześnie prostym w obsłudze, to na razie nie zalecamy jej instalacji. Po pierwsze, NSA zapowiedziało, że wraz z premierą frameworka udostępniony zostanie jego kod źródłowy. Tak się jednak nie stało, choć ma się to zmienić w najbliższym czasie. Oczywiście NSA stanowczo zaprzecza spekulacjom, według których w GHIDRZE miałyby działać tylne furtki, ale... mowa przecież o NSA. Dopóki społeczność skrupulatnie nie przejrzy kodu udostępnionego na GitHubie trudno takie deklaracje traktować poważnie. Samo opóźnienie w otwarciu GHIDRY także wzbudza podejrzenia.

ghidra

Ale jest i drugi powód, dla którego z testami GHIDRY warto się wstrzymać. Zgłoszono już bowiem pierwszą podatność narzędzia – użytkownik GitHuba przedstawiający się jako Matthew Hickey zauważył, że GHIDRA w trybie debugowania po uruchomieniu otwiera wykorzystywany przez protokół Java Debug Wire port 18001. To zaś pozwala każdym w lokalnej sieci na wykonanie dowolnego kodu. Domyślnie tryb debugowania jest wyłączony, co nie zmienia faktu, że zaledwie kilka godzin po premierze mamy już pierwszą odnalezioną podatność, a kodu źródłowego GHIDRY jak nie było, tak nie ma.

Instalatory, instrukcje i dokumentację znaleźć można na oficjalnej stronie GHIDRY. Jej kod źródłowy wkrótce ma zostać udostępniony na GitHubie NSA.

Najnowsze oferty pracy:

Polecane wpisy na blogu IT: