Лаборатория Касперского патентует метод обнаружения присутствия руткитов

Лаборатория Касперского патентует метод обнаружения присутствия руткитов

Лаборатория Касперского запатентовала метод выявления вредоносных программ, которые скрываются с помощью руткитов, особых программ изменяющих работу системных функций. Патент №8677492, выданный Бюро по регистрации патентов и торговых марок США, описывает работу защитного решения со специальным модулем, дублирующим некоторые функции ядра операционной системы, что позволяет защитному решению получать достоверную информацию, даже если ОС заражена руткитом.

Злоумышленники используют руткиты, чтобы скрыть присутствие вредоносных программ от защитных решений. Для этого руткит под видом легитимного драйвера интегрируется с ядром ОС, перехватывает вызовы системных функций от приложений и модифицирует результаты их выполнения, удаляя упоминания файлов и процессов, связанных с троянцем. Это позволяет скрыть присутствие вредоносного кода – опасная программа становится «невидимой» для пользователя и других приложений.

Патент, полученный «Лабораторией Касперского», описывает вспомогательный модуль, дублирующий критически важные функции ядра системы: работу с файлами, контроль процессов, чтение записей системного реестра и т.д. Ключевая задача модуля – обнаружение объектов, замаскированных руткитом. Для этого защитное решение запрашивает список файлов или запущенных процессов через основное ядро и параллельно дублирует запрос через вспомогательный модуль. Сравнение полученных ответов позволяет выявить объекты, которые отсутствуют в списке от ядра ОС. Любое несовпадение является признаком наличия руткита, и защитное решение может предпринять действия, чтобы обезвредить скрываемые им объекты.

Вспомогательное ядро может быть использовано в разных режимах. На домашнем компьютере поводом для проверки может служить сигнал от других защитных подсистем о подозрительном поведении объекта, что позволит экономить ресурсы. Тогда как в корпоративном окружении, требующем более высокого уровня безопасности, контроль может быть постоянным.

«Маскировка с помощью руткитов – это один из хитрых трюков, которые злоумышленники используют для того, чтобы затруднить обнаружение вредоносного ПО. Мы, обладая богатой экспертизой в области IT-угроз, хорошо знаем эти приемы и внедряем в свои продукты противодействующие им механизмы. В этом заключается одно из наших преимуществ перед конкурентами, что в свою очередь подтверждается множеством независимых испытаний. И чтобы сохранить это преимущество, мы стремимся получать патенты на подобные технологии. Запатентованный механизм обеспечивает эффективное выявление объектов, скрытых в системе, позволяя справляться с самыми опасными атаками в случае как домашних пользователей, так и крупных компаний», – комментирует автор патента Вячеслав Русаков, антивирусный эксперт «Лаборатории Касперского».

Расширения 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