Целостность системы. Tripwire. Установка и настройка.
Метки: Tripwire
Четверг, 29 апреля 2010 г.
Просмотров: 2627
Подписаться на комментарии по RSS
Если крекер получит доступ к системе, то он попытается скрыть следы своего присутствия (конечно, если его цель - вандализм, то он просто разрушит эту систему). Известны случаи, когда хакер скрывал свое фигурирование в системе несколько лет.
Лучший способ выявить крекера - это произвести мониторинг целостности системных файлов. Ведь в большинстве случаев крекер будет изменять какие-то файлы, а мониторинг поможет выявить это. Лучшими программами для этих целей являются Tripwire и Chkrootkit.
Tripwire - мониторинг целостности файлов.
Tripwire - это утилита для мониторинга целостности файлов, позволяющая обнаружить изменения в системных файлах (как было показано ранее, многие руткиты заменяют системные файлы их троянскими копиями).
Монитор целостности создает контрольные суммы MD5 для всех важных системных файлов, которые потом будут сравнены с вновь созданными проверочными суммами. Это позволяет заметить малейшее изменение в системных файлах: даже если у измененного хакером файла будет такой же размер, как и у оригинального файла.
Существует две версии Tripwire: коммерческая и бесплатно распространяемая (по лицензии GPL). Рассмотрим GPL-версию.
Установка Tripwire.
Скачать Tripwire нужно с сайта http://sourceforge.net/projects/tripwire. После распаковки архива надо перейти в подкаталог srс только что созданного каталога. От имени root введите команду make release. Эта команда применяется для компиляции и установки Tripwire для платформы Linux x86. Если на компьютере другая архитектура процессора, нужно изменить переменную SYSPRE в Makefile.
После установки в /usr/sbin появятся следующие исполнимые файлы:
- Tripwire - применяется для создание начальной базы данных, при последующих запусках применяется для проверки целостности.
- Twadmin - утилита администрирования Tripwire, применяется для конфигурации Tripwire.
- Twprint - показывает базу данных Tripwire в текстовом формате.
- Siggen - отражает hash-значения файла.
Конфигурационный каталог /etc/tripwire содержит следующие файлы:
- Twcfg.txt - пример конфигурационного файла.
- Twinstall.sh - постинсталляционный сценарий.
- Twpol.txt - файл правил, применяется для изменения поведения Tripwire.
Правила.
В конфигурационном файле правил задаются файлы и каталоги, которые Tripwire должен защитить.Объекты и свойства.
Главный синтаксис правила Tripwire следующий:
Объект - это файл или каталог. Режимы - это список свойств объекта, которые будут сравниваться (в конкретном случае можно указать «+» перед свойствами) или игнорироваться (знак «-»). Допустимы следующие режимы:
- a - время доступа;
- b - количество выделенных блоков;
- c - временная метка mode (создание/изменение);
- d - ID устройства, на котором «проживает» inode;
- g - GID владельца;
- i - номер inode;
- l - увеличение размера файла;
- m - изменение временной метки;
- n - количество ссылок;
- p - права доступа и биты режима файла;
- r - ID устройства, указанного inode;
- s - размер файла;
- t - тип файла;
- u - UID владельца;
- С - хэш-значение CRC32;
- Н - хэш-значение Haval;
- М - хэш-значение MD5;
- S - хэш-значение SHA.
Давайте рассмотрим несколько примеров:
/var/www-> +p
# сравнивать любое изменение в UID/GID владельца, но игнорировать любое изменение размера файла
/etc/named.conf -> +gu-s
Как видно, режимы могут указываться в какой угодно комбинации, однако для упрощения восприятия правил Tripwire предлагает несколько уже готовых наборов режимов:
- ReadOnly - эквивалентно +pinugtsdbmCm-rlacSH, подойдет для файлов, которые общедоступны для чтения всем пользователям, но не досягаемы для записи. Примером такого файла может послужить файл /etc/sshd_conf.
- Dynamic - предназначен для файлов или каталогов, которые могут на законных основаниях изменяться пользователем (к примеру, домашний каталог пользователя), данный набор эквивалентен следующей комбинации режимов: +pinugtd-srlbamcCMSH.
- Growing - почти то же, что и Dynamic, но в конкретном случае Tripwire тоже проверяет, был ли увеличен размер файла (+pinugtdl- srlb-amcCMSH). Growing подходит для файлов, размер которых может быть только увеличен, к примеру протоколов.
- Device - предназначен для устройств (файлов в каталоге /dev). Аналогичен комбинации +pugsdr-intlbamcCMSH.
- IgnoreAll - игнорирует все свойства объекта, даже его существование или отсутствие (-pinugtsdrlbamcCMSH).
- IgnoreNone - сравнивает все свойства (+pinugtsdrbamcCMSH-l).
Например:
/etc/apache/httpd.conf -> $(Readonly)
/var/named-> $ (IgnoreNone) -a