Эксперты в области кибербезопасности представили вторую часть технического анализа вредоносного программного обеспечения KorPlug, focusing на sophisticated методах обфускации, которые значительно затрудняют его обнаружение и исследование. Данное исследование проливает свет на то, как злоумышленники используют продвинутые компиляторные технологии для маскировки своего кода.
Описание
Исследуемый образец, представляющий собой DLL-файл с хэшем SHA-256 b6b239fe0974cf09fe8ee9bc5d0502174836a79c53adccdbb1adeb1f15c6845c и размером 638976 байт, демонстрирует использование техники side-loading для запуска через легитимные утилиты. Однако ключевой особенностью стала вторая стадия выполнения, где код инициализации подвергнут сложным преобразованиям для противодействия анализу.
Специалисты отметили, что функция Initialize в данном образце обладает аномально сложной структурой графа потока управления (CFG), что характерно для обфускатора O-LLVM - модифицированной версии компилятора LLVM. Этот инструмент применяет три основные методики: уплощение потока управления, добавление ложных ветвлений и подстановку инструкций. Важно отметить, что O-LLVM работает на уровне промежуточного представления LLVM, что позволяет обфусцировать код независимо от исходного языка программирования.
Анализ показал, что существующие инструменты деобфускации, такие как MODeflattener, не справляются с обработкой без дополнительных модификаций. Это подчеркивает адаптивность подхода злоумышленников и необходимость разработки более совершенных методов анализа.
В процессе исследования эксперты систематически идентифицировали компоненты обфусцированного CFG, включая pre-dispatcher, dispatcher, backbone blocks и relevant blocks. Последние содержат основную логику вредоносной деятельности, такую как манипуляции с переменными состояния для управления потоком выполнения. Для деобфускации был разработан автоматизированный инструмент на Python с использованием фреймворка angr, который позволяет картографировать значения переменных состояния и перенаправлять выполнение напрямую между значимыми блоками, минуя обфусцированные механизмы.
Этот подход не только восстановил исходную логику выполнения, но и продемонстрировал эффективность против сложных схем обфускации. Успешная деобфускация позволила получить упрощенный и читаемый граф потока управления, что критически важно для понимания функциональности угрозы и разработки контрмер.
Результаты исследования имеют значительные последствия для сообщества безопасности, подчеркивая необходимость continued развития инструментов и методик анализа обфусцированного кода. Адаптация злоумышленников к современным технологиям требует адекватного ответа со стороны защитников, включая усовершенствование автоматизированных систем и углубление collaboration между экспертами.
Полная реализация методики с использованием angr доступна в открытых источниках, что способствует дальнейшим исследованиям и разработкам в этой области.
Индикаторы компрометации
SHA256
- b6b239fe0974cf09fe8ee9bc5d0502174836a79c53adccdbb1adeb1f15c6845c