AIDE (Advanced Intrusion Detection Enviroment)

Rate this post

Безопасность

Безопасность компьютерной системы складывается из многих факторов. Невозможно пренебрегать одним из них отдавая предпочтение остальным.

Первый эшелон закрывает систему от проникновения извне. Это достигается, например, благодаря аккуратному подбору сетевых программ. Для этого возможно придется пожертвовать функциональностью ftp-сервера (ftpd-BSD), отключить некоторые потенциально опасные службы (finger), закрыться суровыми правилами firewall, следить за потенциально опасными и подозрительными явлениями в системе (portsentry, hostsentry, Log check) или закрыть службы какой-либо системой защиты на основе виртуальных пространств (Madusa, VXE)

Второй эшелон обеспечивает разграничение доступа внутри системы. Можно грамотно настроить обычные права файлов, а можно усилить их введя, например, мандатные метки или ACL. Одина из мощнейших систем данного класса — RSBAC.

Наконец третий эшелон обязан следить за целостностью данных системы. Здесь видится всего два пути: или пользоваться сложными логическими ролевыми моделями (Clark-Wilson Integrity) или проверять в лоб не изменились ли системные данные. С последней задачей великолепно справляются системы проверки целостности файловой системы: Tripwire,Toby, Fcheck, ViperDB etc.

До последнего времени лидером в этом классе являлась Tripwire, но сложная лицензионная политика Вынудила появление большого количества свободных клонов. Одним из самых Выдающихся представителей их является AIDE (Advanced Intrusion Detection Enviroment).

AIDE — что это

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

Обычной информации о файле недостаточно, злоумышленник может подделать и размер, и права, и владельца и время создания файла. Для этого вводится еще дополнительная сигнатура -результат применения какой-нибудь односторонней функции к содержимому файла (подобно работе с паролями в UNIX). Сигнатур может быть несколько. Чаще всего применяется алгоритм MD5-Digest. Собственно, он сам предназначен для генерации 128-битных ключей и последующего применения в алгоритме шифрования RSA, но обладает замечательным свойством — при изменении исходных данных контрольная сумма существенно изменяется и более того очень сложно выполнить такую модификацию файла при которой контрольная сумма осталась бы неизменной.

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

Устанавливаем AIDE

Программу можно взять или с ftp (http:www.cs.tut.fi/~rammer/aide/) или с CVS (подробная информация содержится на домашней странице программы). Итак, традиционно берем архив, развертываем, запускаем configure.

Возможно задание дополнительных параметров:

  • —with-mhash — позволит использовать некоторые дополнительные алгоритмы для сигнатур.
  • —with-zlib  — позволит использовать компрессию при записи в базу данных файлов.

Отметим, что данные параметры задаются один раз при компиляции и если Вы их не включили, то при желании включить их придется заново пересобрать программу.

Если есть желание собрать пакет rpm, то соответствующий spec файл также имеется.

Настраиваем AIDE

./configure; make; make install

Основной конфигурационный файл программы aide.conf может находиться где угодно, стандартное размещение <prefix>/etc/.

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

#Определяем группы атрибутов.

Standart=p+i+n+u+g+s
#права, номер inode, количество ссылок на файл, владелец, группа и размер.
Advanced=p+i+n+u+g+s+md5
#тоже самое и сигнатура md5.
/usr/bin/       Standart
#все файлы в /usr/bin/ с набором атрибутов Standart.
usr/sbin/      Advanced
#все файлы в /usr/sbin/ с набором атрибутов Advanced.

Ну вот сохраним этот текст как aide.conf и попросим программу создать базу.

aide -i -c aide.conf

После непродолжительного шуршания будет создан файл aide.db.new. Скопируем его в aide.db. Это и есть база. Если Вы посмотрите ее содержимое, то увидите набор строк, каждая из которых есть имя файла и далее через пробел его атрибуты и сигнатуры.

Вот тебе и защита — скажите Вы. Ничего страшного — от любопытных глаз базу защитит система разграничения доступа.

Теперь осталось прописать в cron запуск

aide -C -c aide.conf >/var/log/files-log

И периодически просматривать журнал.

Просто? Да, но это далеко не все возможности программы. Как уже было сказано ранее, в конфигурационном файле можно указать множество дополнительных параметров.

Например

database=file:/usr/share/aide.db
database_out= file:/usr/local/share/aide.db.new

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

Еще интереснее, что базу можно получать с SQL-сервера. Для этого надо задать строку в виде

sql:host:port:database:login_name:passwd:table

У Вас уже захватывает дух? Но это далеко еще не все.

Параметр report_url=file:/var/log/file-log задает местоположение файла-отчета. Файл может находиться опять-таки не на локальной машине и более того их может быть несколько. То есть возможно иметь сразу несколько копий на разных машинах. Злоумышленнику не позавидуешь.

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

Заключение — думаем

Понятно, что любые средства не панацея если нет головы у администратора. Это и есть самый мощный, четвертый эшелон защиты.

admin

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *