compliance - 管理安全合规性测试
compliance [subcommand subcommand_options ...]
compliance 命令管理安全合规性策略。
compliance 命令使用基准和配置文件生成安全指南、评估和报告。指南是一个文档,描述某个基准的策略以及为了确保符合该策略所执行的测试。评估是根据某个基准对系统的安全配置所做的评估。基准是以可解释的编程方式指定的系统安全参数的可接受范围。配置文件选择在评估时要评估基准测试中的哪些测试;将指定一组配置文件作为基准测试的一部分。定制 (tailoring) 指定基准测试外部的配置文件。报告是显示评估结果的一种形式。
此命令有十三个子命令:assess、delete、explain、get-options、get-policy、guide、list、report、roster、setoptions、set-policy、store 和 tailor。
assess 子命令根据基准测试当前的系统配置并创建结果系统信息库。
可以使用 –a 选项指定评估系统信息库的名称。如果未指定,则该值缺省为一个基于评估参数和评估执行时间的值。
可以使用 –b 选项指定基准。基准参数必须是所安装的指定基准。
可以使用 –m 选项将用户指定的匹配数据与评估相关联。matches 参数是由 keys 或 key=value 对构成的以逗号分隔的列表。有关更多信息,请参见下文“匹配参数”部分。
–N 选项指定将使用 node-URI 参数(请参见下文的 URI 操作数)在远程节点上执行评估。在这种情况下,直到在远程系统上完成评估或评估失败后,assess 子命令才会返回。
可以使用 –p 选项将评估限定于指定的配置文件。如果未指定 –p 选项,则该值缺省为基准定义的第一个配置文件(如果存在)。
–r 选项可用于评估 roster 中列出的一组远程系统。–r 选项只能与 –a 和 –s 选项一起使用,因为用于评估每个远程系统的其他所有参数均可在 roster 中指定。有关更多信息,请参见 compliance-roster(8) 手册页。如果使用了 –r,assess 子命令对 roster 中的每个远程系统发起评估后便返回,而不等待完成对远程系统的评估。使用 list -av 可检查评估的状态(请参见下文的 list 子命令)。
–s 选项指定在完成后应使用 store-URI 参数将评估传输到远程评估存储。有关更多信息,请参见下文“存储 URI”部分。成功传输之后,将自动删除本地评估存储中的任何临时评估副本。
–t 选项指定评估应该依照指定的定制进行。如果指定了 –b 选项,则采用安装的定制,好像单独的定制操作数是基准/定制一样。由于配置文件由定制隐式指定,因此 –p 选项不能与 –t 选项结合使用。
如果未指定 –b、–p 和 –t 选项,则从缺省策略中获取基准、配置文件和定制。有关更多信息,请参见 set-policy 子命令。
如果未指定 –a、–m 和 –s 选项中的任何一个,则从缺省选项中获取对应的参数。有关更多信息,请参见 set-options 子命令。显式使用这些含空参数 ("") 的选项与未设置对应缺省参数具有相同的效果。
如果 –N 和 –r 选项均未指定,则对本地系统执行评估。在这种情况下,直到对本地系统完成评估或评估失败后,assess 子命令才会返回。
用户必须具有所有区域特权和 solaris.compliance.assess 授权才能执行评估。分配有 "Compliance Assessor"(合规性评估者)权限配置文件的用户有权执行评估。
assess 子命令还会生成评估的统计信息,并将其上载到本地统计信息存储。授权用户可使用 sstore 命令查看该统计信息。分配有 "Compliance Assessor"(合规性评估者)权限配置文件的用户有权上载统计信息。分配有 "Compliance Reporter"(合规性报告者)权限配置文件的用户有权收集和查看评估统计信息。有关更多信息,请参见 sstore(1) 手册页。
生成的统计信息分为以下几类:
//:class.app/solaris/compliance/assessment //:class.app/solaris/compliance/rule
delete 子命令为指定的 assessment 删除结果系统信息库,包括所有关联的报告。
可以使用 –m 选项选择与 matches 表达式相匹配的评估进行删除。有关更多信息,请参见下文“匹配参数”部分。
–N 选项指定使用 node-URI 参数(请参见下文的 URI 操作数)在远程节点上进行删除。
–n 选项列出可能要删除的评估,但禁止实际执行删除操作。
–v 选项列出待删除的评估。
未提供任何参数时,explain 子命令列出的是缺省系统策略基准的规则或使用 –b 选项提供的基准的规则。
提供一个或多个参数时,将发出命名合规性规则的描述。如果没有规则与所提供的参数匹配,则对提供的参数执行不区分大小写的搜索,并发出任何匹配合规性规则的描述。
–H 选项指定在列出合规性规则时不应发出列标题。
–b 选项指定合规性规则局限于 benchmark 参数。如果未提供 –b 选项,则使用缺省系统策略基准。请参见下文的 'get-policy'。
–t 选项指定,在必要时应在发出的规则和标题中使用指定定制中的值。
–N 选项指定,使用 node-URI 参数(请参见下文的 URI 操作数)在远程节点上显示合规性规则的说明。
'all' 关键字指定应发出此基准的所有合规性规则的描述。
发出命名规则标识符的描述。如果没有规则标识符相匹配,则对 –b 基准中的测试描述执行不区分大小写的搜索,并且仅发出匹配测试描述。
get-options 子命令显示缺省评估选项。有关更多信息,请参见 set-options 子命令。
–N 选项指定使用 node-URI 参数(请参见下文的 URI 操作数)在远程节点上显示缺省评估选项。
get-policy 子命令显示缺省评估策略。有关更多信息,请参见 set-policy 子命令。
–N 选项指定使用 node-URI 参数(请参见下文的 URI 操作数)在远程节点上显示缺省评估选项。
–guide 子命令提供一个文档的位置,此文档以 html 格式描述给定基准的合规性要求,并在必要时生成特定的指南或针对所有已安装基准的指南。
如果指定了 –a 选项,则为安装的所有基准以及关联的配置文件生成指南。
对于单个指南,可以使用 –b 选项来指定 benchmark。benchmark 参数必须是所安装的指定基准;如果未指定,则该值缺省为 solaris。
如果指定了 –o 选项,则指南位于 pathname。
可以使用 –p 选项将指南定制为指定的 profile。如果未指定此选项,指南将包含 benchmark 定义的所有配置文件。
如果未指定 –o 选项或指定了 –a 选项,则指南位于合规性指南存储中。分配有 "Compliance Reporter"(合规性报告者)或 "Compliance Assessor"(合规性评估者)权限配置文件的用户有权生成此类指南。
list 子命令列出有关各种合规性对象(例如已安装的基准、已执行的评估、定制和登记表)的信息。缺省情况下,每行列出一个基准和评估。
如果提供了 –a 选项和一个或多个 assessment 参数,则信息限定于匹配的评估。
如果提供了 –b 选项和一个或多个 benchmark 参数,则信息限定于匹配的基准。
可以使用 –m 选择仅列出与 matches 表达式相匹配的评估。有关更多信息,请参见下文“匹配参数”部分。
–N 选项可用于使用 node-URI 参数(请参见下文的 URI 操作数)在远程节点上列出对象。
如果指定了 –p 选项,则会列出每个基准的配置文件。
如果指定了 –r 选项,则会列出登记表。
如果指定了 –t 选项,则会列出定制。
如果指定了 –v 选项,输出中会包含有关每个对象的其他描述性信息。
report 子命令提供评估所需格式的报告的位置,并且在必要时生成所需格式的报告。
可以使用 –a 选项指定评估系统信息库的名称。如果未指定,则该值缺省为最近执行的评估。
可以通过 –f 选项选择合规报告的格式。格式选项包括 log、xccdf、html 和 summary。log 格式报告是一个关于各评估结果的简单文本列表。xccdf 格式报告是 XML 格式的评估结果,用于编程处理。html 报告提供特定评估结果的 html 格式描述,包括失败的测试的补救信息。summary 报告提供 html 格式的总体信息,并链接至各种格式的评估报告。如果调用包含多个评估,则仅可提供 summary 格式。如果调用包含一个评估,则缺省格式为 html;如果调用包含多个评估,则缺省格式为 summary。
可以使用 –m 选项选择将与 matches 表达式相匹配的评估包含到报告中。有关更多信息,请参见下文“匹配参数”部分。
如果未指定 –o 选项,则报告位于评估存储中。分配有 "Compliance Reporter"(合规性报告者)或 "Compliance Assessor"(合规性评估者)权限配置文件的用户有权生成此类报告。如果指定了 –o 选项,则报告位于 pathname。
roster 子命令允许用户创建、查看、编辑和管理定制。有关更多信息,请参见 compliance-roster(8) 手册页。
set-options 子命令修改缺省评估选项。缺省选项用作 assess 子命令的缺省参数,且用于已调度的评估服务。每个缺省 assessment、matches 和 store-URI 参数都可以独立设置。
–a 选项指定缺省评估名称。assessment 选项值可以为空值 (""),以指示不存在缺省评估名称。
–m 选项指定缺省匹配参数。matches 选项值可以为空值 (""),以指示不存在缺省匹配参数。
–N 选项可用于使用 node-URI 参数(请参见下文的 URI 操作数)在远程节点上修改缺省评估选项。
–s 选项指定缺省 store-URI 参数。store-URI 选项值可以为空值 (""),以指示不存在缺省 store-URI 参数。
用户必须具有 solaris.compliance.assess 授权才能设置缺省选项;分配有 "Compliance Assessor"(合规性评估者)权限配置文件的用户具有此类权限。
set-policy 子命令修改缺省评估策略。缺省策略用作 assess 子命令的缺省参数,且用于已调度的评估服务。必须至少指定 –b 和 –t 选项中的一个。
–b 选项指定缺省基准。
–p 选项指定缺省配置文件。–p 选项要求同时指定 –b 选项。–p 选项不能与 –t 选项一起使用。
–N 选项可用于使用 node-URI 参数(请参见下文的 URI 操作数)在远程节点上修改缺省评估策略。
–t 选项指定缺省定制。
用户必须具有 solaris.compliance.assess 授权才能设置缺省策略。分配有 "Compliance Assessor"(合规性评估者)权限配置文件的用户具有此类权限。
store 子命令通过使用指定的 store-URI 复制已指定的评估,包括远程评估存储中的所有关联报告。有关更多信息,请参见下文“存储 URI”部分。如果未指定 –s 选项,将使用缺省 store-URI。原始评估仍位于本地评估存储中。
可以使用 –m 选项选择与 matches 表达式相匹配的评估进行复制。有关更多信息,请参见下文“匹配参数”部分。
–n 选项列出可能要存储的评估,但禁止实际执行存储操作。
–v 选项列出待存储的评估。
tailor 子命令允许用户创建、查看、编辑和管理定制。有关更多信息,请参见 compliance-tailor(8)。
所有评估均具有关联的匹配键。这包括系统定义的键和用户指定的键。键可以具有可选赋值。通过 list -av 子命令可以查看与评估关联的键。
系统定义的键总是以大写字母开头。下面列出了系统定义的键及其值的定义:
执行评估的平台的硬件体系结构(值与 "uname -i" 相同)。
为此评估定义规则和值的基准。不论显式或隐式指定了基准,此键都会存在。
在旧版 compliance 命令中创建的评估会自动分配有 UUID 键和值以及从现有数据派生的其他匹配键和值。生成的匹配数据是最佳结果。某些系统键将会丢失,而且 Tailoring 值对于从已安装的定制执行的评估是不准确的。只有此类派生的评估匹配数据包含 Legacy 键。评估存在 xccdf 结果文件时 Legacy 键的值将为 Derived,否则为 Empty。
调用 assess 子命令时与评估关联的名称。请注意,多个评估可共享同一个 Name。
执行评估的系统的名称。
执行评估的平台的通用平台枚举,该枚举特定于操作系统版本。
为此评估选择规则和值的配置文件。如果此评估使用了定制,则不会定义此键。
此评估的状态。可能的值包括 Completed、Initiated 和 Uninitialized。
为此评估选择规则和值的定制。只有此评估使用了定制,此键才会存在。
最初,这是调用 assess 命令的时间。评估完成之后,这将更新为评估完成时间。键值采用 YYYY-MM-DDTHH-mm-SS 格式。
与每个评估关联的唯一标识符。对于早期版本 compliance 创建的评估,这可以与 Name 键值相同。
调用 assess 子命令时,用户可以将以逗号分隔的其他 keys 或 key=value 对指定为与评估关联。用户指定的键必须以小写字母开头。
调用 delete、list 和 report 子命令时,用户可以指定匹配表达式,以选择命令要处理的评估。匹配表达式是使用以下基元的布尔表达式。
如果评估具有关联键(不论键是否具有值),则为 true,否则为 false。
如果评估不具有关联键,则为 true,否则为 false。
如果评估具有值为 value 的关联键,则为 true,否则为 false。
如果评估具有值不为 value 的关联键,则为 true,否则为 false。
如果评估具有值小于 value 的关联键,则为 true,否则为 false。值以字符串形式进行比较,因此 2014-12-31T23:59:59<2015 的求值结果为 true。
如果评估具有值大于 value 的关联键,则为 true,否则为 false。值以字符串形式进行比较,因此 2015-01-01T00:00:00>2015 的求值结果为 true。
与括起来的表达式具有相同的求值结果。
匹配表达式的布尔运算如下:
如果 operand1 和 operand2 的求值结果都为 true,则为 true,否则为 false。
如果 operand1 或 operand2 的求值结果为 true,则为 true,否则为 false。
请注意,匹配表达式中有许多运算符用作 shell 元字符,因此必须恰当地将它们括在引号中或转义,以避免通过 shell 进行解释。
使用 store-URI 对远程评估存储进行访问。store-URI 解释为 RAD URI。有关更多信息,请参见 rad(8) 手册页。值可用节点名称(例如 hostname 命令的输出、IP 地址或全限定域名)表示,在这种情况下,它将强制使用 RAD URI 格式。方案缺省为 ssh,user 缺省为当前用户,而 port 缺省为标准 RAD 端口。请注意,已指定的 store-URI 不可要求交互式验证,例如口令提示。
SMF 服务实例 svc:/application/security/compliance:default 可用于自动执行已调度的评估。评估参数取自于缺省选项和策略。有关更多信息,请参见 set options 和 set-policy 子命令。缺省情况下,default 实例处于脱机状态。有关调度参数的信息,请参见 svc.periodicd(8) 手册页。
SMF 服务实例 svc:/application/security/compliance:generate-guide 用于在合规性指南存储中自动生成指南文件。缺省情况下,generate-guide 实例处于联机状态。如果将 FMRI 指定为 restart_fmri 执行器,则会在软件包/系统安装期间生成指南文件。根据所安装文件的新旧程度,只在必要时(重新)生成指南。
将返回以下退出值:
成功完成。
用法错误。
assess 子命令可能会返回该值,以指示子命令已成功执行,但评估的系统不合规。
程序失败。
随 compliance 命令提供了一个由供应商定义的名为 solaris 的基准。此基准的配置文件作为阈值指定,以便个别配置参数具有更高安全设置的系统可以通过此配置文件。solaris 基准包括一个 Baseline 配置文件,该配置文件对应于全新安装的 Oracle Solaris 实例的缺省安全配置设置;以及一个与供应商建议的配置对应的 Recommended 配置文件,该配置文件适用于不要求与以前 Oracle Solaris 版本兼容的系统。
以下示例展示了如何显示系统上已安装的指定基准:
% compliance list -bv pci-dss PCI-DSS Security/Compliance benchmark for Oracle Solaris solaris Oracle Solaris Security Policy示例 2 显示 Solaris 基准的配置文件
以下示例展示了如何显示 solaris 基准的配置文件:
% compliance list -bp solaris solaris: Baseline Recommended示例 3 使用 Solaris 基准的 Recommended 配置文件来评估系统
以下示例显示了如何通过使用 Solaris 基准的 Recommended 配置文件和关联匹配键 demo 和 example=3 来对系统进行评估,并将结果存储在 CHECK 系统信息库中:
% compliance assess -p Recommended -b solaris -a CHECK -m demo,example=3 -N ssh://example@oracle.com示例 4 列出评估和键
以下示例显示了如何列出所有评估,同时显示关联键。
% compliance list -av CHECK UUID: 657fd530-6c58-11e5-8f4c-8003baa8d665 Benchmark=solaris Profile=Recommended Status=Completed Node=lymph Platform=cpe:/o:oracle:solaris:11 Architecture=i86pc Timestamp=2015-10-31T18:19:20 Username=root UserID=0 demo example=3示例 5 生成一个包含具有 demo 键的所有评估的报告
以下示例显示了如何生成一个摘要报告,并在其中包含关联了 demo 键的所有评估。
% compliance report -m demo -f summary /var/share/compliance/assessments/657fd530-6c58-11e5-8f4c-8003baa8d665/summary.html示例 6 检查和配置已调度的评估
以下示例显示了如何检查和配置已调度的评估。
# view the current schedule % svccfg -s compliance:default listprop scheduled # view when last run and next to be run % svcs -o state,lrun,nrun,astate,fmri compliance:default # configure the scheduled assessment to run every Sunday at 1am % svccfg -s compliance:default setprop scheduled/interval = week % svccfg -s compliance:default setprop scheduled/day = astring: Sunday % svccfg -s compliance:default setprop scheduled/hour = integer: 1示例 7 创建包括 notselected 结果类型项的报告
以下示例展示了如何生成包括 notselected 结果类型项但隐藏 informational 结果类型的报告:
% compliance report -s notselected,-informational -a CHECK /var/share/compliance/assessments/CHECK/report.-informational,notselected.html
包含合规程序、数据和测试基准的目录。
包含打包的合规基准的目录。
合规性指南、登记表、评估和报告的存储。
有关下列属性的说明,请参见 attributes(7):
|
attributes(7)、compliance-tailor(8)、compliance-roster(8)、oscap(8)、rad(8)、svc.periodicd(8)、svccfg(8)、svcs(1) 和 uname(1)
Oracle Solaris 11.4 Security Compliance Guide
compliance 命令仅针对当前操作系统映像执行。如果需要验证其他区域或域,则应当另外调用 compliance 命令。
用户可以使用以下命令来确定用于评估的 solaris 基准的版本:
% pkg info solaris-policy
建议不要使用 svccfg 命令修改 svc:/application/security/compliance:default 选项或策略属性组。此类更改不会在语义上进行验证,因此可能会导致后续评估失败。