【问题标题】:How to overwrite DevSec Inspec baseline controls如何覆盖 DevSec Inspec 基线控制
【发布时间】:2021-06-11 07:56:24
【问题描述】:

问题: (如何)是否可以“覆盖”检查控件? (特别是在 DevSec Inspec Baselines 中)?

我不想重写整个检查定义,只是控制文件中的特定控件。

背景
我定期从DevSec repository 中提取当前基线,以了解当前规范。 但我想根据自己的需要调整其中的一些“控件”,或者想禁用它们。

是否可以通过更改某些环境变量或通过在 inspec 目录结构中的某处放置具有更高优先级的文件来更改规范? 或者我是否必须覆盖/编辑整个“controlfile.rb”规范 - 这将涉及每次控制文件更改时的手动干预,并且对自动化过程产生反作用。

(我看到了考虑,对于与安全相关的更改,检查控件的每个新更新是明智的)

更新 一种解决方案是下面的answer,只执行特定的控制。 我仍然不知道如何排除特定控件(否定正则表达式似乎不起作用)

【问题讨论】:

    标签: inspec devsecops


    【解决方案1】:

    仅使用指定控件:
    在命令帮助中找到它说:

     [--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. 
    

    (我现在也在文档中找到它:https://docs.chef.io/inspec/cli/#options-3

    以下将仅执行指定配置文件中以“ssh”开头的控件:

    inspec exec /profilepath/profilename --controls "/ssh-.*/"
    

    覆盖控件 要覆盖特定控件,可以在配置文件的“控件”目录中覆盖它们,该目录可以“应用在基线之上”,其中包含,请参阅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 here
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-19
      • 2019-07-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多