OWASP TOP 10每几年更新一次,反映了安全威胁的演变趋势。2025年的最新榜单出现了一些显著变化,为我们进行安全测试提供了指导。
A01:2025-存取控制漏洞(Broken Access Control)
详解:这已是连续多年位居榜首的风险。它指的是系统未能正确执行权限控制,导致攻击者可以访问本不应被允许的功能或数据,如查看他人账户信息、修改数据等。服务器端请求伪造(SSRF)也被归入此类。
测试重点:进行全面的越权操作测试,尝试以低权限用户身份访问高权限接口。
A02:2025-安全配置错误(Security Misconfiguration)
详解:从2021年的第五位跃升至第二位。随着云原生和微服务的普及,配置管理变得愈发复杂。任何不当的配置,如云存储桶权限设置错误、默认账号密码未改、详细错误信息暴露等,都可能成为攻击入口。
测试重点:开展安全配置审核,检查所有系统组件和云服务的配置项。
A03:2025-软件供应链缺失(Software Supply Chain Failures)
详解:这是2025年版新增且直接冲入前三的类别。不仅是使用含有已知漏洞的组件,而是包括了更广的范围:从第三方库漏洞、恶意代码植入,到创建工具的破坏和更新分发机制的篡改。
测试重点:实施软件成分分析(SCA),建立软件物料清单(SBOM),并不断监控依赖组件的安全状态。
A04:2025-加密机制失效(Cryptographic Failures)
详解:即旧版的敏感信息泄露。强调不仅要有加密,而且加密算法和协议必须足够强大且正确实施。使用过时的加密算法(如MD5)或在HTTP协议中明文传输敏感信息,都属于此类风险。
测试重点:进行加密和敏感信息保护测试,审查加密协议及密钥管理。
A05:2025-注入攻击(Injection)
详解:经典的注入攻击(如SQL注入、OS命令注入)排名有所下降,但这并不意味着它们已消失。当不可信数据作为命令或查询的一部分发送给解释器时,就可能引发注入,导致数据泄露或系统被控。
测试重点:严格进行输入证实测试和渗透测试,尤其重视数据库交互层。
A06:2025-不安全设计(Insecure Design)
详解:重视点从编码阶段的错误转向了设计阶段的原生缺陷。即使代码实现完美,如果业务流程和架构设计存在思路缺陷(如忘记密码流程设计不当),就无法通过后期编码修复。
测试重点:在设计阶段引入威胁建模,进行业务思路漏洞测试。
A07:2025-身份证实失败(Authentication Failures)
详解:主要涉及用户身份识别系统的缺陷,如允许暴力破解、弱密码方法、会话ID在URL中泄露等,使攻击者可以冒用他人身份。
测试重点:开展认证和会话管理测试,检查登录、注销、密码找回等所有身份相关功能。
A08:2025-软件及数据完整性失效(Software or Data Integrity Failures)
详解:指未能信任不可信来源的代码或数据。如,应用程序在不证实签名的情况下自动下载更新,或反序列化时使用了不受信任的数据,导致远程代码执行。
测试重点:检查更新机制的安全性,并针对反序列化等场景进行安全测试。
A09:2025-日誌記錄與告警(Logging & Alerting Failures)
详解:攻防是技术战,也是信息战。如果系统无法记录重点的告警日志,或者日志被篡改,攻击者就可以“隐身”活动,导致安全事件无法被及时发现和溯源。
测试重点:审核日志方法,证实能否记录重点操作、日志是不是受保护、告警机制是不是有效。
A10:2025-特殊情况处理不当(Mishandling of Exceptional Conditions)
详解:这是2025年另一个新增类别。它包括了系统在遭遇异常情况(如网络延迟、资源耗尽、并发冲突、非法返回值)时,因错误处理不当而暴露出的安全漏洞。如,一个支付接口在超时后未正确处理状态,可能导致用户少付多拿。
测试重点:进行负面测试和混沌工程,模拟各种异常情形,观察系统的行为是不是安全。