Урок 6. Обнаружение вторжений на хосте: AIDE, auditd, сканеры руткитов и OpenSCAP

Рейтинг: 70.1% · 9 голосов
Специализация LPIC-3 303 (v3.0): криптография и PKI/X.509, шифрование ФС (LUKS/TPM2/Clevis), DNSSEC, hardening хоста, IDS, контроль доступа (SELinux/AppArmor), сетевая безопасность, nftables, VPN, пентест.
Ответить
Аватара пользователя
Sergey_Sysadmin
Сообщения: 134
Зарегистрирован: 11 май 2026, 05:31

Урок 6. Обнаружение вторжений на хосте: AIDE, auditd, сканеры руткитов и OpenSCAP

Сообщение Sergey_Sysadmin »

Оглавление курса (16)
  1. Введение в LPIC-3 303: безопасность Linux
  2. X.509 и инфраструктура открытых ключей [331.1]
  3. X.509 для шифрования, подписи и аутентификации [331.2]
  4. Шифрование файловых систем [331.3]
  5. DNS и криптография [331.4]
  6. Усиление защиты хоста [332.1]
  7. Урок 6. Обнаружение вторжений на хосте: AIDE, auditd, сканеры руткитов и OpenSCAP (вы здесь)
  8. Контроль ресурсов [332.3]
  9. Дискреционный контроль доступа: ACL и атрибуты [333.1]
  10. Мандатный контроль доступа: SELinux и AppArmor [333.2]
  11. Усиление сетевой защиты [334.1]
  12. Сетевое обнаружение вторжений
  13. Фильтрация пакетов [334.3]
  14. Виртуальные частные сети (VPN) [334.4]
  15. Уязвимости и угрозы [335.1]
  16. Основы тестирования на проникновение [335.2]
Урок 6. Обнаружение вторжений на хосте: AIDE, auditd, сканеры руткитов и OpenSCAP

Сетевой периметр пробивают, и рано или поздно злоумышленник оказывается на самом хосте. Задача этого урока - дать вам глаза и уши внутри системы, чтобы заметить чужое присутствие даже когда антивирус молчит. Мы разберём четыре дополняющих друг друга инструмента: AIDE следит за целостностью файлов, auditd пишет журнал системных вызовов уровня ядра, chkrootkit и rkhunter ищут известные руткиты, а OpenSCAP проверяет соответствие политикам. В конце поговорим о том, что делать, когда что-то из этого сработало.

Изображение

Как это работает

AIDE (Advanced Intrusion Detection Environment) - это host-based контроль целостности. Он один раз снимает эталонный слепок файловой системы: для каждого отслеживаемого файла считает размер, права, владельца, inode, время изменения и криптографические хеши (по умолчанию sha256/sha512). Этот слепок складывается в базу. Потом при каждой проверке AIDE заново считает атрибуты и сравнивает с базой. Если бинарник /usr/bin/ssh вдруг сменил хеш, а штатных обновлений не было - это сигнал. Ключевая идея: база должна храниться вне досягаемости атакующего, иначе он подменит и файл, и слепок.

auditd работает иначе и глубже. Это демон пространства пользователя, который принимает события от audit-подсистемы ядра. Вы описываете правила: следить за изменением конкретного файла, за вызовом execve, за модификацией прав. Ядро при каждом таком событии генерирует запись с тем, кто (uid/auid), что и когда сделал. auid (loginuid) особенно ценен: он привязывает действие к исходному вошедшему пользователю, даже если тот сделал su в root. Это ваш несгораемый журнал для расследований.

chkrootkit и rkhunter - сигнатурные сканеры. Они ищут известные руткиты по характерным файлам, строкам в бинарниках, скрытым процессам и портам, аномалиям вроде promiscuous-режима сетевой карты. Это не панацея: новый или таргетированный руткит они не увидят. Их сила - быстро отловить массовое известное вредоносное ПО.

OpenSCAP - это движок для оценки соответствия (compliance). Он берёт машиночитаемую политику в формате SCAP (профили CIS, STIG, PCI-DSS), прогоняет сотни проверок конфигурации и выдаёт отчёт: что соответствует требованиям безопасности, а что нет. Это не поиск вторжения, а проверка, что хост вообще правильно укреплён.

Команды и примеры

Установка. Debian 13 / Ubuntu 24.04:

Код: Выделить всё

apt install aide auditd rkhunter chkrootkit openscap-scanner ssg-debderived
RHEL 10 / Fedora 41+:

Код: Выделить всё

dnf install aide audit rkhunter openscap-scanner scap-security-guide
chkrootkit в репозиториях RHEL отсутствует, его ставят из исходников или EPEL. Пакет с SCAP-профилями называется scap-security-guide (RHEL) или ssg-* (Debian).

AIDE - инициализация и проверка:

Код: Выделить всё

# Создать эталонную базу (долго, читает все файлы)
aide --init
# Debian кладёт новую базу как aide.db.new, её надо ввести в строй:
mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
# В RHEL имена с .gz: aide.db.new.gz -> aide.db.gz

# Проверка против базы
aide --check
# Обновить базу после ЛЕГИТИМНЫХ изменений (например после apt upgrade)
aide --update
В выводе --check блок Summary показывает Added/Removed/Changed entries, ниже - детально, какие атрибуты разошлись (например f изменился content, M - mtime). Конфиг - /etc/aide/aide.conf (Debian) или /etc/aide.conf (RHEL); там правила вида /usr/bin NORMAL и макросы атрибутов.

auditd - правила и поиск. Правила кладут в /etc/audit/rules.d/*.rules, затем augenrules --load:

Код: Выделить всё

# Следить за изменением файла паролей, метка key=passwd
auditctl -w /etc/passwd -p wa -k passwd
# Следить за всеми execve от обычных пользователей (audit 64-bit)
auditctl -a always,exit -F arch=b64 -S execve -F auid>=1000 -F auid!=4294967295 -k userexec
Поиск по журналу - ausearch, сводки - aureport:

Код: Выделить всё

# Все события по нашей метке за сегодня
ausearch -k passwd -ts today -i
# Кто и какие команды выполнял
aureport -x --summary
# Сводка по неудачным аутентификациям
aureport -au --failed
Ключ -i у ausearch раскрывает числовые id в имена. Журнал лежит в /var/log/audit/audit.log.

Сканеры руткитов:

Код: Выделить всё

chkrootkit
rkhunter --update        # обновить базы сигнатур
rkhunter --propupd       # зафиксировать эталон свойств файлов (после установки/апдейта)
rkhunter --check --sk     # проверка без пауз между секциями
OpenSCAP - оценка соответствия. Профили лежат в /usr/share/xml/scap/ssg/content/:

Код: Выделить всё

# Список профилей в дистрибутиве
oscap info /usr/share/xml/scap/ssg/content/ssg-rhel10-ds.xml
# Прогон профиля CIS с HTML-отчётом
oscap xccdf eval --profile xccdf_org.ssgproject.content_profile_cis \
  --results-arf arf.xml --report report.html \
  /usr/share/xml/scap/ssg/content/ssg-rhel10-ds.xml
В Debian файл называется ssg-debian13-ds.xml. На RHEL также есть удобная обёртка oscap-ssg и интеграция в Anaconda при установке.

Частые грабли
  • База AIDE на той же машине - бесполезна при компрометации. Выносите aide.db на read-only носитель или отдельный хост, проверку запускайте из доверенного окружения.
  • Постоянный шум AIDE: /var, /proc, /sys, логи и кеши меняются всегда. Без аккуратных исключений и регулярного --update отчёт превращается в стену текста, которую перестают читать.
  • auditd-правила в rules.d не применяются автоматически без augenrules --load или перезапуска; auditctl-правила живут только до перезагрузки.
  • auditctl -e 2 делает конфигурацию неизменяемой до ребута. Удобно для защиты от сокрытия следов, но вы сами не сможете править правила на лету.
  • rkhunter без свежего --propupd после каждого легитимного обновления засыпает вас ложными Warning про изменённые бинарники.
  • OpenSCAP проверяет конфиг, а не наличие злоумышленника. Зелёный отчёт о соответствии не означает отсутствие вторжения.
  • Запуск сканера руткитов уже на скомпрометированной системе ненадёжен: руткит может подменить ps, ls и сам сканер. По возможности проверяйте с загрузочного носителя.
Мини-лаба
  • Установите aide и auditd на тестовый стенд (apt или dnf по вашему дистрибутиву).
  • Выполните aide --init, введите базу в строй (mv new-базы) и сделайте контрольный aide --check - убедитесь, что изменений нет.
  • Создайте файл /usr/local/bin/test.sh, добавьте строку в /etc/hosts, снова запустите aide --check и найдите оба изменения в отчёте.
  • Добавьте правило auditctl -w /etc/hosts -p wa -k hostsmod, повторно отредактируйте /etc/hosts.
  • Через ausearch -k hostsmod -i найдите запись и определите auid того, кто менял файл.
  • Запустите rkhunter --check --sk и просмотрите итоговый блок Warnings.
  • Прогоните oscap xccdf eval с профилем CIS, откройте report.html и выберите одну failed-проверку для устранения.
Контрольные вопросы
  • Чем принципиально отличается контроль целостности через AIDE от аудита через auditd и почему их применяют вместе?
  • Что такое auid (loginuid) в записи audit и почему он важнее обычного uid при расследовании?
  • Какие шаги нужны, чтобы правило из /etc/audit/rules.d/ начало действовать, и чем оно отличается от правила, заданного auditctl?
  • Почему базу AIDE и эталонные данные rkhunter нельзя считать доверенными после возможной компрометации хоста?
  • В чём разница между задачей OpenSCAP и задачей сканеров руткитов, и почему успешный compliance-отчёт не гарантирует отсутствие вторжения?
  • Как корректно обновить эталоны AIDE и rkhunter после планового обновления пакетов, чтобы избежать ложных срабатываний?
👍3 ❤️2 🔥1 😄 🤔1
Аватара пользователя
alany
Сообщения: 1
Зарегистрирован: 17 май 2026, 21:41

Re: Урок 6. Обнаружение вторжений на хосте: AIDE, auditd, сканеры руткитов и OpenSCAP

Сообщение alany »

А правило auditctl -w /etc/passwd -p wa -k passwd переживает ребут или его обязательно дублировать в rules.d? У меня после перезагрузки метка пропала.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
piperti11
Сообщения: 1
Зарегистрирован: 14 май 2026, 16:46

Re: Урок 6. Обнаружение вторжений на хосте: AIDE, auditd, сканеры руткитов и OpenSCAP

Сообщение piperti11 »

Запустил aide --check после обычного apt upgrade и получил простыню Changed на пол-системы. Понял, что без aide --update это просто белый шум.
👍2 ❤️ 🔥 😄 🤔1
Ответить
← Предыдущая глава
Усиление защиты хоста [332.1]
Следующая глава →
Контроль ресурсов [332.3]

Все главы курса «LPIC-3 303: безопасность Linux»

Поделиться темой: ✈ Telegram VK
  • Похожие темы

Вернуться в «LPIC-3 303: безопасность Linux»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость