В преддверии старта курса «Администратор 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.



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