Опубликован: 20.02.2006 | Уровень: специалист | Доступ: платный
Лекция 7:

Системы обнаружения вторжений

Установка Tripwire

  1. Чтобы установить Tripwire, возьмите файлы с компакт-диска или загрузите RPM или tar с web-сайта Tripwire для компиляции исходных текстов.

    Для некоторых дистрибутивов существуют также доступные RPM (RPM для Mandrake и RedHat помещены на компакт-диск). Просто щелкните мышью на файле RPM, чтобы установить программу. Если у вас нет RPM для вашей операционной системы, то можно загрузить файл .tar с исходными текстами (или "tarball", как его часто называют) для последующей компиляции. Распакуйте tar-файл и перейдите в каталог src.

  2. В каталоге src наберите
    make all

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

  3. Откройте файл install.cfg и проверьте, что все подразумеваемые значения подходят для вашей системы. Этот файл управляет местом установки файлов программы и другими переменными системного уровня. Большинство подразумеваемых значений годятся для большинства систем. Проверьте, что ваш почтовый клиент задан правильно.
  4. После установки переменных окружения перейдите в каталог /etc/tripwire и наберите twinnstall.sh.

    Будет выдано лицензионное соглашение. Необходимо ввести accept, и затем командный файл установки скопирует файлы в предназначенные для них места и предложит ввести пароли для сайта и локального входа. Эти пароли будут использоваться для разблокирования базы данных Tripwire, поэтому они очень важны.

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

На этом процесс установки Tripwire завершается.

Конфигурирование Tripwire

Заключительным шагом, предшествующим запуску Tripwire, служит задание вашей политики. Файл политики очень важен для работы Tripwire: в нем специфицируются отслеживаемые файлы и уровень детализации. Основной файл политики, twpol.txt, находится в главном каталоге Tripwire. Строго говоря, это не сам файл политики, а копия зашифрованной версии, которую в действительности использует программа. Для большей безопасности необходимо сделать копию и удалить незашифрованную версию twpol.txt, после того как вы определите и протестируете свою политику.

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

Таблица 7.4. Маски свойств Tripwire
Буква кода Отслеживаемый атрибут
a Время последнего доступа
b Отведенные блоки
с Время создания/изменения
d Идентификатор устройства, на котором располагается описатель файла
g Идентификатор владеющей группы файла
i Номер описателя файла
l Разрешен ли рост файла
m Метка времени изменения
n Значение счетчика ссылок в описателе файла
p Режим доступа к файлу
s Размер файла
t Тип файла
u Идентификатор пользователя владельца файла
C Хэш-код CRC32
H Хэш-код Haval
M Хэш-код MD5
S Хэш-код SHA/SHS

Политики Tripwire действуют по принципу флагов игнорирования. Можно сконфигурировать Tripwire для отслеживания или игнорирования различных свойств файлов. Знак + (плюс) используется для отслеживания свойств, а знак - (минус) - для их игнорирования. Формат инструкций в файле политики таков:

имя_файла/каталога -> маска_свойств;

Например, следующая строка в файле политики

/etc/secretfile.txt -> +amcpstu;

предписывает Tripwire извещать вас всякий раз, когда у файла secretfile.txt в каталоге /etc изменяются время последнего доступа, время создания или модификации, режим доступа, владелец, размер или тип файла.

Существует также несколько предопределенных масок свойств. В табл. 7.5 перечислены эти стандартные маски и их действие.

Таблица 7.5. Стандартные маски свойств
Маска свойств Действие
$Readonly +pinugtsdbmCM-rlaSH
$Dynamic +pinugtd-srlbamcCMSH
$Growing +pinugtdl-srbamcCMSH
$Device +pugsdr-intlbamcCMSH
$IgnoreAll -pinugtsdrlbamcCMSH
$IgnoreNone +pinugtsdrrlbamcCMSH

Предопределенные переменные соответствуют поведению различных наборов файлов. Например, можно использовать $Readonly для ключевых конфигурационных файлов, так как время доступа будет изменяться, когда программы их используют, но вы не желаете, чтобы изменялись размер или содержимое. Можно использовать $Growing для файлов журналов, так как они будут (во всяком случае, должны) постоянно увеличиваться в размере.

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

SEC_CRIT = $(IgnoreNone)-SHa ; # Критичные файлы, которые 
                               # не могут изменяться
SEC_SUID = $(IgnoreNone)-SHa ; # Бинарные файлы с установленными
                               # флагами SUID или SGID
SEC_BIN = $(ReadOnly) ;        # Бинарные файлы, которые не 
                               # должны изменяться
SEC_CONFIG = $(Dynamic) ;      # Конфигурационные файлы, 
                               # которые редко изменяются, 
                               # но часто используются
SEC_LOG = $(Growing) ;         # Файлы, которые увеличиваются,
                               # но никогда не должны менять
                               # владельца
SEC_INVARIANT = +tpug ;        # Каталоги, у которых никогда 
                               # не должны изменяться режим
                               # доступа или владелец
SIG_LOW = 33 ;                 # Некритичные файлы, которые
                               # имеют минимальное влияние 
                               # на безопасность
SIG_MED = 66 ;                 # Некритичные файлы, которые
                               # имеют значительное влияние
                               # на безопасность
SIG_HI = 100 ;                 # Критичные файлы, которые
                               # являются существенными точками уязвимости
Листинг 7.3. Переменные масок свойств

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

Инициализация эталонной базы данных

Первым шагом при выполнении Tripwire является формирование эталонной базы данных. Создается начальный список сигнатур, согласно которым будут применяться политики. Помните, что выполнение этого шага после того, как в системе появились подозрительные файлы, ни к чему хорошему не приведет; необходимо создать эталонную базу данных до того, как появятся какие-либо проблемы с безопасностью, лучше всего сразу после установки и конфигурирования системы. Чтобы создать начальный файл базы данных, используйте команду

tripwire -m i -v

Ключ -m определяет режим выполнения, в данном случае i означает инициализацию. Ключ -v задает расширенный вывод, чтобы можно было посмотреть, что происходит. Tripwire определяет все файлы, заданные в файле политики, создает базу данных в каталоге ./database и шифрует ее с помощью пароля сайта.

Чтобы по-настоящему обезопасить Tripwire, необходимо сделать копию эталонной базы данных на некотором защищенном несетевом носителе информации - флоппи-диске, компакт-диске или магнитной ленте. Если вы будете хранить копию в сети, всегда будет существовать возможность ее изменения, хотя Tripwire и имеет от этого некоторые средства защиты.

Проверка целостности файлов

Это основной режим выполнения программы Tripwire после ввода в эксплуатацию. В этом режиме текущие атрибуты определенных файлов сравниваются с атрибутами в базе данных Tripwire. Формат запуска в этом режиме таков:

tripwire -m c маршрутное_имя

Задается маршрутное имя файла или каталогов, которые вы хотите контролировать. Эта команда будет проверять атрибуты файла согласно спецификациям файла политики и выдавать отчет обо всех изменениях.

Обновление базы данных

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

tripwire -m u -r маршрутное_имя_отчета

Здесь маршрутное_имя_отчета соответствует самому свежему файлу отчета. Выполнение этой команды покажет все произошедшие изменения, а также правила, их обнаружившие. Рядом с файлами, в которых обнаружились изменения, будет присутствовать знак x в квадратных скобках. Если оставить x на месте, то Tripwire обновит сигнатуру для этого файла, когда вы закончите работу с отчетом. Если удалить x, то Tripwire будет предполагать, что исходная сигнатура правильна, и не будет ее обновлять. При выходе Tripwire внесет изменения. Можно задать ключ -c в командной строке, чтобы пропустить предварительный просмотр отчета. В этом случае Tripwire просто учтет обнаруженные изменения.

Обновление файла политики

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

tripwire -m p текстовый_файл_политики

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

Роман Попов
Роман Попов

После прохождения курса Стандарты инфрмационной безопасности мне предложено получение Удостоверения о повышении квалификации от НИУ ВШЭ по программе Менеджмент информационной безопасности. Программа включает в себя ряд курсов которые я уже ранее проходил. Какой порядок действий в данном случае? Как прозводится перезачет результатов? И какие экщамены мне надо еще доздать чтобы получить удостоверение?

Александр Путятинский
Александр Путятинский

Добрый день по окончании данного курса выдается сертификат?

Гончик Цымжитов
Гончик Цымжитов
Россия, Санкт-Петербург
Александр Косенко
Александр Косенко
Украина, Днепропетровск