基于SCAP 的Linux 终端配置核查

2020-06-28 07:46王璇文张署翔
机电产品开发与创新 2020年3期
关键词:漏洞文档定义

王璇文, 张署翔

(海军参谋部某保障大队, 北京 100071)

0 引言

随着信息技术的飞速发展, 越来越多的信息安全问题暴露了出来,有统计表明,用户受攻击的原因,5%是零日攻击,30%是没有打补丁,而高达65%是由于错误的配置。 因此, 安全配置是保障计算机终端安全性的必要条件,只有正确的配置才是终端安全性保障的最大因素。而随着我国国产操作系统的发展进步, 未来必将实现国产操作系统的规模应用,所以研究、建立一套检测框架以实现对国产操作系统的安全配置核查将是我们下一步急需解决的问题。

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

1.1 总体介绍

安全内容自动化协议(SCAP)是由NIST 建立的规范的表达和操作安全数据标准化的方法。SCAP 可以列举产品名称和漏洞(软件缺陷和配置问题),找出存在的漏洞,并根据软件漏洞缺陷的严重程度评分。 SCAP 的使用使得系统更容易自动进行安全监测、 漏洞管理和安全政策和合规性评价报告。 举个例子,应用SCAP 快速查找已知的漏洞,然后矫正,以防止攻击者利用。

SCAP1.1 版本共有七个元素, 包含:XCCDF(Extensible Configuration Checklist Description Format:扩展配置检查列表描述格式)1.14 版本、OVAL(Open Vulnerability and Assessment Language: 开放式漏洞与评估语言)5.8 版本、OCIL(Open Checklist Interactive Language:开放式检查单交互语言)2.0 版本、CCE(Common Configuration Enumeration:通用配置枚举)5.0 版本、CPE(Common Platform Enumeration:通用平台枚举)2.2 版本、CVE(Common Vulnerabilities and Exposures: 通 用 漏 洞 枚 举)、CVSS(Common Vulnerability Scoring System:通用漏洞评分系统)2.0 版本。

(1)XCCDF(扩展配置检查列表描述格式),用于操作系统 (OS) 和应用平台结构的将安全配置规则规范化的XML(Extensible Markup Language:可扩展标记语言)。

(2)OVAL(开放式漏洞与评估语言),描述技术细节上如何检查系统安全,定义有关的软件缺陷、配置问题和补丁的XML 规范语言。

(3)OCIL(开放式检查单交互语言),定义用于表达要呈现给用户的一组问题和解释对这些问题的回答的相应程序的框架的XML 语言。

(4)CCE(通用配置枚举),软件安全配置问题名称字典(如:访问控制设置、密码策略设置等安全配置问题)。

(5)CPE(通用平台枚举),统一硬件、操作系统和应用程序产品命名的规则。

(6)CVE(通用漏洞枚举),已知公开的与安全相关软件的漏洞名称字典。

(7)CVSS(通用漏洞评分系统),根据软件缺陷特点来分类,然后基于这些特点根据重要程度来进行评分等级。

1.2 开放式漏洞评估语言(OVAL)5.8 版本

OVAL 由MITRE 公司开发,是一种用来定义检查项、脆弱点等技术细节的一种描述语言。 其使用简洁的XML格式清晰地对与安全相关的系统检查点作出描述, 这种描述是机器可读的,可以使机器之间交流漏洞、补丁和安全配置设置,能够直接应用到自动化的安全扫描中,可以用来评估一个系统的状态。 在SCAP 下,OVAL 通常用于描述已存在的漏洞和系统安全配置, 同时OVAL 语言提供了足够的灵活性, 可以用于分析Windows、Linux 等各种操作系统的系统状态、漏洞、配置和补丁等情况,而且还能用于描述测试报告。

OVAL 有三种用XML 描述的格式(schema),它们定义了OVAL 语言的框架, 这三种格式分别对应了检测的三个步骤:OVAL 定义文档的模式 (OVAL Definition Schema)、OVAL 系 统 特 征 文 档 的 模 式 (OVAL System Characteristics Schema)、OVAL 结 果 文 档 的 模 式(OVAL Results Schema), 每个类别都包含一个核心模式和一系列组件的模式。

(1)OVAL 定 义 文 档 的 模 式 (OVAL Definition Schema)。OVAL 定义模式 定义了标准的XML 格式用于描述目标系统的一个特定理想状态并且让其能够自动检测系统。

(2)OVAL 系统特征文档的模式(OVAL Syetem Characteristics Schema)。OVAL 的系统特征模式定义了一个标准的XML 格式用于表示系统配置信息。 这个配置信息包括操作系统参数, 安装的软件应用程序设置和其它安全相关的配置值。该模式的目的是提供一个系统特征的“数据库”,通过与OVAL 定义进行对比,可以对系统的漏洞、配置问题和补丁进行分析。

(3)OVAL 结果文档的模式(OVAL Results Schema)。OVAL 的结果模式定义了一个标准的XML 格式用于存储评估系统的结果。 数据包含系统当前状态的配置与一组OVAL 定义的比较结果。 OVAL 结果模式允许应用程序使用这些数据, 解读数据并采取必要的行动来解决漏洞和配置问题(例如:安装补丁、改变系统配置设置、采取外部的预防措施来限制访问问题的系统)。这个模式还定义了一个标准的漏洞和错误配置交换格式, 可以被纳入各种工具通用。

由此可见,如果要定制自己的合规检测方案,就要编写自己独特的OVAL 定义文档。 OVAL 定义文档提供了一种机器可读的对系统进行安全评估的操作指南, 它可用来描述系统的配置信息、分析系统的安全状态、报告评估结果。 典型的OVAL 定义文档由Definition(定义)、Test(测试)、Object(对象)、State(状态)和Variable(变量)等要素构成,其文档结构比较简单,主要是将各个要素以枚举的方式列出,在此不再做过多阐释。

2 SCAP 编辑工具

SCAP 文档内容是可以用开放式漏洞评估语言(OVAL)、开放式清单交互语言(OCIL)或扩展配置检查列表描述格式(XCCDF)描述的系统测试。 它为安全操作指令指定了一个标准的能够在IT 系统上检查的语言。 OVAL测试可以解决安全模式、软件漏洞、当前系统存在的恶意软件等问题。 OCIL 问卷可以对人们提出的各种各样的问题给出一个应答。 但是这些SCAP 文档都比较复杂,如果人为地去进行编写,这个工作量极大,而且意义不大,还容易产生一些不必要的问题。因此本项目引入eSCAPe 软件对OVAL 文档进行编辑。

eSCAPe 全称是Enhanced SCAP Editor(增强版SCAP编辑器),增强版SCAP 编辑器(eSCAPe)软件,是一个能够自主创建安全内容自动化协议(SCAP)文档的软件,随着eSCAPe 的引入,大大降低了人们编写SCAP 文档时的人为错误。 如今eSCAPe 已经被广泛应用于SCAP 文档的生成,SCAP 文档经常被用于对现有的恶意软件和未打补丁的漏洞进行快速的单项安全检测。 这方便了人们自定义SCAP 检测文档的内容, 提高响应紧急的高危安全警报的能力。

eSCAPe 编辑器包括两种模式用于创建SCAP 内容文档。 “Wizard-Driven”称作“导引模式”,导引模式是一个快速创建恶意检测SCAP 内容文档的方式, 导引模式将根据用户需要创建出一个完整的SCAP 内容文档, 但是导引模式所能创建的SCAP 内容文档有限。 另一个“Standard”被称为“标准模式”。 标准模式可以通过使用菜单栏项目, 访问所有功能的编辑器, 能够根据用户对definition、test、object、state 和variable 的 编 辑 自 动 生 成 内 容 完整的OVAL 文档。用户可以通过菜单栏切换这两种模式,如图1 所示为eSCAPe 编辑器界面。

图2 展示了 “设置密码最大重试次数为3”OVAL 定义文档的部分内容。

图1 OVAL 定义的源文档Fig.1 OVAL Definition source document

图2 “设置密码最大重试次数为3”OVAL 定义文档节选Fig.2 "Setting the maximum number of password retry attempts to 3" excerpt from OVAL Definition document

3 SCAP 扫描工具

开源的SCAP 相关的项目的工具有很多, 其中比较重要的有OpenSCAP、OVALDi 以及eSCAPe 等,这些工具已形成了SCAP 的一套完整的开发和利用体系。 eSCAPe用于SCAP 内容文档的的生成,在前面已经介绍。 Open-SCAP、OVALDi、jOVAL 用于执行基于SCAP 的扫描。通常OpenSCAP 用于Linux 系 统,jOVAL 用 于MAC_OS 系 统,OVALDi 用于Windows 系统。 本项目用OpenSCAP 中的oscap 工具对Red Hat Enterprise Linux 7 操作系统进行配置合规检查。

oscap 根据OVAL 定义文档收集主机的相关信息生成OVAL 系统特征文档, 通过对OVAL 系统特征文档和标准的OVAL 定义文档进行对比得到检测结果, 如图3形象表现了完整的OVAL 工作流程。

图3 OVAL 工作流程Fig.3 OVAL workflow

在OVAL 工作过程中, 针对每一条测试,OVAL 各自元素起到不同的作用。 下面针对最基本的一个OVAL 测试中所有的元素定义、测试和状态进行说明。 OVAL 定义评价是一个检测系统特点的过程和应用一个或多个描述这些特点的逻辑语句来确定OVAL 定义的系统状态的总体结果。每个OVAL 定义拥有零个或一个逻辑标准组件,他们结合使用逻辑运算符“与”和“或”。 评估一个OVAL定义的总体结果是由其评定标准组件决定的。 OVAL 测试是一个标准化的表示系统状态的声明。 OVAL 测试包含引用一个指定系统数据收集和零个或多个指定预期采集的系统状态OVAL 对象。 OVAL 测试评估的过程是一个根据OVAL 项目收集的系统状态与零个或多个OVAL状态相比较的过程,如图4。 OVAL 状态是表示系统预计状态的标准化表达。 在OVAL 状态中每个OVAL 状态实体表达一块配置信息的预期值。 OVAL 状态评估是一个指定的OVAL 状态同系统收集到的有关项的比较过程,如图5 所示。

图4 OVAL 测试的工作流程Fig.4 OVAL test workflow

图5 OVAL 状态的工作流程Fig.5 OVAL state workflow

4 基于SCAP 的Linux 终端配置核查实践

为了便于读者进一步理解和熟悉OVAL 定义文档执行扫描和oscap 的使用过程,下面本文将以使用oscap 运行 “设置密码最大重试次数为3” 的OVAL 定义文档为例,对基于SCAP 的Linux 终端配置核查进行实践。

在桌面打开终端,输入并运行以下命令:

~]# oscap oval eval--results password-retry-results.xml /usr/tmp/password-retry-oval.xml

oscap 会运行“password-retry-oval.xml”OVAL 定义文档执行SCAP 扫描,终端会显示本次扫描的结果。 生成的OVAL 结果文档以“password-retry-results.xml”为名保存在home 主文件夹中。

在终端中输入并运行以下命令:

~]# oscap oval generate report password-retry-results.xml >password-retry-report.html

刚才生成的 “password-retry-results.xml”OVAL 结果文档会转换为HTML 格式的扫描报告, 以 “passwordretry-report.html”为名保存在home 主文件夹中。

图6 为oscap 运行“password-retry-oval.xml”OVAL 定义文档执行SCAP 扫描的结果。 因为本机设置密码最大重试次数为3,所以扫描结果为“true”。

图7 为生成的 “设置密码最大重试次数为3”OVAL结果文档节选。

图8 为生成的 “设置密码最大重试次数为3”OVAL定义文档扫描报告。

图6 “设置密码最大重试次数为3”OVAL 定义文档执行扫描结果Fig.6 "Setting the maximum number of password retry attempts to 3" OVAL Definition document scan results

图7 “设置密码最大重试次数为3”OVAL 结果文档节选Fig.7 "Setting the maximum number of password retry attempts to 3" excerpt from the OVAL Results file

图8 “设置密码最大重试次数为3”OVAL 定义文档扫描报告Fig.8 "Setting the maximum number of password retry attempts to 3" OVAL Definition document scan report

5 结束语

本文主要对SCAP 进行了引入, 并能够运用其实现安全配置核查的自动化,在国内Linux 终端配置核查检测自动化方面实现了一个突破。 总之, 希望通过文章对SCAP 相关内容和工具的梳理,可以为我国加快建立类似SCAP 的安全内容检查框架,并实现对国产操作系统安全配置的自动化核查的研究提供一定的思路和方向。

猜你喜欢
漏洞文档定义
漏洞
浅谈Matlab与Word文档的应用接口
有人一声不吭向你扔了个文档
Word文档 高效分合有高招
三明:“两票制”堵住加价漏洞
漏洞在哪儿
成功的定义
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
高铁急救应补齐三漏洞
修辞学的重大定义