查看: 1548|回复: 4
收起左侧

[转帖] 惡意軟體偵測困難且被低估的真正原因[From GDATA Blog]

[复制链接]
haol
发表于 2025-7-28 21:57:43 | 显示全部楼层 |阅读模式
本帖最后由 haol 于 2025-7-29 08:43 编辑

惡意軟體偵測困難且被低估的真正原因(以下使用網路工具翻譯)

研究人員開發了一種人工智慧,其惡意軟體偵測率高達 98%,誤報率僅 5%。如果您認為這對於防毒軟體來說是一項了不起的技術,那麼這篇文章可能會改變您的想法。

----------------------------------
惡意軟體偵測無法判定,但並非不切實際
Fred Cohen 對病毒檢測不可判定性的間接證明。 「可能的病毒」只有當完美檢測程序判定其無害時才具有傳染性。

Fred Cohen早在1984年就已證明病毒檢測是一個不可判定問題。他假設存在一個完美的病毒檢測程序,然後構造了一個潛在病毒,該病毒無法給出正確答案,因為只有當完美檢測程序認為該病毒是安全的時,它才會具有傳染性 [cohen84]。由於所有病毒都是惡意軟體,因此可以透過反證法建構一個類似的惡意軟體偵測證明。

但數學意義上的「不可判定」並不意味著沒有實際的解決方案。不可判定問題是指無法在所有情況下提供正確答案的決策問題。因此,如果您有一個程序,它能正確回答 99.9999% 的所有情況,但錯誤回答 0.0001%,那麼這個問題可能既不可判定,又在實踐中可解。對於類似的問題,我們已經有足夠的解決方案。旅行商問題就是一個例子,它在物流中的包裹路由系統或電路製造過程中都有應用。雖然 目前還沒有已知的演算法能夠在合理的時間內解決旅行商問題(它是 NP 難問題),但已經有足夠的近似解來計算包裹遞送的路線。

防毒產品也是如此,它們會盡力保護系統免受惡意軟體的侵害。但與軟體包接收者不同,惡意軟體開發者會積極嘗試以某種方式創建惡意軟體,使防毒產品做出錯誤決策,無法偵測到這些程式。這就好比人們故意持續地嘗試尋找在合理時間內無法得到最佳解決的軟體包投遞路由輸入。

因此,惡意軟體檢測本質上很難,需要不斷改進才能保持有效性。然而,防毒軟體卻因過時、缺乏靈活性和老套而背負了惡名。這是真的嗎?

其他人說他們可以做得更好

從媒體和廣告商慣常的宣傳來看,人們會覺得防毒產品故意使用過時的技術,拒絕利用那些新研發的人工智慧和其他先進技術來建構系統。我們經常看到「傳統防毒軟體已死」和「這種人工智慧比防毒軟體更好」之類的文章嗎?
這就引出了一個問題:如果防毒產品能如此輕鬆地改進,為什麼它們不採用新技術呢?事實是:

  • 確實如此。
  • 它們無法承受誤報,並且與可以承受誤報的應用程式進行了不公平的比較。

迷思一:防毒產品使用過時的技術

根據媒體報導,防毒產品只會搜尋檔案中的模式,並將檔案雜湊值與黑名單進行比較。這些檢測機制仍然存在,但防毒產品至少已經使用其他惡意軟體檢測技術二十年了。

當我對惡意軟體分析產生興趣時,我讀過的第一批相關書籍之一是 Péter Szőr 於 2005 年出版的 《電腦病毒研究與防禦的藝術》 [szor05]。這本已有 17 年歷史的書描述了遠遠超出模式簽名和雜湊的方法。 Szőr 提到了模擬、X 光掃描、記憶體掃描、基於演算法的簽章、行為攔截器和網路掃描等 [szor05]。多年來,這些技術不斷完善,並不斷湧現新的技術。

Szőr 並未提及人工智慧 (AI) 技術,但這些技術也已投入使用多年。它們用途廣泛,包括惡意軟體叢集、客戶端系統上的惡意軟體偵測以及自動簽章建立。 GDATA 自己的 DeepRay 誕生於 2018 年,我們當然不是第一家利用 AI 增強偵測能力的防毒軟體製造商。
儘管取得了許多進步,但這個迷思至今依然頑固不化。我能想到兩個原因。

首先 ,安全產品行銷會積極強化這種印象,使人誤以為所宣傳的產品是全新的、更優質的。 NextGen 防毒產品就是一個例子。它們聲稱擁有全新且不同的檢測和防護技術,但實際上它們使用的卻是與較老的防毒產品相同的技術。人為地將反惡意軟體和防毒產品區分開來,也是為了達到同樣的目的,製造一種(錯誤的)印象,即防毒產品無法防禦惡意軟體。

其次 ,人們在 VirusTotal 上測試檢測結果時,會認為在那裡使用的掃描引擎能夠反映真正的防毒產品。如果他們對偵測到的檔案進行細微修改,導致 VirusTotal 的偵測率降低,就認為可以成功規避防毒產品。這種測試策略有缺陷,因為 VirusTotal 上的掃描引擎僅支援真實產品一小部分功能,而且大多局限於模式掃描和文件黑名單功能,從而給用戶一種誤以為產品真正咦鞣绞降腻e覺。 VirusTotal的網站上也提到了這一點。

迷思二:5% 的誤報率已經很好了


基於 PE 檔案異常的啟發式檢測的誤報率(叉號)和真報率(黑色方塊)[p.107,hahn14]

2014年,在撰寫碩士論文期間,我開發了一種基於文件異常的惡意軟體偵測啟發式方法。我的工作是基於Ange Albertini的貢獻,即尋找和記錄文件異常,這些異常被他收集在他的專案Corkami 中。當時在Avira擔任惡意軟體分析師的Ange聽說了我的工作,於是他來萊比錫參加我的碩士論文答辯。當我問他,我的啟發式方法可接受的誤報率是多少時,他的回答讓我大吃一驚。他說:""

零是一個糟糕的答案,因為當我試圖將誤報率接近零時,偵測率就會急劇下降。實際上,該比率從來都不是零。我使用了 49,814 個乾淨樣本和 103,275 個惡意樣本進行測試。右側的圖片顯示了誤報率(叉號)和真實陽性率(黑色方塊)的圖表 [p.107,hahn14]。例如,當誤報率為 8.81% 時,真實陽性檢測率為 98.47% [p.108,hahn14]。這意味著 8.81% 的乾淨檔案被錯誤地假定為惡意軟體,而 1.53% 的惡意軟體無法被偵測到。將誤報率保持在盡可能低的水平仍然導致 0.17% 的乾淨文件收到錯誤判定。這種方法的缺點是檢測率降低,只有 37.80% 檢測到的惡意軟體檔案 [p.109,hahn14]。

當時我不明白為什麼它必須為零。總得有可接受的錯誤率吧?畢竟,防毒產品並非完美無缺。每個人都聽說過,甚至可能遇到過防毒產品的誤報。現在我成了惡意軟體分析師,我知道答案了:是的,誤報是防毒產品無法避免的,但可接受的誤報率比你想像的要低得多。 當時我不明白為什麼它必須為零。總得有可接受的錯誤率吧?畢竟,防毒產品並非完美無缺。每個人都聽說過,甚至可能遇到過防毒產品的誤報。現在我成了惡意軟體分析師,我知道答案了:是的,誤報是防毒產品無法避免的,但可接受的誤報率比你想像的要低得多。

目前的惡意軟體檢測研究論文通常對可接受的誤報率有相同的誤解。許多論文假設乾淨文件和惡意軟體文件的數量大致相等,即平衡。實際上,電腦系統很少偵測到惡意軟體,而大多數時間都在處理乾淨檔案。例如,對於 Windows 10,資料夾 C:/Windows 包含大約 500,000 個檔案。如果我們只假設 5% 的誤報率,偵測技術就會將其中 25,000 個檔案判定為惡意檔案。除非你敢打賭你的系統在從 C:/Windows 中刪除 25,000 個任意檔案後仍然正常咝校駝t這個數字是不可接受的。你願意拿多少個文件來打賭呢?

這種對不平衡問題的誤解有個名字: 基準率謬誤 。它非常普遍,以至於人們開展了多項研究來提高人們對它的認識。 Jan Brabec 和 Lukas Machlica 總結: “我們發現近期有大量論文使用了不恰當的評估方法” [p.1, bramac18],並且 “不良做法可能會嚴重偏向於不合適的算法” [p.1, bramac18]。 《電腦安全中機器學習的注意事項》 [arp20] 研究了十年間發表的 30 篇論文中的常見陷阱。其中 11 篇論文存在基準率謬誤 [p.7, arp20]。

那麼,可接受的誤報率是多少呢? Stefan Axelsson 針對入侵偵測分析了這個問題。 Axelsson 指出: “限制入侵檢測系統性能的因素並非其正確識別入侵行為的能力,而是其抑制誤報的能力” [p.202, axelsson00],並得出結論: “入侵檢測系統必須將每‘事件’的誤報率控制在十萬分之一以下[...]” [p.202, axelsson00]。這意味著入侵偵測的誤報率為 0.001%。誤報率較高的解決方案不僅會為負責緩解警報的人員帶來更多工作,還會變成 「狼來了」 ——沒有人再認真對待它們。

對於自動回應威脅的防毒產品,可行的誤報率必須更低。與入侵偵測系統不同,自動預防中的誤報可能會破壞整個系統或中斷生產流程。對於使用小於 100,000 個樣本的乾淨樣本集的研究,誤報率必須實際上為零。


防毒產品如何做到這一點

有效檢測的關鍵是分層採用不同的專門技術。

現在我們知道了防毒程式的誤報率必須有多低才能保持可用,很清楚為什麼檢測啟發式方法不再那麼簡單了。

許多人都能想出啟發式偵測的點子,例如,為了偵測勒索軟體,你「只要」檢查那些一次重命名大量檔案並透過加密提高其熵值的程式。但當這些啟發式方法付諸實行時,你就會意識到有多少合法程式表現出類似的行為。以勒索軟體啟發式範例為例,備份程式也會做同樣的事情:批量重命名個人文件,並透過壓縮提高其熵值。

殺毒產品透過分層防禦機制解決了這個問題。各種技術層層疊加,以達到最佳覆蓋率。有些技術可能只能偵測到 20% 的樣本,因為它們針對的是特定類型的攻擊或環境,例如檔案格式、行為或其他必要的屬性。但如果這些樣本中有一部分無法偵測到,則值得實施分層防禦機制。
大家可能都熟悉 瑞士起司防禦模型(Swiss_cheese_model),這裡我們感興趣的是其意義。

考慮到這個模型,誤報遠比誤報嚴重得多也就不足為奇了。未被偵測到的惡意軟體最終會被其他層捕獲。因此,只要其他層能夠彌補漏洞,單一層的低偵測率完全沒問題。但對於誤報,不存在這樣的層級網路。 「那麼,白名單呢?」你可能會問。

雖然白名單制度已經存在,但必須將其視為最後的手段,並謹慎使用。原因如下:

首先 ,白名單可能會為惡意軟體逃避防毒偵測開啟方便之門。如果某個程式的憑證、關鍵字、行為或其他特徵被用於白名單,那麼它也可能被惡意軟體濫用。基於同樣的原因,某些程式無法被列入白名單,例如,因為它們是合法文件和惡意軟體檔案共同使用的執行環境的一部分;或者因為它們僅在特定環境下是安全的,例如遠端存取工具,如果用於實際協助則沒有問題,但如果是由攻擊者悄悄安裝的,則問題就更大了。

其次 ,合法程序不斷發展,新版本或類似程序每天都會出現。因此,單一版本特定的許可清單條目並非長久之計。新增一個許可證清單項目來調整容易出現誤報的偵測啟發式方法,幾乎必然意味著需要定期新增其他授權清單項目,這使得維護工作量龐大。

因此,通常情況下,預防層的誤報率就是整個產品的誤報率。相較之下,只要新覆蓋的惡意軟體樣本能夠證明效能影響是合理的,任何此類層的誤報率都可以高到任意程度。

總結
惡意軟體偵測啟發式方法表面上看似簡單,實際操作起來卻頗具挑戰性。雖然許多人認為高惡意軟體偵測率是首要目標,但低誤報率才是偵測啟發式方法品質最重要的指標。由於基準率謬誤,誤報率的影響常常被低估。
對於防毒產品而言,誤報率必須可控,相應的容忍率必須低於 0.001%。只要檢測啟發式方法能夠彌補一些“瑞士起司漏洞”,單一技術的誤報率就無關緊要。

我希望檢測技術研究能夠專注於那些難以檢測的樣本,並找到切實可行的解決方案,而不是試圖創造出我們德國人所說的「產卵產奶的毛豬」。永遠不會存在一種能夠統領所有情況的技術。

我還希望記者和安全領域的影響者能夠了解防毒技術的現狀以及檢測研究的實際價值,這樣他們就不會再繼續強化這些謬論。防毒行銷也是如此,關於檢測技術過時的謬論或許能有效地抹黑競爭對手,但長遠來看,卻會對防毒產業產生不利影響。












本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
haol
 楼主| 发表于 2025-7-28 21:57:44 | 显示全部楼层
本帖最后由 haol 于 2025-7-29 08:54 编辑

已編輯刪除
LSPD
发表于 2025-7-28 23:22:58 | 显示全部楼层
haol 发表于 2025-7-28 21:57
防毒產品如何做到這一點

有效檢測的關鍵是分層採用不同的專門技術。

请善用论坛编辑功能,请勿自沙哦
00006666
发表于 2025-7-29 10:21:23 | 显示全部楼层
本帖最后由 00006666 于 2025-7-29 10:35 编辑

恶意软件侦测困难?那还得多亏了微软做的好事,限制了杀软的内核权限。
隔山打空气
发表于 2025-7-29 15:26:43 | 显示全部楼层
00006666 发表于 2025-7-29 10:21
恶意软件侦测困难?那还得多亏了微软做的好事,限制了杀软的内核权限。

虽然PG那一套确实够恶心 但现在微软给的接口还有一堆厂商跟没玩明白似的 明明有替代实现但做不好 那这么久也确实该批评批评了(
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-8-23 00:00 , Processed in 0.144456 second(s), 16 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表