openSCAP

openSCAP

1、安全内容自动化协议 (SCAP)

1.1、简介

SCAP是用于企业级Linux基础结构的标准化合规性检查解决方案。它是由美国国家标准技术研究院(NIST)维护的一系列规范,用于维护企业系统的系统安全性。

为了防御安全威胁,组织需要连续监视已部署的计算机系统和应用程序,将安全升级合并到软件中,并将更新部署到配置中。被称为“ ess-cap”的安全内容自动化协议(SCAP)包含许多开放标准,这些标准广泛用于枚举与安全性相关的软件缺陷和配置问题。进行安全监视的应用程序在测量系统以发现漏洞时会使用这些标准,并提供对这些发现进行评分的方法,以评估可能的影响。SCAP规范套件对这些自动化漏洞管理,度量和策略合规性产品所使用的术语和格式进行了标准化。

计算机系统配置扫描仪的供应商可以针对SCAP验证其产品,表明该产品将与其他扫描仪互操作,并以标准化方式表示扫描结果。

1.2、SCAP组件

SCAP标准系列包含多个组件标准。这些组件旨在共同工作。该标准为每个组件定义了具有内部数据结构的语法和语义的文档格式。所有组件标准都基于可扩展标记语言(XML),并且每个组件标准都定义了自己的XML名称空间。相同组件标准(语言)的不同版本也可以通过不同的XML名称空间加以区分。
SCAP标准包含以下组件:XCCDF,OVAL,DataStream,ARF,CPE,CVE,CWE。

1.2.1、XCCDF

XCCDF的首字母缩写词表示可扩展配置清单描述格式。顾名思义,该语言用于描述安全检查表。该语言旨在支持信息交换,文档生成,组织和情境剪裁,自动合规性测试以及合规性评分。

1.2.2、OVAL

OVAL的缩写代表开放漏洞和评估语言。OVAL是用于对系统状态进行逻辑断言的声明性语言。它是SCAP标准的主要组成部分。它用于描述安全漏洞或所需的系统配置。OVAL定义定义计算机中某些对象的安全状态,例如配置文件,文件权限,进程。OVAL定义使用称为扫描器的解释器进行评估。

1.2.3、DataStream

DataStream是一种将其他SCAP组件打包到一个文件中的格式。例如,通过WWW分发SCAP内容时,此功能很有用,因为单个文件更易于处理。

1.2.4、ARF

资产报告格式(ARF)合并了多个结果文件(OVAL结果和XCCDF结果)。它通常也称为Result DataStream。

1.2.5、CPE

通用平台枚举(CPE)用于使用明确定义的名称来标识IT平台和系统。CPE还包括用于根据系统检查名称的方法,以及用于将文本和测试绑定到名称的描述格式。

1.2.6、CVE

常见漏洞和披露(CVE)是有关公开已知的安全漏洞和披露的参考词典。CVE提供漏洞的标准化名称(标识符)。CVE允许不同安全工具之间的互操作性。

1.2.7、CWE

普通弱点枚举(CWE)是社区开发的软件弱点列表。CWE致力于详细描述已知的安全弱点和缺陷。它还提供有关预防,实施和缓解漏洞的信息。该项目得到了MITER Corporation的支持。欲了解更多信息,请访问 CWE网站。。

1.2.8、SCE

脚本检查引擎:SCAP扩展,允许从SCAP策略执行脚本。它使您可以使脚本与安全策略互操作。有关更多信息,请访问SCE页面。


2、openSCAP介绍

2.1、简介

OpenSCAP 是使用可扩展配置清单描述格式(XCCDF)的审核工具。XCCDF是表达清单内容的标准方法,并定义了安全清单。它还与其他规范(例如CPE,CCE和OVAL)结合,以创建可由SCAP验证的产品处理的SCAP表达的清单。

2.2、主要功能
2.2.1、安全合规

为了最大程度地减少对计算机基础设施的攻击威胁,甚至完全阻止攻击,私有和公共部门的许多机构都采用了实施安全策略 或 安全基准的概念 。这些策略定义了机构使用的所有系统都必须满足的安全性要求。它不仅适用于物理上位于组织内部的系统,而且通常适用于有权访问组织的计算机基础结构的任何第三方环境。在某些情况下,这些策略是由政府法规定义的,但是即使法律没有特别要求,许多企业也会采用自己的安全策略。

2.2.2、漏洞评估

任何希望保护自己免受这些攻击的组织都必须制定适当且可持续的漏洞管理策略。好的政策要满足多个关键概念,其中包括:

  • 有关基础计算机基础结构的详细知识
  • 持续交付 有关当前已知的安全漏洞及其影响 的 认证信息
  • 快速识别 每个系统的当前安全状态(安全分析)
  • 迅速反应 -必要时可以立即执行纠正操作的能力(补救措施)
  • 不论基础架构的复杂性如何,都可以定期 以自动化,无人值守的 方式 执行安全性分析
  • 可以 使用适当的软件工具以最小的努力来执行这些任务, 同时防止或至少最大程度地减少 停机时间
2.2.3、OpenSCAP工具
  1. OpenSCAP Base: 使用oscap工具,您可以执行配置和漏洞扫描,根据SCAP标准XML架构验证SCAP内容,显示有关内容的基本信息,或在XCCDF基准测试中列出配置文件。它适用于Windows和Linux。
  2. OpenSCAP Daemon: OpenSCAP守护程序是在后台运行的服务。这样可以确保根据指定的时间表对您的机器和容器进行评估。功能可以分为两类:根据特定策略连续评估机器和一次性评估。
  3. SCAP Workbench:这是一个图形实用程序,提供了一种执行常见oscap 任务的简便方法 。该工具允许用户在单个本地或远程系统上执行配置和漏洞扫描,并根据给定的XCCDF或SDS文件对系统进行修复。Workbench可以生成多种格式的报告,其中包含系统扫描的结果。Workbench允许您轻松修改XCCDF配置文件,而无需更改相应的XCCDF文件。该工具提供了启用或禁用XCCDF元素的图形方式。您所做的更改可以存储为XCCDF定制文件。SCAP Workbench适用于Linux和Windows。
  4. SCAPtimony:是一种中间件,用于存储基础结构的SCAP结果,然后允许对存储的数据进行操作。SCAPtimony是在OpenSCAP库之上构建的SCAP存储和数据库服务器。它可以作为Rails应用程序(即Foreman)的一部分进行部署,也可以作为独立的密封服务器进行部署。SCAPtimony项目充分证明了您的基础架构的合规性。这是通过解析所有SCAP结果并将重要片段存储在数据库中来实现的。SCAPtimony还提供了对此类数据执行常见数据库查询的功能。
  5. OSCAP Anaconda附加组件:
    每次安装操作系统时,都需要对其进行配置-但在采用新设置之前,有很短的时间未按照您的策略对系统进行配置。在许多情况下,这不是问题,但是在高度安全的环境中,配置错误的系统会构成威胁。OSCAP-Anaconda-Addon解决了这个确切的问题。它是Anaconda安装程序的附加组件,使管理员可以将安全策略输入安装过程,并确保系统从首次启动就符合要求。使用OSCAP-Anaconda-Addon的最简单方法是选择内置的Linux发行版。今天,唯一的发行版是Red Hat

OSCAP Anaconda插件支持以下Anaconda安装程序操作模式:

  • 图形用户界面(GUI)模式,
  • Kickstart文件模式(使用GUI或文本模式)
2.3、OpenSCAP安全指南

SCAP安全指南是一种以SCAP文档形式编写的安全策略。《 SCAP安全指南》中创建的安全策略涵盖了计算机安全的许多领域,并提供了最佳实践解决方案。该指南由具有非常详细描述的规则组成,还包括针对目标系统进行了优化的经过验证的补救脚本。SCAP安全指南以及OpenSCAP工具可用于自动审核系统。

SCAP安全指南实施了由权威机构PCI DSS,STIG和USGCB推荐的安全指南。SCAP安全指南将这些安全指南转换为机器可读的格式,OpenSCAP可以使用它来审核您的系统。《 SCAP安全指南》从单个高质量SCAP内容构建了多个安全基准。用于RHEL 6的DISA STIG为美国国防部系统提供了必需的设置,是根据本指南创建的基准的一个示例。如果您的系统必须符合这些基准,则只需从SCAP安全指南中选择适当的配置文件。

《 SCAP安全指南》中的安全策略适用于各种操作系统和其他软件-Fedora,Red Hat Enterprise Linux,Mozilla Firefox等。

SCAP安全指南是一个动态的开源项目,这意味着许多对计算机安全感兴趣的组织可以共同努力,并就SCAP安全指南中包含的安全策略进行协作。它已在军事和情报社区,医疗保健,航空,电信和其他行业中使用。最重要的是,可以免费下载SCAP安全指南。


3、OpenSCAP Base使用

3.1、安装

可以从源代码构建openSCAP库和oscap工具。在Fedora或者Red Hat发行版上安装oscap工具,可以直接使用yum安装。

Debian 和 Ubuntu

apt-get install libopenscap8

CentOS 和 RHEL

yum install openscap-scanner

在开始使用oscap工具之前,您必须在系统上具有一些SCAP内容。可以从相应的网站上下载它,可以从源代码构建它, 也可以使用程序包管理系统来安装默认系统基线库(scap-security-guide,简称 SSG)。 SCAP内容将安装在/ usr / share / xml / scap / ssg / content /中
Ubuntu

apt-get install ssg-debderived

Debian

apt-get install ssg-debian

CentOS 和 RHEL

yum install scap-security-guide
3.2、常规使用

显示oscap的版本

oscap -V 

显示有关SCAP内容的信息

oscap的功能之一是显示文件中有关SCAP内容的信息。运行oscap info命令可以检查SCAP文档的内部结构,并显示文档类型、规范版本、状态、文档发布(生成)日期和文档复制到文件系统(导入)日期等信息。通常,在检查XCCDF文档或SCAP数据流时,最有用的信息是关于概要文件、检查表和流的。

以下示例演示了当目标为SCAP数据流时命令的用法和示例输出:

[root@localhost ~]# oscap info /usr/share/xml/scap/ssg/content/ssg-rhel7-ds.xml 
Document type: Source Data Stream
Imported: 2020-12-16T00:39:29

Stream: scap_org.open-scap_datastream_from_xccdf_ssg-rhel7-xccdf-1.2.xml
Generated: (null)
Version: 1.3
Checklists:
	Ref-Id: scap_org.open-scap_cref_ssg-rhel7-xccdf-1.2.xml
WARNING: Datastream component 'scap_org.open-scap_cref_security-data-oval-com.redhat.rhsa-RHEL7.xml' points out to the remote 'https://www.redhat.com/security/data/oval/com.redhat.rhsa-RHEL7.xml'. Use '--fetch-remote-resources' option to download it.
WARNING: Skipping 'https://www.redhat.com/security/data/oval/com.redhat.rhsa-RHEL7.xml' file which is referenced from datastream
		Status: draft
		Generated: 2020-12-15
		Resolved: true
		Profiles:
			Title: NIST National Checklist Program Security Guide
				Id: xccdf_org.ssgproject.content_profile_ncp
			Title: DRAFT - ANSSI DAT-NT28 (high)
				Id: xccdf_org.ssgproject.content_profile_anssi_nt28_high
			Title: OSPP - Protection Profile for General Purpose Operating Systems v4.2.1
				Id: xccdf_org.ssgproject.content_profile_ospp
			Title: DRAFT - ANSSI DAT-NT28 (intermediary)
				Id: xccdf_org.ssgproject.content_profile_anssi_nt28_intermediary
			Title: Red Hat Corporate Profile for Certified Cloud Providers (RH CCP)
				Id: xccdf_org.ssgproject.content_profile_rht-ccp
			Title: DRAFT - ANSSI DAT-NT28 (enhanced)
				Id: xccdf_org.ssgproject.content_profile_anssi_nt28_enhanced
			Title: [DRAFT] DISA STIG for Red Hat Enterprise Linux Virtualization Host (RHELH)
				Id: xccdf_org.ssgproject.content_profile_rhelh-stig
			Title: CIS Red Hat Enterprise Linux 7 Benchmark
				Id: xccdf_org.ssgproject.content_profile_cis
			Title: Unclassified Information in Non-federal Information Systems and Organizations (NIST 800-171)
				Id: xccdf_org.ssgproject.content_profile_cui
			Title: Criminal Justice Information Services (CJIS) Security Policy
				Id: xccdf_org.ssgproject.content_profile_cjis
			Title: VPP - Protection Profile for Virtualization v. 1.0 for Red Hat Enterprise Linux Hypervisor (RHELH)
				Id: xccdf_org.ssgproject.content_profile_rhelh-vpp
			Title: C2S for Red Hat Enterprise Linux 7
				Id: xccdf_org.ssgproject.content_profile_C2S
			Title: Standard System Security Profile for Red Hat Enterprise Linux 7
				Id: xccdf_org.ssgproject.content_profile_standard
			Title: Australian Cyber Security Centre (ACSC) Essential Eight
				Id: xccdf_org.ssgproject.content_profile_e8
			Title: DRAFT - ANSSI DAT-NT28 (minimal)
				Id: xccdf_org.ssgproject.content_profile_anssi_nt28_minimal
			Title: Health Insurance Portability and Accountability Act (HIPAA)
				Id: xccdf_org.ssgproject.content_profile_hipaa
			Title: DISA STIG for Red Hat Enterprise Linux 7
				Id: xccdf_org.ssgproject.content_profile_stig
			Title: PCI-DSS v3.2.1 Control Baseline for Red Hat Enterprise Linux 7
				Id: xccdf_org.ssgproject.content_profile_pci-dss
		Referenced check files:
			ssg-rhel7-oval.xml
				system: http://oval.mitre.org/XMLSchema/oval-definitions-5
			ssg-rhel7-ocil.xml
				system: http://scap.nist.gov/schema/ocil/2
			security-data-oval-com.redhat.rhsa-RHEL7.xml
				system: http://oval.mitre.org/XMLSchema/oval-definitions-5
	Ref-Id: scap_org.open-scap_cref_ssg-rhel7-pcidss-xccdf-1.2.xml
WARNING: Skipping 'https://www.redhat.com/security/data/oval/com.redhat.rhsa-RHEL7.xml' file which is referenced from datastream
		Status: draft
		Generated: 2020-12-15
		Resolved: true
		Profiles:
			Title: PCI-DSS v3.2.1 Control Baseline for Red Hat Enterprise Linux 7
				Id: xccdf_org.ssgproject.content_profile_pci-dss_centric
		Referenced check files:
			ssg-rhel7-oval.xml
				system: http://oval.mitre.org/XMLSchema/oval-definitions-5
			ssg-rhel7-ocil.xml
				system: http://scap.nist.gov/schema/ocil/2
			security-data-oval-com.redhat.rhsa-RHEL7.xml
				system: http://oval.mitre.org/XMLSchema/oval-definitions-5
Checks:
	Ref-Id: scap_org.open-scap_cref_ssg-rhel7-oval.xml
	Ref-Id: scap_org.open-scap_cref_ssg-rhel7-ocil.xml
	Ref-Id: scap_org.open-scap_cref_ssg-rhel7-cpe-oval.xml
	Ref-Id: scap_org.open-scap_cref_ssg-rhel7-oval.xml000
	Ref-Id: scap_org.open-scap_cref_ssg-rhel7-ocil.xml000
	Ref-Id: scap_org.open-scap_cref_security-data-oval-com.redhat.rhsa-RHEL7.xml
Dictionaries:
	Ref-Id: scap_org.open-scap_cref_ssg-rhel7-cpe-dictionary.xml
[root@localhost ~]# 

在检查XCCDF文件时

[root@localhost ~]# oscap info /usr/share/xml/scap/ssg/content/ssg-rhel7-xccdf.xml 
Document type: XCCDF Checklist
Checklist version: 1.1
Imported: 2020-12-16T00:39:10
Status: draft
Generated: 2020-12-15
Resolved: true
Profiles:
	Title: NIST National Checklist Program Security Guide
		Id: ncp
	Title: DRAFT - ANSSI DAT-NT28 (high)
		Id: anssi_nt28_high
	Title: OSPP - Protection Profile for General Purpose Operating Systems v4.2.1
		Id: ospp
	Title: DRAFT - ANSSI DAT-NT28 (intermediary)
		Id: anssi_nt28_intermediary
	Title: Red Hat Corporate Profile for Certified Cloud Providers (RH CCP)
		Id: rht-ccp
	Title: DRAFT - ANSSI DAT-NT28 (enhanced)
		Id: anssi_nt28_enhanced
	Title: [DRAFT] DISA STIG for Red Hat Enterprise Linux Virtualization Host (RHELH)
		Id: rhelh-stig
	Title: CIS Red Hat Enterprise Linux 7 Benchmark
		Id: cis
	Title: Unclassified Information in Non-federal Information Systems and Organizations (NIST 800-171)
		Id: cui
	Title: Criminal Justice Information Services (CJIS) Security Policy
		Id: cjis
	Title: VPP - Protection Profile for Virtualization v. 1.0 for Red Hat Enterprise Linux Hypervisor (RHELH)
		Id: rhelh-vpp
	Title: C2S for Red Hat Enterprise Linux 7
		Id: C2S
	Title: Standard System Security Profile for Red Hat Enterprise Linux 7
		Id: standard
	Title: Australian Cyber Security Centre (ACSC) Essential Eight
		Id: e8
	Title: DRAFT - ANSSI DAT-NT28 (minimal)
		Id: anssi_nt28_minimal
	Title: Health Insurance Portability and Accountability Act (HIPAA)
		Id: hipaa
	Title: DISA STIG for Red Hat Enterprise Linux 7
		Id: stig
	Title: PCI-DSS v3.2.1 Control Baseline for Red Hat Enterprise Linux 7
		Id: pci-dss
Referenced check files:
	ssg-rhel7-oval.xml
		system: http://oval.mitre.org/XMLSchema/oval-definitions-5
	ssg-rhel7-ocil.xml
		system: http://scap.nist.gov/schema/ocil/2
	https://www.redhat.com/security/data/oval/com.redhat.rhsa-RHEL7.xml
		system: http://oval.mitre.org/XMLSchema/oval-definitions-5
[root@localhost ~]# 

使用oscap扫描

oscap工具的主要目标是执行本地系统的配置和漏洞扫描。Oscap能够评估XCCDF基准和OVAL定义,并生成适当的结果。注意,可以以单个文件(作为OVAL文件或SCAP数据流)或多个单独的XML文件提供SCAP内容。

OVAL

SCAP文档可以具有单个OVAL文件(OVAL定义文件)的形式。该oscap工具的OVAL定义评估过程中处理OVAL定义文件。它收集系统信息,对其进行评估并生成OVAL结果文件。每个OVAL定义的评估结果都将打印到标准输出流中。以下示例描述了涉及OVAL定义文件的最常见方案。

要评估给定的OVAL定义文件中的所有定义,运行以下命令:

 oscap oval eval --results oval-results.xml scap-oval.xml

其中scap-oval.xml是OVAL定义文件,而oval-results.xml 是OVAL结果文件。

评估给定的OVAL定义文件中的一个特定定义的示例:

  oscap oval eval --id oval:rhel:def:1000 --results oval-results.xml scap-oval.xml

oval:rhel:def:1000字符串定义要评估oval定义的地方,其中scap-oval.xml是OVAL定义文件,而oval-results.xml 是OVAL结果文件。

评估来自OVAL组件的所有定义,这些定义是SCAP数据流集合中特定数据流的一部分,运行以下命令:

oscap oval eval --datastream-id ds.xml --oval-id xccdf.xml --results oval-results.xml scap-ds.xml

XCCDF

在评估XCCDF基准时,oscap通常会处理XCCDF文件,OVAL文件和CPE词典。它执行系统分析,并在此分析的基础上产生XCCDF结果。扫描结果不必保存在单独的文件中,而可以附加到XCCDF文件中。XCCDF检查表中每个XCCDF规则的评估结果将打印到标准输出流。与规则关联的CVE和CCE标识符也将被打印出来。以下是单个XCCDF规则的示例输出:

Title   Verify permissions on 'group' file
Rule    usgcb-rhel5desktop-rule-2.2.3.1.j
Ident   CCE-3967-7
Result  pass

要评估XCCDF文件中的特定配置文件,请运行以下命令:

oscap xccdf eval --profile Desktop --results xccdf-results.xml --cpe cpe-dictionary.xml scap-xccdf.xml

其中scap-xccdf.xml是XCCDF文档,Desktop是从XCCDF文档中选择的配置文件,xccdf-results.xml是存储扫描结果的文件,而cpe-dictionary.xml是CPE词典。

可以在上述命令中另外添加–rule选项,评估特定规则:

oscap xccdf eval --profile Desktop --rule ensure_gpgcheck_globally_activated  --results xccdf-results.xml --cpe cpe-dictionary.xml scap-xccdf.xml

其中“ sures_gpgcheck_globally_activated”是“桌面” 配置文件中将要评估的唯一规则
Source DataStream

通常,所有必需的输入文件都捆绑在Source DataStream中。oscap xccdf eval命令还可以处理使用Source DataStream进行的扫描,并提供一些其他参数来确定应执行哪些捆绑式基准测试。

要评估作为SCAP DataStream集合内DataStream一部分的特定XCCDF基准,请运行以下命令:

oscap xccdf eval --datastream-id ds.xml --xccdf-id xccdf.xml --results xccdf-results.xml scap-ds.xml

其中scap-ds.xml是表示SCAP DataStream集合的文件,ds.xml是特定的DataStream,xccdf.xml是指向所需XCCDF文档的component-ref的ID, xccdf-results.xml是包含以下内容的文件扫描结果。

Result DataStream (ARF)

在上面的示例中,我们使用–results 命令行参数生成XCCDF结果文件。您可以改用–results-arf生成Result DataStream(也称为ARF-资产报告格式)XML。

oscap xccdf eval --benchmark-id Benchmark_id --results-arf arf-results.xml scap-ds.xml

Result STIG Viewer

如果要将XCCDF扫描结果导入DISA STIG Viewer,但规则ID与DISA的ID不匹配,则可以在规则中使用–stig-viewer命令行参数以及特殊引用,以生成XCCDF结果可以由DISA STIG Viewer导入的文件

oscap xccdf eval --profile stig-rhel7-disa --stig-viewer results-stig.xml ssg-rhel7-ds.xml
3.3、修复系统

OpenSCAP允许自动修复发现处于不合规状态的系统。对于系统修复,需要带有说明的XCCDF文件。该SCAP安全引导软件包包含一定的修复说明。

系统修复包括以下步骤:

  • oscap定期执行XCCDF评估。

  • 通过评估OVAL定义对结果进行评估。每个失败的规则都被标记为可修复的候选者。

  • oscap搜索适当的修订元素,对其进行解析,准备环境并执行修订脚本。

  • 修复脚本的任何输出都被oscap捕获并存储在 rule-result元素中。修复脚本的返回值也将被存储。

  • 每当oscap执行修复脚本时,它都会立即再次评估OVAL定义(以验证正确应用了修复脚本)。在第二次运行期间,如果OVAL评估返回成功,则规则的结果是固定的,否则为error。

  • 补救的详细结果存储在输出的XCCDF文件中。它包含两个TestResult元素。第一个TestResult元素表示修复之前的扫描。第二个TestResult是从第一个TestResult派生的,并包含修复结果。

  • 关于补救,oscap有三种操作模式:在线,离线和查看。

在线修复系统

联机修复会在扫描时执行修订元素。评估和修复是单个命令的一部分。

要启用在线修复,请使用–remediate命令行选项。例如,要使用scap-security-guide软件包执行在线修复,请运行:

oscap xccdf eval --remediate --profile xccdf_org.ssgproject.content_profile_rht-ccp --results scan-xccdf-results.xml /usr/share/xml/scap/ssg/content/ssg-rhel7-ds.xml

该命令的输出包括两部分。第一部分显示了修复之前的扫描结果,第二部分显示了应用修复之后的扫描结果。第二部分只能包含固定和错误结果。的固定结果表明,扫描修复通过后执行。该错误结果表明,即使在应用修复后,评估仍然没有通过。

离线修复系统

脱机修复使您可以推迟修复程序的执行。第一步,仅评估系统,并将结果存储在XCCDF文件的TestResult元素中。

在第二步中,oscap执行修复脚本并验证结果。将结果存储到输入文件中是安全的,不会丢失任何数据。在脱机修复期间,将基于输入的内容创建一个新的TestResult元素,并继承所有数据。新创建的TestResult 仅在失败的规则结果元素上有所不同。对于这些,将执行补救措施。

要使用scap-security-guide软件包执行脱机修复,请运行:

oscap xccdf eval --profile xccdf_org.ssgproject.content_profile_rht-ccp --results scan-xccdf-results.xml /usr/share/xml/scap/ssg/content/ssg-rhel7-ds.xml

oscap xccdf remediate --results scan-xccdf-results.xml scan-xccdf-results.xml

修复审查

查看模式允许用户将补救说明存储到文件中以供进一步查看。在此操作期间不执行补救内容。要以shell脚本的形式生成补救说明,请运行:

fix-type bash \
--profile xccdf_org.ssgproject.content_profile_rht-ccp \
--output my-remediation-script.sh \
/usr/share/xml/scap/ssg/content/ssg-rhel7-ds.xml
3.4、检查引擎

大多数XCCDF内容使用OVAL检查引擎。这是在评估OVAL定义以评估系统时。评估的完整信息记录在OVAL结果文件中,如OVAL规范所定义。通过检查这些文件,可以检查评估使用了哪些定义以及结果为何保持原样。请注意,除非使用–oval-results,否则不会生成这些文件。

某些内容可能使用其他检查引擎,例如 SCE检查引擎。

带有需要OpenSCAP不支持的检查引擎的检查规则的结果将报告为notchecked。除非知道并支持检查系统,否则不会以任何方式读取或解释检查内容。以下是带有未知检查系统的XCCDF的评估输出:

oscap xccdf eval sds-datastream.xml

Title   Check group file contents
Rule    xccdf_org.example_rule_system_authcontent-group
Result  notchecked

Title   Check password file contents
Rule    xccdf_org.example_rule_system_authcontent-passwd
Result  notchecked

Title   Check shadow file contents
Rule    xccdf_org.example_rule_system_authcontent-shadow
Result  notchecked

该notchecked结果也报告为没有实现的检查规则。notchecked表示该特定规则中没有可以评估的检查。

CVE,CCE,CPE和其他标识符

每个XCCDF规则内部都可以包含xccdf:ident元素。这些元素使内容创建者可以引用各种外部标识符,例如CVE,CCE,CPE等。

扫描时,oscap输出已扫描规则的标识符,而不管其结果如何。例如:

Title   Ensure Repodata Signature Checking is Not Disabled For Any Repos
Rule    rule-2.1.2.3.6.a
Result  pass

Title   Verify user who owns 'shadow' file
Rule    rule-2.2.3.1.a
Ident   CCE-3918-0
Result  pass

Title   Verify group who owns 'shadow' file
Rule    rule-2.2.3.1.b
Ident   CCE-3988-3
Result  pass

每个规则的所有标识符(如果有的话)都打印到标准输出中。由于标准输出不允许显示紧凑的标识符元数据,因此仅将标识符本身显示在此处。

标识符也是HTML报告输出的一部分。如果标识符是CVE,则可以单击它以显示来自官方NVD数据库的元数据(需要Internet连接)。OpenSCAP不为其他类型的标识符提供元数据。

可以找到这些标识符的另一个地方是机器可读的结果数据流文件。可以在扫描期间通过添加–results-arf选项来生成此文件。

oscap xccdf eval \
--profile xccdf_org.ssgproject.content_profile_common \
--fetch-remote-resources --results-arf results.xml \
/usr/share/xml/scap/ssg/content/ssg-rhel6-ds.xml

结果数据流文件results.xml在元素中包含这些标识符。

<rule-result
  idref="xccdf_org.ssgproject.content_rule_partition_for_tmp"
  time="2017-01-20T14:30:18" severity="low" weight="1.000000">
  <result>pass</result>
  <ident system="https://nvd.nist.gov/cce/index.cfm">CCE-27173-4</ident>
  <check system="http://oval.mitre.org/XMLSchema/oval-definitions-5">
    <check-content-ref name="oval:ssg-partition_for_tmp:def:1" href="#oval0"/>
  </check>
</rule-result>
3.5、高级oscap使用

验证SCAP内容

在系统上开始使用安全策略之前,应首先验证该策略,以避免该策略中可能出现的语法或语义错误。该oscap工具可以用来验证对标准SCAP XML架构的安全性的内容。验证结果将打印到标准错误流(stderr)。这种验证命令的一般语法如下:

oscap module validate [module_options_and_arguments] file

其中file是要验证的文件的完整路径。作为模块,可以使用:

  • ccdf
  • oval
  • cpe
  • cve

唯一的例外是数据流模块(ds)

  • oscap ds sds-validate scap-ds.xml

如果验证OVAL规范,则还可以启用其他基于Schematron的验证。这种验证方法比较慢,但可以提供更深入的分析。运行以下命令以使用Schematron验证OVAL文档:

oscap oval validate --schematron oval-file.xml

验证结果将打印到标准错误流(stderr)。

CAP内容签名和签名验证

该oscap本身并不做签名验证。它跳过了各个元素。这是由于这样的事实,这是因为在密钥库和加密选择方面有太多的选项,选择太多了。相反,建议使用 xmlsec1来验证其SCAP内容。安全评估签名内容(带有签名验证)涉及以下步骤:

安装xmlsec1及其至少一个加密引擎

yum install xmlsec1 xmlsec1-openssl

在内容上运行xmlsec1 --verify:

这个简单的示例将仅显示2种验证签名的特定情况,步骤可能会有所不同,具体取决于使用哪种技术对数据流进行签名。

假设数据流是用私钥签名的,并且我们有相应的公钥来验证它:

xmlsec1 --verify --pubkey-pem pub.key datastream.xml

假设数据流已使用证书签名,并且我们具有证书的相应公共部分以通过以下方式进行验证:

xmlsec1 --verify --pubkey-cert-pem pubcert.key datastream.xml

还有其他选项,有关更多详细信息,请参见:xmlsec1 --help-verify

成功的输出应类似于以下内容:

xmlsec1 verify --pubkey-pem key.pub datastream.xml
OK
SignedInfo References (ok/all): 1/1
Manifests References (ok/all): 0/0

并且退出代码必须为0才能继续

如果前面的步骤导致验证成功,请继续评估datastream:

oscap xccdf eval datastream.xml

生成报告和指南

oscap的另一个有用功能是能够以可读的格式生成SCAP内容。它允许您将XML文件转换为HTML或纯文本格式。此功能用于生成安全性指南和清单,它们用作信息源以及安全系统配置的指南。系统扫描的结果也可以转换为易于阅读的结果报告。常规命令语法如下

oscap module generate sub-module [specific_module/sub-module_options_and_arguments] file

其中module是xccdf或oval,sub-module是生成的文档的类型,file表示XCCDF或OVAL文件。子模块可以是report,guide,custom或fix。有关更多详细信息,请参见 man oscap。
内容转换
oscap工具还能够使用XSLT(可扩展样式表语言转换)语言,该语言允许将SCAP内容XML文件转换为另一个XML,HTML,纯文本或XSL文档。当您需要以可读形式使用SCAP文档时,此功能非常有用。以下命令代表最常见的情况:

创建指南

oscap xccdf generate guide scap-xccdf.xml > guide.html

使用配置文件清单创建指南

oscap xccdf generate guide --profile Desktop scap-xccdf.xml > guide-checklist.html

生成XCCDF扫描报告

oscap xccdf generate report xccdf-results.xml > report-xccdf.html

生成OVAL扫描报告

oscap oval generate report oval-results.xml > report-oval.html

使用OVAL测试失败的其他信息生成XCCDF报告

oscap xccdf generate report \
--oval-template oval-results.xml xccdf-results.xml > report-xccdf-oval.html

CPE适用性

内容中的XCCDF规则可能仅针对特定平台,而在其他平台上则没有任何意义。这样的XCCDF规则在其主体中包含 <xccdf:platform>元素。该元素引用可以在CPE词典文件或CPE语言文件中定义的CPE名称或CPE2平台(使用cpe2:platform-specification定义),也可以直接嵌入XCCDF文档中。

XCCDF规则可以包含多个<xccdf:platform>元素。如果至少有一个列出的平台适用,则视为适用。如果XCCDF规则不包含任何<xccdf:platform>元素,则认为该规则始终适用。

如果在外部文件中定义了CPE名称或CPE2平台,请使用 --cpe选项,并且oscap自动检测文件格式。以下命令是使用来自外部文件的CPE名称进行XCCDF内容评估的示例:

oscap xccdf eval --results xccdf-results.xml --cpe external-cpe-file.xml xccdf-file.xml

其中xccdf-file.xml是XCCDF文档,xccdf-results.xml是包含扫描结果的文件,external-cpe-file.xml是CPE词典或语言文件。

如果您正在评估源数据流,则oscap会自动注册数据流中包含的所有CPE。无需采取额外的步骤。您还可以注册其他外部CPE文件,如以下命令所示:

oscap xccdf eval --datastream-id ds.xml --xccdf-id xccdf.xml --results xccdf-results.xml --cpe additional-external-cpe.xml scap-ds.xml

其中scap-ds.xml是表示SCAP数据流集合的文件,ds.xml是特定的数据流,xccdf.xml是XCCDF文档,xccdf-results.xml是包含扫描结果的文件,以及其他外部文件-cpe.xml是附加的CPE词典或语言文件。

外部或远程资源

一些SCAP内容引用了外部资源。例如,《 SCAP安全指南》使用外部OVAL文件检查系统是否为最新版本,并且没有已知的安全漏洞。但是,其他内容可以将外部资源用于其他目的。

当您使用外部资源评估SCAP内容时,oscap工具会警告您:

oscap xccdf eval \
--profile xccdf_org.ssgproject.content_profile_common \
/usr/share/xml/scap/ssg/content/ssg-rhel7-ds.xml

WARNING: This content points out to the remote resources. Use `--fetch-remote-resources' option to download them.
WARNING: Skipping https://www.redhat.com/security/data/oval/com.redhat.rhsa-RHEL7.xml.bz2 file which is referenced from XCCDF content

默认情况下,oscap工具不会盲目下载和执行远程内容。如果您信任本地内容及其引用的远程内容,则可以使用–fetch-remote-resources选项使用oscap工具自动下载它 。

oscap xccdf eval \
--fetch-remote-resources \
--profile xccdf_org.ssgproject.content_profile_common \
/usr/share/xml/scap/ssg/content/ssg-rhel7-ds.xml
Downloading: https://www.redhat.com/security/data/oval/com.redhat.rhsa-RHEL7.xml.bz2 ... ok
Title   Ensure /var/log Located On Separate Partition
Rule    xccdf_org.ssgproject.content_rule_partition_for_var_log

通过多次检查评估XCCDF规则

通常,每个XCCDF规则都引用具有指定名称的单个检查。但是,如果省略了给定规则的xccdf:check-content-ref的@name属性,则可以执行多次检查来评估该规则。这对于security_patches_up_to_date检查很常见。默认情况下,在这种情况下,对于XCCDF规则仅生成单个结果,并且该结果是根据引用位置中所有检查结果计算得出的。如果用户想查看每个检查的单独结果(结果文档中每个检查的检查结果在文档中有一个xccdf:check-result元素),则必须将xccdf:check元素的multi-check属性设置为true。

<Rule
  id="xccdf_org.nist-testsuite.content_rule_security_patches_up_to_date"
  selected="false" weight="10.0">
  <title xml:lang="en-US">Security Patches Up-To-Date</title>
  <description xml:lang="en-US">All known security patches have been installed.</description>
  <requires idref="xccdf_org.nist-testsuite.content_group_CM-6"/>
  <requires idref="xccdf_org.nist-testsuite.content_group_SI-2"/>
  <check system="http://oval.mitre.org/XMLSchema/oval-definitions-5" multi-check="true">
    <check-content-ref href="r1100-scap11-win_rhel-patches.xml"/>
  </check>
</Rule>
3.6、实际例子

演示为Red Hat产品提供的某些安全性内容的实际用法。

这些实际示例说明了已通过NIST验证的行业标准清单的用法。
使用SCAP安全指南审核系统设置
SSG项目包含有关Red Hat Enterprise Linux 7设置的指南。

安装SSG

sudo yum install -y scap-security-guide

要检查安全性内容,请使用oscap信息模块:

oscap info /usr/share/xml/scap/ssg/rhel7/ssg-rhel7-ds.xml

该命令的输出包含可用的配置文件。要审核系统设置,请选择 xccdf_org.ssgproject.content_profile_rht-ccp配置文件,然后运行评估命令。例如,以下命令用于根据Red Hat认证的云提供商的SCAP概要草案评估给定的系统

oscap xccdf eval \
--profile xccdf_org.ssgproject.content_profile_rht-ccp \
--results ssg-rhel7-xccdf-result.xml \
--report ssg-rhel7-report.html \
/usr/share/xml/scap/ssg/rhel7/ssg-rhel7-ds.xml

审核Red Hat产品的安全漏洞

红帽安全响应团队为所有影响红帽企业Linux 3、4、5、6和7的漏洞(由CVE名称标识)提供了OVAL定义。这使用户能够执行漏洞扫描并诊断系统是否易受攻击。 。数据以三种方式提供-OVAL文件,OVAL + XCCDF和Source DataStream。

OVAL + XCCDF

下载

wget https://www.redhat.com/security/data/metrics/com.redhat.rhsa-all.xccdf.xml
wget https://www.redhat.com/security/data/oval/com.redhat.rhsa-all.xml

运行扫描

oscap xccdf eval --results results.xml --report report.html com.redhat.rhsa-all.xccdf.xml

这是示例输出。它报告说已发布Red Hat Security Advisory(RHSA-2013:0911),但未应用更新,因此系统受多个CVE(CVE-2013-1935,CVE-2013-1943,CVE-2013-2017)影响

Title   RHSA-2013:0911: kernel security, bug fix, and enhancement update (Important)
Rule    oval-com.redhat.rhsa-def-20130911
Ident   CVE-2013-1935
Ident   CVE-2013-1943
Ident   CVE-2013-2017
Result  fail

生成可读报告report.html以及“机器”可读报告results.xml。这两个文件都包含有关扫描系统的漏洞状态的信息。他们将RHSA映射到CVE,并报告哪些安全建议未应用于扫描的系统。CVE标识符与国家漏洞数据库链接,该数据库中存储了其他信息,如CVE描述,CVSS分数,CVSS向量等。
在这里插入图片描述

仅OVAL
下载内容

wget https://www.redhat.com/security/data/oval/com.redhat.rhsa-all.xml

运行扫描

oscap oval eval --results results.xml --report report.html com.redhat.rhsa-all.xml

这是示例输出。它报告说已发布了Red Hat Security Advisory(RHSA-2013:0911),但未应用更新。注意,标准输出不同于XCCDF + OVAL输出。

Definition oval:com.redhat.rhsa:def:20130911: true

生成可读报告report.html以及“机器”可读报告results.xml。这两个文件都包含有关扫描系统的漏洞状态的信息。他们将RHSA映射到CVE,并报告哪些安全建议未应用于扫描的系统。CVE与国家漏洞数据库链接,该数据库中存储了其他信息,如CVE描述,CVSS分数,CVSS向量等
在这里插入图片描述

Source DataStream
下载内容

wget https://www.redhat.com/security/data/metrics/ds/com.redhat.rhsa-all.ds.xml

运行扫描

oscap xccdf eval --results results.xml --report report.html com.redhat.rhsa-all.ds.xml
3.7、其他实用程序

使用oscap-ssh扫描远程计算机

所述oscap-SSH是用于通过网络与OpenSCAP扫描远程机器并收集结果的简单工具。

该工具使用SSH连接将SCAP内容复制到远程计算机,然后运行目标系统的评估并将结果下载回去。远程计算机需要安装OpenSCAP。

该工具可以评估源数据流和OVAL文件。该工具的用法模仿了oscap工具的用法和选项。

在以下示例中,我们将扫描IP地址192.168.1.13上的远程Fedora服务器,该服务器 在端口22上侦听SSH连接。将对服务器进行扫描,以确保其符合SCAP安全指南提供的通用Fedora系统通用配置文件。HTML报告在本地计算机上写为report.html。

oscap-ssh root@192.168.1.13 22 xccdf eval \
--profile xccdf_org.ssgproject.content_profile_common \
--report report.html \
/usr/share/xml/scap/ssg/content/ssg-fedora-ds.xml

使用oscap-docker扫描Docker容器和图像

oscap-docker用于扫描Docker容器和图像。它可以评估容器或映像中的漏洞,并检查其是否符合安全策略。该工具的用法模仿了oscap工具的用法和选项。

该oscap-docker工具使用所谓的脱机扫描技术。这意味着容器的文件系统已安装到主机上的目录。挂载的文件系统是只读的。然后,OpenSCAP从主机评估容器。因此,没有在容器中安装任何代理程序,并且不会以任何方式触摸或更改容器。

但是,oscap-docker要求 在主机上安装Atomic。Atomic是高级容器管理解决方案,它使oscap-docker可以访问容器。

在第一个示例中,我们将对Red Hat Enterprise Linux 7(名为rhel7)的Docker映像执行漏洞评估。该命令将附加docker映像,确定操作系统的版本/版本,下载适用于给定映像的CVE流,最后它将评估该映像的漏洞。CVE流是SCAP格式的漏洞列表,可直接从Red Hat下载。HTML报告在本地计算机上写为report.html。

oscap-docker image-cve rhel7 --report report.html

在第二个示例中,我们将检查同一rhel7映像是否符合XCCDF清单中指定的安全策略。

oscap-docker image rhel7 xccdf eval --report report.html xccdf.xml

要扫描正在运行的容器,命令非常相似,只需将“ image-cve”替换为“ container-cve”,将“ image”替换为“ container”。

使用oscap-vm扫描虚拟机

OpenSCAP提供了一个简单的工具来评估虚拟机oscap-vm。

该工具可以直接从虚拟化主机扫描给定的虚拟机。该工具的用法模仿了oscap工具的用法和选项。

与oscap-docker相似,该实用程序也使用脱机扫描,因此它不会在guest虚拟机中安装任何内容,不需要在guest虚拟机中安装OpenSCAP,并且不会在guest虚拟机的文件系统中创建或更改任何内容。

使用oscap-chroot扫描任意文件系统

可以使用非常简单的脚本oscap-chroot对安装在任意路径上的文件系统执行脱机扫描。它可用于扫描oscap- docker或oscap-vm不支持的自定义对象,例如Docker以外的其他格式的容器。同样,该工具的用法模仿了oscap工具的用法和选项。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值