目录
目录X
联系信息 首页 /正文内容

OpenSCAP + Red Hat OVAL 离线漏洞扫描

AI摘要(BLUF)
1. 这是什么OpenSCAP 是红帽主导的开源安全合规框架,oscap 是它的命令行工具。它本身不含漏洞数据,需要喂给它 OVAL 定义文件(一种 XML,描述「什么条件下算有漏洞」)。和 Trivy 的区别:适用场景:不想引入新二进制、想快速拿到一个可读报告时用它;定位是交叉验证,不是主力交付。2. 怎么下载2.1 oscap 本体国产系统上优先用系统源装(最简单,不用考虑编译):#检查是否已预装rpm-qopenscap&&oscap--version#没有就装(需目标机能访问系统源)sudoyuminstall-yopenscap上游地址(目标机是 x86_64/aar……


1. 这是什么


OpenSCAP 是红帽主导的开源安全合规框架,oscap 是它的命令行工具。它本身不含漏洞数据,需要喂给它 OVAL 定义文件(一种 XML,描述「什么条件下算有漏洞」)。


和 Trivy 的区别:



TrivyOpenSCAP + OVAL
漏洞数据自带打包好的漏洞库(trivy-db)外挂 OVAL XML,需自行更新
部署成本要带二进制 + 1.4 GB 漏洞库系统可能已预装,只带几 MB XML
输出表格 / JSON / SARIFXML + 自带 HTML 报告
误报率较低(数据做过归一化)较高(OVAL 是"判定式",大量不适用项会被报出来)


适用场景:不想引入新二进制、想快速拿到一个可读报告时用它;定位是交叉验证,不是主力交付。


2. 怎么下载


2.1 oscap 本体


国产系统上优先用系统源装(最简单,不用考虑编译):


# 检查是否已预装
rpm -q openscap && oscap --version
  
# 没有就装(需目标机能访问系统源)
sudo yum install -y openscap


上游地址(目标机是 x86_64/aarch64 源码编译或其他发行版时用):


  • 官网:https://www.open-scap.org/

  • 源码发布:https://github.com/OpenSCAP/openscap/releases


> 离线机没有源时,把 openscap 及其依赖的 RPM 从安装介质里取出来: > find /media -name 'openscap*.rpm',然后 sudo yum localinstall -y oscap*.rpm。


2.2 OVAL 漏洞定义(下载地址已实测)


Red Hat 官方 OVAL 数据源,RHEL8 基础系统(对应麒麟 V10 的生态位置):


目录索引:https://www.redhat.com/security/data/oval/v2/RHEL8/
更新索引:https://www.redhat.com/security/data/oval/v2/feed.json


两个常用文件(rhel-8.oval.xml.bz2 是正解,另一个更全但噪声也更多):


文件大小说明
rhel-8.oval.xml.bz21.85 MB只含已发布修复的漏洞定义 —— 推荐
rhel-8-including-unpatched.oval.xml.bz27.05 MB含未修复项,报得更多也更杂


下载并解压:


BASE=https://www.redhat.com/security/data/oval/v2/RHEL8
curl -fL -o rhel-8.oval.xml.bz2 "$BASE/rhel-8.oval.xml.bz2"
bunzip2 -k rhel-8.oval.xml.bz2
ls -lh rhel-8.oval.xml*      # rhel-8.oval.xml 解压后约 40~60 MB


> 实测:这两个文件最近更新于 2026-10-11,Red Hat 基本每天滚更,建议每次扫描前重新拉一份。


3. 怎么部署


# ① 装 oscap(能联网的机器)
sudo yum install -y openscap
  
# ② 取 OVAL 定义并解压
BASE=https://www.redhat.com/security/data/oval/v2/RHEL8
mkdir -p oscap-offline && cd oscap-offline
curl -fL -o rhel-8.oval.xml.bz2 "$BASE/rhel-8.oval.xml.bz2"
bunzip2 -k rhel-8.oval.xml.bz2
  
# ③ 打包带走
cd .. && tar -czf oscap-offline.tar.gz oscap-offline
sha256sum oscap-offline.tar.gz
  
# ④ 离线机上解包即可用,不需要安装步骤
tar -xzf oscap-offline.tar.gz && cd oscap-offline
oscap --version


不需要常驻服务、不需要改配置。OVAL 是纯数据文件,扫描是只读的,不改动系统、不需要重启。


4. 部署完怎么用


# 基本用法:一条命令同时出机读结果和 HTML 报告
sudo oscap oval eval \\
     --results results.xml \\
     --report  report.html \\
     rhel-8.oval.xml


产出的 report.html 可以直接双击打开、交给客户。results.xml 是可解析的原始结果。


常用筛选


# 只看「有漏洞」,不看「合规通过」
sudo oscap oval eval --results results.xml rhel-8.oval.xml | grep -i 'false\\|true' | sort | uniq -c
  
# 按漏洞 ID 统计(每个 CVE 的判定次数)
grep -oE 'oval:com\.redhat\.oval:def:[0-9]+' results.xml | sort | uniq -c | sort -rn | head
  
# 只评估单条定义(排查某个具体漏洞时用)
oscap oval info rhel-8.oval.xml
sudo oscap oval eval --id oval:com.redhat.oval:def:20230001 rhel-8.oval.xml


怎么读结果


oscap 的判定结果是 true / false / not applicable / unknown:


  • true = 符合"有漏洞"的条件,需要处理

  • false = 已修复或不满足条件

  • not applicable = 这条定义跟本机无关(包没装)。这类通常占比最大,要过滤掉

  • unknown = 缺数据判不了,一般忽略


⚠ 只统计 true,不要被总条数吓到。一份 RHEL8 OVAL 有几万条定义,绝大多数是 not applicable。



【打印正文】 发布时间:2026-10-12 09:57:46 浏览次数: 次 作者: 来源:本站原创