Отвечая на вопрос о частоте использования tripwire, все зависит от важности информации, и количестве пользователей, имеющих доступ к данному хосту. В идеале, проверка целостности системы должна войт в ежедневную привычку, как, например, чтение писем. Чем реже будет проводиться проверка целостности системы, тем больше изменений вам придется исследовать.
tripwire поставляется с некоторыми утилитами, которые используются для создания и поддержания базы данных tripwire, файла конфигураций и файла политик. Команда man twintro выведет следующее:
tripwire(8): используется для создания базы данных tripwire, и проверки целостности файловой системы.
twadmin(8): используется для создания, шифрования и ведения политик tripwire, конфигурационных файлов и файлов ключей.
twfiles(5): предлагает просмотр различных файлов, созданных tripwire, включая путь к файлу и настройки.
twconfig(4): описывает файл конфигураций
twpolicy(4): описывает файл политик и указывает файлы и директории, а также метод сканирования.
В процессе инсталляции по умолчанию будет создана база данных в /var/db/tripwire. В ней будут хранится файлы:
$ file /var/db/tripwire/* /var/db/tripwire/hostname.twd: data/var/db/tripwire/report: irectory
Имя базы данных будет соответствовать имения вашего компьютера. Заметьте, что файл с расширением twd не является ASCII файлом. Для просмотра файла необходимо использовать специальные утилиты, поставляемые с tripwire. Директория report, будет пустой по умолчанию.
Следует уточнить, что база данных инициализируется, используя параметры из файла политик. Во время инициализации, tripwire делает «снимок» всех файлов системы. При периодической проверке целостности системы, существует возможность отследить, какие файлы были изменены, и почему.
Во время установки, база данных была инициализирована со стандартными политиками безопасности. Для проверки целостности базы данных следует воспользоваться командой
$ tripwire --check
tripwire сделает проверку системы и сравнит ее со снимком, содержащемся в базе данных. При обнаружении каких либо изменений, данные будут выведены на монитор. Файл формата hostname-date-time.twr будет размещен в /var/db/tripwire/report. И снова же, этот файл не будет записан в кодировке ASCII. Для его просмотра следует воспользоваться утилитами:
$ cd /var/db/tripwire/report $ twprint --print-report -r hostname-20030309-104231.twr | more
Имя файла отчета будет зависеть от имени хоста и даты создания отчета.
Так выглядит отчет tripwire:
***** Note: Report is not encrypted. Tripwire(R) 2.3.0 Integrity Check Report Report generated by: root Report created on: Sun Mar 9 10:42:31 2003 Database last updated on: Never =============================================================================== Report Summary: =============================================================================== Host name: hostname Host IP address: 1.2.3.4 Host ID: None Policy file used: /usr/local/etc/tripwire/tw.pol Configuration file used: /usr/local/etc/tripwire/tw.cfg Database file used: /var/db/tripwire/hostname.twd Command line used: tripwire --check =============================================================================== Rule Summary: =============================================================================== ------------------------------------------------------------------------------- Section: Unix File System ------------------------------------------------------------------------------- Rule Name Severity Level Added Removed Modified --------- -------------- ----- ------- -------- Invariant Directories 66 0 0 0 Sources 100 0 0 0 Temporary directories 33 0 0 0 * Tripwire Data Files 100 1 0 0 Local files 66 0 0 0 Tripwire Binaries 100 0 0 0 Libraries, include files, and other system files 100 0 0 0 System Administration Programs 100 0 0 0 User Utilities 100 0 0 0 X11R6 100 0 0 0 NIS 100 0 0 0 (/var/yp) /etc 100 0 0 0 Security Control 100 0 0 0 * Root's home 100 0 0 1 FreeBSD Kernel 100 0 0 0 FreeBSD Modules 100 0 0 0 /dev 100 0 0 0 Linux Compatibility 100 0 0 0 (/compat) Total objects scanned: 102111 Total violations found: 2 *****
Отчет дает краткое описание о количестве новых, удаленных и измененных файлов со времени последней проверки системы. В данном случае был добавлен файл tripwire и изменен файл в директории root`а. Далее следует отчет о измененных файлах:
=============================================================================== Object Detail: =============================================================================== ---------------------------------------- Added Objects: 1 ---------------------------------------- Added object name: /var/db/tripwire/dhcp-17-14.kico2.on.cogeco.ca.twd.bak ------------------------------------------------------------------------------- ---------------------------------------- Modified Objects: 1 ---------------------------------------- Modified object name: /root Property: Expected Observed ------------- ----------- ----------- * Modify Time Sun Mar 9 09:54:01 2003 Sun Mar 9 10:42:34 2003 * Change Time Sun Mar 9 09:54:01 2003 Sun Mar 9 10:42:34 2003
В конце рапорта будет дан список всех ошибок. В этом случае – это ошибки Kerberos, с которыми пришлось столкнуться при установке tripwire.
Приведенный выше рапорт является образцом, и не показывает какие либо аномалии. Мы повторили проверку еще раз, предварительно:
Данный рапорт должен показать изменения, произведенные в системе. Ниже приведены соответствующие данные:
Rule Name Severity Level Added Removed Modified --------- -------------- ----- ------- -------- * Tripwire Data Files 100 1 0 0 * User Utilities 100 0 1 1 * /etc 100 0 0 6 * Root's home 100 0 0 1 =============================================================================== Object Detail: =============================================================================== ---------------------------------------- Removed Objects: 1 ---------------------------------------- Removed object name: /usr/bin/tip ---------------------------------------- Modified Objects: 1 ---------------------------------------- Modified object name: /usr/bin Property: Expected Observed ------------- ----------- ----------- * Modify Time Tue Mar 4 19:36:47 2003 Sun Mar 9 16:11:57 2003 * Change Time Tue Mar 4 19:36:47 2003 Sun Mar 9 16:11:57 2003 Здесь ничего неожиданного, сообщается, что /usr/bin/tip был удален 6 марта в 16:11:57 ------------------------------------------------------------------------------- ---------------------------------------- Modified Objects: 6 ---------------------------------------- Modified object name: /etc Property: Expected Observed ------------- ----------- ----------- * Modify Time Sat Feb 15 10:48:13 2003 Sun Mar 9 16:02:39 2003 * Change Time Sat Feb 15 10:48:13 2003 Sun Mar 9 16:02:39 2003 Modified object name: /etc/group.bak Property: Expected Observed ------------- ----------- ----------- * Inode Number 961 1297 * Size 404 461 * Modify Time Wed Sep 25 13:28:27 2002 Sun Feb 9 13:07:19 2003 * Change Time Sat Nov 9 14:35:21 2002 Sun Mar 9 16:02:39 2003 * CRC32 A676qQ CqOlUf * MD5 DyxBdqQBLU5dTDXG4sGHwl BRoZrUEyVXd6aCYc0TsG/M Modified object name: /etc/master.passwd Property: Expected Observed ------------- ----------- ----------- * Size 2042 2150 * Modify Time Sat Feb 15 10:48:13 2003 Sun Mar 9 16:02:39 2003 * Change Time Sat Feb 15 10:48:13 2003 Sun Mar 9 16:02:39 2003 * Blocks 4 8 * CRC32 DDJ4Ig BF6+V2 * MD5 DuVzv0gdyUQffuRQnHbKrC CxQW2V/pqjJ1ep5vzunMG5 Modified object name: /etc/passwd Property: Expected Observed ------------- ----------- ----------- * Inode Number 1956 1953 * Size 1499 1543 * Modify Time Sat Feb 15 10:48:13 2003 Sun Mar 9 16:02:39 2003 * Change Time Sat Feb 15 10:48:13 2003 Sun Mar 9 16:02:39 2003 * CRC32 AEOtzi CF+noG * MD5 DTYQyRBwdY/bsHG3TzCDS0 A35b+lMv45SAzp25IoUmVW Modified object name: /etc/pwd.db Property: Expected Observed ------------- ----------- ----------- * Inode Number 1906 1012 * Modify Time Sat Feb 15 10:48:13 2003 Sun Mar 9 16:02:39 2003 * Change Time Sat Feb 15 10:48:13 2003 Sun Mar 9 16:02:39 2003 * CRC32 B4ufr3 Du5vQF * MD5 A5cw0I8QyfWE76jhIupjbx Aw92gyYFa0DPEx+eGFG1MM Modified object name: /etc/spwd.db Property: Expected Observed ------------- ----------- ----------- * Inode Number 1955 1837 * Modify Time Sat Feb 15 10:48:13 2003 Sun Mar 9 16:02:39 2003 * Change Time Sat Feb 15 10:48:13 2003 Sun Mar 9 16:02:39 2003 * CRC32 B1+c6t BnB5nm * MD5 BeDTKuET4SYQH9UgLdsv5i BCU119GuWEYDvMd00+8LnP ------------------------------------------------------------------------------- Rule Name: Security Control (/etc/group) Severity Level: 100 ------------------------------------------------------------------------------- ---------------------------------------- Modified Objects: 1 ---------------------------------------- Modified object name: /etc/group Property: Expected Observed ------------- ----------- ----------- * Inode Number 1297 961 * Size 461 475 * Modify Time Sun Feb 9 13:07:19 2003 Sun Mar 9 16:02:39 2003 * Change Time Sun Feb 9 13:07:19 2003 Sun Mar 9 16:02:39 2003 * CRC32 CqOlUf AdqVt7 * MD5 BRoZrUEyVXd6aCYc0TsG/M AFcDFbm7SEtHIYfQ7jy+KS
Заметьте, как много событий произошло в системе, когда был добавлен пользователь. Сделаны изменения в файлах passwd и master.passwd, в group database и ее копии, в базах данных pwd.db и spwd.db.
Поскольку отчет содержит дату и время изменения, можно начать расследование, опираясь на них. Для начала, можно изучить логи или опросить пользователей, пытаясь выяснить, кто мог работать на данной системе в определенное время.
Заметьте, что tripwire также содержит данные прошлого отчета. В данном случае, все еще есть записи о создании одного файла и изменении другого в директории root`а. Обычно, после проверки отчета, данные о изменениях комментируются администратором, во избежания повторного их просмотра. Для этого следует сделать следующее:
$ tripwire --update -r hostname-date-time.twr
Через некоторое время будет открыт отчет в редакторе vi по умолчанию. Ближе к окончанию находятся следующий строки:
Remove the "x" from the adjacent box to prevent updating the database with the new values for this object. Removed:[x] "/usr/bin/tip"
По умолчанию, все изменения обозначаются как x. Это означает, что изменения не будут повторяться, когда будет создан новый отчет.
Итак, наберем qw для записи и выйдем из редактора. После ввода пароля, база данных будет изменена.
До этого времени использовались стандартные политики. Следующий пример продемонстрирует некоторые изменения в файле политик для получения информации об ошибках в отчете tripwire
При утстановке tripwire, файл политик по умолчанию был создан в /usr/local/etc/tripwire/tw.pol. Этот файл используется tripwire во время проверки в базе. Его невозможно непосредственно редактировать, так как файл зашифрован и подписан, хотя существует текстовый файл в /usr/local/etc/tripwire/twpol.txt. Следует вносить все изменения именно в этот текстовый файл, а затем с помощью утилиты внести изменения в файл политик.
Начнем с изучения содержания этого файла /usr/local/etc/tripwire:
$ cd /usr/local/etc/tripwire && file * hostname-local.key: data site.key: data tw.cfg: data tw.pol: data twcfg.txt: ASCII text twpol.txt: ASCII English text twpol.txt.bak: ASCII English text
Заметим, что файл политик (tw.pol) и файл конфигураций (tw.cfg) являются типа data. Каждый из них имеет свой эквивалент в виде текстового файла (копия файла политик - twpol.txt.bak).
С первого взгляда, файл политик может показаться отнюдь не привлекательным из-за ужасного синтаксиса. Но это не так страшно. Порт во FreeBSD создает файл политик, который должен включать в себя все, что касается инсталляции системы. Заметьте, что некоторые строки начинаются с знака #. Это означает, что строка закомментирована. Если есть потребность в проверке данной директории, необходимо просто стереть этот знак. Также, если нет необходимости проверять какую-то директорию, можно закомментировать соответствующую строку, используя #.
В данном случае, мы комментируем все записи, связанные с Kerberos в файле twpol.txt. После сохранения изменений в текстовом файле, необходимо обновить зашифрованные файл политик:
$ tripwire --update-policy twpol.txt Parsing policy file /usr/local/etc/tripwire/twpol.txt Please enter your local passphrase: Please enter your site passphrase:
Лучше всего делать проверку целостности системы сразу же после смены политик, из-за возможности возникновения конфликтов в базе данных tripwire ввиду изменения некоторых файлов с момента последней проверки. Хотя данный способ и является неудобным, это практически единственно правильное решение, которое позволяет избежать внесения изменений в другие файлы, до перезаписи файла политик. В случае неудачного обновления файла политик, необходимо провести проверку системы на целостность еще раз, и затем попробовать снова обновить файл политик.
Наличие комментариев – это самый легкий путь для контроля мониторинга файлов с помощью tripwire. Дополнительную информацию о файле политик можно получить посредством команды man twpolicy.
Файл конфигураций выглядит более дружественно. Информацию о нем можно получить с помощью man twconfig. Также существует возможность выбора редактора. По умолчанию прописан редактор vi. Все, что нужно – указать в следующей строчке путь к редактору.
EDITOR =/usr/bin/vi Для обновления зашифрованного файла конфигураций сделайте следующее: $ twadmin --create-cfgfile -S site.key twcfg.txt Please enter your site passphrase:
Может возникнуть ошибка синтаксиса, если отсутствует параметр -S site.key.
Отвечая на вопрос о частоте использования tripwire, все зависит от важности информации, и количестве пользователей, имеющих доступ к данному хосту. В идеале, проверка целостности системы должна войт в ежедневную привычку, как, например, чтение писем. Чем реже будет проводиться проверка целостности системы, тем больше изменений вам придется исследовать.
Для соблюдения мер предосторожности, желательно текстовые файлы конфигураций и отчеты хранить не на жестком диске, а на сменных носителях, таких как дискеты, диски или пленки.
Дополнительную информацию о создании файла политик можно найти сдесь: http://www.cert.org/security-improvement/implementations/i002.02.html
Хотя статья и посвящена установке tripwire на Solaris, из нее можно извлечь некоторые ценные советы по использованию данной утилиты.
Спойлер: мы раскрываем их любимые трюки