
应用安全【免费下载链接】Top10Official OWASP Top 10 Document Repository项目地址https://gitcode.com/gh_mirrors/top/Top10点击查看免费下载导读本文以 OWASP Top 10 官方文档仓库中 2017 版发布说明葡萄牙语 为主体结合仓库内 方法论与数据章节、风险总表 及各风险条目原文系统梳理 2017 版本相对 2013 版本的核心变化全新重构的方法论、由数据与社区双轮驱动的选型机制、三条新增/重排条目的来龙去脉以及合并与退役条目的去向。读完本文你将完整掌握 2017 版 Top 10 风险迁移图谱理解为什么 XXE、不安全反序列化、日志与监控不足会进入榜单并能按图索骥到仓库内对应的风险详解章节。从 2013 到 2017为什么 Top 10 必须改变发布说明开宗明义地指出过去四年间变化加速OWASP Top 10 自身也必须改变。2017 版本不是对 2013 版的修补而是一次彻底的重构refatoração completa具体包括六个维度重构方法论renovação da metodologia风险排序不再单纯依赖漏洞频次统计而是引入应用级发生率 行业调查 可利用性/可检测性/影响评估的综合模型详见仓库的 方法论与数据章节。采用全新的数据调用流程novo processo de chamada de dados公开征集各安全厂商与机构的漏洞数据首次将全部贡献数据与贡献者名单公开。与社区协作trabalho com a comunidade超过 500 份社区提交直接决定了两个新条目的入选。重新排序风险reordenação dos riscosA1~A10 的排名基于新的发生率数据与风险评分重新计算。从头重写每个风险条目reescrita de cada risco desde o início每个条目都按威胁代理/攻击向量、安全弱点、影响的统一风险因子表重新撰写。补充常用框架与语言的引用针对当时主流的开发栈给出防护指引。底层技术架构变化驱动榜单更新的三股力量发布说明明确指出应用的基础技术与架构在短短数年内发生了根本性变化这三股力量直接决定了哪些风险值得上榜微服务取代单体应用以 node.js 和 Spring Boot 编写的微服务正在替代传统单体应用。微服务带来了全新的安全挑战——微服务之间的信任建立、容器安全、密钥管理secret management等。更关键的是大量从未打算暴露到互联网的遗留代码现在通过 API 或 RESTful Web 服务被单页应用SPA和移动应用消费代码中调用者可信trusted callers这一基本架构假设不再成立。单页应用SPA的兴起基于 Angular、React 等 JavaScript 框架的单页应用催生了高度模块化、功能丰富的前端。传统上由服务端交付的客户端功能现在把安全问题带到了浏览器端。JavaScript 成为 Web 的第一语言node.js 占据服务端Bootstrap、Electron、Angular、React 等现代 Web 框架运行在客户端攻击面随之迁移。上述技术趋势与 2017 版榜单的直接关联是SPA/移动端对 API 的依赖放大了 访问控制破坏A5的暴露面前后端数据交互频繁则使 不安全反序列化A8成为现实威胁分布式架构中节点众多日志与监控不足A10的检测盲区被进一步放大。版本更新的数据底座40 数据调用与 516 份行业调查发布说明中的新增问题由数据支持 / 由社区支持两套机制其数据底座在 引言章节 和 方法论与数据章节 中有详细交代是理解 2017 榜单可信度的关键数据调用Data Call向专门从事应用安全的厂商发出 40 余份数据征集请求最终采用其中 23 个贡献者的数据覆盖约114,000 个真实应用与 API数据规模为历届之最。行业分类调查Industry Survey2017 年 8 月 2 日至 9 月 18 日开放问卷收集516 份有效回复请受访者对候选弱点类别进行排序投票。发生率口径改革2017 版首次以应用级发生率有多少应用包含至少一个某类漏洞替代传统的漏洞实例频次口径从而能在同一尺度上比较工具辅助的人工测试与人工辅助的工具测试两类数据源。所有原始数据与分析方法公开于仓库的2017/datacall目录见 datacall/analysis 分析目录 与 datacall/submissions 提交目录。行业调查的前五名排序原文表格完整保留如下直接决定了两个社区条目能否上榜| 排名 | 调查中的弱点类别 | 得分 | | -- | -- | -- | | 1 | 敏感信息暴露隐私泄露[CWE-359] | 748 | | 2 | 加密失败 [CWE-310/311/312/326/327] | 584 | | 3 | 不可信数据反序列化 [CWE-502] | 514 | | 4 | 通过用户可控键绕过授权IDOR 与路径遍历[CWE-639] | 493 | | 5 | 日志与监控不足 [CWE-223 / CWE-778] | 440 |方法论章节对调查结果的消化逻辑如下排名第一的敏感信息暴露本质上是A3:2017-敏感数据暴露的加强版加密失败也可归入其中因此不新增条目排名第三的不可信数据反序列化经风险评估后入选为A8:2017-不安全反序列化排名第四的用户可控键绕过授权归入A5:2017-访问控制破坏这也印证了授权类漏洞缺乏量化数据、需要调查补位的判断排名第五的日志与监控不足入选为A10:2017-日志与监控不足——应用必须能够识别什么是攻击并产生日志、告警、升级与响应。新增条目一A4:2017-XML 外部实体XXE——由数据支持的类别这是 2017 版唯一由数据而非社区投票直接驱动的新类别主要证据来自源码分析安全测试工具SAST的提交数据集。其核心风险描述A4 条目原文是许多较旧或配置不当的 XML 处理器会在解析文档时对外部实体引用进行解引用与求值攻击者可借此泄露内部文件、扫描内部端口、发起远程请求、执行远程代码甚至发起 DoS 攻击如经典的 Billion Laughs 攻击。哪些应用容易中招A4 条目 归纳直接接受 XML 或 XML 上传尤其来自不可信来源或将不可信数据拼入 XML 文档再交给处理器应用内任一 XML 处理器或基于 SOAP 的 Web 服务开启了文档类型定义DTD处理——禁用 DTD 的机制因处理器而异需逐一定制使用 SAML 做身份断言联合身份/SSO 场景SAML 本质是 XML使用 SOAP 1.2 之前的版本一旦存在 XXE通常意味着也面临 DoS 风险Billion Laughs 攻击。防护清单原文要点完整继承尽可能改用更简单的数据格式如 JSON及时为应用、操作系统内的全部 XML 处理器与库打补丁升级 SOAP 到 1.2 及以上并启用依赖管理dependency management在全部 XML 解析器中禁用 DTD 与外部实体处理在服务端实施正向输入校验白名单、过滤或清洗防止恶意数据进入 XML 文档、头部或节点对 XML/XSL 上传功能用 XSD 或等价方式校验入站 XML用 SAST 辅助检测但大型复杂应用仍以人工代码审查为佳若以上控制均不可行可引入虚拟补丁、API 安全网关或 WAF 检测与阻断 XXE。攻击场景三例A4 条目 原文可直接用于验证场景 #1利用外部实体读取服务端文件 ?xml version1.0 encodingISO-8859-1? !DOCTYPE foo [ !ELEMENT foo ANY !ENTITY xxe SYSTEM file:///etc/passwd ] fooxxe;/foo 场景 #2将 ENTITY 行改为探测内网 !ENTITY xxe SYSTEM https://192.168.1.1/private ] 场景 #3指向 /dev/random 制造 DoS !ENTITY xxe SYSTEM file:///dev/random ]新增条目二A8:2017-不安全反序列化——社区票选第一梯队该条目的入选完全依据行业调查排名第 3、514 分而非量化数据——A8 条目 明确写道此问题基于行业调查而非可量化数据纳入 Top 10并预期随着检测工具的成熟其发生率数据会逐步增长。其风险是反序列化不可信对象可导致**远程代码执行RCE**或对敏感对象的操纵是最严重的攻击之一。序列化技术的常见应用场景A8 条目 原文远程/进程间通信RPC/IPC有线协议、Web 服务、消息代理message brokers缓存/持久化数据库、缓存服务器、文件系统HTTP Cookie、HTML 表单参数、API 认证令牌。两类典型攻击一是对象/数据结构的攻击——攻击者修改应用逻辑若存在可利用的类即可实现任意代码执行二是数据操纵攻击——沿用既有数据结构但篡改内容例如绕过访问控制。防护原则原文要点唯一安全的架构模式是不接受来自不可信来源的序列化对象或改用只允许原始数据类型的序列化媒介。若做不到则依次落实对序列化对象做完整性校验如数字签名防止对象伪造与数据篡改在对象创建前实施严格的类型白名单约束但已有绕过先例不可单独依赖在低权限环境中隔离运行反序列化代码记录反序列化异常与失败如类型不匹配限制或监控反序列化容器/服务器的出入站网络连接持续监控反序列化行为对频繁反序列化的用户告警。攻击场景两例A8 条目 原文场景 #1React 前端 Spring Boot 微服务函数式团队为保持不可变 将用户状态序列化后在每次请求中往返传递。攻击者识别出 Java 对象 签名 R00用 Java Serial Killer 工具在应用服务器上实现 RCE。 场景 #2PHP 论坛把用户状态序列化进 super cookie a:4:{i:0;i:132;i:1;s:7:Mallory;i:2;s:4:user;i:3;s:32:b6a8b3bea87fe0e05022f8f3c88bc960;} 攻击者篡改对象把自己提权为管理员 a:4:{i:0;i:1;i:1;s:5:Alice;i:2;s:5:admin;i:3;s:32:b6a8b3bea87fe0e05022f8f3c88bc960;}新增条目三A10:2017-日志与监控不足——社区票选的检测之痛该条目以行业调查第 5 名440 分入选A10 条目 的评价是日志与监控不足是几乎所有重大安全事故的基石——攻击者正是依靠缺失的监控与不及时的响应达成目标而不被发现。判定漏洞的关键事实2006 年一项研究显示入侵从发生到被发现平均耗时191 天仓库 A10 条目 引用的 2016 年数据绝大多数入侵由第三方而非内部监控发现允许漏洞探测持续进行会使成功利用的概率趋近 100%。何时算不足原文清单可审计事件登录、登录失败、高价值交易未记录应用与 API 日志未被监控可疑活动告警阈值与响应升级机制未按数据风险等级建立或无效渗透测试与 DAST 扫描如 OWASP ZAP不会触发任何告警。防护措施按数据风险等级落地确保所有登录、访问控制失败、服务端输入校验失败都能以足够用户上下文记录日志保留时间足以支撑长期取证分析日志格式须能被集中式日志管理方案直接消费高价值交易保留带完整性控制如仅追加的数据库表的审计轨迹防篡改、防删除建立有效的监控与告警使可疑活动能被及时发现和响应建立/采纳事件响应与恢复计划如 NIST 800-61 rev 2 及后续版本。三个攻击场景A10 条目 原文开源论坛被入侵后因无监控/日志/告警源码仓库与全部内容被删除项目就此停摆攻击者用常见密码批量扫描账户每次只留下一次失败登录几天后换密码重来某大型零售商的内置恶意软件分析沙箱早已检出可疑软件却无人响应最终由外部银行发现欺诈交易才暴露入侵。合并与退役旧条目去向全解发布说明第三部分交代了 2013 版条目的去向结合 2017 风险总表 可完整对照A4-不安全的直接对象引用IDOR A7-功能级访问控制缺失 → 合并为 A5:2017-访问控制破坏。合并理由两者同属授权类缺陷。新条目的威胁面A5 条目覆盖修改 URL/内部状态/HTML 绕过校验、改主键越权访问他人记录、越权提权、篡改 JWT/隐藏字段等元数据、CORS 配置错误、强制浏览未授权页面与 API 等。A8-跨站请求伪造CSRF退役多数主流框架已内置 CSRF 防护发生率降至全部应用的 5% 以下英文版原文为约 5%。A10-未验证的重定向与转发退役当前数据集中报告该问题的应用不足 1%英文版原文为约 8% 的应用存在但因整体评分被 XXE 挤出榜单排名跌至第 25 位左右其位置由A10:2017-日志与监控不足接替。注意发布说明原文对退役条目的发生率表述存在版本间措辞差异葡语版称 CSRF 低于 5%重定向与转发不足 1%英文版 0x06-release-notes.md 称 CSRF 约 5%、重定向约 8%本文以葡语版原文为主、英文版对照注明供读者交叉参考。2017 版完整风险地图发布说明虽未逐一展开但仓库 风险总表 给出了 2017 版全部十条风险的权威定义可直接作为发布说明的延伸阅读清单| 编号 | 风险 | 一句话定义 | | -- | -- | -- | | A1:2017 | 注入 | 不可信数据被送入解释器执行非预期命令或未授权访问数据SQL/NoSQL/OS/LDAP 等 | | A2:2017 | 认证破坏 | 认证与会话管理实现不当攻击者窃取口令、密钥、会话令牌或冒用他人身份 | | A3:2017 | 敏感数据暴露 | Web 应用与 API 未充分保护金融、健康、个人等敏感数据缺乏静态/传输加密 | | A4:2017 | XML 外部实体XXE | 旧式或配置不当的 XML 处理器求值外部实体导致文件泄露、内网扫描、RCE、DoS | | A5:2017 | 访问控制破坏 | 未强制实施已认证用户的操作边界导致越权访问功能与数据 | | A6:2017 | 安全配置错误 | 不安全默认配置、云存储开放、HTTP 头配置错误、冗长错误信息泄露等 | | A7:2017 | 跨站脚本XSS | 未校验/过滤的不可信数据进入新页面或经浏览器 API 更新页面脚本在受害者浏览器执行 | | A8:2017 | 不安全反序列化 | 通常导致远程代码执行或用于重放、注入、提权等攻击 | | A9:2017 | 已知漏洞组件 | 库、框架、模块以应用同等权限运行被利用可致数据损失或服务器沦陷 | | A10:2017 | 日志与监控不足 | 检测、监控与响应缺失攻击者可长期驻留、横向扩散、破坏数据 |结语从发布说明到实战2017 版发布说明揭示了榜单演进的完整逻辑技术架构变迁决定威胁面微服务/SPA/JavaScript→ 数据调用提供发生率证据114,000 应用→ 行业调查补充数据盲区反序列化、日志监控→ 合并与退役淘汰已解决的问题CSRF。这套数据 社区双轮机制让 Top 10 从一份经验清单升级为可审计的、基于证据的安全标准。想深入任何一个条目的完整威胁模型、防护清单与攻击场景可直接在本仓库按图索骥XXE 详见 0xa4-xxe.md、反序列化详见 0xa8-insecure-deserialization.md、日志监控详见 0xaa-logging-detection-response.md、访问控制详见 0xa5-broken-access-control.md数据与方法的原始证据在 datacall 目录 与 方法论章节若要对照英文原文可参阅 英文版发布说明。赞分享应用安全【免费下载链接】Top10Official OWASP Top 10 Document Repository项目地址https://gitcode.com/gh_mirrors/top/Top10点击查看免费下载相关推荐OWASP Top 10 2017 发布说明深度解析从 2013 到 2017 的十大风险重构、新增类别与数据驱动方法论OWASP Top 10 2017 发布说明深度解析从 2013 到 2017 的十大风险重构、新增类别与数据驱动方法论 本文基于 OWASP 官方 Top应用安全OWASP Top 10 2017 发布说明深度解读从 2013 到 2017 的数据驱动风险清单重构OWASP Top 10 2017 发布说明深度解读从 2013 到 2017 的数据驱动风险清单重构 2017 版 OWASP Top 10 是该项目历史上应用安全OWASP Top 10 2017 发布说明深度解析从 2013 到 2017 的风险类别重构、新增与合并全景OWASP Top 10 2017 发布说明深度解析从 2013 到 2017 的风险类别重构、新增与合并全景 本文以仓库 2017/ro/0x06 rele应用安全上一篇react-router-cache-route生命周期详解useDidCache与useDidRecover钩子应用下一篇如何快速掌握PostHog开源用户行为分析平台的完整实战指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考