Напередодні старту курсу
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. З метою безпеки рекомендується зберігати базу даних та конфігураційний файл на носії, доступному лише для читання. Додаткову інформацію можна отримати у документації
Джерело: habr.com