Россия, Москва, Московский Государственный Открытый Университет, 2007 |
Комбинированные средства системного аудита
Реализация: свободно распространяемая версия
Рассмотрим свободно распространяемую версию Tripwire для Linux. Для программы доступны как rpm-пакеты, так и исходные тексты. Независимо от того, какую версию вы устанавливаете, есть некоторые обязательные действия, которые придется выполнить перед установкой Tripwire.
Запуск install.sh
Скрипт install.sh используется для установки Tripwire и должен быть запущен с полномочиями пользователя root. Запустив этот скрипт, вы получите запрос на подтверждение о согласии с лицензионным соглашением и выборе директории для установки программы (как правило, лучше использовать установки по умолчанию). После этих стандартных операций вас попросят ввести секретную фразу. Эта фраза используется для шифрования политик, баз данных и конфигурационных файлов с целью защиты их от подделки. Как только вы введете секретную фразу, скрипт сгенерирует ключ для шифрования ваших файлов. Вы получите запрос относительно общей секретной фразы для шифрования конфигурационных файлов и файлов политик. Секретная фраза будет сохраняться в виде текста на случай, если вы захотите что-то изменить.
Просмотр файлов политик и конфигурационных файлов
Файлы политик указывают 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".
После того как будет создана база данных, и вы запустите интегральную проверку, можете настроить утилиту 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 представляет собой интерфейс администратора для создания и просмотра конфигурационных файлов, создания и просмотра файлов политик, добавления или удаления шифрования в файлы и генерации новых ключей для шифрования.
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 показаны описания каждого свойства.