auditd & Аудит системы
Тема дорожной карты · Linux & Unix Fundamentals
auditd — это пользовательский демон, который собирает события из ядра операционной системы. Он отслеживает обращения к файлам, системные вызовы, входы пользователей и нарушения политики безопасности. Правила для auditd хранятся в директории /etc/audit/rules.d/, где каждый файл .rules содержит определённые правила аудита. Эти правила загружаются в систему при помощи команды augenrules --load, а активный набор правил можно просмотреть с помощью команды auditctl -l. Запросы к журналу аудита выполняются через команду ausearch -k <key>, а сводки событий — через aureport. Механизм auditd является стандартным для соответствия требованиям стандартов безопасности, таких как CIS, PCI-DSS и STIG. Однако, важно следить за размером журнала аудита, так как тяжёлые правила на системные вызовы могут быстро увеличить размер файла /var/log/audit/audit.log. Для предотвращения этого, настройте параметры max_log_file и space_left_action.
Как это работает
auditd & Аудит системы — это многоуровневая защита (defence in depth): ядро операционной системы и пакеты должны быть пропатчены, сервисы должны запускаться под непривилегированными пользователями, а SSH-ключи и отключение входа для пользователя root должны быть настроены. Включите firewall (ufw, firewalld), используйте механизмы MAC (SELinux или AppArmor) для дополнительной защиты, активируйте аудит через auditd, и используйте fail2ban для защиты от атак. Также следует использовать сильные алгоритмы шифрования для хеширования паролей и регулярно создавать бэкапы системы до того, как потребуется их восстановление. Инструменты для проведения аудита безопасности включают lynis, chkrootkit/rkhunter и aide.
Когда применять
CIS Benchmark для вашего дистрибутива Linux — это базовая конфигурация, от которой следует отталкиваться при настройке системы. Для интернет-ориентированных сервисов важно использовать только HTTPS, использовать SSH-ключи для аутентификации, включить fail2ban для защиты от DDoS-атак и настроить авто-обновления безопасности (unattended-upgrades на Debian, dnf-automatic на RHEL). Для многопользовательских систем рекомендуется использовать SELinux или AppArmor для обеспечения дополнительной безопасности. Для одноцелевых устройств стандартные настройки дефолта обычно достаточны. Подпишитесь на рассылку безопасности вашего дистрибутива, чтобы быть в курсе последних уязвимостей и обновлений.
Типичные ошибки
Типичные ошибки при использовании auditd и аудита системы включают мысль, что SELinux "мешает" и установка setenforce 0 навсегда (что убирает последний слой защиты MAC). Также распространённой ошибкой является использование пароля для входа в SSH вместо SSH-ключа, что делает систему уязвимой для атаки брут-форсом. Не ротируются SSH-ключи для ушедших сотрудников, что позволяет злоумышленникам получить доступ к системе. Повторяющиеся пароли между "внутренними" сервисами могут быть использованы для later movement (постепенного распространения атаки). Откладывание обновлений ядра "оно сломается" приводит к тому, что уязвимости будут эксплуатированы позже, когда они будут известны злоумышленникам.