AIDE — классический инструмент контроля целостности файлов на Linux. Он снимает снимок выбранных каталогов, запоминает права, владельца, размер, время изменения и криптографические хеши, а затем сравнивает текущее состояние с эталоном. AIDE не предотвращает атаку, но помогает заметить подмену конфигурации, появление лишних файлов и изменения в веб-корне. Ниже — настройка на сервере Debian или Ubuntu, чтение отчёта и обслуживание базы.

Что делает AIDE и чего не делает

AIDE работает по расписанию и отвечает на вопрос «что изменилось с момента эталона». Это дополнение к файрволу, обновлениям и аудиту, а не замена им. Если злоумышленник получил root и пересобрал базу, проверка ничего не покажет, поэтому эталон нужно хранить отдельно и защищать.

Инструмент не следит за процессами и не проверяет память ядра. Его сильная сторона — файлы, которые должны быть неизменны: конфиги, системные утилиты, скрипты, статические страницы сайта. Для борьбы с руткитами в ядре нужны другие средства, а AIDE дополняет их.

Установка и базовая конфигурация

sudo apt update
sudo apt install aide aide-common
aide --version
ls -l /etc/aide/aide.conf /etc/aide/aide.conf.d

В Debian и Ubuntu основной файл подключает дополнительные фрагменты из aide.conf.d. Свои правила удобно положить отдельным файлом, чтобы обновление пакета не затерло настройки. Сначала проверьте, какие каталоги уже описаны в штатной конфигурации, и не дублируйте их без необходимости.

database_in=file:/var/lib/aide/aide.db
database_out=file:/var/lib/aide/aide.db.new
report_url=file:/var/log/aide/aide.log
gzip_dbout=no

/etc/ssh/sshd_config R+sha512
/etc/passwd R+sha512
/etc/sudoers R+sha512
/var/www R+sha512
!/var/www/cache
!/var/log
!/var/cache
!/proc
!/sys
!/run
!/tmp

Строка с атрибутами означает: проверять права, inode, число ссылок, пользователя, группу, размер, mtime, ctime и хеш SHA-512. Группа R задаёт базовый набор атрибутов, а sha512 добавляет криптографическую проверку содержимого. Восклицательный знак исключает путь: без этого AIDE будет постоянно ругаться на логи, кеши и временные файлы.

Не включайте в эталон саму базу и каталог с отчётами: каждый запуск будет менять картину. Для больших разделов начните с /etc и каталога приложения: проверка станет быстрее и понятнее.

Первый снимок

Первый запуск создаёт базу. На Debian для этого есть обёртка aideinit: она проверяет конфигурацию и строит эталон. Операция занимает несколько минут.

sudo aideinit
sudo ls -lh /var/lib/aide/
sudo cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db
sudo chmod 600 /var/lib/aide/aide.db
sudo chown root:root /var/lib/aide/aide.db

Если в конфигурации включён gzip_dbout, рядом появится файл с расширением .gz. Ориентируйтесь на значения database_in и database_out: имя базы для проверки должно совпадать с тем, что создала инициализация. Перед копированием убедитесь, что эталон построен без ошибок доступа.

Проверка и чтение отчёта

sudo aide --config /etc/aide/aide.conf --check
echo "exit code: $?"
sudo tail -50 /var/log/aide/aide.log

AIDE возвращает битовую маску: 1 — появились новые файлы, 2 — файлы удалены, 4 — изменены. Ноль означает совпадение с эталоном. Прочие ненулевые коды сигнализируют об ошибке выполнения, например о недоступном файле. В отчёте ищите секции Added, Removed и Changed; для каждого пути показаны изменившиеся атрибуты.

Не паникуйте из-за каждого изменения. Штатное обновление пакета меняет бинарники и конфиги, ротация логов — размеры, а редактор может поправить mtime. Задача администратора — отличать ожидаемые правки от подозрительных. Для этого полезно записывать, какие работы проводились в интервале проверки.

  • Новый файл в /etc/ssh или /etc/sudoers — повод разобраться немедленно.
  • Изменение прав на системный бинарник — признак неаккуратного обновления или вмешательства.
  • Массовые изменения в /var/www без релиза — возможная компрометация сайта.
  • Удаление файла из системного каталога — проверьте журналы пакетного менеджера.

Автоматизация проверки

В Debian пакет aide-common обычно уже ставит ежедневную проверку через cron. Проверьте, что она существует и не отключена. Если вы используете systemd-таймеры, ищите соответствующий юнит, но не запускайте две проверки одновременно.

ls -l /etc/cron.daily/aide
systemctl list-timers -a | grep aide
sudo nice -n 19 ionice -c3 aide --check

Для собственного расписания добавьте задание в /etc/cron.d с явным путём к конфигу. Запуск от root обязателен: иначе часть файлов будет недоступна и отчёт окажется неполным. Не ставьте проверку на пиковую нагрузку — она читает много данных с диска.

# /etc/cron.d/aide-local
17 3 * * * root nice -n 19 ionice -c3 /usr/bin/aide --config /etc/aide/aide.conf --check

Обновление эталона после законных изменений

После установки обновлений или плановой правки конфигурации эталон нужно пересобрать. Сначала изучите отчёт, убедитесь, что все изменения ожидаемы, и только потом обновляйте базу. Старую копию сохраните: она пригодится для разбора инцидента.

D=/var/lib/aide
sudo cp $D/aide.db $D/aide.db.bak-$(date +%F)
sudo aide --config /etc/aide/aide.conf --update
sudo cp $D/aide.db.new $D/aide.db
sudo aide --config /etc/aide/aide.conf --check

Команда —update не заменяет рабочую базу автоматически: она пишет новый файл, указанный в database_out. Замена — отдельный осознанный шаг. Если после обновления проверка снова показывает расхождения, значит, в эталон попал изменчивый файл, который нужно исключить.

Защита базы и ограничения

Эталон — лакомая цель. Храните его копию вне сервера, например на read-only носителе или на другой машине с ограниченным доступом. Полезно записать контрольную сумму базы и периодически сверять её. Отчёты лучше отправлять на отдельный хост, чтобы злоумышленник не смог незаметно очистить локальный журнал.

AIDE хорошо ловит изменения файлов, но не заменит мониторинг входов, сетевых соединений и целостности пакетов. Дополните его проверкой пакетов debsums, журналами аутентификации и резервным копированием. И помните: если система уже скомпрометирована, сравнивать файлы на ней самой поздно — нужен доверенный носитель или внешняя проверка.

Итог

AIDE — недорогой и понятный способ заметить подмену системных файлов. Установите пакет, опишите неизменные каталоги, постройте эталон и настройте ежедневную проверку. Читайте отчёт в контексте выполненных работ, храните базу вне сервера и обновляйте её только после разбора изменений. Вместе с обновлениями, файрволом и внешним мониторингом такой контроль даёт реальную, а не декоративную защиту.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

Поделиться: Telegram ВКонтакте