Новая угроза в .NET-бинарниках: стоит ли бояться R2R Stomping

Новая угроза в .NET-бинарниках: стоит ли бояться R2R Stomping

Тот случай, когда не стоит слепо доверять отладчику кода.

image

Исследователи из компании 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:

  1. замена оригинального IL-кода на поддельный, оставляя нативный предкомпилированный код без изменений;
  2. замена нативного предкомпилированного кода на вредоносный шелл-код, оставляя оригинальный IL-код.

Для анализа R2R бинарных файлов, подвергнутых таким изменениям, требуется использовать специализированные инструменты, позволяющие работать с нативным предкомпилированным кодом напрямую, такие как R2RDump и ILSpy. Они могут извлекать и отображать дизассемблированный нативный код скомпилированных методов.

На данный момент простого и надёжного способа автоматизированного обнаружения применения техники R2R Stomping не существует. Однако в случае внедрения вредоносного кода таким способом, детектирование на основе анализа поведения должно работать корректно.

Пока нет свидетельств использования R2R Stomping в реальных атаках, но нельзя исключать, что эта техника уже может применяться в изощренных арсеналах злоумышленников для внедрения скрытого вредоносного кода в безопасные, на первый взгляд, приложения.

Хотя на текущий момент это скорее проблема для реверс-инженеров, нежели реальный способ обхода систем безопасности, разработанные методы анализа так или иначе помогут специалистам по безопасности выявлять случаи применения R2R Stomping и реагировать на них соответствующим образом.

Где кванты и ИИ становятся искусством?

На перекрестке науки и фантазии — наш канал

Подписаться