Опубликован: 20.02.2007 | Уровень: специалист | Доступ: платный
Лекция 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, что необходимо выполнить интегральную оценку для всех файлов, но при этом игнорировать все изменения полномочий доступа, размеров файлов или пользовательских идентификаторов владельцев файлов.
Сергей Хлюкин
Сергей Хлюкин
Россия, Москва, Московский Государственный Открытый Университет, 2007
Игорь Касаткин
Игорь Касаткин
Россия, Москва