Методы поиска kernel-mode руткитов
В данной версии реализованы следующие методы поиска kernel-mode руткитов:
  • поиск перехватов SYSENTER;
  • поиск перехватов методом замены адресов в таблице SSDT;
  • поиск перехватов методом замены адресов в таблице Shadow SSDT;
  • поиск перехватов путем замены адресов в таблице IDT;
  • поиск модификаций таблиц экспорта основных модулей ядра ядра (ndis.sys, hal.dll, ntoskrnl.exe);
  • поиск перехватов путем модификации машинного кода функций (сплайсинг);
  • поиск перехватов путем замены адресов функий-обработчиков IRP пакетов;
  • поиск перехватов путем замены адресов функций-обработчиков FastIO запросов;
  • поиск скрытых в памяти модулей ядра. Если объект обнаружен как скрытый, ему присваивается статус Hidden in memory;
  • поиск скрытых в памяти процессов. Если объект обнаружен как скрытый, ему присваивается статус Hidden in memory;
  • поиск модулей ядра, образ которых на диске не соответствует образу в памяти. Такому объекту присваивается статус Modified image;
  • Поиск установленных нотификаторов режима ядра.

В качестве вспомогательных методов реализованы:

  • проверка автозагрузки;
  • проверка драйверов и сервисов, прописанных в реестре;
  • проверка антивирусным ядром всех обнаруженных объектов (файлов процессов, элементов автозагрузки, загружаемых драйверов/сервисов и модулей ядра);
  • проверка электронно-цифровой подписи у всех обнаруженных объектов (файлов процессов, элементов автозагрузки, загружаемых драйверов/сервисов и модулей ядра);
  • вывод дополнительной информации из ресурсов файлов.

Для нейтрализации руткитов в системе разработаны следующие функции:

  • восстановление перехватов в таблице SSDT;
  • восстановление перехватов в таблице Shadow SSDT;
  • восстановление перехватов в таблице IDT;
  • восстановление перехватов в таблицах экспорта основных модулей ядра ядра (ndis.sys, hal.dll, ntoskrnl.exe);
  • восстановление перехватов путем модификации машинного кода функций;
  • восстановление перехватов SYSENTER;
  • исключение указанных объектов из списка автозагрузки;
  • активация/деактивация указанных драйверов/сервисов из реестра;
  • копирование указанных файлов в карантин на ранних этапах загрузки системы;
  • удаление указанных файлов на ранних этапах загрузки системы;
  • проверка и удаление файлов autorun.inf;
  • удаление установленных нотификаторов режима ядра.

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

Примечание: Поиск user-mode руткитов не осуществляется.

Методы поиска kernel-mode руткитов