Nimfilt: Когда авторам нужен ещё один язык, чтобы усложнить жизнь
Ключевые функции
📌Имена функций и пакетов: Nimfilt устраняет путаницу в именах функций и пакетов, специфичных для Nim, что делает их более удобочитаемыми и простыми для анализа.
📌Имена функций инициализации пакетов: Он также устраняет путаницу в именах функций инициализации пакетов Nim.
📌Строки Nim: Nimfilt применяет структуры в стиле C к строкам Nim, что помогает интерпретировать структуры данных в двоичном формате. Это включает в себя определение длины и полезной нагрузки строк.
📌Плагин IDA: Nimfilt можно использовать в качестве плагина IDA, где он упорядочивает функции по каталогам на основе имени их пакета или пути к нему. Это помогает структурировать процесс анализа.
📌Автоматическое выполнение: Плагин можно настроить на автоматическое выполнение при загрузке двоичного файла Nim, установив для глобальной переменной AUTO_RUN значение True.
📌Идентификация двоичных файлов Nim: Nimfilt использует эвристику для определения того, является ли загруженный файл двоичным файлом Nim, проверяя наличие определенных строк и имен функций, связанных с Nim.
📌 Правила YARA: Он включает правила YARA для идентификации двоичных файлов ELF и PE, скомпилированных в Nim.
📌Интерфейс командной строки (CLI): Скрипт на Python: Nimfilt может быть запущен как скрипт на Python в командной строке, предоставляя часть своих функциональных возможностей за пределами IDA.
📌Организация функций: В IDA Nimfilt создает каталоги в окне функций, чтобы упорядочить функции в соответствии с их именем пакета или путем к нему, улучшая читаемость и управляемость анализа.
Сценарии
Nimfilt использовался в различных реальных сценариях, в частности, при анализе вредоносных программ, написанных на языке программирования Nim.
📌Background: Группа Sednit, также известная как APT28 или Fancy Bear, является хорошо известной группой, занимающейся кибершпионажем. Они действуют по меньшей мере с 2004 года и ответственны за несколько громких атак, включая взлом Национального комитета Демократической партии (DNC) в 2016 году.
📌Использование Nim: В 2019 году было замечено, что Sednit использовал вредоносный загрузчик, написанный на Nim. Это стало одним из первых случаев использования Nim при разработке вредоносных программ.
📌 Роль Nimfilt: Nimfilt использовался для реверса вредоносной программы, скомпилированной с помощью Nim, помогая аналитикам понять структуру и функциональность загрузчика, разбирая имена функций и пакетов и применяя соответствующие структуры данных к строкам.
📌Background: Mustang Panda — это китайская группа Advanced Persistent Threat (APT), известная своей деятельностью в области кибершпионажа. Они использовали Nim для создания пользовательских загрузчиков для своего бэкдора Korplug.
📌Конкретный инцидент: В августе 2023 года Mustang Panda использовала вредоносную библиотеку DLL, написанную на Nim, в рамках своей кампании против правительственной организации в Словакии. Эта библиотека была частью их классического загрузчика trident Korplug.
📌Роль Nimfilt: Nimfilt сыграл важную роль в анализе этой библиотеки DLL. Разобрав названия и распределив функции по каталогам, Nimfilt упростил исследователям анализ вредоносного ПО и понимание его поведения.
Общий анализ вредоносных программ:
📌 Популярность Nim: Язык программирования Nim становится все более привлекательным для разработчиков вредоносных программ благодаря своему надежному компилятору и способности легко работать с другими языками, такими как C, С++ и JavaScript. Это привело к росту количества вредоносных программ, написанных на Nim.
📌Вклад Nimfilt: Для исследователей, занимающихся реверсом двоичных файлов, Nimfilt предоставляет мощный инструмент для ускорения процесса анализа. Это помогает устранить путаницу в именах, применить структуры к строкам и упорядочить функции, тем самым делая процесс реверса более эффективным и целенаправленным.