当前位置: 首页 > 工具软件 > OVal > 使用案例 >

开放式漏洞评估语言(OVAL)概述

邹开畅
2023-12-01

1. 什么是OVAL?

OVAL(开放漏洞评估语言)是一个国际信息安全社区标准,用于评估和报告计算机系统的机器状态,促进开放和公开的安全内容,并在整个安全工具和服务范围内传输此信息。

这是一个开放的社区努力,旨在标准化安全工具创建者,操作系统供应商和安全专业人员测试系统漏洞的过程。它由美国国土安全部网络安全和通信办公室赞助。Internet Security 中心管理 OVAL 网站、社区参与和讨论列表,以实现整个信息安全社区内的公开和公开协作。这是MITRE早些时候完成的(直到2015年7月31日)

2. 为什么选择OVAL

 在 OVAL 之前,系统管理员和其他最终用户没有通用或结构化的方法来确定本地系统中是否存在软件漏洞、配置问题、程序和/或补丁。许多信息都以基于文本的描述的形式从漏洞和其他知识来源(如软件供应商、政府机构、工具供应商和安全咨询公司)获得,但是,对于系统管理员来说,阅读和解释这些非结构化信息并确定本地系统上是否存在特定漏洞或配置问题仍然是一个劳动密集型且容易出错的过程。

OVAL 通过提供标准定义来确定系统上存在哪些软件漏洞、配置问题、程序和修补程序来解决这些问题。然后,用户可以从供应商处获取适当的修复信息和软件补丁并进行修复。

3. 为什么选择OVAL

OVAL由三个主要部分组成。它们是:

  • OVAL Language
  • OVAL Interpreter
  • OVAL Repository

OVAL Language

OVAL 语言是 OVAL 最重要的组成部分。它使评估过程的三个主要步骤标准化:表示用于测试的系统的配置信息;分析系统是否存在指定的计算机状态并报告此评估的结果。

它是如何做到这一点的,方法是使用三个标准化的架构来生成三个相应的 XML 文件。这些 XML 文件及其架构如下所示:

  • 基于 OVAL 定义架构的定义文件
  • 基于 OVAL 系统特征架构的系统特征文件
  • 基于 OVAL 结果架构的结果文件

这些架构对应于评估过程的三个步骤:用于表示系统信息的 OVAL 系统特征架构、用于表示特定计算机状态的 OVAL 定义架构以及用于报告评估结果的 OVAL 结果架构。

OVAL定义架构:

OVAL 定义架构用于定义用于编写以下内容的 XML 框架:

  1. OVAL 漏洞定义,通过定义计算机上必须存在的条件才能存在特定漏洞。
  2. OVAL 修补程序 定义,方法是在计算机上定义确定特定修补程序是否适用于系统的条件。
  3. OVAL 清单 定义,方法是定义计算机上确定系统上是否安装了特定软件的条件。
  4. OVAL 符合性定义,方法是在计算机上定义确定符合特定策略或配置语句的条件。

现在,基于定义的XML框架,使用MITRE的漏洞数据库(这是一个条目列表,每个条目都包含一个标识号,一个描述和至少一个公开的公开参考)以及领先的安全组织和政府机构关于当前威胁和漏洞的建议来编写定义。所有这些定义都编译在一起,并生成一个特定于 XML 平台的定义文件。

每个定义都由唯一的 OVAL 标识符进行区分。OVAL-ID 使用格式"oval:Organization_DNS_Name:ID_Type:ID_Value",其中组织 DNS 名称的形式为"org.mitre.oval",ID 类型表示要应用该 ID 的实体(可以是以下值之一:def — Definition、obj — Object、ste — State、tst — Test 或 var — Variable),ID Value 是其前面的 DNS 名称和 ID 类型对所特有的整数。例如:oval:org.mitre.oval:def:8617。

因此,这是一个 OVAL 漏洞定义,如类字段所示。此定义检查是否存在 Microsoft Office Excel 记录内存损坏漏洞。所有受影响的平台都与受影响的产品(Microsoft Excel 2002)一起被提及。参考字段告诉我们定义的来源/基础是什么。该定义还提供了该定义的提交时间、提交者以及接受定义的各个日期的时间戳。它还显示发生的任何修改的时间戳。

最后,我们有标准。此条件确定是否存在指定的漏洞。此处,条件由 AND 运算符连接的两个条件组成。这意味着,要使漏洞存在,两个给定的标准都必须是正确的。第一个条件是另一个定义的扩展,第二个条件检查Excel 版本是否小于 10.0.6860.0。它使用测试来执行此操作。转到测试,我们得到以下测试定义。

首先,观察测试ID是相同的。评论提到了测试的作用。check_existence属性指定 OVAL 对象定义的集合中必须存在多少个项目才能将测试评估为 true。此处此属性的值为"at_least_one_exists",指示如果系统上至少存在一个由 OVAL 对象定义的项,则测试的计算结果可能为 true。

现在查看对象和状态元素,我们看到对象存储了 EXCEL 的版本。EXE 通过另一个变量。另一方面,状态存储低于 10.0.6860.0 的所有版本的值。因此,如果对象元素的值与状态版本中的任何值匹配,则测试将返回 true。注意:xmlns 是用于标识架构文件以验证内容的命名空间。

OVAL 系统特征架构:

OVAL 系统特征架构定义了用于表示系统配置信息的标准 XML 格式。此配置信息包括操作系统参数、已安装的软件应用程序设置和其他与安全相关的配置值。使用此架构,将生成一个系统特征 XML 文件,该文件是系统特征的"数据库",可以根据该文件比较 OVAL 定义,以便分析系统中的漏洞、配置问题和修补程序。当 OVAL 解释器在计算机上运行时,将生成此 XML 文件,并捕获所有必需的计算机状态。

从本质上讲,该架构定义了一种标准的系统特征交换格式,可以促进社区内部以及安全管理员和供应商之间非常容易的数据交换。

生成的 XML 文件如下所示:

以上是一个系统特征 XML 文件的快照,该文件是在 XP 计算机上运行 OVAL 解释器时生成的。

OVAL 结果架构:
结果架构定义了用于存储系统评估结果的标准 XML 格式。使用此架构,将生成一个结果 XML 文件,其中包含与一组 OVAL 定义进行比较的系统配置的当前状态。此文件是在 OVAL 解释器在计算机上运行时生成的。

然后,此数据允许用户采取必要的措施来缓解漏洞和配置问题(例如,安装修补程序、更改系统配置设置和/或采取外部预防措施来限制对受影响系统的访问)。

所有架构:OVAL 定义架构、OVAL 系统特征架构和 OVAL 结果架构本身不是单独的架构,而是每个架构由"核心"架构和"组件"架构集合组成。

OVAL Interpreter

OVAL Interpreter 是一个免费提供的参考实现,用于演示对 OVAL 定义的评估。根据一组 XML 定义,解释器收集系统信息,例如:已安装软件的版本、授予不同软件的权限、访问类型等,并将其存储在系统特征 XML 文件中。然后,它对其进行评估,将其与定义进行比较,从而生成详细的 OVAL 结果文件。在我们上面讨论的示例中,解释器收集了对象的值 — Excel 版本,并将其存储在系统特征文件中。然后,它运行测试,检查对象的值是否与状态中的任何值匹配。

开发的目的是为了演示 OVAL 定义的可用性,并确保定义编写器的正确语法和遵守 OVAL Schemas,它不是一个功能齐全的扫描工具,并且具有简单的用户界面,但运行解释器将在系统上提供 OVAL 定义 ID 及其结果的列表。

OVAL Repository

OVAL 存储库是 OVAL 社区讨论、分析、存储和传播 OVAL 定义的中心会议场所。对于大多数主要平台,此处提供了 OVAL 定义。您可以通过各种过滤器(如ID,标题,描述,平台等)搜索定义。您还可以下载平台的整个存储库。

社区成员通过将定义发布到 OVAL 存储库论坛电子邮件讨论列表来贡献定义,OVAL 团队和社区其他成员将在那里进行审查和讨论。OVAL 社区的任何成员(包括 OVAL 董事会)、具有 OVAL 兼容信息安全产品和服务的组织以及 OVAL 存储库论坛电子邮件列表的个人成员都可以提交 OVAL 定义。

存储库论坛是一个经过轻微审核的公共讨论列表,面向那些对编写、提交和讨论新的和以前发布的定义以及影响定义编写的漏洞和配置问题本身感兴趣的人。

4. 应用程序

1) 安全公告分发:
在发现漏洞时,供应商和安全研究人员会发布安全公告。它包含检测是否存在漏洞所需的信息。如果漏洞信息以标准的机器可读格式发布,它将为扫描产品提供对可操作内容的即时访问权限,这些内容可用于评估系统的安全状况。OVAL在这方面可以派上用场。

假设在某个方案中,软件供应商收到一个未公开的漏洞报告,并确认其软件中存在漏洞。供应商进一步调查此漏洞,以确定软件的哪些版本受到影响以及在哪些平台上受到影响。

供应商为漏洞保留 CVE 标识符,并以 OVAL 定义的形式为漏洞创建标准化检查。然后,软件供应商添加测试以检查相关平台上的易受攻击的软件。组织可以下载安全顾问的 OVAL 定义,并在他们选择的漏洞扫描工具中使用它来确定其系统是否容易受到攻击。

2) 漏洞评估:

漏洞管理是识别系统中的漏洞并根据其严重性确定其优先级的过程。目前,开发漏洞管理产品的组织雇用一个内容开发人员团队,该团队为每个漏洞创建自定义检查,以指示是否存在该漏洞。

OVAL 对漏洞管理产品供应商非常有用,因为他们可以彼此共享漏洞检查,并协作开发针对给定问题的最佳检查。例如:以应用程序供应商披露了新的关键漏洞为例。漏洞管理产品供应商快速开发并分发 OVAL 定义,并检查其支持的平台上是否存在漏洞。

供应商还以 OVAL 定义的形式与其他漏洞管理供应商和行业专家的论坛共享此新检查。OVAL 定义由安全专家检查误报,并由其他供应商进行扩展,以包括其他平台的详细检查信息,以便对所有已知的易受攻击的平台完成漏洞检查。因此,论坛成员合作开发了对漏洞的彻底,准确,标准化的检查,并在其产品和服务中利用了由此产生的OVAL定义。

3) 补丁管理:

修补程序管理是识别影响系统的安全问题和软件更新、应用解决这些问题的修补程序以及验证修补程序是否已成功安装的过程。补丁管理供应商社区可以从以标准格式构建补丁检查信息中受益匪浅,因为它将允许他们快速使用来自不同供应商等多个来源的数据。

如果操作系统供应商为其平台发布了一组新的补丁,并将标准化的补丁检查作为椭圆形定义,那么安装补丁就变得非常容易。系统管理员只需运行补丁管理工具,该工具检索 OVAL 定义、验证其签名、收集属性、在 OVAL 结果中表达结果。然后,修补程序管理工具将检查 OVAL 结果并确定是否应安装修补程序。修补程序已安装,系统不再容易受到攻击。

4) 配置管理:

配置管理过程包括检查计算机的配置状态,将其与已知的良好或授权配置状态进行比较,并报告结果。有许多公开可用的最佳实践配置指南,但其中许多仅以纸质形式存在,并且由 IT 人员将文档转换为可在一致基础上应用和实施的内容。因此,如果供应商以标准化格式发布配置策略,其中包含一系列 OVAL 定义,则客户将非常容易使用它们并进一步自定义它们以满足其需求。

决定为其桌面系统开发安全配置策略的组织可以利用桌面操作系统供应商建议的 OVAL 定义中的安全配置指南,而不是从头开始创建新策略。组织下载策略并根据其环境进行定制。假设组织具有非常严格的密码策略,并且需要要求所有桌面系统上的最小密码长度为 14 个字符。鉴于操作系统供应商建议的最小密码长度为 8 个字符,因此已发布的安全配置中已经存在用于检查最小密码长度的 OVAL 定义。组织只需将最小密码长度值设置定制为 14,并在 OVAL 定义中重用其余的检查逻辑。组织可以通过编辑已发布的 OVAL 定义,将其他几个自定义项应用于策略。

5) 审计和集中审计验证:

审核验证提供有关过去任何给定时间的计算机状态的报告。为此,以高粒度捕获计算机配置信息非常重要。此外,这些数据需要以标准化的、以数据为中心的格式存储,以确保它不会绑定到特定的产品。下面给出了一个示例,说明 OVAL 在这里是如何有用的。

组织具有集中的审核验证系统。当新系统加入网络时,将立即对其进行扫描,并且与扫描关联的 OVAL 结果将作为系统在集中式审核验证系统中的初始状态。从那时起,系统每周扫描一次,以确定是否有任何变化。如果发现更改,验证系统将使用最新的 OVAL 结果进行更新。

如果在计划扫描之间的任何时间点,系统陷入或不合规状态,或者安装了新的修补程序,则集中式审核验证系统将立即使用新的 OVAL 结果进行更新。因此,集中式审核验证系统现在包含多组 OVAL 结果,记录了系统随时间推移的各种状态变化。

6)安全信息管理系统(SIMS):
集成了各种安全,审计和配置产品的输出,以构建组织网络安全状况的全面视图。SIM卡需要了解的数据格式越少,产品就越灵活和强大。因此,使用 OVAL 标准化数据交换格式可以大大简化互操作性要求。

例如:安全信息管理系统供应商可以利用漏洞管理工具、修补程序管理工具、配置管理工具以及生成 OVAL 结果的任何其他工具生成的 OVAL 结果作为进入其系统的数据的主要格式。通过这样做,系统可以直接使用来自整个工具范围的数据,而无需在分析之前将类似数据的不同格式转换为单一格式。

7) 系统清单:

系统清单是收集给定系统上安装的应用程序的详细列表的过程。大型企业通常有许多版本的许多应用程序在各种操作系统上运行。在跟踪软件的许可、漏洞管理、合规性和其他目的时,这带来了相当大的挑战。

使用标准化方法来检查应用程序是否存在并记录其版本是一个非常重要且公认的需求。系统管理员可以使用 OVAL 定义针对其系统清单工具运行。这将记录所有必需的系统属性,并生成一个系统配置文件,该文件是观察到的系统状态的快照。

8) 恶意软件和威胁指示器共享:
事件协调中心、组织和安全社区的其他成员积极讨论恶意软件并共享可用于检测潜在受损系统的低级系统详细信息。这些详细信息通常以散文文档的形式共享,这些文档在用于系统评估之前需要将其转换为可操作的内容。

因此,使用标准的 OVAL 格式将恶意软件和威胁指示器编码到 OVAL 定义中非常有用。它可以帮助共享威胁指标和检测受损系统。

5. 行业产品:

许多公司和组织已根据 OVAL 采用计划采用 OVAL。OVAL 采用计划基于五种不同的功能,每种功能针对 OVAL 语言的不同用法。

公司使用 OVAL 开发产品,然后根据产品的功能将这些产品分类为五个类别中的一个或多个类别。以下是类别列表:

1) 创作工具:
注册为创作工具的产品应有助于创建新的 OVAL 文件(包括将现有 OVAL 定义合并到单个文件中的产品)。供应商利用创作工具来协助漏洞扫描和开发补丁适用性内容以提供给其客户。

2) 系统特性生产者:
注册为系统特性生产者的产品会根据系统的详细信息生成有效的 OVAL 系统特性文件。供应商和组织都可以进一步使用它来生成系统映像。

3) OVAL 定义评估器:
这些产品使用 OVAL 定义和系统特性来指导评估并生成 OVAL 结果文档作为输出。这可用于在安全公告上实施定义评估器功能,并报告发现的任何漏洞

4) OVAL 结果 使用者:
此产品接受 OVAL 结果文档作为输入,并向用户显示结果,或使用结果执行某些操作。

5) OVAL 定义存储库:
将安全公告发布为 OVAL 定义的组织及其生成这些定义的产品可被视为 OVAL 定义的存储库。此存储库可供社区进一步使用。

具有这些 OVAL 功能的一些产品包括:

1) 惠普开发公司:惠普服务器自动化(系统特性生产者):

惠普服务器自动化提供基于 OVAL 漏洞定义的实时漏洞检测、自动化补丁管理和内部合规性控制,从而实现:生成系统特征,这是一项关键的中间任务。惠普支持 OVAL 标准,通过自动漏洞泄露帮助 IT 组织降低安全风险。

2) McAfee, Inc: McAfee Policy Auditor

(Authoring Tool): McAfee Policy Auditor 被广泛用作创作工具。它自动化了系统合规性审核所需的流程。组织可以使用 McAfee 的审核员部署集中式审核验证系统。当新系统加入网络时,组织的漏洞管理、修补程序管理和配置管理工具会立即对其进行扫描,这些工具基于最新的安全公告、修补程序和策略。

3) Red Hat, Inc: Red Hat Security

Advisories (Definition Repository):Red Hat 是 OVAL 项目的创始董事会成员,自 2006 年以来一直在发布 Red Hat Enterprise Linux Security Advisories 的 OVAL 漏洞定义。

4)美国陆军CERDEC:犰狳(定义评估器):

由美国陆军CERDEC开发的犰狳,是一种配置,漏洞,补丁和软件库存网络扫描程序。它通过使用 SCAP(安全内容自动化协议)捆绑包来识别错误配置,这些捆绑包包含定义策略指南的 XCCDF(可扩展配置清单描述格式)基准测试(类似于 STIG)和定义探测器和预期值的 OVAL 定义文件(类似于 SRR)。

6. 结论

OVAL非常有用。它可以更好地评估组织中系统的安全性,并简化信息共享。OVAL 使用顶级组织推荐的 CVE 和安全措施来编写定义,从而为系统提供高标准的安全测试。此外,安全管理员可以根据需要修改、添加或删除定义。许多组织运行高度定制的软件,他们可以为其开发个性化的安全检查。

OVAL社区正在积极努力添加更多定义,改进解释器并修复错误。OVAL 已经生成了结果。OVAL语言和漏洞定义可用于Linux,Solaris和Windows。此外,OVAL Interpreter还可用于Red Hat Linux,Linux和Windows发行版。

 类似资料: