问题:(如何)可以“覆盖”inspec控件吗?(特别是在DevSec Inspec基线中)?
我不想重写整个inspec定义,只想重写控制文件中的特定控件。
背景
我经常从DevSec存储库中提取当前的基线,以跟上当前的规范。但我想调整其中的一些“控制”,以满足我的需要,或想要禁用他们。
是否可以通过更改某些环境变量或在inspec目录结构的某个地方放置具有更高优先级的文件来更改规范?或者,我是否必须覆盖/编辑整个"controlfile.rb“规范--这将在每次控制文件更改时调用手动干预,并且会对自动化过程产生反作用。
(我看到考虑到,对于与安全有关的变化,检查每一次新的控制更新是明智的)
update一种解决方案是下面的回答,只需执行特定的控件。我仍然不知道如何排除特定的控制(否定正则表达式似乎不起作用)
发布于 2021-06-11 12:43:12
只使用专门的无花果控件:
在命令中找到它-帮助它说:
[--controls=one two three]
# A list of control names to run, or a list of /regexes/ to match a gainst control names. Ignore all other tests. (我现在也在docs:https://docs.chef.io/inspec/cli/#options-3中找到了它)
下面只执行以指定配置文件中的"ssh“开头的控件:
inspec exec /profilepath/profilename --controls "/ssh-.*/"覆盖控件以覆盖特定的控件--可以在配置文件的“控件”-directory中覆盖它们,这些控件可以“应用在其中的基线之上”,请参见https://blog.chef.io/understanding-inspec-profile-inheritance,如:
include_controls 'linux-baseline' do
somevariable = attribute('somevariable', value: false, description: 'do something')
control 'package-08' do
impact 1.0
title 'Install pkg'
desc 'install some packaged'
only_if { somevariable }
audit_pkg = 'packagename'
describe package(mypkg) do
it { should be_installed }
end
end
include "linux-patch-baseline"
# nothing to replace herehttps://stackoverflow.com/questions/67933272
复制相似问题