每次漏洞扫描结束,安全团队拿到的不是答案,而是一份待核查清单——几十条乃至上百条红色告警,指向版本号「不符合要求」的组件。熟悉 Linux 发行版运作方式的工程师心里清楚,其中大多数根本不是真实风险,但要逐条证明这一点,本身就是一项耗时的工作。这不是执行层面的失误,而是传统版本匹配扫描的结构性缺陷——它把版本号当作安全状态的真相,但在 Backport 生态中,版本号从来就不是可靠的信号。误报噪声持续累积,工程师的精力消耗在澄清而非真正的风险分析上,真实漏洞则淹没其中。本文将深入介绍 OpenResty XRay 如何通过动态追踪直接探测内存中的实际代码状态——绕过版本号这一中间层——从结构上解决误报问题,并还原漏洞管理本应具备的优先级判断能力。

主流 Linux 发行版——RHEL、Rocky Linux、Debian、Ubuntu LTS——普遍采用 Backport 策略:当上游组件发现安全漏洞时,发行版维护者会将补丁移植回当前使用的版本,而不升级版本号。这样做的目的是在保持 ABI 兼容性和系统稳定性的同时,完成安全修复。

结果是:一个标注为 openssl-3.5.1 的包,可能已经包含了数十个 CVE 的修复补丁;但从版本号来看,它与一个完全未打补丁的 openssl-3.5.1 毫无区别。

版本匹配扫描的三类工程代价

基于版本号匹配的扫描工具无法感知 Backport 的存在,由此给工程团队带来三类实际代价:

  • 误报噪声持续累积。 发行版每个 LTS 周期内会积累大量 Backport 补丁,每一个被修复但版本号未变的 CVE,都会在下一次扫描中重新出现在报告里。随着时间推移,误报数量只增不减。

  • 人工澄清消耗安全团队的核心精力。 针对每条告警,工程师需要查阅发行版 changelog、对照 CVE 数据库、判断补丁是否已经覆盖——这些工作本质上是在弥补扫描工具的能力缺口,而非真正的安全分析。

  • 真实风险被稀释,优先级管理失效。 当一份报告中 90% 的告警都是误报时,剩余 10% 的真实漏洞很容易被忽视。漏洞管理的核心价值——帮助团队聚焦最高风险——在噪声中消解殆尽。

传统版本匹配扫描的根本问题不在于工具质量,而在于它依赖了一个在 Backport 生态中根本不可靠的信号:版本号。

以二进制证据替代版本推断

OpenResty XRay 从根本上绕开了版本号这个不可靠的信号。它的扫描对象不是包管理器的元数据,而是正在运行的进程本身

「二进制证据」是 OpenResty XRay 漏洞扫描的核心概念。当 OpenResty XRay 评估某个 CVE 是否影响当前系统时,它不会去查询组件的版本字符串,而是直接检测运行中进程所加载的库文件,验证与该 CVE 对应的补丁特征是否实际存在于二进制代码中。

换句话说:我们不看版本号说什么,只看二进制代码里实际有没有漏洞补丁。

这一方法天然兼容 Backport 场景。无论发行版以何种方式打入补丁——版本号变没变、changelog OpenResty XRay 就会将该 CVE 标记为已修复;反之,则如实报告漏洞仍然存在。

运行时扫描 vs 静态文件系统扫描

OpenResty XRay 的扫描基于运行时动态追踪,这一点决定了它与静态扫描工具在覆盖范围上的本质差异:

维度传统静态扫描OpenResty XRay 运行时扫描
扫描对象文件系统上的包与文件正在运行的进程及其已加载依赖
漏洞判定依据版本号与 CVE 数据库匹配二进制代码中的补丁特征验证
Backport 感知不感知,产生误报感知,准确反映实际修复状态
自编译/第三方组件依赖包管理器,存在盲区来源无关,只要运行即可扫描

需要特别说明的是,运行时扫描意味着 OpenResty XRay 的扫描范围严格限定于当前正在运行的进程及其已加载的依赖库。未启动的服务、未加载的库文件不在扫描范围之内。这一特性在实际使用中需要纳入考量:确保扫描时目标服务处于运行状态,是获得完整扫描结果的前提。

扫描覆盖范围

OpenResty XRay 当前支持对以下关键依赖库的漏洞扫描:

类别组件
核心加密库OpenSSL、LibreSSL
压缩库zlib、bzip2
系统基础库glibc、musl
其他关键依赖libcurl、libxml2、pcre2

覆盖范围持续扩展,如需对特定依赖库的支持,可联系 OpenResty.Inc 团队确认。

实战演示:Rocky Linux 双版本 OpenSSL 场景

以下演示在 Rocky Linux 生产环境中进行,该环境同时运行两套 OpenSSL:系统自带的 OpenSSL 3.5.1(含发行版 Backport 补丁)以及 OpenResty Plus 自行编译内置的 OpenSSL 1.1.1w。这一场景在实际生产环境中极为常见,也是传统扫描工具最容易产生混乱判断的典型配置。

场景环境说明

操作系统:Rocky Linux
系统 OpenSSL:
  /usr/lib64/libcrypto.so.3.5.1
  /usr/lib64/libssl.so.3.5.1
  (来源:系统包管理器,含发行版 Backport 补丁)

自编译 OpenSSL:
  /usr/local/openresty-plus/openssl111/lib/libcrypto.so.1.1
  /usr/local/openresty-plus/openssl111/lib/libssl.so.1.1
  (来源:OpenResty Plus 内置编译,版本 1.1.1w)

其他系统库:
  /usr/lib64/libpcre2-8.so.0.11.0
  (来源:系统包管理器)

扫描结果总览解读

OpenResty XRay 漏洞扫描的具体调用命令请参考产品文档。以下展示扫描触发后的输出结果。

OpenResty XRay 会自动发现当前系统中所有正在运行的进程,枚举其加载的依赖库,并对每个受支持的组件逐一执行二进制证据验证。整个过程无需人工指定扫描路径,也无需依赖包管理器数据库。

扫描完成后,OpenResty XRay 以组件为单位输出结果,每条记录包含:库文件路径、CVE 编号、漏洞状态。

状态以可视化方式区分:

  • 🟢 绿色背景:该 CVE 已通过补丁修复(Patched)——二进制证据确认补丁特征存在
  • 🔵 蓝色背景:该 CVE 仍然存在(Vulnerable)——二进制证据未发现补丁特征

以下为本次扫描的代表性结果:

Screenshot

系统 OpenSSL 3.5.1(发行版包)

库文件:/usr/lib64/libcrypto.so.3.5.1
        /usr/lib64/libssl.so.3.5.1

CVE-2025-11187   ✅ Patched
CVE-2025-15467   ✅ Patched
CVE-2025-15468   ✅ Patched
CVE-2025-15469   ✅ Patched
CVE-2025-66199   ✅ Patched
CVE-2025-68160   ✅ Patched
CVE-2025-69418   ✅ Patched
CVE-2025-69419   ✅ Patched
CVE-2025-69420   ✅ Patched
CVE-2025-69421   ✅ Patched
CVE-2026-22795   ✅ Patched
CVE-2026-22796   ✅ Patched
CVE-2026-2673    🔵 Vulnerable

交叉验证:与发行版 changelog 对齐

OpenResty XRay 的扫描结论是否可信?我们通过发行版自身的 changelog 直接验证。

对系统 OpenSSL 包执行以下命令:

rpm -q --changelog openssl-libs | head -20

输出如下:

* Fri Jan 16 2026 Dmitry Belyavskiy <dbelyavs@redhat.com> - 1:3.5.1-7
- Fix CVE-2025-11187 CVE-2025-15467 CVE-2025-15468 CVE-2025-15469
  CVE-2025-66199 CVE-2025-68160 CVE-2025-69418 CVE-2025-69419 CVE-2025-69420
  CVE-2025-69421 CVE-2026-22795 CVE-2026-22796
  Resolves: RHEL-142068
  Resolves: RHEL-142002
  ...

changelog 中列出的所有 CVE,在 OpenResty XRay 扫描结果中全部标记为 Patched,两份记录完全吻合。

点击任意一个漏洞,即可查看详细描述信息:

Screenshot

唯一标记为 Vulnerable 的 CVE-2026-2673,在 changelog 中同样找不到对应的修复记录——该漏洞严重等级较低,发行版维护团队评估后选择暂不 Backport。OpenResty XRay 如实反映了这一现状,没有因为版本号已是最新而将其误判为已修复,也没有因为发行版暂未处理而将其掩盖。

这正是二进制证据验证的价值所在:扫描结论与发行版实际补丁状态严格对应,不多报,不少报。

精准扫描是可持续漏洞管理的基础

看不见的风险是最难管理的风险OpenResty XRay 将这部分原本不可见的依赖纳入统一的漏洞扫描视图,是其在包管理器之外提供的核心增量价值。

漏洞管理的本质不是生成报告,而是建立一套让工程团队持续信赖、持续使用的信号体系。误报率高的工具会系统性地训练出「告警疲劳」——当每条告警都需要人工二次核查时,响应速度下降,流程名存实亡,真实的高危风险反而在噪声中被延误处理。

OpenResty XRay 基于二进制证据的验证机制,从源头消除了 Backport 场景下的结构性误报,使每一条漏洞告警都对应二进制层面实际存在的风险,无需再做真伪初筛。

与此同时,OpenResty XRay 提供的不是「系统安装了什么」的包管理器视图,而是「系统正在运行什么」的运行时视图——当一个存在已知漏洞的 EOL 组件(如 OpenSSL 1.1.1w)正在处理生产流量、却对所有静态扫描工具完全不可见时,这一差异直接决定了真实攻击面是否被纳入保护范围。精准的扫描结果,是漏洞管理从专项任务演化为可持续安全运营能力的前提条件。

关于 OpenResty XRay

OpenResty XRay 是一款动态追踪产品,它可以自动分析运行中的应用,以解决性能问题、行为问题和安全漏洞,并提供可行的建议。在底层实现上,OpenResty XRay 由我们的 Y 语言驱动,可以在不同环境下支持多种不同的运行时,如 Stap+、eBPF+、GDB 和 ODB。

关于作者

章亦春是开源 OpenResty® 项目创始人兼 OpenResty Inc. 公司 CEO 和创始人。

章亦春(Github ID: agentzh),生于中国江苏,现定居美国湾区。他是中国早期开源技术和文化的倡导者和领军人物,曾供职于多家国际知名的高科技企业,如 Cloudflare、雅虎、阿里巴巴, 是 “边缘计算“、”动态追踪 “和 “机器编程 “的先驱,拥有超过 22 年的编程及 16 年的开源经验。作为拥有超过 4000 万全球域名用户的开源项目的领导者。他基于其 OpenResty® 开源项目打造的高科技企业 OpenResty Inc. 位于美国硅谷中心。其主打的两个产品 OpenResty XRay(利用动态追踪技术的非侵入式的故障剖析和排除工具)和 OpenResty Edge(最适合微服务和分布式流量的全能型网关软件),广受全球众多上市及大型企业青睐。在 OpenResty 以外,章亦春为多个开源项目贡献了累计超过百万行代码,其中包括,Linux 内核、Nginx、LuaJITGDBSystemTapLLVM、Perl 等,并编写过 60 多个开源软件库。

关注我们

如果您喜欢本文,欢迎关注我们 OpenResty Inc. 公司的博客网站 。也欢迎扫码关注我们的微信公众号:

我们的微信公众号

翻译

我们提供了英文版原文和中译版(本文)。我们也欢迎读者提供其他语言的翻译版本,只要是全文翻译不带省略,我们都将会考虑采用,非常感谢!