Проверка системы на руткиты с помощью chkrootkit
Проверьте систему на наличие руткитов немедленно: скачайте исходники chkrootkit, проверьте контрольную сумму, скомпилируйте и запустите инструмент с носителя только для чтения. Этот материал объясняет, как работает chkrootkit, его ограничения, альтернативы и даёт пошаговый план для администраторов и реагирования на инциденты.
Что такое руткит?
Руткит — это набор программ и модулей, которые злоумышленник устанавливает после получения прав root. Они скрывают следы взлома (процессы, файлы, записи журналов) и обеспечивают постоянный доступ к системе. Часто руткиты изменяют системные бинарники или ядро (LKM — Loadable Kernel Module).
Важно: руткит может не показываться в обычных списках процессов и выводе утилит типа ps, а также удалять или подменять записи в логах.
Что такое chkrootkit
chkrootkit — это набор инструментов для локальной проверки системы на признаки руткитов. Основные компоненты:
- chkrootkit: оболочка (shell-скрипт), проверяющая системные бинарники на изменения.
- ifpromisc.c: проверяет, не находится ли сетевой интерфейс в promiscuous-режиме (сниффинг трафика).
- chklastlog.c: проверяет возможные удаления в lastlog.
- chkwtmp.c: проверяет возможные удаления в wtmp.
- check_wtmpx.c: проверяет wtmpx (только Solaris).
- chkproc.c: ищет признаки LKM-троянов и скрытых /proc записей.
- chkdirs.c: дополнительные проверки каталогов.
- strings.c: утилита для простого извлечения строк из файлов.
- chkutmp.c: проверяет utmp на удаления.
Некоторые подпрограммы лишь пытаются обнаружить удалённые записи в логах, но не гарантируют обнаружение всех модификаций. Модуль Aliens ищет типичные лог-файлы сниферов и конфигурации руткитов по стандартным путям — это тоже не универсальное средство.
Источник и авторы (включены в исходный текст): Nelson Murilo, Klaus Steding-Jessen. Официальный сайт: http://www.chkrootkit.org/
Важное предупреждение
Важно: не устанавливайте chkrootkit как постоянно запущенную программу на том же диске, который вы подозреваете в заражении. Злоумышленник может подменить установленную утилиту. Скомпилируйте chkrootkit и запускайте его с внешнего, только для чтения носителя или с отдельного незатронутого носителя.
Быстрая инструкция — установка и запуск
Шаги описаны для shell (команды приведены без изменений):
# wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gzПроверьте MD5-сумму архива:
# md5sum verify chkrootkit.tar.gzРаспакуйте:
# tar -xzf chkrootkit.tar.gzСкомпилируйте (перейдите в каталог, созданный распаковкой):
# make senseЗапустите из того каталога, где собрали:
# ./chkrootkitПример вывода (утвердительный и отрицательный результаты):
ROOTDIR is `/'
Checking `amd'... not found
Checking `basename'... not infected
Checking `biff'... not found
Checking `chfn'... not infected
Checking `chsh'... not infected
Checking `cron'... not infected
Checking `date'... not infected
Checking `du'... not infected
Checking `dirname'... not infected
Checking `echo'... not infected
Checking `egrep'... not infected
Checking `env'... not infected
Checking `find'... not infected
Checking `fingerd'... not found
Checking `gpm'... not infected
Checking `grep'... not infected
.
.
.
chkutmp: nothing deletedВы также можете запустить chkrootkit на образе диска или смонтированной файловой системе, указав точку монтирования с опцией -r:
# ./chkrootkit -r /mnt/hda2_imageОграничения и когда chkrootkit может не сработать
- Современные руткиты могут скрывать себя так, что простые сигнатуры не срабатывают.
- Если бинарник chkrootkit был подменён в системе, вывод будет недостоверен.
- Модули ядра (LKM) могут перехватывать системные вызовы и скрывать изменения от утилит.
- Если журналы уже перезаписаны или отредактированы нестандартным способом, попытки обнаружения по wtmp/lastlog могут не найти ничего.
Когда chkrootkit не подходит: при подозрении на целенаправленную компрометацию с долгосрочной укоренившейся угрозой — требуются более глубокие методы (полный форенсик, анализ дампов памяти, сравнение с эталонами).
Альтернативные и дополнительныe инструменты
- rkhunter — ещё один сканер руткитов со своими проверками и базами подписей.
- AIDE или Tripwire — целевые системы обнаружения изменений файлов (IDS для файловой системы).
- OSSEC/Wazuh — агенты для корреляции событий и обнаружения вторжений.
- Volatility / Rekall — анализ дампов памяти при подозрении на продвинутые вредоносные модули.
Выбор зависит от зрелости инфраструктуры и требований к постоянному мониторингу.
Мини-методология реагирования на подозрение на руткит
- Немедленно изолируйте подозреваемую систему от сети (если возможно, физически). Это предотвращает дальнейшую утечку и распространение.
- Подготовьте чистый носитель (CD/DVD, USB в режиме только для чтения или Live-образ) с инструментами (chkrootkit, rkhunter, AIDE) и используйте его для проверки.
- Снимите контрольные суммы (md5/sha256) важных разделов и файлов до любых изменений.
- Сделайте полный образ диска (dd) и зафиксируйте хэш образа для последующего анализа.
- Проанализируйте дамп памяти при подозрении на LKM/руткит в памяти.
- Восстановление: в большинстве случаев проще и безопаснее переустановить ОС из надёжного источника и восстановить данные из резервной копии, проверенной на чистоту.
Рольовые чек-листы
Администратор:
- Отключить систему от сети или ограничить доступ.
- Снять контрольные суммы разделов: md5sum /dev/sdX > /tmp/disk.md5
- Запустить chkrootkit с внешнего носителя.
- Проверить наличие необычных сервисов и процессов, просмотреть вывод netstat/ss.
- Сохранить все логи и результаты сканирования.
Инцидент-респондер:
- Создать иммутабельный образ диска командой dd и проверить контрольную сумму.
- Собрать дамп памяти для последующего анализа.
- Выполнить статический анализ подозрительных бинарников в изолированной среде.
- Провести восстановление системы из проверенной резервной копии или переустановку.
Плейбук реагирования (краткая инструкция)
- Изолировать узел.
- Собрать данные (логи, вывод chkrootkit, ps, netstat, списки открытых портов, контрольные суммы, образ диска).
- Проанализировать — локально или передать в команду форензики.
- Принять решение: очистка/восстановление/переустановка.
- Провести пост-инцидентный аудит и усиление защиты.
Пример создания образа и контрольной суммы (из исходного текста)
Для создания контрольной суммы раздела:
# md5sum /dev/hdc2 > /tmp/hdc2.md5Создание образа диска с помощью dd:
# dd if=/dev/hdc of=/tmp/hdc.imgВажно: /tmp должен иметь достаточно места и не находиться на том же диске, который вы копируете. По возможности записывайте образ на отдельный физический носитель.
Критерии приёмки
- Проверки chkrootkit запущены с внешнего носителя и не были модифицированы в подозреваемой системе.
- Образ диска сохранён и имеет контрольную сумму.
- При нулевых показателях подозрения — запись результатов и наблюдение в течение согласованного периода.
- При положительном обнаружении — восстановление из резервной копии и последующий аудит.
Когда требуется форенсика и переустановка
Если обнаружены следы скрытия процессов, подмены бинарников, LKM в ядре или доказательства эксфильтрации данных — предпочтительнее переустановить систему из доверенного образа и восстановить данные из проверенной резервной копии.
Краткий словарь
- Руткит: вредоносный набор инструментов для сокрытия доступа и действий злоумышленника.
- LKM: модуль ядра, загружаемый во время работы для расширения функциональности (часто используется злоумышленниками для скрытия).
- wtmp/utmp/lastlog: системные файлы учёта входов/сессий пользователей.
Заключение
chkrootkit — полезный первичный инструмент для локальной проверки на руткиты. Он прост в использовании, но имеет ограничения: не гарантирует обнаружение всех современных угроз. Используйте chkrootkit как часть более широкой стратегии безопасности: мониторинг целостности, резервное копирование, анализ памяти и готовый план реагирования на инциденты.
Важно: если система не заражена, создайте резервные копии и храните их отдельно. Контрольные суммы и образы дисков помогут в будущем при расследованиях.
Примечание: официальный сайт chkrootkit: http://www.chkrootkit.org/
Спасибо за внимание. Надеюсь, вашей системе нечего скрывать!
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента