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. key /etc/tripwire/twpol.txt
Я ввел ключ своего сайта, как ожидалось, и политика была обновлена без ошибок.
Когда я запускаю проверку, ошибок и нарушений нет.
Затем, чтобы проверить это, я добавил дополнительное пространство к одному из файлов ( /home/foouser1/www/foo/bar/js/script.js
), который ранее (и неоднократно) был взломан. Это должно вызвать нарушение.
Повторный запуск проверки ( tripwire --check -R Websites
-v) показывает несколько проблем:
/ home / foouser1 / www
. / 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 работает должным образом.