Как использовать AIDE и Auditd?

Вопрос или проблема

В настоящее время я пытаюсь оптимизировать использование AIDE и Auditd на своей системе, но мне кажется, что я упускаю лучшие практики, особенно когда речь идет о конфигурации AIDE.

При настройке AIDE следует ли мне исключать все по умолчанию, а затем вручную включать определенные папки и файлы для мониторинга, или есть более удачный подход, который используют другие?

Например, я заметил некоторые проблемы:

Такой файл, как Fail2Ban SQL, необходимо исключить.
Лог-файлы также необходимо исключать, так как они постоянно изменяются.
В результате мой список исключений становится очень большим, и я задаюсь вопросом, не излишне ли я усложняю конфигурацию.

Я был бы очень признателен, если бы кто-нибудь мог поделиться своим опытом, лучшими практиками или примером оптимальной конфигурации AIDE. Как вы обеспечиваете эффективный и управляемый мониторинг без исключения слишком многого или слишком малого?

При настройке AIDE следует ли мне исключать все по умолчанию, а затем вручную включать определенные папки и файлы для мониторинга

Я полагаю, это зависит от того, какого результата вы хотите добиться.

  • Вы пытаетесь обнаружить аномальное поведение в вашей системе?
  • Вы пытаетесь выполнить требование по соответствию?
  • Вы хотите иметь учет того, кто и что меняет в вашей системе?

Мой общий совет:

  1. включить все
  2. запустить dailyaidecheck (systemctl reset-failed dailyaidecheck.service; systemctl start dailyaidecheck.service)
  3. просмотреть /var/log/aide/aide.log, сосредоточившись на одном или двух конкретных приложениях/поведениях
  4. выяснить, ПОЧЕМУ вы получили это сообщение (т.е. что сообщает вам aide о произошедших изменениях в файле)
  5. решить, важно ли это приложение/поведение для вашего использования
  6. действовать соответственно
  7. повторять с шага 2, пока не завершите весь список

Я думаю, что вы должны быть реалистичны в том, что именно aide может сделать для вас – это всегда будет реактивный подход, т.е. хакер уже сделал то, что хотел, или же сдался. К тому же, если вы запускаете его ежедневно, к моменту, когда вы это увидите, это может быть уже устаревшей новостью.

Это невероятно полезно в ситуациях, когда “CrowdStrike (или любое другое ПО для защиты) определило/ликвидировало вредоносный скрипт… как этот скрипт вообще попал на систему?”

Помните, что вам не обязательно удалять все из файла журнала – вы можете использовать что-то вроде logwatch, чтобы скрыть то, что вам не интересно, и отправлять себе только ежедневное резюме того, что вы не отфильтровали.

Лог-файлы также необходимо исключать, так как они постоянно изменяются.

Если вы еще не отправляете свои лог-файлы на удаленный syslog-сервер (например, graylog), я настоятельно советую не исключать логи.

Лог-файлы должны изменяться только в очень специфических случаях (добавляются новые строки, происходит ротация логов) – вы должны быть уверены, что лог-файл, который уже был ротацирован, изменился (т.е. изменился нераспакованный хэш), так как это может свидетельствовать о том, что кто-то пытается скрыть свои следы.

В общем, вероятно, вам может понадобиться что-то подобное для каждого лога, который вам важен:

# логи ubuntu-advantage
/var/log/ubuntu-advantage(-timer)?\\.log$ f ActLog
/var/log/ubuntu-advantage(-timer)?\\.log\\.1$ f RotLog
/var/log/ubuntu-advantage(-timer)?\\.log\\.2\\.@@{LOGEXT}$ f CompSerLog
/var/log/ubuntu-advantage(-timer)?\\.log\\.[3-5]\\.@@{LOGEXT}$ f MidlSerLog
/var/log/ubuntu-advantage(-timer)?\\.log\\.6\\.@@{LOGEXT}$ f LastSerLog

Я склонен создавать отдельные файлы в /etc/aide/aide.conf.d, сосредоточенные на конкретных приложениях, и корректировать каждое приложение по необходимости.

например, для landscape у меня есть:

# landscape client обновляет bpickle файлы
/var/lib/landscape/client$ d VarDir
/var/lib/landscape/client/(broker|keystone|monitor)?\\.bpickle(\\.old)?$ f VarFile
# landscape client периодически добавляет/удаляет файлы здесь
/var/lib/landscape/client/messages/[0-4]$ d VarDir
/var/lib/landscape/client/messages/[0-4]/.*$ f Full+ANF+ARF
# логи landscape
/var/log/landscape/(broker|manager|monitor|package-reporter|sysinfo|watchdog)\\.log$ f ActLog
/var/log/landscape/(broker|manager|monitor|package-reporter|sysinfo|watchdog)\\.log\\.1\\.@@{LOGEXT}$ f CompSerLog
/var/log/landscape/(broker|manager|monitor|package-reporter|sysinfo|watchdog)\\.log\\.[2-3]\\.@@{LOGEXT}$ f MidlSerLog
/var/log/landscape/(broker|manager|monitor|package-reporter|sysinfo|watchdog)\\.log\\.4\\.@@{LOGEXT}$ f LastSerLog

А для snap, мне просто надоело с ним возиться, поэтому я просто стал игнорировать большие части. Я не уверен, что это можно назвать «лучшей практикой», но я сам действительно не интересуюсь мониторингом через read-only монтирования :/

# Игнорировать snap read-only монтирования
!/snap/.*

В идеале, вы также будете рассматривать возможность хранения базы данных aide на удаленной системе, чтобы предотвратить изменение вашей локальной базы данных aide злоумышленником (например, перенести /var/lib/aide/aide.db в smb://remote-read-only-server/aide/aide.db)

Ответ или решение

Теория

AIDE (Advanced Intrusion Detection Environment) и Auditd являются мощными инструментами безопасности, используемыми для мониторинга и защиты систем. Они играют ключевую роль в обнаружении несанкционированных изменений в файловой системе (AIDE) и аудите системных событий (Auditd). Несмотря на их эффективность, использование этих инструментов может показаться сложным, особенно при их первоначальной настройке и конфигурации.

AIDE действует путем создания базового снимка состояния файловой системы, который затем используется для сравнения с текущим состоянием при запуске проверок. Это позволяет администратору выявлять несоответствия, которые могут указывать на взлом системы или несанкционированные изменения.

Auditd служит для аудита различных системных событий, от изменений в конфигурации до несанкционированного доступа. Он позволяет отслеживать, кто и когда совершил определенные действия в системе, обеспечивая детализированные отчеты для анализа.

Пример

Предположим, вы хотите оптимизировать использование AIDE и Auditd в вашей системе для повышения уровня безопасности. Вы можете следовать следующим шагам и рекомендациям.

  1. Начальная конфигурация AIDE:

    • Все включить по умолчанию. Начните с включения мониторинга всех каталогов и файлов. Это даст вам общее представление обо всех изменениях, происходящих в системе.
    • Анализируйте результаты: Запустите проверку с использованием dailyaidecheck и изучите логи, такие как /var/log/aide/aide.log. Сосредоточьтесь на изменениях в нескольких приложениях или поведениях системы.
    • Определите важность: Анализируйте, какие изменения являются ключевыми для вашей безопасности или достигают цели, которую вы хотите достичь, например, соблюдение требований безопасности.
    • Адаптация конфигурации: Увеличивайте или уменьшайте объем мониторинга, исключая неважные файлы или включив необходимые, повторяя анализ и настройку.
  2. Настройка Auditd:

    • Определите события для аудита. Выберите события, связанные с критическими файлами, попытками неавторизованного доступа или действиями администраторов.
    • Создание правил: Настройте правила в /etc/audit/rules.d/ для отслеживания интересующих вас событий.
    • Мониторинг и отчетность: Используйте ausearch и aureport для поиска и отчетов по событиям, чтобы понимать, какие действия были совершены и кем.
  3. Конфигурация исключений:

    • Журналы и частоизменяющиеся файлы. Так как журналы системных событий постоянно обновляются, подумайте об их исключении из AIDE, чтобы избежать ложных срабатываний. Впрочем, исключение всех логов не рекомендовано, так как это может скрыть важные изменения.
    • Сложные приложения: Например, для фильтрации лишних изменений в snap, вы можете использовать частичное игнорирование, как показано:
      # Игнорирование snap разделов только для чтения
      !/snap/.*

Применение

Чтобы эффективно использовать AIDE и Auditd, следует придерживаться следующих принципов:

  1. Постоянное обновление и адаптация конфигурации. По мере развития системы и появления новых угроз, конфигурации AIDE и Auditd должны адаптироваться. Это может включать добавление или удаление файлов из мониторинга, обновление правил аудита и регулярное обучение на изменениях в системе.

  2. Автоматизация и интеграция. Подумайте об автоматизации процессов анализа и обработки логов, используя инструменты мониторинга, такие как Nagios или ELK-стек, для более эффективного управления уведомлениями и отчетами.

  3. Обучение и осведомленность. Убедитесь, что ваша команда понимает, как интерпретировать данные AIDE и Auditd, и обучена реагировать на потенциальные угрозы. Регулярные обучающие сессии помогут улучшить осведомленность и реакцию в случае срабатывания системы безопасности.

Таким образом, использование AIDE и Auditd может стать мощным инструментом в вашем арсенале, помогая вам сохранять контроль над изменениями и событиями в системе, повышая общую безопасность и устойчивость к атакам.

Оцените материал
Добавить комментарий

Капча загружается...