Агентство национальной безопасности США во время проведения конференции RSA объявило об открытии (http://ghidra-sre.org/) доступа к инструментарию для проведения обратного инжиниринга Ghidra (https://www.nsa.gov/resources/everyone/ghidra/), который включает интерактивный дизассемблер с поддержкой декомпиляции в код на языке Си и предоставляет мощные средства для анализа исполняемых файлов. Код написан (http://ghidra-sre.org/) на языке Java и в ближайшее время будет открыт (https://github.com/NationalSecurityAgency/ghidra) под свободной лицензией Apache 2.0 на GitHub. Продукт доступен для загрузки с сайта ghidra-sre.org (http://ghidra-sre.org/) (для работы требуется JDK 11+).
Проект развивается на протяжении почти 20 лет и активно применяется спецслужбами США для выявления закладок, анализа вредоносного кода, изучения различных исполняемых файлов и разбора скпомпилированного кода. По своим возможностям продукт сопоставим с расширенной версии проприетарного пакета IDA Pro, но рассчитан исключительно на анализ кода и не включает в себя отладчик.
Основные особенности:
- Поддержка различных наборов процессорных инструкций и форматов исполняемых файлов;
- Поддержка анализа исполняемых файлов для платформ Linux, Windows и macOS;
- В состав входят: дизассемблер, ассемблер, декомпилятор, построить графа хода выполнения кода, модуль для выполнения скриптов и т.п.
- Возможность выполнения в интерактивном и автоматическом режимах;
- Поддержка плагинов с реализацией новых компонентов;
- Поддержка автоматизации действий и расширения существующей функциональности через подключения скриптов на языках Java и Python;
- Наличие средств для совместной работы групп исследователей и координации работы при обратном инжиниринге очень крупных проектов.
Интересно, что через несколько часов после публикации Ghidra в пакете нашли уязвимость (https://twitter.com/hackerfantastic/status/1103087869063704576) в реализации отладочного режима, в котором открывается сетевой порт 18001 для удалённой отладки приложения по протоколу JDWP (Java Debug Wire Protocol). По умолчанию сетевые соединения принимались на всех доступных сетевых интерфейсах, а не на 127.0.0.1, что позволяло подключиться к Ghidra с других систем и выполнить (https://static.hacker.house/releasez/expl0itz/jdwp-exploit.txt) любой код в контексте приложения. Например, можно подключиться отладчиком, остановить выполнение через установку точки остановка и подставить при помощи команды "print new" свой код, например, "print new java.lang.Runtime().exec('/bin/mkdir /tmp/dir')".
Дополнительно можно отметить почти полностью переработанный выпуск (https://github.com/REDasmOrg/REDasm/releases) открытого интерактивного дизассемблера REDasm 2.0 (https://redasm.io/). Программа отличается модульной архитектурой, позволяющей подключать обработчики дополнительных наборов инструкций и форматов файлов в форме модулей. Код проекта написан на языке С++ (интерфейс на базе Qt) и распространяется (https://github.com/REDasmOrg/REDasm) под лицензией GPLv3. Поддерживается работа в Windows и Linux.
В базовой поставке поддерживаются форматы PE, ELF, DEX (Android Dalvik), форматы прошивок Sony Playstation, XBox, GameBoy и Nintendo64. Из наборов инструкций поддерживаются x86, x86_64, MIPS,
ARMv7, Dalvik и CHIP-8. Из возможностей можно отметить поддержку интерактивного просмотра в стиле IDA, анализ многопоточных приложений, построение наглядного графа хода исполнения, движок обработки цифровых подписей (работа с файлами SDB) и средства для ведения проекта.
URL: https://www.nsa.gov/News-Features/News-Stories/Article-View/.../
Новость: https://www.opennet.ru/opennews/art.shtml?num=50260