Принцип работы и обнаружение руткитов

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

Руткиты  не являются вредоносными программами, они являются инструментом с помощью, которого можно нанести вред компьютеру.

Работу руткита можно увидеть при использовании удаленного доступа к компьютеру.

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

Как уже упоминалось выше, руткиты не являются вредоносными программами – это набор утилит, которые могут использоваться совместно с эксплоитами. Руткит не клонирует себя и не обладает интеллектом, поэтому мнение, что руткит – это вирус, можно считать ошибочным.

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

Технологии борьбы с руткитами

HIPS(Host-based Intusion-Detection System) – локальные системы предотвращения вторжения. Данная система обладает способностью обнаружения руткита во время его установки а так же выявить его взаимодействие с сетью. HISP отслеживает работу операционной системы в целом.

NIDS (Network-based Intusion-Detection System) – сетевые системы предотвращения вторжения. Профессионально-спроектированный руткит обходит данную технологию. Выявить взаимодействие руткита с сетью достаточно сложно. NIDSтрудно заподозрить подозрительный пакет данных, который посылает руткит в сеть.

Программы NIDS представляют угрозу для руткита, в случает взаимодействия с эксплоитом.

Исследование памяти

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

Существует несколько способов поиска руткитов.

Каждая программа в компьютере использует память, в том числе и руткит. Одним из способов обнаружения руткита является исследование памяти.

Исследование памяти необходимо проводить во время загрузки руткита.

Поиск руткитов

Данный подход заключается в исследовании следов захвата операционной системы и процессов.

Одними из потенциальных объектов захвата руткитов является

  • Таблица импорта;
  • таблица диспетчеризации системных служб;
  • таблица дескрипторов прерываний;
  • обработчик пакетов запросов ввода-вывода драйвера.

Функции, захватываемых путем непосредственной модификации их кода.

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

Обнаружение факта деятельности руткита

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

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

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

bb897445.RootkitRevealerru-ru

Идея данной программы заключена на сравнении возвращаемых результатов API функций операционной системы и программы. Программа «RootKitRevealer», реализована без использования API функций операционной системы. Работу с реестром производят функции программы, которые были реализованы разработчиками на низком уровне.

Программы для обнаружению руткитов

Для обнаружения и удаления руткитов существует ряд программ как для Windows так и UNIX систем. Одни из них продемонстрированы ниже.

Windows Defender (Microsoft AntiSpyware) – программный продукт фирмы Microsoft служащий для обнаружения и удаления программ spyware.

RootKit Hook Analyzer – Программа, проверяющая целостность ядра операционной системы.

Zeppoo – Осуществляет поиск руткитов на ОС Linux. Производит обнаружение скрытых процессов и сетевых соединений.

rkhunter — скрипт, предназначенный для командной оболочки (как bash и др.), который выполняет различные проверки на локальной системе для обнаружения известных ему rootkits и malware.