Продолжение статьи:
Как сделать исключения в auditd — аудит Linux
Вопрос
Мы используем стандартные правила STIG для проверки изменений времени с помощью syscall (например, так же, как и с grep ^-a.*time-change /usr/share/doc/audit-*/stig.rules, но, к сожалению, ntpd (или chronyd на более новых серверах) постоянно вызывает новые события аудита, поскольку он вносит изменения во времени.
Как мы можем исключить ntpd или chronyd из запуска этих правил аудита?
Ответ
Системный аудит – очень важная задача, которая должна быть частью каждого сервера.
Он позволяет нам проверять мелкие детали, связанные с тем, что именно происходит в системе.
auditd – это компонент пользовательского пространства для системы аудита Linux.
Это означает, что пользователи системы смогут запускать auditd для настройки правил и предупреждений для аудита функциональности с помощью системы Linux.
Одна из лучших вещей в Auditd заключается в том, что он тесно интегрирован с ядром, поэтому он дает нам возможность контролировать практически все, что мы хотим.
Давайте посмотрим, как мы можем исключить конкретных пользователей, группы или службы с помощью Auditd для аудита системных вызовов.
Возьмем простое правило syscall, как показано ниже:
-a always,exit -F arch=b64 -S clock_settime
Вышеприведенное правило может быть расширено условиями, чтобы ограничить его срабатывание. Например:
-F subj_type!=ntpd_t
Добавляя это к приведенному выше правилу, «whitelist» используют clock_settime () любыми процессами, запущенными в домене SELinux ntpd_t.
-F auid!=timekeeper
Добавляя это к приведенному выше правилу, whitelists используют clock_settime () любыми процессами, принадлежащими пользователю (возможно, root), которые изначально вошли в систему как пользователь «timekeeper».
Обратите внимание, что существует много других имен полей правил, которые позволяют более конкретно определять пользователей, группы и различные компоненты контекста SELinux и объекта.
Дополнительную информацию см. На странице auditctl man.
# man auditctl
Примечание. Невозможно добавить исполняемый путь (например, -F path! = / Usr / sbin / ntpd) или имя команды / процесса в правило аудита syscall.
Примеры
Стандартные правила проверки времени STIG
# grep ^-a.*time-change /usr/share/doc/audit-*/stig.rules -a always,exit -F arch=b32 -S adjtimex,settimeofday,stime -F key=time-change -a always,exit -F arch=b64 -S adjtimex,settimeofday -F key=time-change -a always,exit -F arch=b32 -S clock_settime -F a0=0x0 -F key=time-change -a always,exit -F arch=b64 -S clock_settime -F a0=0x0 -F key=time-change
Чтобы позволить службам ntpd и chronyd изменять время без запуска событий аудита в системе, где SELinux находится в принудительном или разрешающем режиме, добавьте -F subj_type! = Ntpd_t в каждую строку, в результате чего:
-a always,exit -F arch=b32 -S adjtimex,settimeofday,stime -F subj_type!=ntpd_t -F key=time-change -a always,exit -F arch=b64 -S adjtimex,settimeofday -F subj_type!=ntpd_t -F key=time-change -a always,exit -F arch=b32 -S clock_settime -F a0=0x0 -F subj_type!=ntpd_t -F key=time-change -a always,exit -F arch=b64 -S clock_settime -F a0=0x0 -F subj_type!=ntpd_t -F key=time-change