Вопрос или проблема
Я установил tripwire, следуя этой онлайн-документации на чистом сервере ubuntu 22.x. Я выполнил инструкции из документации точно и не добавлял никаких дополнительных модификаций к файлам cfg или pol.
Вскоре после этого я получил следующие исключения, которые, как мне кажется, связаны с базовым вращением логов:
Название правила: Изменения загрузки системы (/var/log)
Уровень серьезности: 100
Добавлено:
"/var/log/syslog.3.gz"
"/var/log/mail.log.3.gz"
"/var/log/auth.log.3.gz"
"/var/log/kern.log.3.gz"
Изменено:
"/var/log/auth.log"
"/var/log/auth.log.1"
"/var/log/auth.log.2.gz"
"/var/log/kern.log"
"/var/log/kern.log.1"
"/var/log/kern.log.2.gz"
"/var/log/mail.log"
"/var/log/mail.log.1"
"/var/log/mail.log.2.gz"
"/var/log/syslog"
"/var/log/syslog.1"
"/var/log/syslog.2.gz"
Мой вопрос в том, как правильно настроить конфигурацию / политику tripwire, чтобы вращение логов не вызывало исключений в отчете. Вращение логов — это базовая функция, которая является стандартной для большинства дистрибутивов Linux и не должна вызывать у tripwire, предназначенного для обнаружения несанкционированных изменений в ключевых компонентах (например, руткиты), сообщений об исключениях уровня серьезности 100.
В вашем файле конфигурации политики tripwire (debian или ubuntu: /etc/tripwire/twpol.txt) под
'rulename = "Изменения загрузки системы",'
измените
/var/log -> $(SEC_CONFIG) ;
на
/var/log -> $(IgnoreAll) ;
что позволит эффективно игнорировать все изменения в лог-файлах. [ Ссылка: man twpolicy
]
Имена лог-файлов должны по-прежнему существовать, но любые изменения содержимого будут игнорироваться. Обычные заменяющие имена файлов лога будут игнорироваться, как только они будут установлены.
Но любые новые или удаленные имена файлов или директорий будут сообщены. В вашем примере выше, записи Added
будут по-прежнему сообщаться, но записи Modified
будут игнорироваться.
В качестве соображения безопасности надеюсь, что вы также отправляете журналы на удаленный сервер. Вторженец может обнулить эти локальные журналы, и tripwire будет игнорировать это.
Также не забудьте выполнить sudo tripwire -m p -Z low /etc/tripwire/twpol.txt
(или аналогичную команду) после изменения текстового файла, чтобы сделать изменения активными.
Хотя использование переменной $(IgnoreAll) работает для целей этого вопроса, может быть предпочтительно поддерживать некоторую базовую наблюдательность за файлами в /var/log/.
Опция $(SEC_INVARIANT) с полной рекурсией (recurse = 0) будет уведомлять об изменениях собственника или прав доступа, по крайней мере.
/var/log -> $(SEC_INVARIANT) (recurse = 0) ;
Это помогло мне снизить количество безобидных сообщений от tripwire.
Ответ или решение
Tripwire — это инструмент для контроля целостности файлов, широко используемый для обнаружения несанкционированных изменений в критически важных компонентах системы. Когда он настроен для мониторинга /var/log, ряд изменений может считаться незначительными или системными, например ротация логов. Однако в вашей ситуации, когда Tripwire сообщает о ротации логов как об изменениях с уровнем серьезности 100, возникает вопрос о правильной настройке его политики для снижения подобных ложных срабатываний.
Теория
Ротация логов — это стандартная практика управления лог-файлами, позволяющая избегать их чрезмерного увеличения в объеме. Крупные файлы журналов могут быть тяжелыми в обработке и неэффективными в плане записи. Обычно в Linux системах это осуществляется с помощью утилиты logrotate
, которая архивирует старые файлы и создает новые. Чтобы Tripwire не рассматривал подобные операции как потенциальные угрозы, его конфигурация должна быть адаптирована с учетом этих регулярных системных изменений.
Пример
Ваш конфигурационный файл политики Tripwire на Ubuntu находится в /etc/tripwire/twpol.txt. В этом файле используется секция с именем rulename = "System boot changes"
, в которой по умолчанию прописан мониторинг директории /var/log с помощью какого-либо шаблона, такого как $(SEC_CONFIG). Эта настройка может включать в себя строгий мониторинг, который отслеживает все изменения, включая добавление, удаление и модификацию файлов.
Изменив эту настройку, вы можете контролировать, какого рода файлы должны попадать под мониторинг, а какие изменения должны быть проигнорированы. Например, использование $(IgnoreAll) позволяет игнорировать все виды изменений в каталогах, но все же будет сигнализировать о добавлении новых файлов или удалении существующих.
Однако, поскольку абсолютное игнорирование изменений логов может представлять собой риск, например, если злоумышленник начинает манипулировать данными логов для сокрытия следов своих действий, более разумным подходом может быть использование переменной $(SEC_INVARIANT), которая продолжает отслеживать изменения в правах доступа и собственнике без учета регулярной модификации файлов самих данных.
Применение
Теперь, когда у вас есть теоретическое представление о необходимых изменениях, давайте рассмотрим, как именно можно внести корректировки:
-
Обновите файл политики Tripwire:
Откройте /etc/tripwire/twpol.txt и замените строку:
/var/log -> $(SEC_CONFIG) ;
На одну из следующих в зависимости от ваших нужд:
Чтобы полностью игнорировать изменения данных логов:
/var/log -> $(IgnoreAll) ;
Чтобы следить за изменениями прав и собственника:
/var/log -> $(SEC_INVARIANT) (recurse = 0) ;
-
Активируйте изменения:
После модификации файла политики в командной строке выполните следующую команду для повторной инициализации политики:
sudo tripwire -m p -Z low /etc/tripwire/twpol.txt
Эта команда перезагрузит политику с низким уровнем проверки, что позволит вам применить новые правила без назначения высоких штрафов за совпадающие изменения.
-
Логирование на удаленный сервер:
Убедитесь, что помимо локальной записи логов, ваши логи также отправляются на удаленный сервер через syslog. Это критически важно для обеспечения безопасности, так как удаленные записи могут быть менее уязвимы для манипуляций со стороны злоумышленников.
-
Мониторинг и адаптация:
Периодически пересматривайте систему мониторинга, чтобы понимать, какие сообщения все еще генерируются, и какие из них действительно требуют внимания. Это поможет постепенно уточнять политику Tripwire, минимизируя ложные срабатывания и сохраняя баланс между безопасностью и эффективностью.
Следуя данному плану, вы сможете более грамотно конфигурировать Tripwire для обработки ротаций лог-файлов, минимизируя ложные положительные срабатывания и продолжая обеспечивать высокий уровень защиты системы от несанкционированных изменений.