Обратная совместимость — неизбежность, порожденная стремлением Microsoft сохранить поддержку многих унаследованных приложений в Windows. Иногда она может сослужить плохую службу, как недавно доказали исследователи, сумевшие использовать этот слой операционной системы для обхода наличных средств защиты от эксплойтов.

Умельцы из Duo Security разработали новый способ обхода EMET, бесплатного специализированного тулкита Microsoft, располагающего разнообразными методами предотвращения атак на оперативную память. В качестве слабого звена исследователи использовали WoW64 (Windows-on-Windows 64-bit) — подсистему ОС Windows, позволяющую запускать 32-битные приложения на всех 64-битных версиях Windows. Репрезентативная выборка по клиентской базе Duo показала значительное число уязвимых к этой атаке систем. Так, 80% браузеров в рамках выборки представляют собой 32-битные версии, работающие на 64-битной хост-системе с активной WoW64, то есть все они, по свидетельству Duo, входят в группу риска.

EMET был и остается эффективным средством защиты Windows, подчеркивают исследователи. Microsoft неоднократно рекомендовала EMET как временную меру против 0-day-эксплойта, на период до выхода патча. Однако в случае с WoW64 этот инструмент не помогает.

«Это классическая, периодически возникающая проблема, которую мы неоднократно наблюдали в Windows-системах с большим количеством унаследованных приложений, требующих поддержки, — комментирует безопасник из Duo Даррен Кемп (Darren Kemp). — Разработчику пришлось обеспечить функциональность, облегчающую перенос устаревшего софта на более новую платформу. Однако это дало побочный эффект: по мере совершенствования ОС арсенал защитных средств растет, но все они вынуждены учитывать специфику совместимости. Именно эта особенность и породила несколько интересных сценариев обхода мер защиты, таких как DEP и ASLR. Мы продемонстрировали такую возможность, но использовали совершенно иной механизм».

Duo предоставила Microsoft материалы исследования и эксплойт, который получил подтверждение. К сожалению, исправить ситуацию можно лишь путем значительных архитектурных изменений в той части Windows, которая отвечает за поддержку унаследованных программ; маловероятно, что разработчик отважится на это.

«Наличие такой подсистемы привносит некоторые ограничения на уровне разработки, — поясняет Кемп. — Эти ограничения имеют негативные последствия для защитного ПО. Притом это просто ограниченность Windows, а не свойственная ей уязвимость. Тем не менее она сводит к нулю эффективность средств защиты для всех 32-битных программ, работающих на 64-битных версиях Windows».

Чтобы осуществить обход EMET, Кемп и его коллега Михаил Давидов модифицировали известный эксплойт к пропатченной уязвимости use-after-free в Adobe Flash (CVE-2015-0311). В своей статье они отметили, что 32-битные приложения под WoW64 работают иначе, чем на 32-битных системах. Переключение процессора между разными режимами в ходе исполнения открывает ряд возможностей для эксплойта.

Разъяснение из аналитической статьи Duo:

«Одно из наиболее важных ограничений, налагаемых подсистемой WoW64, заключается в том, что она сильно затрудняет вызов низкоуровневых функций из пространства пользователя для защитного ПО. У Windows нет «официального» механизма для внедрения 64-битных модулей в 32-битные процессы. Значительная часть функциональности API, которую стремится контролировать защитная программа (к примеру, EMET), реализована в 64-битной копии ntdll.dll (создание процессов, загрузка модулей и т.д.)».

Со слов ИБ-исследователей, злоумышленнику понадобится перевести процессор в длительный режим, определить размещение 64-битных модулей и их функций, а также преодолеть ограничения наличных 64-битных API, чтобы миновать хуки, используемые защитным ПО. EMET привязывается к ntdll.dll, библиотеке, которая обеспечивает низкоуровневые функции, используемые приложениями. По обе стороны процесса существуют две копии этой библиотеки, 32-битная и 64-битная, однако, по свидетельству Duo, на стороне 64-битной копии хуков на нужных местах нет.

«Никакой защиты здесь нет, — констатирует Кемп. — Мы провоцируем переход, и, когда происходит исполнение, ни один из хуков не наблюдается».

Данная демонстрация обхода EMET — далеко не первая. За последние полтора года был разработан ряд эффективных эксплойтов — в основном для подтверждения концепции, — которые выявили некоторые упущения в этом полезном инструменте защиты Windows. Злоумышленники также проявляли интерес к EMET; так, в APT-кампании Operation Snowman использовался модуль, который проверял наличие этого тулкита на скомпрометированном узле и лишь после этого принимал решение, доводить атаку до конца или нет.

«Такие атаки стали возможными из-за стремления Microsoft сохранить унаследованные технологии, — заключает Давидов. — В корпоративном окружении такая забота — это благо. Хотя большинство современных пользователей перешли на 64-битные версии ОС, на машинах осталось огромное количество 32-битных приложений, а значит, без WoW64 не обойтись. К сожалению, наличие этой подсистемы также открывает возможность для обхода EMET».

Категории: Уязвимости