Кибербезопасность стоит на пороге новой эры атак — теперь, чтобы заразить процесс, хакеру не нужно ничего записывать в его память. Новое исследование специалистов в области защиты Windows показало, что один указатель и тонкое управление потоками достаточно, чтобы обойти EDR-системы и внедрить код незаметно.
Классическая защита опирается на выявление трех действий: выделение памяти, её изменение и выполнение кода. Однако теперь можно полностью исключить два из трёх шагов. Например, вызвать LoadLibraryA, передав указатель на строку, уже находящуюся в памяти — как «0», присутствующую в ntdll.dll. Если заранее подготовить поддельную 0.dll, система сама её подгрузит, не заподозрив подвох.
Другие методы ещё изощреннее: через SetThreadContext и NtCreateThread создаются потоки, которым сразу подменяется контекст выполнения. Это позволяет вызвать нужные функции внутри чужого процесса, не касаясь памяти напрямую. А в некоторых случаях используется цепочка ROP-гаджетов, чтобы «внутренними» средствами вызвать VirtualAlloc, залить shellcode, и тут же его исполнить — без участия извне.
Такой подход разрушает привычную логику обнаружения атак. Ни один байт не записан вручную, ни один API-вызов не сработал напрямую, а процесс уже скомпрометирован. Исследователи считают: современные средства защиты не готовы к эпохе исполнения без следов и нуждаются в переосмыслении фундаментальных принципов мониторинга поведения.
Пока что такие атаки требуют высокой квалификации, но с распространением инструментов и примеров кода в открытом доступе риски быстро возрастут. И если защитные решения не адаптируются — невидимая угроза может стать массовой.