Как установить и использовать AIDE (Advanced Intrusion Detection Environment) в CentOS 8

от автора

В преддверии старта курса «Разработчик Linux» подготовили перевод интересного материала.


AIDE расшифровывается как “Advanced Intrusion Detection Environment” (усовершенствованная система обнаружения вторжений) — это одна из самых популярных систем для мониторинга изменений в операционных системах на базе Linux. AIDE используется для защиты от вредоносных программ, вирусов и обнаружения несанкционированных действий. Для проверки целостности файлов и обнаружения вторжений AIDE создает базу данных с информацией о файлах и сравнивает текущее состояние системы с этой базой. AIDE помогает сократить время расследования инцидентов, сосредоточившись на файлах, которые были изменены.

Возможности AIDE:

  • Поддержка различных атрибутов файлов, в том числе: тип файла, inode, uid, gid, разрешения, количество ссылок, mtime, ctime и atime.
  • Поддержка сжатия Gzip, SELinux, XAttrs, Posix ACL и атрибутов файловой системы.
  • Поддержка различных алгоритмов, включая, md5, sha1, sha256, sha512, rmd160, crc32 и т. д.
  • Отправка уведомлений по электронной почте.

В этой статье мы рассмотрим, как установить и использовать AIDE для обнаружения вторжений в CentOS 8.

Предварительные требования

  • Сервер под управлением CentOS 8, минимум с 2 ГБ оперативной памяти.
  • root-доступ

Начинаем

Сначала рекомендуется обновить систему. Для этого выполните следующую команду.

dnf update -y

После обновления перезапустите систему, чтобы изменения вступили в силу.

Установка AIDE

AIDE доступен в дефолтном репозитории CentOS 8. Вы можете ее легко установить, выполнив следующую команду:

dnf install aide -y

После завершения установки можно посмотреть версию AIDE с помощью следующей команды:

aide --version

Вы должны увидеть следующее:

Aide 0.16  Compiled with the following options:  WITH_MMAP WITH_PCRE WITH_POSIX_ACL WITH_SELINUX WITH_XATTR WITH_E2FSATTRS WITH_LSTAT64 WITH_READDIR64 WITH_ZLIB WITH_CURL WITH_GCRYPT WITH_AUDIT CONFIG_FILE = "/etc/aide.conf"

Доступные параметры aide можно посмотреть следующим образом:

aide --help

Создание и инициализация базы данных

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

Для инициализации базы данных выполните следующую команду:

aide --init

Вы должны увидеть следующее:

Start timestamp: 2020-01-16 03:03:19 -0500 (AIDE 0.16) AIDE initialized database at /var/lib/aide/aide.db.new.gz  Number of entries:	49472  --------------------------------------------------- The attributes of the (uncompressed) database(s): ---------------------------------------------------  /var/lib/aide/aide.db.new.gz   MD5      : 4N79P7hPE2uxJJ1o7na9sA==   SHA1     : Ic2XBj50MKiPd1UGrtcUk4LGs0M=   RMD160   : rHMMy5WwHVb9TGUc+TBHFHsPCrk=   TIGER    : vkb2bvB1r7DbT3n6d1qYVfDzrNCzTkI0   SHA256   : tW3KmjcDef2gNXYqnOPT1l0gDFd0tBh9              xWXT2iaEHgQ=   SHA512   : VPMRQnz72+JRgNQhL16dxQC9c+GiYB8g              uZp6uZNqTvTdxw+w/IYDSanTtt/fEkiI              nDw6lgDNI/ls2esijukliQ==   End timestamp: 2020-01-16 03:03:44 -0500 (run time: 0m 25s)

Приведенная выше команда создаст новую базу данных aide.db.new.gz в каталоге /var/lib/aide. Ее можно увидеть, используя следующую команду:

ls -l /var/lib/aide

Результат:

total 2800 -rw------- 1 root root 2863809 Jan 16 03:03 aide.db.new.gz

AIDE не будет использовать этот новый файл базы данных, пока его не переименовать в aide.db.gz. Это можно сделать следующим образом:

mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz

Рекомендуется периодически обновлять эту базу данных, чтобы обеспечить необходимый мониторинг изменений.

Изменить местоположение базы можно, изменив параметр DBDIR в файле /etc/aide.conf.

Запуск проверки

Теперь AIDE готова к использованию новой базы данных. Запустите первую проверку AIDE, не делая никаких изменений:

aide --check

Выполнение этой команды займет некоторое время в зависимости от размера вашей файловой системы и объема оперативной памяти на вашем сервере. После завершения проверки вы должны увидеть следующее:

Start timestamp: 2020-01-16 03:05:07 -0500 (AIDE 0.16) AIDE found NO differences between database and filesystem. Looks okay!!

Приведенный выше вывод, говорит, что все файлы и каталоги соответствуют базе данных AIDE.

Тестируем AIDE

По умолчанию AIDE не отслеживает дефолтный корневой каталог Apache /var/www/html. Давайте настроим AIDE для его просмотра. Для этого надо изменить файл /etc/aide.conf.

nano /etc/aide.conf

Добавьте над строкой "/root/CONTENT_EX" следующее:

/var/www/html/ CONTENT_EX

Далее, создайте файл aide.txt в каталоге /var/www/html/, используя следующую команду:

echo "Test AIDE" > /var/www/html/aide.txt

Теперь запустите проверку AIDE и убедитесь, что созданный файл будет обнаружен.

aide --check

Вы должны увидеть следующее:

Start timestamp: 2020-01-16 03:09:40 -0500 (AIDE 0.16) AIDE found differences between database and filesystem!!  Summary:   Total number of entries:	49475   Added entries:		1   Removed entries:		0   Changed entries:		0  --------------------------------------------------- Added entries: ---------------------------------------------------  f++++++++++++++++: /var/www/html/aide.txt

Мы видим, что обнаружен созданный файл aide.txt.
После анализа обнаруженных изменений обновите базу данных AIDE.

aide --update

После обновления вы увидите следующее:

Start timestamp: 2020-01-16 03:10:41 -0500 (AIDE 0.16) AIDE found differences between database and filesystem!! New AIDE database written to /var/lib/aide/aide.db.new.gz  Summary:   Total number of entries:	49475   Added entries:		1   Removed entries:		0   Changed entries:		0  --------------------------------------------------- Added entries: ---------------------------------------------------  f++++++++++++++++: /var/www/html/aide.txt

Приведенная выше команда создаст новую базу данных aide.db.new.gz в каталоге

/var/lib/aide/

.

Вы можете увидеть ее с помощью следующей команды:

ls -l /var/lib/aide/

Результат:

total 5600 -rw------- 1 root root 2864012 Jan 16 03:09 aide.db.gz -rw------- 1 root root 2864100 Jan 16 03:11 aide.db.new.gz

Теперь переименуйте новую базу данных еще раз, чтобы для отслеживания дальнейших изменений AIDE использовала новую базу. Переименовать можно следующим образом:

mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz

Запустите проверку еще раз, чтобы убедиться, что AIDE использует новую базу данных:

aide --check

Вы должны увидеть следующие:

Start timestamp: 2020-01-16 03:12:29 -0500 (AIDE 0.16) AIDE found NO differences between database and filesystem. Looks okay!!

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

Это хорошая идея — запускать проверку AIDE каждый день и отправлять отчет по почте. Этот процесс можно автоматизировать с помощью cron.

nano /etc/crontab

Для запуска проверки AIDE каждый день в 10:15 добавьте в конец файла строку:

15 10 * * * root /usr/sbin/aide --check

Теперь AIDE уведомит вас по почте. Проверить почту можно следующей командой:

tail -f /var/mail/root

Лог AIDE можно посмотреть с помощью следующей команды:

tail -f /var/log/aide/aide.log

Заключение

В этой статье вы узнали, как использовать AIDE для обнаружения изменений файлов и выявления несанкционированного доступа к серверу. Для дополнительных настроек вы можете изменить файл конфигурации /etc/aide.conf. В целях безопасности рекомендуется хранить базу данных и конфигурационный файл на носителе, доступном только для чтения. Дополнительную информацию можно получить в документации AIDE Doc.


Узнать подробнее о курсе.


ссылка на оригинал статьи https://habr.com/ru/company/otus/blog/496312/