Ресурс auditd
Используйте ресурс проверки auditd Chef InSpec audit для проверки правил регистрации, которые существуют в системе. Файл 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.
Проверка, содержит ли правило соответствующий элемент, идентифицируемый регулярным выражением
Для 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/