Глава 11. Обнаружение вторжений при помощи AIDE

Содержание

11.1. Для чего нужна AIDE?
11.2. Настройка базы данных AIDE
11.3. Локальные проверки AIDE
11.4. Проверка из независимой системы
11.5. Для дальнейшей информации

Аннотация

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

11.1. Для чего нужна AIDE?

Простая проверка, которая часто помогает обнаружить нежелательные изменения, может быть произведена с помощью RPM. В пакетном менеджере есть встроенная функция проверки изменений в файлах системы. Для проверки всех файлов, выполните команду rpm -Va. Однако эта команда также отобразит изменения в файлах конфигурации и Вам придется отфильтровать вывод, чтобы определить только важные изменения.

Еще одна проблема с RPM заключается в том, что умный взломщик может подменить rpm, чтобы замаскировать все изменения. Это может быть сделано при помощи руткита, который позволит взломщику скрыть вторжение и получить привилегии суперпользователя. Поэтому Вы должны реализовать еще одну проверку, которую следует производить независимо от проверяемой системы.

11.2. Настройка базы данных AIDE

[Important]Инициализируйте базу данных AIDE после установки

Перед установкой системы проверьте контрольную сумму носителя (Раздел “Checking Media” (Приложение A, Помощь и решение проблем, ↑Вступление)), чтобы убедиться в его подлинности. После установки системы инициализируйте базу данных AIDE. Чтобы удостовериться, что все прошло успешно во время и после инсталляции, произведите инсталляцию прямо из консоли, на компьютер не подключенный к сети. Не оставляйте компьютер без присмотра и не подключайте его к сети до завершения процесса создания базы данных AIDE.

AIDE по умолчанию не установлена на openSUSE. Для установки используйте Компьютер+Установка программ, или введите zypper install aide в командной строке от root.

Чтобы указать AIDE какие атрибуты каких файлов должны проверяться, используйте конфигурационный файл/etc/aide.conf. Работу с программой следует начать с этого файла. Первая его секция управляет общими параметрами, такими как размещение файла базы данных AIDE. К локальным настройкам относятся секции Custom Rules и Directories and Files. Типичное правило выглядит следующим образом:

Binlib     = p+i+n+u+g+s+b+m+c+md5+sha1

После определения переменной Binlib, соответствующие опции проверки используются в секции файлов. Следующие настройки являются важными:

Таблица 11.1. Важные настройки AIDE

Опция

Описание

p

Проверяет права доступа выбранных файлов и директорий.

i

Проверяет номер файлового дескриптора (inode). Каждому имени файла соответствует уникальный номер дескриптора, который не должен изменяться.

n

Проверяет число ссылок на соответствующий файл.

u

Проверяет, изменился ли владелец файла.

g

Проверяет, изменилась ли группа файла.

s

Проверяет, изменился ли размер файла.

b

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

m

Проверяет, изменилось ли время модификации файла.

c

Проверяет, изменилось ли время последнего доступа к файлу.

md5

Проверяет, изменилась ли у файла контрольная сумма md5.

sha1

Проверяет, изменилась ли у файла контрольная сумма sha1 (160 бит).


Вот конфигурация, проверяющая все файлы в директории /sbin за исключением директории /sbin/conf.d/ с опциями, заданными в Binlib:

/sbin  Binlib
!/sbin/conf.d

Для создания базы данных AIDE выполните следующие действия:

  1. Откройте /etc/aide.conf.

  2. Укажите файлы, которые необходимо проверять и настройки проверки. За подробным списком настроек обратитесь к /usr/share/doc/packages/aide/manual.html. Определение файлов требует некоторых знаний о регулярных выражениях. Сохраните Ваши изменения.

  3. Чтобы проверить правильность конфигурационного файла, выполните:

    aide --config-check

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

    aide --config-check
    35:syntax error:!
    35:Error while reading configuration:!
    Configuration error

    Ошибку следует искать в строке 36 файла /etc/aide.conf. Обратите внимание, что сообщение об ошибке содержит последнюю успешно считанную строку конфигурационного файла.

  4. Инициализируйте базу данных AIDE. Выполните команду:

    aide -i
  5. Скопируйте созданную базу в безопасное место, например CD-R или DVD-R, удаленный сервер или USB диск для последующего использования.

    [Important]

    Этот шаг важен, поскольку он помогает избежать подделки базы данных. Чтобы предотвратить изменение базы данных, рекомендуется использовать носитель, который может быть записан только один раз. Никогда не оставляйте базу на компьютере, за которым Вы хотите наблюдать.

11.3. Локальные проверки AIDE

Чтобы проверить файловую систему, выполните следующие шаги:

  1. Переименуйте базу данных:

    mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
  2. После любых изменений конфигурации Вы всегда должны переинициализировать базу данных AIDE и перенести вновь созданную базу данных. Создание резервной копии базы также хорошая идея. Подробнее об этом рассказывает Раздел 11.2, «Настройка базы данных AIDE».

  3. Выполните проверку при помощи следующей команды:

    aide --check

Если вывод пуст - все хорошо. Если AIDE найдет изменения, будет отображен сводный отчет изменений, например:

aide --check
AIDE found differences between database and filesystem!!

Summary:
  Total number of files:        1992
  Added files:                  0
  Removed files:                0
  Changed files:                1 

Чтобы подробнее узнать об изменениях, смените уровень детализации проверки с помощью параметра -V. Для предыдущего примера, результат может выглядеть следующим образом:

aide --check -V
AIDE found differences between database and filesystem!!
Start timestamp: 2009-02-18 15:14:10

Summary:
  Total number of files:        1992
  Added files:                  0
  Removed files:                0
  Changed files:                1


---------------------------------------------------
Changed files:
---------------------------------------------------

changed: /etc/passwd

--------------------------------------------------
Detailed information about changes:
---------------------------------------------------


File: /etc/passwd
  Mtime    : 2009-02-18 15:11:02              , 2009-02-18 15:11:47
  Ctime    : 2009-02-18 15:11:02              , 2009-02-18 15:11:47

В этом примере мы обработали файл /etc/passwd командой touch.

11.4. Проверка из независимой системы

Для ответственных администраторов (которыми мы все являемся) рекомендуется запускать бинарный файл AIDE из доверенного источника. Это исключает возможность модификации файла AIDE взломщиком для скрытия следов проникновения в систему.

Для этого AIDE должен быть запущен в системе, независимой от установленной системы. При помощи openSUSE относительно легко добавить в Систему аварийного восстановления произвольные программы для достижения требуемого функционала.

Перед началом использования Системы аварийного восстановления Вы должны предоставить системе два пакета. Они включаются в нее точно также, как диск с обновлениями драйверов. За подробным описанием возможностей linuxrc используемых для этих целей обратитесь к http://en.opensuse.org/SDB:Linuxrc. Далее будет описан один из возможных способов.

Процедура 11.1. Запуск Системы аварийного восстановления с AIDE

  1. Укажите FTP сервер в качестве второго компьютера.

  2. Скопируйте пакеты aide и mhash в нужную директорию FTP сервера, в нашем случае /srv/ftp/. Замените ARCH и VERSION на Ваши значения:

    cp DVD1/suse/ARCH/aideVERSION.ARCH.rpm /srv/ftp
    cp DVD1/suse/ARCH/mhashVERSION.ARCH.rpm /srv/ftp
  3. Создайте файл /srv/ftp/info.txt, содержащий параметры загрузки Системы аварийного восстановления:

    dud:ftp://ftp.example.com/aideVERSION.ARCH.rpm
    dud:ftp://ftp.example.com/mhashVERSION.ARCH.rpm

    Замените FTP домен, VERSION и ARCH значениями, используемыми на Вашей системе.

  4. Перезапустите сервер, который необходимо проверить при помощи AIDE, и загрузите его с DVD, содержащего Систему аварийного восстановления. Добавьте следующую строку в параметры загрузки:

    info=ftp://ftp.example.com/info.txt

    Этот параметр предписывает linuxrc считать всю информацию из файла info.txt.

После загрузки Системы аварийного восстановления программа AIDE готова к использованию.

11.5. Для дальнейшей информации

Информация об AIDE доступна:

  • Домашняя страница AIDE http://aide.sourceforge.net.

  • В виде документации к шаблону файла конфигурации /etc/aide.conf.

  • В нескольких файлах, перечисленных ниже /usr/share/doc/packages/aide, после установки пакета aide.

  • В рассылке новостей AIDE https://mailman.cs.tut.fi/mailman/listinfo/aide.