Новая техника позволяет обойти все защитные меры уровня ядра в Windows

Новая техника позволяет обойти все защитные меры уровня ядра в Windows

Новая техника позволяет обойти все защитные меры уровня ядра в Windows

Исследователи компании enSilo обнаружили новую технику обхода защитных мер уровня ядра в операционных системах Windows. Омри Мисгав и Уди Яво назвали новый способ Turning Tables, он использует таблицы страниц (page tables) Windows.

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

Виртуальные адреса используются программой, выполняемой процессом ОС, а физические адреса используются аппаратными компонентами (ОЗУ-подсистемой).

Поскольку физическая память (ОЗУ) ограничена, операционные системы создают так называемые «общие страницы кода» («shared code pages»), где несколько процессов могут хранить один и тот же код и при необходимости обращаться к нему.

Мисгав и Яво утверждают, что их метод Turning Tables основан на разработке вредоносного кода, который негативно влияет на эти страницы. Это позволит также повлиять и на выполнение других процессов, часть из которых имеют повышенные привилегии.

Таким образом, Turning Tables может помочь злоумышленнику повысить свои права в системе до уровня SYSTEM.

Специалисты enSilo также подчеркивают, что эта техника может использоваться для изменения приложений, запущенных в песочнице. Например, с помощью атаки Turning Tables можно заразить браузер Chrome, который как раз выполняется в защищенной изолированной среде.

Более того, теоретически эту атаку можно успешно осуществить и на системах Linux и macOS, так как та же концепция таблиц страниц используется и там. Однако исследователи признались, что не проверяли Turning Tables в случае с этими двумя системами.

«Причина универсальности Turning Tables заключается в том, что этот метод основан на оптимизации, используемой практически всеми современными операционными системами», — отметила команда enSilo.

Главная отличительная особенность этого метода — он позволяет обойти все меры безопасности уровня ядра, которые Microsoft реализовала в своей ОС.

С документом исследователей можно ознакомиться по этой ссылке. Также было опубликовано видео, где Мисгав и Яво рассказывают о своем методе:

Расширения Chrome могут слить секреты URL через атаку по стороннему каналу

Как оказалось, расширения Chrome можно использовать для слива кодов авторизации, сеансовых ID и других секретов из URL любой открытой вкладки. Никаких специальных разрешений для этого не понадобится, только доступ к declarativeNetRequest API.

Этот механизм, пришедший на смену webRequest API, позволяет расширениям сообщать браузеру, что следует изменить или заблокировать на загружаемой странице (заголовки, реклама, трекеры).

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

Исследователь Луан Эррера (Luan Herrera) обнаружил, что блокировку, диктуемую правилами, Chrome производит почти мгновенно, за 10-30 мс, а остальные запросы выполняются дольше (~50-100ms) — из-за сетевых подключений. Эту разницу во времени расширение может использовать для бинарного поиска с целью посимвольного слива URL.

// extensions/browser/api/web_request/extension_web_request_event_router.cc:1117-1127
case DNRRequestAction::Type::BLOCK:
  ClearPendingCallbacks(browser_context, *request);
  DCHECK_EQ(1u, actions.size());
  OnDNRActionMatched(browser_context, *request, action);
  return net::ERR_BLOCKED_BY_CLIENT;

Оракул для подобной тайминг-атаки строится с использованием chrome.tabs.reload для перезагрузки страницы и перехватчика chrome.tabs.onUpdated, помогающего отследить событие status === "complete". Замер времени между reload и завершением загрузки покажет, заблокирован запрос или успешно обработан.

Повторение проверок и бинарного поиска позволяет получить полный URL (с довеском после «?»), затратив на каждый знак строки несколько прогонов. Таким образом, можно незаметно для пользователя украсть включенные приложением в адрес секреты — токены OAuth и сброса пароля, API-ключи, ссылки на контент, закрытый для поисковых систем.

Проверка PoC проводилась на Windows 11 24H2 с использованием Chrome разных версий:

  • 144.0.7559.97 (Stable)
  • 145.0.7632.18 (Beta)
  • 146.0.7647.4 (Dev)
  • 146.0.7653.0 (Canary)

В Google подтвердили возможность подобной атаки по стороннему каналу, но заявили, что решить проблему нереально.

RSS: Новости на портале Anti-Malware.ru