It-e.RU
Цифровой двигатель вашего бизнеса.

AIDE: наблюдаем за изменениями в системе

AIDE: наблюдаем за изменениями в системе


В жизни иногда случаются нехорошие события и некие персонажи стараются насолить владельцу системы по самым разным причинам. Недавний пример показал, что даже взаимнодоброе расставание с разработчиком может повлечь за собой неприятные последсвия в виде деструктивных действий со стороны этого самого разрабочика. К сожалению, до сих пор далеко не все используют scm, поэтому приходится как-то следить за изменениями в коде проекта и системе. В простом случае можно использовать команду вроде:

/usr/bin/find /var/www/ ! -path "*/tmp/*" ! -path "*/templates_c/*" ! -path "*/cache/data_*" -type f -name '*.php' -mtime -7 |  mail -e -s "change files" mail@domain.ltd

или

/usr/bin/find /var/www -mindepth 1  -newermt '2017-10-20 15:00'   ! -newermt '2017-10-23 15:00'   -ls |  mail -e -s "change files" mail@domain.ltd

Но существует более надёжный и луший способ для наблюдения за измененными файлами - это старинная утилита AIDE - Advanced Intrusion Detection Enviornment.
Утилита работает по принципу создания базы данных о файлах системы c помощью stat, что более надёжно, чем использование find. Способ с использованием find можно обмануть подменой дат изменения и он работает, только потому что даты изменения как правило оставляют без изменения.  Смотрите как просто:

touch -d "2 hours ago" filename

или

touch -a -m -t 201710180130.09 filename

и способ с find уже не работает.


Итак установим утилиту. У меня gentoo, поэтому:

emerge app-forensics/aide


Теперь предстоит самое сложное - сконфигурировать.

Шаг 1 - сконфигурируем за областями слежения.

Для этого создадим конфигурациооный файл. Приведу пример:

database=file:/root/aide.db
database_out=file:/root/aide.new.db
database_new=file:/root/aide.new.db
/etc R

Шаг 2 - сгенерируем срез системы

# aide  -c  aide.conf  --init

Эта команда просканирует все файлы, указанные в конфигурационном файле, и создаст базу файлов aide.new.db, которую необходимо переименовать в aide.db. AIDE для сканирования использует stats, поэтому база данных содержит права, иноды, время доступа, модификации и прочие данные о файле. Вот чем хорошо использование этой утилиты.
Теперь, когда у нас есть срез данных о файлах системы, мы можем вычислять изменения в системе с момента создания последнего среза:

# aide -c aide.conf  --check

При вызове этой команды, мы получим список изменений, произошедших в системе. Теперь обновим нашу базу:

# aide -c aide.conf --update

В результате сгенерируется aide.new.db, который можно сравнить с предыдущим aide.db.

Приведу примеры конгураций для AIDE:

# Такие записи скажут aide, что необходимо рекурсивно просканировать директории /bin, /etc, /usr

/bin   R
/etc   R
/usr   R

Эти две аналогичные записи скажет aide, что необходимо просканировать директорию _без поддиректорий_:

=/sbin/ 
/sbin$   R 

Эта запись скажет aide, что необходимо исключить директорию /var. Удобно, если вы рекурсивно сканируете "/"

!/var  

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


Пожалуйста, уважайте труд автора, при копировании материалов сохраняйте ссылку на источник!

Комментарии (0)







Разрешённые теги: <b><i><br>Добавить новый комментарий: