Опасности использования руткит-технологий в легальных продуктах

Опасности использования руткит-технологий в легальных продуктах

Не секрет, что в некоторых легальных продуктах используются руткит-технологии. Между тем, в случае неаккуратной реализации продукта, злоумышленники могут воспользоваться этими методами в своих целях — для сокрытия модификаций, произведенных в системе вредоносной программой. Антивирусный эксперт «Лаборатории Касперского» Вячеслав Русаков провел исследование рисков использования руткит-технологий в легальных продуктах. 



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

В качестве одного из известных примеров легальных продуктов, в которых использовались руткит-технологии, может служить система защиты от копирования аудио-CD компании Sony. В 2005 году разразился громкий скандал: выяснилось, что вредоносные программы могли использовать данную систему защиты для сокрытия собственных компонентов.

Автором исследования с помощью облачного сервиса Kaspersky Security Network было обнаружено несколько легальных программ, которые используют руткит-технологии. Cервис KSN позволяет собирать статистику о различных аномалиях на компьютерах пользователей — таких как скрытые объекты (секторы диска, файлы, ветки реестра и другие).

В ходе исследования были проанализированы четыре таких программы — COMODO Time Machine, Norton GoBack, RestoreIT и PC Back Pro/Rollback Rx. Все продукты являются утилитами послеаварийного восстановления системы, во всех реализована возможность запуска специальной консоли восстановления до загрузки операционной системы. Для реализации этой возможности во всех случаях использован механизм модификации MBR (master boot record).

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

Применяя данное ПО, пользователь может оказаться в ситуации, когда у него не будет возможности узнать о заражении MBR, и вредоносные программы на компьютере будут скрываться с помощью легальной утилиты. Также при возникновении серьезных проблем ПО для отката системы может не сработать, а использование инструментов редактирования разделов привести к потере работоспособности системы.

Несмотря на то, что механизм модификации MBR вполне легален, по мнению эксперта «Лаборатории Касперского», при его реализации в легальных продуктах лучше полностью отказаться от руткит-технологий и использовать другие алгоритмы.

«Наверняка существуют и другие аналогичные продукты, которые нам пока не известны, и они могут использовать такой же довольно сомнительный функционал, — считает Вячеслав Русаков. — Существует также теоретическая возможность использования вышеуказанных драйверов режима ядра в неправомерных целях, то есть для сокрытия факта заражения MBR, а наличие цифровой подписи в таком случае лишь усугубит дело. При должных знаниях и инструментах злоумышленникам не составит труда разобрать алгоритм работы драйверов».

Баги в ядре Linux скрываются в среднем 2 года, а иногда и 20 лет

История с первой CVE для Rust-кода в ядре Linux, которая недавно привела к падениям системы, выглядела почти как повод для оптимизма. В тот же день для кода на C зарегистрировали ещё 159 CVE — контраст показательный. Но новое исследование напоминает: проблема не только в языках программирования.

Гораздо тревожнее первой Linux-дыры в коде на Rust тот факт, что многие ошибки в ядре Linux могут годами, а иногда и десятилетиями оставаться незамеченными.

Исследовательница Дженни Гуанни Ку из компании Pebblebed проанализировала 125 183 бага за почти 20 лет развития ядра Linux — и результаты оказались, мягко говоря, неожиданными.

 

По данным исследования, средний баг в ядре Linux обнаруживают через 2,1 года после его появления. Но это ещё не предел. Самый «долгоиграющий» дефект — переполнение буфера в сетевом коде — прожил в ядре 20,7 года, прежде чем на него обратили внимание.

Важно уточнить: речь идёт о багах в целом, а не только об уязвимостях. Лишь 158 ошибок из всей выборки получили CVE, остальные могли приводить к сбоям, нестабильности или неопределённому поведению, но не обязательно к эксплуатации.

Исследование опирается на тег Fixes:, который используется в разработке ядра Linux. Когда разработчик исправляет ошибку, он указывает коммит, в котором баг был добавлен. Дженни написала инструмент, который прошёлся по git-истории ядра с 2005 года, сопоставил такие пары коммитов и вычислил, сколько времени баг оставался незамеченным.

В датасет вошли данные до версии Linux 6.19-rc3, охватывающие период с апреля 2005 по январь 2026 года. Всего — почти 120 тысяч уникальных исправлений от более чем 9 тысяч разработчиков.

Оказалось, что скорость обнаружения ошибок сильно зависит от подсистемы ядра:

  • CAN-драйверы — в среднем 4,2 года до обнаружения бага;
  • SCTP-стек — около 4 лет;
  • GPU-код — 1,4 года;
  • BPF — всего 1,1 года.

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

Отдельная проблема — неполные фиксы. Исследование показывает, что нередко разработчики закрывают проблему лишь частично. Например, в 2024 году был выпущен патч для проверки полей в netfilter, но уже через год исследователь нашёл способ его обойти.

Такие ситуации особенно опасны: создаётся ощущение, что проблема решена, хотя на самом деле она просто сменила форму.

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