iT邦幫忙

2026 iThome 鐵人賽

DAY 15
0

💡 今日學習目標:認識 OWASP 與 Top 10 榜單的由來與方法論,看懂 2025 最新版的三大變動,並理解排名變化背後透露的攻防趨勢。


📌 前言:全球 Web 開發者的資安必修榜單

談到 Web 資訊安全,有一個組織與一份榜單是全球工程師都繞不開的:OWASPOWASP Top 10

  • OWASP:全名 Open Worldwide Application Security Project,是一個全球性的非營利社群組織,長期致力於改善軟體安全。
  • OWASP Top 10:綜合全球貢獻的實測資料與社群調查,定期公布 「最關鍵的十大 Web 應用程式安全風險」

而現在最新的版本,是 OWASP Top 10:2025,這已經是這份榜單的第 8 版

如果你手邊的教學文章、公司內訓教材,或是你自己過去做的筆記還停在 2021 版,那今天這篇正好可以幫你一次校正。因為這四年之間,榜單變動的幅度比很多人想像的大


🔍 2021 → 2025:完整對照

OWASP Top 10 從 2021 到 2025 的排名變化對照表

看完整張表,可以歸納出三個關鍵變動

變動一:兩個全新類別進榜

A03:2025 - Software Supply Chain Failures(軟體供應鏈失效)

這是由 2021 年的 A06「有漏洞與過期的元件」大幅擴充而來。範圍不再只是「你用的套件有沒有更新」,而是延伸到整個生態系:你的依賴套件、你的建置系統、你的發布基礎設施,任何一環被動手腳都算。

這裡有兩個數字特別值得停一下。

第一,這個類別在實測資料中的出現次數是十個類別裡最少的,但它的平均發生率卻是十類最高的 5.19%。這兩件事不矛盾:它很少被測,可是只要有測,中獎的比例就特別高。

第二,從 CVE 統計出來的平均可利用性(exploit)與衝擊(impact)分數,它也是十類裡最高的

合起來就是一句話:它不常出現在報告上,但一旦出現,既好打、又打得重。

A10:2025 - Mishandling of Exceptional Conditions(異常狀況處理不當)

全新類別,涵蓋 24 個 CWE,聚焦在錯誤處理不當、邏輯錯誤,以及一個特別致命的模式:Fail Open(失效時預設放行)

也就是說:當你的驗證服務逾時、當你的權限檢查拋出例外,系統是擋下來,還是放行?這個問題在 2025 年正式進入了十大風險。

變動二:SSRF 沒有消失,它被併走了

2021 年才首度進榜的 A10 - SSRF,在 2025 年的榜單上找不到了。但它不是被判定為「不再重要」。OWASP 官方的說法是:

SSRF 已被併入 A01 權限控制失效。

這個歸類其實非常合理。SSRF 的本質是什麼?是伺服器去存取了它本來不該存取的資源。從這個角度看,它從頭到尾就是一種權限控制失效,只是失控的主體不是使用者,而是伺服器自己。

變動三:純語法漏洞退場,組態與供應鏈接手

把三個下降的類別放在一起看,趨勢就很明顯了:

  • Injection(注入攻擊)從第 3 掉到第 5
  • Cryptographic Failures(加密機制失效)從第 2 掉到第 4
  • Insecure Design(不安全設計)從第 4 掉到第 6

而往上衝的是 Security Misconfiguration(安全設定缺陷),一口氣從第 5 升到第 2。

OWASP 對此的解讀很直接:軟體行為中「由組態決定」的比例正在持續增加。當越來越多的邏輯搬進 YAML、環境變數、雲端主控台與 IaC 腳本,出錯的地方自然也就跟著搬過去了。

至於 Insecure Design 的下滑,官方反而給了一個正面的解釋:這個類別 2021 年才首度設立,而這幾年業界在威脅建模與安全設計上有了明顯進步,這也正是我們 Day 22 到 Day 23 要親手練習的東西。


🧭 順帶學一個東西:這份榜單是怎麼排出來的?

很多人以為 Top 10 是「哪個漏洞最多就排第一」。其實不是。

OWASP 自己的描述是:data-informed, but not blindly data-driven(以資料為依據,但不盲目被資料驅動)。實際做法是:

  1. 先根據全球貢獻的實測資料,排出 12 個類別
  2. 取其中 8 個進入榜單。
  3. 剩下 2 個名額,交由社群問卷調查票選補上。

為什麼要留兩個名額給問卷?OWASP 的理由很值得一讀:

檢視貢獻資料,本質上是在看過去。資安研究者發現新弱點、開發出新的測試方法,要再經過數週到數年才會被整合進工具與流程。等到我們有能力大規模穩定地測出某個弱點時,可能已經過了好幾年。

所以那兩個「非資料驅動」的名額,是留給還來不及被工具測出來、但社群已經感受到威脅的東西

2025 年靠這兩個名額進榜的,是 A09 記錄與告警失效A10 異常狀況處理不當

OWASP 對 A09 的說法很直接:這個類別在資料上永遠會被低估(沒記錄下來的事,本來就不會出現在統計裡),所以它再一次由社群問卷投票推上來。而 A10 是全新類別,根本還沒有累積資料可言。

📌 那 A03 軟體供應鏈是怎麼進榜的?靠資料。 它的平均發生率是十類最高,不需要問卷幫忙。

但有意思的是,它同時也是社群問卷的第一名,整整 50% 的受訪者把它排在第一位。這是難得一次「資料」與「人的直覺」完全同意的情況,也剛好說明了它為什麼值得你認真看待。


⚠️ 順便更正一個廣為流傳的誤讀

你可能在很多文章上看過這句話:

「A01 權限控制失效影響了 94% 的受測系統!」

這是把數據讀錯了。 OWASP 2021 的原文是:94% 的應用程式被測試過某種形式的權限控制失效。94% 講的是測試涵蓋率,不是中獎率

真正的發生率(incidence rate)是多少?2021 年是 3.81%,2025 年是 3.74%。

3.74% 聽起來遠不如 94% 嚇人,但它依然是十大類別裡出現最頻繁的問題之一。資安不需要靠誇大來說服人,這也呼應 Day 12 講過的:引用數字之前,先確認它到底在講什麼。


🛠️ 接下來 6 天的【動手做】實戰路線圖

Day 16 到 Day 21,我們會挑出其中最貼近日常開發、也最容易親手驗證的幾項,做攻防實戰:

天數 2025 排名 主題
Day 16 A01 權限控制失效:IDOR 越權存取攻防
Day 17 A04 加密機制失效:敏感資料保護與密碼雜湊
Day 18 A05 注入攻擊:SQLi 防衛與參數化查詢
Day 19 A02 安全設定缺陷:HTTP 安全標頭實戰
Day 20 A07 認證失效:Session 與 JWT 防禦
Day 21 A01 SSRF:伺服器被當成跳板的攻防

📌 兩個補充說明

① 新進榜的 A10(異常狀況處理不當) 我們不會單獨開一天,但它的核心 「失效時該不該放行」 ,會在 Day 22 談 Fail-Safe 安全設計時完整處理。

② A03 軟體供應鏈 這一項需要的工具鏈(SCA、SBOM)比較獨立,我們會在 Day 29 談 DevSecOps 時一併帶到。


🎯 今日重點小結與防守心法

  • 🔹 心法 1:權限控制失效連續兩屆蟬聯第一。而且 SSRF 併入之後,它的守備範圍還變得更大了。
  • 🔹 心法 2:戰場正在往「組態」與「供應鏈」移動。當越來越多行為由設定檔決定,出錯的地方也跟著搬家。別再以為資安只是「程式碼寫得對不對」。
  • 🔹 心法 3:榜單是拿來排優先順序的,不是拿來背的。你不需要記住 A01 到 A10 的編號(它每幾年就會換一次),但你該知道哪幾類問題最值得你先花時間

💬 明日預告:【Day 16】【動手做】OWASP A01 權限控制失效:IDOR 越權存取攻防實戰
明天我們將正式進入第一個 OWASP 實戰,親手拆解並封鎖這個蟬聯冠軍的漏洞!


上一篇
【Day 14】SEI 10 大安全程式碼法則 (下):最小權限 (Least Privilege) 與縱深防禦
系列文
槍林彈雨下的資安防守:從品質觀念切入,帶開發者從零動手作資安 30 天15
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言