信息发布→ 登录 注册 退出

OVAL漏洞定义语言的XML结构是什么样的

发布时间:2025-12-27

点击量:
OVAL定义文件以为根元素,包含definitions、tests、objects、states四类核心模块,通过ID引用形成“定义→测试→对象/状态”的依赖链,强调可重用性与平台无关性。

OVAL(Open Vulnerability and Assessment Language)是一种用于描述系统安全状态的标准化XML语言,主要用于漏洞检测、配置合规性检查和补丁审计。其XML结构不是扁平的单层文档,而是由多个逻辑模块组成,各模块通过ID引用相互关联,形成“定义→测试→对象/状态/变量”的依赖链。 以下是OVAL定义文件(通常以 `` 为根元素)的核心XML结构层次和关键组件:

1. 根元素与命名空间声明

所有OVAL定义文件以 开始,必须声明OVAL标准命名空间及版本:


  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://oval.mitre.org/XMLSchema/oval-definitions-5
    https://oval.mitre.org/language/version5.11/oval-definitions-schema.xsd">

2. 四类核心定义块(按功能分组)

OVAL定义文件主体包含四个平行的顶级子元素,各自容纳一类实体:

  • :存放漏洞、合规、入侵等高层逻辑判断单元(即“OVAL Definition”),每个含一个 表达式树
  • :定义具体检测行为(如“检查注册表值是否等于X”),每项引用一个 和零或多个
  • :声明待检查的目标资源(如文件路径、Windows服务名、RPM包名),含平台相关字段(如
  • :定义期望的资源状态(如文件版本应 ≥ 1.2.3,或服务状态应为 “running”)

注:OVAL 5.x 还支持 块(用于参数化值)和 (供外部注入),但非必需。

3. 典型定义依赖关系(自上而下引用)

一个完整的漏洞检测逻辑遵循严格引用链,不可循环:

  • 一个 (id="oval:org.example:def:1") → 引用一个 ID
  • (id="oval:org.example:tst:1") → 引用一个 ID 和零至多个 ID
  • (id="oval:org.example:obj:1") → 描述目标(如 C:\windows\system32\calc.exe
  • (id="oval:org.example:ste:1") → 描述期望值(如 10.0.19041.1

4. 简化示例片段(Windows漏洞检测节选)


  
    Windows Calculator Remote Code Execution
  

  
    
  



  check="at least one"
  check_existence="at_least_one_exists"
  comment="Check calc.exe version">
  
  



  C:\Windows\System32\calc.exe



  10.0.22621.2506
基本上就这些。OVAL结构强调可重用性与平台无关性,所有ID需全局唯一,且每个元素必须有 idversion 属性(用于变更追踪)。实际使用中,多数OVAL内容由工具(如SCAP Content Repository、OpenSCAP)生成或验证,手写需严格校验schema。
标签:# 对象  # 文档  # 常以  # 每项  # 主要用于  # 自上而下  # 是由  # 是一种  # 四类  # 多个  # https  # http  # windows  # operator  # class  # 循环  # xml  # 命名空间  # Object  # less  # win  # 注册表  # 工具  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!