Библиотека сайта rus-linux.net
Заметки о безопасности Linuх: поддержка целостности файлов с помощью AIDE
Оригинал: Linux Security Notes - AIDE File IntegrityДата публикации: 16 октября 2009 г.
Перевод: М.Ульянов
Дата перевода: декабрь 2009 г.
AIDE (Advanced Intrusion Detection Enviornment, расширенная среда обнаружения вторжений) - инструмент для проверки целостности файлов. Это open-source приложение, замена TRIPWIRE. Позволяет делать снимки всех основных конфигурационных и исполняемых файлов, а также состояния библиотек. И в случае компрометации системы помогает определить, какие файлы были изменены. Программу можно скачать с http://sourceforge.net.
В первую очередь скачайте исполняемые файлы и файл подписи, импортируйте и сверьте ключи GPG.
Компиляция и установка AIDE
Чтобы узнать требования пакетов, прочтите документ INSTALL в исходниках AIDE. Для установки и работы AIDE необходима утилита mhash. Скачать ее можно с sourceforge.net.
Распакуйте пакеты AIDE и MHASH.
Установка MHASH:
# tar -zxvf mhash-0.9.2.tar.gz
# cd mhash-0.9.2
# ./configure
# make
# make install
Исполняемые файлы и библиотеки установятся в /usr/local
.
Установка AIDE:
# tar -zxvf aide-0.10.tar.gz
# cd aide-0.10
# ./configure
# make "this will create the aide binary"
# make install
Исполняемые файлы скопируются в /usr/local/bin
.
Примечание: для отслеживания атак типа "человек посередине" (man-in-the-middle) полезно записывать контрольные суммы MD5 для исполняемых файлов.
Настройка и мониторинг файлов с помощью AIDE
Шаг 1. Генерация базы данных AIDE (создание снимка файлов)
Для определения правил (какие директории отслеживать) отредактируйте конфигурационный файл aide.conf
, находящийся в aide-0.10/doc/
# В файле присутствуют три типа строк: # 1. Переменные; # 2. Макросы; # 3. Типы файлов (включая директории) для отслеживания. database=file:/home/kiran/aide/aide.db (эта строка определяет место хранения базы данных aide) #Теперь укажем правила для aide #Отслеживаем все поддиректории в папке /etc/: /etc R
Теперь создайте базу данных AIDE.
# aide -c aide.conf --init
Эта команда просканирует все файлы в директории /etc/
и сохранит их снимок в новой базе данных под названием aide.db.new
.
Примечание: AIDE использует команду stat для получения информации о файле, включающую разрешения, инод, время последнего доступа, время модификации и пр., и хранит эту информацию в файле aide.db
.
Сравнение текущего состояния с базой данных AIDE:
# aide -c aide.conf --check
Команда покажет текущее состояние директории /etc/
, сравнивая его со снимком в aide.db
, полученным предыдущей командой.
Теперь протестируйте функциональность AIDE.
Измените любой файл в директории /etc/
.
И повторите сравнение командой
# aide -c aide.conf --check
Она покажет нам отличия файла от его предыдущего состояния.
Примечание: Команду aide --check
необходимо выполнять как можно чаще. И если обнаруживаются изменения, следует убедиться в их легальности и снова обновить базу данных AIDE.
Обновление базы данных AIDE после проверки:
# aide -c aide.conf --update
Снимок в базе данных обновится до текущего состояния директории /etc/
.
Добавление других директорий для отслеживания:
Отредактируйте aide.conf
:
/boot R /bin R /etc R /lib R /usr R /install R /sbin$ R
Другие варианты конфигурации:
/ R !/var # Такая настройка позволит отслеживать все директории внутри "/", исключая директорию /var
# aide -c aide.conf --init
Эта команда сгенерирует новую базу данных для всех директорий, определенных в aide.conf
.
Примечание: Путем сравнения текущего состояния с сохраненным снимком в базе данных мы сможем проследить, какие файлы были изменены в случае любой компрометации системы. После создания aide.db лучше всего сохранить исполняемые и конфигурационные файлы AIDE и саму базу данных на носитель, доступный только для чтения. Это повысит целостность базы данных AIDE.
# mkisofs -V Aide_DB`date +%F` -J -R -o aide.iso /Aide/directory
# cdrecord -v -eject aide.iso
В будущем в случае любого подозрения на эксплойт можно загрузить сохраненную базу данных с конфигурационными и исполняемыми файлами и провести аудит системы.