Несмотря на то что на рынке появляются все новые и новые продукты, которые делают более простым для специалистов по сетевой безопасности обнаружение rootkit-утилит на скомпрометированных машинах, выявление самих таких машин и удаление названных вредоносных программ остается исключительно сложным делом. На таких машинах злоумышленники по-прежнему имеют явное превосходство. Чтобы замаскироваться на скомпрометированной машине и ускользнуть от обнаружения, вредоносная программа включает в себя полнофункциональную rootkit-утилиту или rootkit-подобные возможности. Согласно результатам исследований компании McAfee, частота применения взломщиками технологий сокрытия вредоносного ПО с 2004 г. увеличилась аж на 600%; растет и число используемых специализированных rootkit-утилит, с трудом обнаруживаемых (а то и вовсе не обнаруживаемых) с помощью сигнатур.
Сообщество менеджеров сетевой безопасности откликнулось на вышеперечисленные разработки созданием автономных инструментальных средств поиска root-kit-утилит, с помощью которых их можно найти, анализируя данные низкого уровня, такие, как исходная информация файловой системы. Кроме того, некоторые производители добавляют улучшенные возможности обнаружения root-kit-утилит в свое ПО безопасности. Инструментальные средства anti-rootkit обычно выполняют одну из двух нижепоименованных задач: обнаруживают и блокируют root-kit-утилиты до того, как они скомпрометируют ПК, или пытаются найти и удалить их уже после проникновения в ОС.
Что касается предупреждения инфицирования систем rootkit-утилитами, то производители продуктов безопасности рекомендуют использовать комплекс методов, включающий сигнатуры, эвристики, анализ поведения и обычное блокирование программных компонентов взлома. Если же машина все-таки скомпрометирована, то лучше всего задействовать автономный детектор rootkit-утилит для зондирования инфицированного хоста.
В то же время и сами rootkit-утилиты продолжают совершенствоваться. Например, авторы их программируют так, чтобы они не изменяли системную информацию, препятствуя, таким образом, работе средств обнаружения. Кроме того, авторы rootkit-утилит применяют и новые методы, такие, как сокрытие файлов с помощью альтернативных потоков данных (Alternate Data Streams — ADS), которые являются особенностью файловой системы NTFS, облегчающей ее совместимость с другими файловыми системами.
Отыскиваем “корень зла”
Программы типа rootkit берут свое начало в ОС Unix, в которой учетная запись root предоставляет административный доступ ко всем функциям и возможностям системы. Основное назначение rootkit-программ — замаскировать присутствие злоумышленника и его вредоносных инструментальных средств на машине. Хотя существуют rootkit-утилиты для ОС Unix и всех ее разновидностей, большинство программ типа rootkit (и anti-rootkit) предназначены для Windows — в силу ее повсеместного распространения.
Rootkit-утилиты для Windows можно разделить на две группы: работающие в режиме пользователя (user-mode rootkit), или пользовательские, и в режиме ядра (kernel-mode rootkit). Пользовательские rootkit-утилиты функционируют как индивидуальные приложения либо модифицируют существующие программы. Работающие же на уровне ядра ОС rootkit-утилиты часто загружаются как драйверы устройств. Оба типа rootkit-утилит маскируются, перехватывая и изменяя системную статусную информацию, запрашиваемую приложениями.
Первая программа rootkit для Windows — NTRootkit появилась в 2001 г. и была разработана исследователем в области сетевой безопасности Грегом Хогландом с целью проверки одной из выдвинутых им концепций. С тех пор появились и другие, более эффективные версии rootkit-утилит для Windows, включая такие общедоступные, как FU и HackerDefender. Все больше злоумышленников покупают сегодня заранее укомплектованные инструментальные средства взлома операционных систем.
Исследователи из Мичиганского университета и компании Microsoft недавно рассказали о создании принципиально нового ПО rootkit, в основе которого лежит концепция виртуальной машины; оно получило название SubVirt. Утилита SubVirt инсталлирует на скомпрометированную систему Windows монитор виртуальной машины, загружает Windows в виртуальную среду и работает; исполняемое в виртуальной среде штатное ПО безопасности ее не выявляет.
Средства обнаружения rootkit-утилит
Предотвратить проникновение rootkit-программы в компьютер позволяют разнообразные продукты безопасности, включая антивирусы, противошпионское ПО и системы предотвращения вторжений уровня хоста (Host Intrusion Prevention System — HIPS). Главную роль в предотвращении атак rootkit-программ все же играет стандартный сигнатурный метод, реализуемый антивирусными и противошпионскими программами. Подавляющее большинство вредоносных программ используют исполняемые файлы или фрагменты кодов известных rootkit-утилит, а значит, сигнатуры и эвристические методы позволяют находить разновидности известных rootkit-утилит до того, как они заразят жесткий диск.
ПО HIPS тоже может обнаруживать rootkit-утилиты. Последние часто включаются в состав полезной нагрузки программных компонентов взлома, и если HIPS остановит загрузку трафика, то rootkit-утилита инсталлирована не будет. Дополнительную информацию по средствам HIPS можно найти в статье Дона Маквитти “Проблемы предотвращения вторжений на хосты” (см.: Сети и системы связи. 2007. № 3. С. 102).
Недавно выпущенная версия ПО McAfee VirusScan 8.5 включает в себя антивирусный сканер уровня ядра, позволяющий сканировать пользовательскую память и память, выделенную под исполнение ядра, на предмет выявления известных rootkit-утилит.
Компания Microsoft также включила в 64-разрядную версию своей ОС Windows функцию безопасности Kernel Patch Protection, или Patch Guard. Она осуществляет мониторинг ядра и обнаруживает попытки перехвата и изменения кода ядра другим кодом. Специалисты Microsoft утверждают, что эта функция поможет защищать ОС как от вредоносного, так и от легитимного, но способного дестабилизировать работу ОС программного обеспечения. Когда настоящая статья сдавалась в печать, инженеры Microsoft проводили встречи со сторонними производителями ПО безопасности, на которых рассматривался вопрос о создании интерфейсов API для взаимодействия их продуктов с Patch Guard.
Искоренить проблему!
Производители средств безопасности создают все новые и новые способы обнаружения rootkit-утилит на скомпрометированных машинах. Многие автономные инструментальные средства имеют в своей основе метод дифференциального обнаружения путем перекрестного сравнения двух образов системы (cross-view differential detection). Он основан на том факте, что rootkit-утилита так или иначе манипулирует системными реестрами, вызовами и интерфейсами API.
Используя интерфейсы API, эти механизмы сканируют подозреваемые в инфицировании rootkit-утилитами системные компоненты, включая файлы, ключи реестра и процессы. В результате мы получаем “образ зараженной системы” (tainted view). Затем выполняется второе сканирование (генерирующее доверенный образ системы — trusted view) без запуска интерфейсов API путем анализа структур данных низкого уровня, таких, как исходный контент файловой системы или улей реестра, которыми rootkit-утилита не манипулирует. После этого сравниваются оба результата сканирования, на основании чего выявляются места, в которых системная информация, возможно, была изменена.
К автономным инструментальным средствам обнаружения путем перекрестного сравнения относятся Blacklight компании F-Secure и Rootkit Revealer компании SysInternals. Компания F-Secure включает Blacklight в свой пакет безопасности для частных пользователей и планирует включить его в следующую версию корпоративного пакета безопасности F-Secure Anti-Virus Client Security. Компания Symantec тоже разработала новое инструментальное средство — VxMS, в котором используется метод, подобный методу дифференциального обнаружения. Она собирается включить технологию VxMS в следующие корпоративные версии своих продуктов Symantec Client Security и Symantec AntiVirus.
Заметьте, что эти инструментальные средства не занимаются поиском сигнатур rootkit-утилит, а выявляют характерную для них активность. Это означает, что результаты указанной процедуры должны анализировать опытные ИТ-администраторы, способные определить, представляют ли собой угрозу те или иные файлы.
Предупреждающие знаки
Кроме всего прочего, обнаружение rootkit-утилит затрудняется подчас наличием большого числа администрируемых отделом ИТ настольных систем. Просто немыслимо запускать автономное инструментальное средство на каждом ПК — при этом вам придется иметь дело с каждым пользователем индивидуально. Когда производители продуктов безопасности наконец интегрируют инструментальные средства дифференциального обнаружения в пакеты безопасности с центральной консолью управления, эта проблема станет не столь критичной.
Пока же известен ряд признаков того, что система оказалась скомпрометированной, и если таковые наблюдаются, то применение автономных инструментальных средств вполне оправданно. Во-первых, при обнаружении машины, которая была инфицирована шпионской (spyware) или рекламной (adware) программой, вам следует запустить сканер rootkit-утилит. Во-вторых, некоторые rootkit-утилиты могут вызвать “замораживание” компьютеров. Если ваши машины “падают” без всякой видимой причины, то в ваш диагностический анализ необходимо включить сканирование на rootkit-программы. Другим признаком компрометации системы является типичное для инфицированной вредоносным ПО машины поведение — в частности, появление у нее больших объемов электронной почты или Web-трафика и связи по обходным каналам, использующим необычные порты или протоколы..
Автор Эндрю Конри-Мюррей
Взято с Сети и системы связи