Spec-Zone.ru › Chef 17

auditd ресурс

[редактировать на GitHub]

Используйте 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/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API