☰
OWASP Top 10 风险评级方法论解析:从可能性因子到 A6:2017 风险计算的完整推演
2026/10/10 8:29:05 网站建设 项目流程
  • 应用安全

【免费下载链接】Top10

Official OWASP Top 10 Document Repository

项目地址:https://gitcode.com/gh_mirrors/top/Top10
点击查看免费下载

导读

本文以 OWASP Top 10 官方文档仓库 2017 版中的风险说明章节(2017/fa/0xc0-note-about-risks.md 及对应英文版 2017/en/0xc0-note-about-risks.md)为主体,系统讲解 2017 版 Top 10 的风险评级方法论:三大可能性因子(发生率、可检测性、可利用难度)与一个影响因子(技术影响)如何计算、数据从何而来、存在哪些局限,并以A6:2017-Security Misconfiguration(安全配置错误)为例演示完整风险值推演过程。读完本文,你将掌握 OWASP Top 10 排名的底层算法逻辑,能够结合官方风险因子汇总表评估自己应用的相对风险水平,并理解该方法论为何不能替代组织自身的业务风险评估。

一、核心前提:Top 10 排名的是"弱点所代表的风险"

OWASP Top 10 的每个条目并不是一个具体漏洞,而是一类"弱点(weakness)"。官方文档开宗明义地指出:风险评级关注的是这些弱点给典型 Web 应用引入的风险。其方法论建立在 OWASP 风险评级方法论(OWASP Risk Rating Methodology)之上——对于每个 Top 10 类别,OWASP 团队通过考察常见弱点的"可能性因子(likelihood factors)"与"影响因子(impact factors)",估算每类弱点给典型 Web 应用带来的风险,再据此对 Top 10 排序。

两个关键限定决定了这套评级的性质:

  1. 面向"普遍性"而非"具体性":Top 10 必须讨论一般性情况,而非真实应用与 API 中的特定漏洞。因此它永远无法做到像应用所有者或管理者那样精确——你才是最了解自己应用重要性、数据价值、威胁来源以及系统构建与运行方式的人。
  2. 随版本演进:这些因子会在每个新版本发布时更新,因为技术、攻击方式与行业环境都在不断变化。例如 2017 版相较 2013 版就经历了完整重构,详见 2017/en/0x06-release-notes.md。

方法论溯源:关于风险的通用定义、威胁主体(Threat Agents)、攻击向量(Attack Vectors)、安全弱点(Security Weakness)与技术/业务影响的组合评估框架,可参见 2017/en/0x10-app-security-risks.md。该文档同时说明 2017 版对评级体系进行了更新,以协助计算任意给定风险的可能性与影响。

二、评级公式:三个可能性因子 + 一个影响因子

官方文档给出了 2017 版评级方法的核心结构:每个弱点包含三个可能性因子和一个影响因子,所有因子的评分区间统一为1(低)到 3(高):

| 因子类别 | 因子 | 英文原名 | 含义 | | -- | -- | -- | -- | | 可能性 | 发生率(流行度) | Prevalence | 该弱点在真实应用中的普遍程度 | | 可能性 | 可检测性 | Detectability | 该弱点被攻击者发现/被工具检测的难易程度 | | 可能性 | 可利用难度 | Ease of Exploit | 利用该弱点的技术难度 | | 影响 | 技术影响 | Technical Impact | 利用成功后对应用造成的数据/功能影响程度 |

评分语义按因子各有专属措辞,例如可利用难度分为"容易(Easy) 3 / 中等(Average) 2 / 困难(Difficult) 1",发生率分为"普遍(Widespread) 3 / 常见(Common) 2 / 少见(Uncommon) 1"。在 2017/en/0x10-app-security-risks.md 中,官方以一张通用评分表汇总了该方案:

| Threat Agents | Exploitability | Weakness Prevalence | Weakness Detectability | Technical Impacts | Business Impacts | | -- | -- | -- | -- | -- | -- | | 应用特定 | 容易 3 | 普遍 3 | 容易 3 | 严重 3 | 业务特定 | | | 平均 2 | 常见 2 | 平均 2 | 中等 2 | | | | 困难 1 | 少见 1 | 困难 1 | 轻微 1 | |

注意表中 Threat Agents(威胁主体)与 Business Impacts(业务影响)两列标注为"应用特定/业务特定"——这正是下文要讨论的方法论局限所在。

三、数据从哪来:发生率靠聚合统计,其余靠 CVE 分析

文档明确指出各因子的数据来源与计算路径,这是理解 2017 版排名可信度的关键:

  1. 发生率(Prevalence)通常无需自行计算:OWASP 收集了多家组织提供的漏洞流行度统计(数据贡献者完整名单参见 2017/en/0xd1-data-contributors.md,对应文档所述"第 25 页致谢"),将各组织数据聚合后,得到按发生率排序的 Top 10 存在可能性清单。
  2. 可检测性与可利用难度来自 CVE 分析:这两个可能性因子以及技术影响,均由 OWASP 团队分析与各 Top 10 类别关联的已公开 CVE 报告计算得出。
  3. 合并计算可能性评级:发生率数据再与另外两个可能性因子(可检测性、可利用难度)结合,得到每个弱点的可能性评级(likelihood rating)。
  4. 最终风险排名 = 可能性评级 × 平均技术影响:将可能性评级乘以官方对该条目的平均技术影响估算,得到每个条目的总体风险排名——结果越高,风险越高。

四、2017 版数据底座:公开数据调用(Data Call)的实证细节

为理解上述发生率数据的可靠程度,可进一步参考 2017/en/0xd0-about-data.md 披露的数据调用过程:

  • 行业排名调查:官方在 2017 年 8 月 2 日至 9 月 18 日开展排名式调查,收集 516 份有效响应,请受访者从"临界"候选类别中选出应纳入 Top 10 的前四个弱点。结果显示:隐私信息泄露(CWE-359,748 分)居首,随后是加密失败、不可信数据反序列化、用户可控键授权绕过(IDOR 与路径遍历)、日志与监控不足——其中第 3 名与第 5 名分别促成了新条目A8:2017-Insecure Deserialization与A10:2017-Insufficient Logging & Monitoring的入选。
  • 公开数据征集:收到 40+ 份数据提交,最终采用其中 23 个贡献者的数据,覆盖约114,000 个应用。2017 版改用"发生率(incidence rate)"口径——即某数据集中出现一类及以上特定漏洞的应用占比,从而调和了"工具统计每次实例"与"人工报告单条发现"两种上报风格的差异;对异常超过 100% 的数据下调至 100% 上限,并按此排序作为总体风险中发生率因子的计算依据。
  • 原始数据与数据分析文件保留在仓库的2017/datacall/目录下(含 Bugcrowd、Checkmarx、ContextIS、Fortify、Synopsys、Veracode 等厂商的提交样本,见 2017/datacall/submissions/README.md),可供核查。

五、方法论的明确边界:不能替你完成业务风险分析

文档用一段醒目的注意(Note)划定了这套评级的能力边界,这是引用 Top 10 时最容易被忽略的部分:

  • 不考虑威胁主体的可能性:评级未将"是否存在具备动机与能力的攻击者"纳入计算。
  • 不考虑具体应用的任何技术细节:你的应用栈、部署形态、暴露面等均未进入公式,而这些因素可能显著影响攻击者发现并利用特定漏洞的总体可能性。
  • 不考虑实际业务影响:评分不代表漏洞一旦发生对业务造成的真实损失。
  • 组织必须自行决策:基于自身文化、行业与监管环境,组织需自行决定愿意承受多大的应用与 API 安全风险。OWASP Top 10 的目的不是替你做这份风险分析。

换言之,Top 10 提供的是一个行业基准视角,而每个组织必须结合自己的威胁主体画像与业务影响模型加以裁剪。即使在 2017/en/0xc1-risk-factors.md 中列出的风险因子汇总,官方也强调"必须结合自身特定威胁主体与业务影响来理解——即使严重弱点,若没有处于攻击位置的威胁主体或业务影响可忽略,也可能不构成严重风险"。

六、实战推演:A6:2017-Security Misconfiguration 的风险计算

文档以A6:2017-Security Misconfiguration(安全配置错误)为示例,完整展示了从因子评分到最终风险值的计算链条。原文档配图 2017/fa/images/0xc0-risk-explanation.png 展示了这一推演过程:

图中 A6 的各项评分如下:

| 因子 | 评分 | 说明 | | -- | -- | -- | | 可利用难度(Ease of Exploit) | 3 | 容易 | | 发生率(Prevalence) | 3 | 普遍 | | 可检测性(Detectability) | 3 | 容易 | | 技术影响(Technical Impact) | 2 | 中等 | | 威胁主体 / 业务影响 | 不参与计算 | 应用/业务特定 |

计算过程分为两步:

  1. 合并三个可能性因子:取可利用难度、发生率、可检测性的算术均值,即(3 + 3 + 3) / 3 = 3;
  2. 乘以技术影响:将可能性均值 3 乘以技术影响 2,得到A6 的最终风险值 = 3 × 2 = 6。

对照 2017/en/0xa6-security-misconfiguration.md 的风险卡可见其依据:安全配置错误在 2017 版中被标注为"发生率 3 / 可检测性 3 / 可利用性 3 / 技术影响 2"。该条目被官方描述为"最常见的问题",成因包括不安全的默认配置、不完整或临时的配置、开放的云存储、错误配置的 HTTP 头、包含敏感信息的冗长错误信息等——高发生率与易利用、易检测的组合,使其成为典型的中等技术影响、高风险等级条目。仓库中该条目的完整防治建议(可重复的加固流程、最小化平台、补丁管理、分段架构、安全响应头、自动化配置验证)与四个攻击场景(示例应用未移除、目录列举未禁用、堆栈跟踪泄露、云存储默认公开),均可作为实际加固的落地清单。

七、全量对照:2017 版 Top 10 风险因子汇总表

2017/en/0xc1-risk-factors.md 提供了 2017 版全部十个条目的因子评分汇总(官方配图 2017/fa/images/0xc1-risk-factor-table.png)。图中各条目按"(可利用难度 + 发生率 + 可检测性)/ 3 × 技术影响"计算的最终风险值如下:

| 风险条目 | 可利用性 | 发生率 | 可检测性 | 技术影响 | 最终风险值 | | -- | -- | -- | -- | -- | -- | | A1:2017-注入(Injection) | 3 | 2 | 3 | 3 | 8.0 | | A2:2017-身份认证失效(Broken Authentication) | 3 | 2 | 2 | 3 | 7.0 | | A3:2017-敏感数据泄露(Sensitive Data Exposure) | 2 | 3 | 2 | 3 | 7.0 | | A4:2017-XML 外部实体(XXE) | 2 | 2 | 3 | 3 | 7.0 | | A5:2017-访问控制失效(Broken Access Control) | 2 | 2 | 2 | 3 | 6.0 | | A6:2017-安全配置错误(Security Misconfiguration) | 3 | 3 | 3 | 2 | 6.0 | | A7:2017-跨站脚本(XSS) | 3 | 3 | 3 | 2 | 6.0 | | A8:2017-不安全反序列化(Insecure Deserialization) | 1 | 2 | 2 | 3 | 5.0 | | A9:2017-使用含已知漏洞的组件(Using Components with Known Vulnerabilities) | 2 | 3 | 2 | 2 | 4.7 | | A10:2017-日志与监控不足(Insufficient Logging & Monitoring) | 2 | 3 | 1 | 2 | 4.0 |

对照 2017/en/0x11-t10.md 中十个条目的官方定义,可以验证上述评分的含义:例如 A1 注入因"不可信数据被送入解释器"而同时具备高可利用性、高可检测性与严重技术影响;A8 反序列化虽然技术影响严重(常导致远程代码执行),但可利用难度为 1(困难)拉低了整体排名;A10 日志与监控不足则是典型的高发生率、低可检测性(1)条目。

该表还揭示了 2017 版排名的一个内在规律:发生率与可检测性对排名的拉动作用显著——A8 与 A10 尽管技术影响不低,仍因可利用性或可检测性劣势被排到末尾,这与 2017 版"以数据说话"的重构方向(见 2017/en/0x06-release-notes.md)一脉相承。

八、除了 Top 10,还应额外评估的风险

2017/en/0xc1-risk-factors.md 在汇总表之后特别提醒:Top 10 覆盖面虽广,但仍有大量其他风险需要组织自行评估,其中部分曾出现在早期版本,部分是新近识别的攻击技术。官方按 CWE 编号列出以下应额外考虑的重要应用安全风险:

  • CWE-352:跨站请求伪造(Cross-Site Request Forgery,CSRF)——2017 版将其从榜单移出,原因正是多数框架已内置 CSRF 防护,该问题仅存在于约 5% 的应用中
  • CWE-400:不受控的资源消耗(资源耗尽、应用层 DoS,AppDoS)
  • CWE-434:危险类型文件的不受限制上传
  • CWE-451:关键信息的用户界面(UI)误导呈现(点击劫持 Clickjacking 等)
  • CWE-601:未经验证的重定向与转发(Unvalidated Forward and Redirects)——2013 版曾位列 A10,2017 版因约 8% 的出现率整体被 XXE 挤出榜单
  • CWE-799:交互频率控制不当(反自动化 Anti-Automation)
  • CWE-829:从不信任的控制范围引入功能(第三方内容)
  • CWE-918:服务端请求伪造(Server-Side Request Forgery,SSRF)——该风险在后来的 2021 版中正式进入榜单成为 A10,印证了此类前瞻性提示的价值

结合 2017/en/0x06-release-notes.md 的版本变更说明可以看到 2017 版条目的完整演变脉络:A4-Insecure Direct Object References 与 A7-Missing Function Level Access Control 合并为 A5:2017-Broken Access Control;XXE 作为新类别主要由 SAST 工具数据集支撑;Insecure Deserialization 与 Insufficient Logging and Monitoring 两个前瞻类别则是在 500+ 份社区提交中脱颖而出的新增条目。

结语:把评级公式用对地方

回顾全文,OWASP Top 10 2017 的风险评级方法论可以浓缩为一句话:用"发生率 × 可检测性 × 可利用难度"合成的可能性评级,乘以平均技术影响,得到条目级风险排名。这套公式的优势在于可复现、可比较、有数据支撑(23 个贡献者、约 114,000 个应用、516 份调查响应);其边界也同样清晰——它不评估威胁主体、不评估特定应用细节、不评估业务影响。

因此,正确的用法是:将 Top 10 的风险因子表(2017/en/0xc1-risk-factors.md)作为行业基线输入,结合自身威胁建模与业务影响评估,输出组织专属的风险优先级;同时参考各条目(如 2017/en/0xa6-security-misconfiguration.md)的预防措施落地加固。理解公式,才能超越对排名的盲从——这正是官方风险说明章节留给读者的核心方法论资产。

  • 应用安全

【免费下载链接】Top10

Official OWASP Top 10 Document Repository

项目地址:https://gitcode.com/gh_mirrors/top/Top10
点击查看免费下载
上一篇:res-downloader:快速嗅探下载视频号视频与m3u8资源
下一篇:图形渲染调试终极指南:RenderDoc和PIX工具在游戏分析中的应用

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询