← 返回博客
研究 2025年2月24日 25分钟阅读

OWASP前十2025:Web应用安全风险完整指南

OWASP前十是Web应用安全风险最广泛认可的标准。无论您是开发人员、安全工程师还是业务领导者——本指南通过真实案例、检测技术和修复策略解释每个类别。

ℹ️ 什么是OWASP前十?

定期更新的认知文档,对Web应用最关键的安全风险进行排名。基于来自数百个组织的数据分析、社区调查和真实泄露数据。被PCI DSS、DORA、NIS2和许多行业标准引用。


A01 失效的访问控制

第1号最常见漏洞——在94%的测试应用中发现。

⚠️ 真实案例

  • IDOR:/api/users/123/profile更改为/api/users/124/profile
  • 权限升级: 普通用户访问/admin/dashboard
  • 缺少功能级访问控制: API检查认证但不检查授权
  • CORS错误配置: 允许恶意站点发起经过认证的请求

✅ 修复

  • 在服务器端实施访问控制——永远不要依赖客户端
  • 默认拒绝——需要明确授权
  • 实施适当的RBAC或ABAC
  • 记录和警报访问控制失败
  • API访问速率限制

A02 加密失效

以前称为"敏感数据暴露"——重命名以关注根本原因。

⚠️ 常见错误

  • 登录页面通过纯HTTP传输凭据
  • 支持TLS 1.0/1.1或弱密码套件
  • 使用MD5或SHA-1而不是bcrypt/Argon2存储密码
  • 源代码中硬编码加密密钥
  • 数据库备份未加密

✅ 修复

使用HSTS在任何地方强制HTTPS。使用AES-256、bcrypt/Argon2、SHA-256+。永远不要硬编码密钥——使用Vault或AWS Secrets Manager。加密静态数据。禁用TLS 1.0/1.1。

A03 注入

经典Web漏洞——二十年后仍在前三名。

注入类型

  • SQL注入: ' OR 1=1 --和更复杂的攻击
  • NoSQL注入: MongoDB/CouchDB的JSON操作
  • 命令注入: 通过应用输入执行OS命令
  • XSS: 注入JavaScript——反射型、存储型、DOM型
  • 模板注入(SSTI): 代码进入服务器端模板引擎
  • 头部注入: 操纵HTTP头

✅ 预防

所有DB交互使用参数化查询。使用允许列表进行输入验证。针对上下文进行输出编码。Content Security Policy头。最小权限DB账户。始终如一地使用ORM。

A04 不安全设计

新类别——设计层面的缺陷,而非实现错误。

⚠️ 示例

  • 允许无限次尝试的密码重置流程(无速率限制)
  • 业务规则的客户端强制(JS中的价格验证)
  • 单个API密钥授予所有资源的读写访问权限

修复:将威胁建模(STRIDE、PASTA)整合到设计阶段。使用安全设计模式。与用例一起编写滥用案例。

A05 安全配置错误

在90%的测试应用中发现。

⚠️ 常见错误配置

  • 数据库和管理面板上的默认管理员密码
  • 启用目录列表、调试端点、详细错误消息
  • 缺少安全头(CSP、X-Frame-Options、X-Content-Type-Options)
  • 可公开访问的S3存储桶或Azure blob
  • 启用不必要的HTTP方法(PUT、DELETE、TRACE)

✅ 预防

可重复的加固过程。删除所有不必要的功能。实施所有安全头。使用IaC自动化配置管理。定期配置审计。使用CSPM进行云配置管理。

A06 易受攻击和过时的组件

528
平均组件/应用
84%
有已知漏洞的代码库
48%
高风险漏洞
252天
平均修复时间

⚠️ 著名示例

  • Log4Shell (CVE-2021-44228): 影响数百万Java应用的关键RCE
  • Spring4Shell (CVE-2022-22965): Spring框架中的RCE
  • jQuery XSS: 许多应用仍在使用易受攻击的jQuery版本

修复:维护组件清单(SBOM)。持续监控CVE数据库。删除未使用的依赖项。使用Dependabot/Renovate自动化更新。

A07 身份识别和认证失效

⚠️ 常见失效

  • 凭据填充: 使用被盗密码的自动化攻击
  • 弱密码策略(允许"password123")
  • 会话固定和缺少会话失效
  • URL中暴露的会话令牌
  • 关键功能缺少MFA

✅ 预防

实施MFA。使用泄露数据库检查强制强密码。认证端点速率限制。安全会话管理(随机ID、HTTPOnly/Secure标志)。注销/密码更改时使会话失效。

A08 软件和数据完整性失效

⚠️ 真实攻击

  • SolarWinds (2020): 合法软件更新中的恶意代码——18,000个组织受影响
  • 不安全的反序列化: 通过不受信任的数据执行任意代码
  • CI/CD管道妥协: Codecov、ua-parser-js事件
  • 缺少SRI: 从CDN加载JS而无完整性哈希

修复:所有软件/数据的数字签名。外部资源的子资源完整性(SRI)。具有访问控制和签名的安全CI/CD。避免不安全的反序列化——使用JSON。

A09 安全日志和监控失效

ℹ️ 盲目的代价

识别泄露的平均时间:204天(IBM 2024)。没有足够的日志记录,攻击者可以建立持久性、渗出数据并扩大他们的立足点——所有这些都不会触发警报。

修复:记录所有认证事件、访问控制失败和输入验证失败。包括上下文(时间戳、用户、IP、操作)。将日志集中在防篡改SIEM中。实施自动化警报。定期测试检测能力。

A10 服务器端请求伪造(SSRF)

新类别——由于在云原生架构中日益普遍而添加。

⚠️ 为什么SSRF危险

  • Capital One泄露(2019): SSRF → AWS元数据 → 暴露1亿+客户记录
  • 云元数据盗窃: 访问http://169.254.169.254/获取IAM凭据
  • 内部服务访问: 到达防火墙后面的API、数据库、管理面板

✅ 预防

在服务器端验证所有用户提供的URL。使用允许列表限制允许的域。阻止私有IP范围(10.x、172.16.x、169.254.x、127.x)。禁用不必要的URL方案(file://、gopher://)。在AWS上使用IMDSv2。分段URL获取服务。


KENSAI如何扫描OWASP前十

OWASP类别KENSAI覆盖范围
A01 失效的访问控制IDOR测试、授权绕过、CORS检查
A02 加密失效TLS分析、头检查、加密验证
A03 注入SQL、XSS、命令注入、SSTI、头注入
A04 不安全设计速率限制、可预测资源、逻辑测试
A05 安全配置错误头、默认值、信息披露、HTTP方法
A06 易受攻击组件技术指纹识别、332K+ CVE数据库
A07 认证失效默认凭据、会话测试、cookie分析
A08 完整性失效SRI检查、反序列化测试
A09 日志失效安全头分析、错误处理审查
A10 SSRF内部端点注入、云元数据测试
332K+
CVE追踪数量
10/10
OWASP覆盖率
AI
驱动的准确性
€990
起始价格/月

针对OWASP前十测试您的应用

免费扫描——无承诺,无需信用卡。AI驱动的DAST,带有合规就绪报告。

开始免费扫描 →

常见问题

最常见的OWASP漏洞是什么?

失效的访问控制(A01)——在94%的测试应用中发现。它从第5位上升到第1位,反映了在执行授权方面的广泛失败,特别是在API和SPA中。

OWASP前十合规是强制性的吗?

OWASP前十本身是自愿的。但是,它被PCI DSS(要求解决OWASP前十)、NIS2(期望系统化漏洞管理)、DORA(引用行业标准测试)和许多供应商评估所引用。实际上,它是事实上的强制性。

自动化工具能检测所有OWASP前十吗?

自动化DAST工具有效检测大多数类别——特别是注入(A03)、加密失效(A02)、配置错误(A05)和易受攻击组件(A06)。某些类别如不安全设计(A04)和日志失效(A09)通常需要手动评估。使用自动化扫描获得广度+手动测试获得深度。

OWASP前十多久更新一次?

每3-4年。主要发布:2013、2017、2021。每次更新反映威胁形势变化——2021年更新引入了不安全设计(A04)和SSRF(A10),同时重组了其他类别。

安全不是可选的。

🗡️ KENSAI团队

🛡️ Protect Your Business

Get a free security scan of your website in 60 seconds

Free Security Scan →
📚 More Articles 🏠 Home