2025 年 6 月,思科(Cisco)披露了CVE-2025-20282,這是其「身分服務引擎」(Identity Services Engine)中一項最高嚴重級別的漏洞。根本原因在於上傳環節缺少檔案驗證檢查,這可能使未經認證的攻擊者將經過特殊設計的檔案放置於具特權的目錄中,並以 root 身分執行該檔案。此缺陷發生在偵測機制之前,即在任何掃描引擎運行之前,系統便已接受了該檔案。
這種模式並非某種產品所獨有。堆疊中的引擎數量極少會成為限制因素。檔案必須先經過解析,才能進行評估;而現代檔案格式會以某種嵌套方式組織內容,導致解析過程未必能觸及所有內容。
為何掃描結果顯示無異常
基於簽名的掃描是透過比對位元組來運作的。掃描引擎會儲存一個由已知惡意軟體擷取的雜湊值和位元組模式所組成的資料庫,而檔案必須包含與該資料庫相符的位元組,才會被偵測到。然而,當內容為嵌套結構時,有幾項因素會阻礙這種偵測機制發揮作用。
- 掃描程序讀取的是父檔案,而非其中的物件。掃描程序會將眼前的檔案視為單一二進位物件,並與簽名資料庫進行比對。嵌套內容以壓縮或編碼形式儲存,因此位於文件資料流中的可執行檔,其位元組序列幾乎與磁碟上的相同可執行檔完全不同。資料庫所搜尋的模式在儲存的檔案中並不存在,只有在該資料流被解壓縮後,才會成為可比對的對象。
- 無法掃描的檔案看起來與正常檔案無異。 結構異常會導致解析失敗。引擎無法完成評估,因此該檔案會被跳過而非被攔截,而「無法評估」的結果傳遞至下游時,與「未發現任何內容」的結果無法區分。
- 格式也可能因設計而產生誤導。一個多格式檔案同時符合兩種格式規範,因此某個解析器會將其視為某種格式,而該檔案的實際行為卻完全不同。
- 遞迴是有其限制的。嵌套容器受深度上限與掃描超時限制所約束,這自有其道理,因為無限制的遞迴本身就構成一種拒絕服務的風險。位於該限制範圍下的有效載荷永遠不會被評估,而將有效載荷置於引擎無法觸及的更深層級,所需的努力遠遠少於突破該限制。
最終得出的判定結果,其實不如表面上那樣具有說明性。「無結果」僅表示在引擎能夠解析的檔案片段中,未發現任何已知模式與之匹配。這既未說明檔案內部包含哪些元件,也未說明引擎從未開啟的那些層級。

每個層都有其作用。其中一個卻缺了
基於簽名的掃描從來不是孤立運作的。現代檔案安全架構通常在設計上採分層架構,而其周圍的各層正是為了彌補模式比對無法涵蓋的部分而存在。
檔案類型識別是根據檔案的標頭(而非其宣告的副檔名)來判定檔案的真實類型。其設計上速度快且僅進行表層分析,旨在決定檔案應歸類至何處,而非分析其內容。動態分析則是在受控環境中觀察檔案的行為。這是應對未知威脅的合適工具,且若能有選擇性地應用,而非對每個檔案都進行分析,其效果會最佳。

每個層級都各司其職,但當有效載荷始終未與攜帶它的檔案分離,或位於深度限制之下時,該內容便永遠無法觸及這些層級中的任何一個,因此即使增加更多層級也無濟於事。在完全缺乏清理路徑的格式中,此類「盲點」的影響範圍最廣:例如資料庫檔案、GIS 資料及 AI 模型檔案。由於這些格式無法重建,因此按定義而言,原本應能攔截未知威脅的層級便無法發揮作用。
缺失的那一環,是一個專門負責首先建立結構性真實值的層級:根據格式規範解析檔案、提取所有嵌入的元件,並將這些元件分別提供給後續的所有處理流程。這正是「檔案結構驗證」所旨在解決的問題。
檔案結構驗證如何彌合差距
「檔案結構驗證」會在堆疊中的其他環節啟動之前執行。它會依據格式規範,針對 160 多種檔案類型(包括 GIS、資料庫及 AI 模型格式)對檔案進行驗證,將檔案分解為各個組成部分,並對每個部分套用相關政策。
物件會被路由至具備評估能力的引擎:Metascan™Multiscanning 、Adaptive 、Sandbox 、Proactive DLP™ 技術,或OPSWAT Alin AI。原始檔案則會繼續傳送至 Deep CDR™ 技術,以進行適用的淨化處理。
這裡的重點在於對掃描作業的影響。簽名比對仍是識別已知惡意軟體最快且最經濟的方式,而「檔案結構驗證」並未取代這項工作。它改變的是引擎所處理的內容。有效載荷以獨立檔案的形式傳入,此時已解壓縮且已完成分類,因此引擎是針對物件本身進行比對,而非比對埋藏在父檔案內的壓縮片段。 檢測引擎所接收的,正是其資料庫所建構以識別的精確位元組;此時,它們便會執行其一貫擅長的工作。
在檔案中查看
最能說明這一點的方式,就是展示一個能通過掃描檢測卻仍攜帶惡意載荷的檔案。我們建立了一個概念驗證範例,將惡意載荷隱藏在一個看似無害的 PDF 檔案中。隨後,該範例經過一系列反惡意軟體引擎的檢測,結果均顯示為「乾淨」。

下一步,我們將在啟用「檔案結構驗證」功能的MetaDefender Core™ 中掃描此檔案。在擷取父檔案的嵌套元件後,「檔案結構驗證」會將輸出物件傳送至下游引擎進行進一步分析。


Metascan™Multiscanning 反惡意軟體引擎回報了「已感染」的判定結果。當有效載荷以獨立檔案的形式呈現時,先前回報未偵測到威脅的相同簽名資料庫,此次卻回報了感染。


從哪裡開始
「乾淨掃描」是指引擎能夠解析的內容。檔案中是否含有危險內容則是另一個問題,而解答這個問題屬於結構性問題,必須在第一個偵測引擎運行之前解決。
這究竟是指單獨進行檔案結構驗證,還是與資料淨化及動態分析結合進行,則取決於您的檔案類型、工作流程以及完整性要求。歡迎與我們聯繫,討論哪種組合最適合您的環境。

