Автоматизация проверки целостности файлов с помощью AIDE в Linux
Автоматизация проверки целостности файлов с помощью AIDE в Linux
Введение
В современных enterprise-средах обеспечение целостности критически важных файлов является фундаментальной задачей безопасности. AIDE (Advanced Intrusion Detection Environment) — это мощный инструмент с открытым исходным кодом, который реализует подход Host-based Intrusion Detection System (HIDS). В отличие от антивирусов, AIDE не ищет вредоносный код, а отслеживает изменения в атрибутах файлов: контрольных суммах, правах доступа, владельце, времени модификации.
Архитектура и принцип работы
AIDE работает по принципу сравнения текущего состояния файловой системы с эталонным. Процесс состоит из двух фаз:
- Инициализация (базлайн): администратор запускает
aide --init, сканируя файловые системы и создавая криптографические хэши (по умолчанию используется SHA-256, но поддерживаются и другие алгоритмы) для каждого контролируемого файла. Эта база данных подписывается и хранится в защищённом месте. - Проверка: регулярный запуск
aide --checkсравнивает текущее состояние с эталонной базой. Любое расхождение фиксируется в отчёте.
Практическая реализация и автоматизация
Рассмотрим настройку AIDE на дистрибутивах семейства RHEL/CentOS и автоматизацию через systemd.
1. Установка и первичная настройка
# Установка пакета
sudo dnf install aide -y
# Генерация начальной базы данных
sudo aide --init
# Перемещение базы в рабочую директорию
sudo mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
2. Настройка конфигурационного файла
Основной файл конфигурации — /etc/aide.conf. Важно правильно определить правила (rulesets) для разных типов файлов. Пример оптимальной конфигурации для сервера:
# Правила проверки
NORMAL = R+b+sha256
DATA = p+i+n+u+g+s+S+sha512
LOG = p+i+n+u+g+S
# Пути
/var/log NORMAL
/etc NORMAL
/bin$ NORMAL
/sbin$ NORMAL
/usr/bin$ NORMAL
/usr/sbin$ NORMAL
!/var/log/aide.log
3. Автоматизация через systemd timer
Создадим таймер для ежедневной проверки в 03:00.
Файл /etc/systemd/system/aide-check.service:
[Unit]
Description=AIDE Check
Wants=network-online.target
After=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/sbin/aide --check
ExecStartPost=/usr/bin/systemctl reload-or-try-restart auditd.service
Файл /etc/systemd/system/aide-check.timer:
[Unit]
Description=Run AIDE check daily
[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true
[Install]
WantedBy=timers.target
Активация:
sudo systemctl daemon-reload
sudo systemctl enable --now aide-check.timer
Интеграция с централизованным логированием
Для enterprise-мониторинга результаты проверок должны попадать в SIEM. AIDE поддерживает вывод в формате JSON или отправку через syslog. Настройка syslog в /etc/aide.conf:
report_url=syslog:LOG_LOCAL0
Это позволит собирать алерты об изменении критических бинарных файлов или конфигураций в едином центре управления.
Заключение
Внедрение AIDE — это не разовая настройка, а процесс. Регулярный анализ отчётов и обновление базы данных после санкционированных изменений (например, патчинга) превращает AIDE из простого сканера в элемент проактивной защиты инфраструктуры. Автоматизация через systemd timers обеспечивает непрерывность контроля без участия человека, что соответствует современным практикам DevSecOps.