每次漏洞掃描結束,安全團隊拿到的不是答案,而是一份待核查清單——幾十條乃至上百條紅色告警,指向版本號「不符合要求」的元件。熟悉 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. 公司的部落格網站 。也歡迎掃碼關注我們的微信公眾號:

我們的微信公眾號

翻譯

我們提供了英文版原文和中譯版(本文)。我們也歡迎讀者提供其他語言的翻譯版本,只要是全文翻譯不帶省略,我們都將會考慮採用,非常感謝!