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 объекта.

1 ответ

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

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

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

Другие вопросы по тегам