Тот случай, когда не стоит слепо доверять отладчику кода.
Исследователи из компании Check Point выявили новый метод скрытого внедрения кода в бинарные файлы .NET, скомпилированные принципом Ahead-Of-Time (AOT) в формате ReadyToRun (R2R). Новый метод внедрения получил название «R2R Stomping».
Формат компиляции R2R позволяет ускорить загрузку и снизить задержки при старте .NET приложений за счёт предварительной компиляции кода в нативный до ещё запуска приложения. Однако техника R2R Stomping использует особенности работы с R2R-бинарными файлами, чтобы внедрить вредоносный код, модифицировав исходный код сборки на промежуточном языке (Intermediate Language, IL-код) так, что он будет отличаться от предкомпилированного нативного кода внутри файла.
Из-за оптимизации .NET при выполнении приоритизируется именно предкомпилированный код, игнорируя изменения в IL-коде. Кроме того, в отладчиках типа dnSpy по умолчанию подавляется оптимизация JIT, что приводит к различиям в выполняемом коде в обычном режиме и при отладке.
Подобный принцип работы серьёзно усложняет анализ безопасности и реверс-инжиниринг таких R2R-бинарных файлов с использованием стандартных инструментов вроде dnSpy, которые работают только с IL-кодом.
Исследователи продемонстрировали два способа реализации R2R Stomping:
Для анализа R2R бинарных файлов, подвергнутых таким изменениям, требуется использовать специализированные инструменты, позволяющие работать с нативным предкомпилированным кодом напрямую, такие как R2RDump и ILSpy. Они могут извлекать и отображать дизассемблированный нативный код скомпилированных методов.
На данный момент простого и надёжного способа автоматизированного обнаружения применения техники R2R Stomping не существует. Однако в случае внедрения вредоносного кода таким способом, детектирование на основе анализа поведения должно работать корректно.
Пока нет свидетельств использования R2R Stomping в реальных атаках, но нельзя исключать, что эта техника уже может применяться в изощренных арсеналах злоумышленников для внедрения скрытого вредоносного кода в безопасные, на первый взгляд, приложения.
Хотя на текущий момент это скорее проблема для реверс-инженеров, нежели реальный способ обхода систем безопасности, разработанные методы анализа так или иначе помогут специалистам по безопасности выявлять случаи применения R2R Stomping и реагировать на них соответствующим образом.
Собираем и анализируем опыт профессионалов ИБ