Опубликован: 20.02.2007 | Доступ: свободный | Студентов: 3481 / 786 | Оценка: 4.42 / 4.03 | Длительность: 40:03:00
Лекция 12:

Комбинированные средства системного аудита

Реализация: свободно распространяемая версия

Рассмотрим свободно распространяемую версию Tripwire для Linux. Для программы доступны как rpm-пакеты, так и исходные тексты. Независимо от того, какую версию вы устанавливаете, есть некоторые обязательные действия, которые придется выполнить перед установкой Tripwire.

Запуск install.sh

Скрипт install.sh используется для установки Tripwire и должен быть запущен с полномочиями пользователя root. Запустив этот скрипт, вы получите запрос на подтверждение о согласии с лицензионным соглашением и выборе директории для установки программы (как правило, лучше использовать установки по умолчанию). После этих стандартных операций вас попросят ввести секретную фразу. Эта фраза используется для шифрования политик, баз данных и конфигурационных файлов с целью защиты их от подделки. Как только вы введете секретную фразу, скрипт сгенерирует ключ для шифрования ваших файлов. Вы получите запрос относительно общей секретной фразы для шифрования конфигурационных файлов и файлов политик. Секретная фраза будет сохраняться в виде текста на случай, если вы захотите что-то изменить.

Примечание. Tripwire использует общий ключ для шифрования ваших файлов политик и конфигурационных файлов и локальную фразу для шифрования баз данных и отчетов. Установка общей и локальной секретных фраз позволяет вам (и только вам) расшифровать эти файлы для просмотра и модификации.
Просмотр файлов политик и конфигурационных файлов

Файлы политик указывают Tripwire на то, какие файлы проверять, какую информацию просматривать и когда предупреждать вас о том, что произошли какие-то изменения. Устанавливаемый по умолчанию файл политик, twpol.txt, содержит определение переменных и правил. Более детально они рассматриваются в разделе "Представление о файлах политики Tripwire ". Конфигурационный файл, twcfg.txt, хранит информацию о месте положения файлов и другие предпочтения, которые должно использовать приложение Tripwire. Обычно вам не потребуется изменять конфигурацию по умолчанию.

Оба эти файла шифруются с использованием общей секретной фразы в процессе инсталляции. Действительные файлы конфигурации и политики, которые использует Tripwire, называются tw.pol и tw.cfg. Они представляют собой двоичные зашифрованные файлы и по умолчанию устанавливаются в директорию /etc/tripwire. Tripwire также устанавливает незашифрованные копии файлов (twpol.txt и twcfg.txt) на случай, если вы захотите просмотреть или изменить их. Рекомендуется удалить все текстовые копии файлов после того, как вы изучите их содержание. Если позже вам понадобится изменить любой из этих файлов в текстовом формате, вы можете воспользоваться утилитами, которые обсуждаются в разделе "Другие утилиты Tripwire ".

Запуск Tripwire

У Tripwire четыре основных режима работы: инициализация базы данных, интегральная оценка, обновление базы данных и обновление политики.

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

# tripwire -m i -v

Параметр -m используется для задания режима ( -m показывает режим инициализации базы данных). Вы получите запрос на ввод локальной секретной фразы, и Tripwire понадобится несколько минут на проверку ваших файлов в процессе создания базы данных сигнатур файлов. Параметр -v используется для отображения процесса работы программы на экране. Как только будет создана база данных, она сохранится в двоичном файле Tripwire Database (.twd), который доступен для записи только пользователю root (обычно в директории /var/lib/ tripwire) и зашифрована с использованием локального ключа. Файл может быть прочитан только с помощью команды twprint, которую может запустить только пользователь root. Вы можете проверить, что права на доступ к файлу и директории с данными Tripwire (по умолчанию /etc/tripwire and /var/lib/tripwire) запрещают другим пользователям доступ на чтение и изменение этой информации.

Режим интегральной оценки. Это обычный режим работы Tripwire. Программа сканирует файлы в поисках любых нарушений заданной политики. Отчет о работе сохраняется по адресу, заданному в переменной REPORTFILE в файле tw.cfg, который по умолчанию определен как /var/lib/tripwire/ report/.

Эта команда может сопровождаться заданием некоторых параметров. Вы можете задать альтернативные имена файлов политики, конфигурации, базы данных и отчета. Можете включить режим интерактивной работы ( -I ), который после завершения сканирования создает текстовый файл отчета в тестовом редакторе по умолчанию. Для сохранения ваших отчетов в зашифрованном виде воспользуйтесь параметром -E для ввода локальной секретной фразы. Вы также можете изменить политику, проигнорировав отдельный параметры ( -i ), делая проверки только определенного уровня опасности ( -l ), используя при проверке только заданные по именам правила ( -R ), или проверяя только определенные файлы. Например, если мы проверяем целостность только команды ls, мы должны ввести:

# tripwire -m c -v /bin/ls

Здесь мы задали режим интегральной оценки ( -m c ) с включенным расширенным режимом вывода ( -v ). Если мы не задаем имя файла в конце командной строки, Tripwire проверяет все файлы в базе данных, которая определена по умолчанию. Следующая команда задает для программы проверку только файлов с самым высоким уровнем опасности (более 100):

# tripwire -m c -v -l 100

Уровень опасности и имена правил могут быть заданы в файле политики. Параметры -i, -l и -R станут понятнее после прочтения раздела "Представление о файлах политики Tripwire".

Совет. Создав файл отчета (с расширением .twr), вы можете посмотреть текстовый файл, воспользовавшись утилитой twprint. Вы также можете воспользоваться утилитой twprint для распечатки в текстовом виде базы данных Tripwire (.twd). По умолчанию только пользователь с полномочиями root может запустить утилиту twprint, гарантирующую, что обычный пользователь не сможет увидеть содержание этих баз данных и отчетов.

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

Режим обновления базы данных. Если файл изменен и эти изменения законны, вам необходимо обновить базу данных для сохранения сведений о произведенных изменениях, чтобы информация об этих изменениях постоянно не попадала в отчеты. Чтобы воспользоваться этим режимом ( -m u ), вам необходимо найти ваш самый последний отчет и задать его в командной строке с помощью параметра -r:

# tripwire -m u -r /var/lib/tripwire/report/host-20020330-235028.twr

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

Если вы пролистаете раздел Object Summary отчета, вы сможете увидеть так называемые ballot boxes для каждого изменения, которое было произведено с момента последнего обновления базы данных и последней интегральной оценки:

----Rule Name: Tripwire Data Files (/var/lib/tripwire)
Severity Level: 100
----Remove the "x" from the adjacent box to prevent updating the database
with the new values for this object.

Added:
[x] "/var/lib/tripwire/originix.twd"

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

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

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

# tripwire -m p newpolicy.txt

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

Мы кратко обсудим проблему создания политики для Tripwire в разделе "Представление о файлах политики Tripwire "

Другие утилиты Tripwire
Tripwire поставляется с несколькими утилитами: twprint, twadmin и siggen.

Twprint. Как уже упоминалось, у twprint два режима работы: утилиту можно использовать для распечатки любого файла отчета ( -m r ) или базы данных ( -m d ) в виде текстового файла.

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

Внимание. Вы никогда не должны использовать twadmin для создания файла политики после того, как был установлен начальный файл политики. Это приведет к тому, что база данных и файл политики будут несинхронизированы. Если у вас есть текстовый файл политики, вы можете импортировать его в Tripwire, применив режим обновления политики приложения Tripwire ( tripwire -m p newpolicy.txt ).

Siggen. Утилиту siggen можно использовать для отображения шифрованных сигнатур для любого файла. Эти шифрованные строки являются сигнатурами, которые использует Tripwire для сравнения содержимого файла и анализа. Tripwire поддерживает формат шифрованной строки вида Haval, SHA/SHS, MD5 и CRC32.

Представление о файлах политики Tripwire

Файлы политики определяют для Tripwire, что следует и чего не следует искать. Обычно это шифрованные файлы в двоичном формате, но вы можете воспользоваться командой twadmin -m p current- policy.txt, чтобы сохранить текущий двоичный файл политики в текстовом формате и отредактировать его. Синтаксис текстового файла может оказаться весьма сложным для понимания. Он содержит определения переменных и определения правил. Каждое правило содержит две главные части: имя файла или директории и маску свойств. Ниже приведена часть примера файла политики.

/bin/login                  -> $(SEC_CRIT) ;    
/bin/ls                     -> $(SEC_CRIT) ;    
/bin/mail                   -> $(SEC_CRIT) ;    
/bin/more                   -> $(SEC_CRIT) ;    
/bin/mt                     -> $(SEC_CRIT) ;    
/bin/mv                     -> $(SEC_CRIT) ;

Обратите внимание, как имя файла или имя объекта отделяется от маски свойств символом -. SEC_CRIT представляет собой переменную, определенную в начале файла, которая задает разрешенную маску свойств. Обратите также внимание, что каждое правило завершается точкой с запятой (;).

Разрешенная маска свойств. Маски Tripwire управляют тем, какие свойства проверяются в каждом файле. Свойства, обозначенные знаком (+), проверяются, обозначенные знаком (-) - нет. Свойства, которые не обозначены соответствующим знаком, предположительно могут быть проверены. В этом случае все свойства, которые не включены в командную строку, игнорируются. В таблице 12.2 показаны описания каждого свойства.

Таблица 12.2. Маски свойств Tripwire
Свойство Описание
a Последнее время доступа.
b Блоки с выделенной памятью.
c Создать/изменить время.
d Устройство ID, на котором находится inode.
g Групповой ID владельца файла.
i Номер inode.
l Файл с разрешенным увеличением размера (хорош для чего-либо из /var/log).
m Модификация отмены времени.
n Контрольный счет inode (число связей).
p Разрешение на чтение/запись/исполнение файла и режима (setuid, setgid).
r Указание inode на устройство ID (для устройств только /dev).
s Размер файла.
t Тип файла (текстовый, данных, исполнимый).
u Пользовательский ID владельца файла.
C Шифрованная строка по методу CRC32.
H Шифрованная строка по методу Haval.
M Шифрованная строка по методу MD5.
S Шифрованная строка по методу SHA/SHS.
Совет. Параметр -i, задаваемый в режиме интегральной оценки ( -m c ), используется для игнорирования конкретных свойств в процессе проведения проверки. Например, выполняя команду tripwire -m c -i "p,s,u", мы сообщаем Tripwire, что необходимо выполнить интегральную оценку для всех файлов, но при этом игнорировать все изменения полномочий доступа, размеров файлов или пользовательских идентификаторов владельцев файлов.