auditd ресурс
Используйте auditd ресурс Chef InSpec для аудита, чтобы протестировать правила ведения журнала, которые существуют в системе. Файл audit.rules обычно находится в каталоге /etc/audit/ и содержит список правил, определяющих, что записывается в журналы. Эти правила выводятся с помощью команды auditctl -l. Данный ресурс поддерживает версии audit >= 2.3.
Доступность
Установка
Этот ресурс распространяется вместе с самим Chef InSpec. Вы можете использовать его автоматически.
Версия
Этот ресурс впервые стал доступен в версии v1.38.8 InSpec.
Синтаксис
Блок ресурса auditd объявляет одно (или несколько) правило для проверки и то, что это правило должно делать:
describe auditd do
its('lines') { should include %r(-w /etc/ssh/sshd_config) }
end
или проверку того, что определено несколько отдельных правил:
describe auditd do
its('lines') { should include %r(-a always,exit -F arch=.* -S init_module,delete_module -F key=modules) }
its('lines') { should include %r(-a always,exit -F arch=.* -S chmod,fchmod,fchmodat -F auid>=1000 -F auid!=-1 -F key=.+) }
end
где каждый тест должен объявлять одно (или несколько) правило для проверки.
Примеры
В следующих примерах показано, как использовать этот ресурс аудита Chef InSpec.
Проверка, содержит ли правило соответствующий элемент, определяемый регулярным выражением
Для audit >= 2.3:
describe auditd do
its('lines') { should include %r(-a always,exit -F arch=.* -S chown.* -F auid>=1000 -F auid!=-1 -F key=perm_mod) }
end
Запрос состояния демона аудита
describe auditd.status('backlog') do
it { should cmp 0 }
end
Запрос свойств правил, нацеленных на конкретные системные вызовы или файлы - uniq используется для обработки нескольких правил для одного системного вызова с избыточными значениями поля
describe auditd.syscall('open') do
its('action.uniq') { should eq ['always'] }
its('list.uniq') { should eq ['exit'] }
end
describe auditd.file('/etc/sudoers') do
its('permissions') { should include ['x'] }
end
Для фильтрации по полям можно использовать аксессор where. Например:
describe auditd.syscall('chown').where { arch == "b32" } do
its('action') { should eq ['always'] }
its('list') { should eq ['exit'] }
its('exit') { should include ['-EACCES'] }
its('exit') { should include ['-EPERM'] }
end
Фильтр по ключу может быть полезен при оценке правил с конкретными значениями ключей:
describe auditd.where { key == "privileged" } do
its('permissions') { should include ['x'] }
end
Матчеры
Полный список доступных матчеров можно найти на нашей странице матчеров.
© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/inspec/resources/auditd/