Использование Tripwire

После того, как была создана база данных, Tripwire готов к употреблению. Если он был установлен с RPM, то будет параллельно добавлена задача cron: Tripwire будет запускаться ежедневно. Если же он был установлен вручную, для автоматической ежедневной проверки нужно создать файл twcheck в /etc/cron.daily:

#!/bin/sh

HOST_NAME= 'uname -n'

if [ ! -e /var/lib/tripwire/${HOST_NAME}.twd ]; then echo "*** Error: Tripwire database for ${HOST_NAME} not fountd"

echo "*** Run "/etc/tripwire/twinstall.sh" and/or "tripwire —init." else

test -f /etc/tripwire/tw.cfg && /usr/sbin/tripwire --check fi


     Ручная проверка.

     Для ручной проверки выполните команду:

# /usr/sbin/tripwire --check

Parsing policy file: /etc/tripwire/tw.pol

*** Processing Unix File System ***

### Warning: File system error.

### Filename: /usr/sbin/fixrmtab

### No such file or directory

### Continuing...

     Опять видно сообщения о несуществующих файлах/каталогах. По окончании сканирования в каталог /var/lib/tripwire/report будет записан ответ, и отчет будет выведен на STDOUT:

Wrote report file: /var/lib/tripwire/report/polo-20040905-013157.twr

Tripwire(R) 2.3.0 Integrity Check Report

Report generated by: root

Report created on: Sun 05 Sep 2010 04:26:11 1ST

Database last updated on: Never

Report Summary:

Host name: polo

Host IP address: 127.0.0.1

Host ID: None

Policy file used: /etc/tripwire/tw.pol

Configuration file used: /etc/tripwire/tw.cfg

Database file used: /var/lib/tripwire/polo.twd

Command line used: /usr/sbin/tripwire --check

Rule Summary:

Section: Unix File System

Rule name Security Level Added Removed

Modified

Invariant Directories 66 0 0 0

Critical devices 100 0 0 0

Temporary directories 33 0 0 0

*Tripwire Data files 100 10 0

*Root config files 100 0 0 2

User binaries 66 0 0 0

Tripwire binaries 100 0.0 0

Critical configuration files 100 0 0 0

Libraries 66 0 0 0

Operating System Utilities 100 0 0 0

Critical system boot files 100 0 0 0

File System and Disk Administration Programs 100 0 0 0

Kernel Administration Programs 100 0 0 0

Network Programs 100 0 0 0

System Administration Programs 100 0 0 0

Hardware and Device Control Programs 100 0 0 0

System Information Programs 100 0 0 0

Application Information Programs 100 0 0 0

Shell Related Programs 100 0 0 0

Critical Utility Sym-Links 100 0 0 0

Shell binaries 100 0 0 0

System boot changes 100 0 0 0

OS executables and libraries 100 0 0 0

Security control 100 0 0 0

Login Scripts: 100 0 0 0

Total objects scanned: 36816 Total violations found: 3

Object Summary:

Section: Unix File System

Rule name: Root config files (/root) Security Level: 100

Modified:

"/root"

"/root/.viminfo"

Rule name: Tripwire Data Files (/var/lib/tripwire) Security Level: 100

Added: "/var/lib/tripwire/polo.twd"

Error Report:

Section: Unix File System

1. File system error.

Filename: /usr/sbin/fixrmmtab No such file or directory

*** End of report ***

Tripwire 2.3 Portions copyright 2000 Tripwire, Inc. Tripwire is a registered trademark of Tripwire, Inc.

This software comes with ABSOLUTELY NO WARRANTY; for details use --version. This is free software which may be redistributed or modified only under certain conditions; see COPYING for details.

All rights reserved.

Integrity check complete.

     Как видно, было обнаружено нарушение правил: файл /var/lib/tripwire/polo.twd (база данных Tripwire) был добавлен, а файл /root/.vminfo (применяется текстовым редактором vim) изменен, в результате чего модифицированным считается каталог /root, о чем и сообщил Tripwire.

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

     Чтобы Tripwire не выводил предупреждения на изменение файла .vminfo, нужно определить этот файл как Dynamic или просто добавить следующее правило в файл правил (чтобы Tripwire игнорировал этот файл):

!/root/.vminfo

     Если же изменен важный файл, к примеру, отредактирован какой-то конфигурационный файл в каталоге /etc, то нужно сообщить об данном Tripwire. Для этого Tripwire запускается с опцией -update и опцией -twrfile, после которой показывается файл отчета:

# tripwire --update --twrfile /var/tripwire/report

     Tripwire запустит текстовый редактор (vi по умолчанию), в котором откроет ответ для проверки и изменения. Как показано в следующем листинге, нужно выделить X все объекты, которые можно обновить.

Rule Name: Root config files (/root) Severity Level: 100 4

Remove the "X" from the adjacent box to prevent updating the database with the new values for this object

Modified:

[X] "/root"

[X] "/root/.vminfo"

     Информация обо всех объектах, отмеченных X, будет обновлена в базе данных. После того, как проверка отчета закончена, нужно ввести «:q» для выхода из vi (сохранять изменения с помощью «:w» не надо). Как только vi будет закрыт, база данных обновится.

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

Если надо обновить файл правил, необязательно производить всю процедуру со сценарием twinstall.sh заново. Довольно просто ввести команду:

# tripwire --update-policy policyfile.txt

Где policy.txt — новый файл правил.

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

     ACL не позволяет пользователю выполнить с описанными в базе объектами определенные действия, a Tripwire только информирует администратора, если такие изменения произошли. Администратор и не узнает о произошедших изменениях, пока не запустит проверку целостности.

     Даже если администратор и заметит нарушение целостности, у него может не оказаться времени этим заниматься — кто его знает, по какой причине изменился тот или иной файл, чтобы это выяснить, надо время, которого может и не быть. Чтобы это нарушение его не беспокоило, он может просто добавить в файл правило игнорирования того или иного объекта, а потом вообще о нем забыть.

     Чтобы решить первую проблему, надо каждый раз запускать Tripwire с помощью cron — просто добавить Tripwire расписание cron и каждый день получать отчеты. А вот для решения второй проблемы помогут уровни безопасности — чем выше уровень, тем важнее объект.

     Если уровень высокий, обязательно надо разобраться, почему объект был изменен. А если уровень низкий, надо отложить это на некоторое время.


Источник статьи