Tyton — модуль ядра (4.4.0-31+), позволяющий обнаружить руткиты в системе.
Будучи загруженным, выполняет периодические проверки и уведомляет администратора о подозрительной активности. Тестировать tyton будем в Fedora 28, на ядре 4.19.4-200, для CentOS 8 установка должа быть аналогичной.
Установка и работа.
1. Для начала, ставим всё необходимое для сборки модуля:
# dnf install git kernel-devel gcc make libnotify libnotify-devel systemd-devel gtk3-devel gtk3
2. Забираем исходники для сборки и собираем:
# cd /usr/local/src/ # git clone https://github.com/nbulischeck/tyton.git # cd tyton # make
3. В случае успешной сборки, мы получим файл модуля tyton.ko. Запускаем его в работу, передав при этом параметр timeout=1 — параметр, который задаёт периодичность проверки в минутах.
# insmod /usr/local/src/tyton/tyton.ko timeout=1
При этом, в логе у нас появляются записи вида:
[ 76.782706] tyton: INFO: Inserting Module [ 76.800993] tyton: INFO: Analyzing Module List [ 76.814005] tyton: INFO: Analyzing Syscall Hooks [ 77.096357] tyton: INFO: Analyzing Netfilter Hooks [ 77.097650] tyton: INFO: Analyzing /proc File Operations [ 77.110116] tyton: INFO: Analyzing /proc Inodes [ 77.112172] tyton: INFO: Analyzing Interrupt Hooks
Проверка работы tyton.
Для проверки детекта руткита, я взял самый простой — reptile. Собрал его, вставил модуль, убедился что он работает, а затем заглянул в логи:
Dec 01 11:29:12 rtkt kernel: tyton: INFO: Analyzing Module List Dec 01 11:29:12 rtkt kernel: tyton: ALERT: Module [reptile] hidden. Dec 01 11:29:12 rtkt kernel: tyton: INFO: Analyzing Syscall Hooks Dec 01 11:29:12 rtkt kernel: tyton: INFO: Analyzing Netfilter Hooks Dec 01 11:29:12 rtkt kernel: tyton: INFO: Analyzing /proc File Operations Dec 01 11:29:12 rtkt kernel: tyton: INFO: Analyzing /proc Inodes Dec 01 11:29:12 rtkt kernel: tyton: INFO: Analyzing Interrupt Hooks
Проблемный модуль был определён:
Dec 01 11:29:12 rtkt kernel: tyton: ALERT: Module [reptile] hidden.
Помимо записи в логах, tyton умеет посылать и графические уведомления (там где это возможно).
Подробнее о проекте можно узнать на соответствующей Github странице и сайте. Проект из разряда «нужно последить за развитием», так что загляните, возможно вам покажется интересным.
А ещё, возможно, вам будет интересен проект LKRG.