Назад | Перейти на главную страницу

Tripwire пропускает файлы?

TL; DR:

Вопрос: как настроить Tripwire для просмотра ВСЕГО, что находится ниже определенного пути? Моя текущая конфигурация, похоже, смотрит только на определенные файлы / каталоги по заданному пути, а не на все.

Предыстория / Полная история:

Недавно я установил Tripwire на сервер с уязвимым кодом PHP. Я добавил правило под названием «Веб-сайты», которое включает ряд сайтов, которые запускаются с сервера (фрагмент ниже).

 # Rulset for websites
 (
   rulename = "Websites",
   severity = $(SIG_HI),
   emailto = "webmaster@hackedsite.com"
 )
 {
   /home/foouser1/www/ -> $(SEC_CRIT) (recurse = 1);
   /home/foouser2/www/ -> $(SEC_CRIT) (recurse = 1);
   /home/foouser3/www/ -> $(SEC_CRIT) (recurse = 1);
   /home/foouser4/www/ -> $(SEC_CRIT) (recurse = 1);
   /home/foouser5/www/ -> $(SEC_CRIT) (recurse = 1);
   /home/foouser6/www/ -> $(SEC_CRIT) (recurse = 1);
   /home/foouser7/www/ -> $(SEC_CRIT) (recurse = 1);
   /home/foouser8/www/ -> $(SEC_CRIT) (recurse = 1);
   /home/foouser9/www/ -> $(SEC_CRIT) (recurse = 1);
   /home/foouser10/www/ -> $(SEC_CRIT) (recurse = 1);
   /home/foouser11/www/ -> $(SEC_CRIT) (recurse = 1);
   /home/foouser12/www/ -> $(SEC_CRIT) (recurse = 1);
 }

Затем я обновил политику, используя:

/usr/sbin/twadmin --create-polfile -S site.key /etc/tripwire/twpol.txt

Я ввел ключ своего сайта, как ожидалось, и политика была обновлена ​​без ошибок.

Когда провожу проверку, ошибок и нарушений нет.

Затем, чтобы проверить это, я добавил дополнительное место в один из файлов (/home/foouser1/www/foo/bar/js/script.js), которые ранее (и неоднократно) были скомпрометированы. Это должно вызвать нарушение.

Повторный запуск проверки (tripwire --check -R Websites -v) показывает несколько проблем:

  1. Tripwire игнорировал файл, даже если он был ниже заявленного пути к файлу /home/foouser1/www.
  2. Он сканирует кучу файлов, находящихся в /home/foouser1/www, Но не все из них.

Наконец, когда я сравниваю содержимое каталога /home/foouser1/www По сравнению с количеством файлов, просканированных tripwire, существует огромная разница.

find /home/foouser1/www/ -type f -print | wc -l показывает мне, что в этом каталоге есть более 3000 файлов, которые следует отслеживать с помощью tripwire.

find /home/foouser1/www/ -type d -print | wc -l показывает мне, что в этом каталоге есть 192 подкаталога, которые следует отслеживать с помощью tripwire.

Tripwire сообщает, что они просмотрели только 192 объекта.

Оказывается, что (recurse = 1) не нужен. Рекурсивная проверка файлов и подкаталогов включена по умолчанию. Но для того, чтобы зафиксировать незначительные изменения (например, однобайтовые изменения), вам необходимо проверить хеш файла (предпочтительнее SHA). Итак, вы можете использовать в качестве маски следующую переменную:

SEC_HACK_DETECT = $(IgnoreNone)-a ; # Files that should not change

Между этими двумя изменениями Tripwire работает должным образом.