OWASP Top 10 是什么?

发布于:2025-07-03 ⋅ 阅读:(25) ⋅ 点赞:(0)

OWASP(Open Web Application Security Project,开放Web应用安全项目)是一个致力于提高软件安全性的国际非营利组织。其发布的 ​OWASP Top 10​ 是最具影响力的Web应用安全风险清单,每3-4年更新一次,帮助开发人员、安全团队和企业识别和防范关键威胁。


1. 注入(Injection)​

定义​:攻击者通过向应用程序输入恶意数据,欺骗解释器(如SQL、OS、LDAP等)执行非预期命令。
常见类型​:

  • SQL注入(SQLi)​​:操纵数据库查询,窃取或篡改数据。
    -- 恶意输入:' OR '1'='1
    -- 原SQL:SELECT * FROM users WHERE username = '[input]' AND password = '[input]'
    -- 攻击后:SELECT * FROM users WHERE username = '' OR '1'='1' AND password = '[input]'
  • OS命令注入​:通过系统调用执行任意命令(如; rm -rf /)。
  • NoSQL注入​:针对MongoDB等NoSQL数据库的攻击。

防护措施​:

  • 使用参数化查询​(Prepared Statements)。
  • 实施输入验证输出编码
  • 最小化数据库权限(遵循最小权限原则)。

2. 失效的访问控制(Broken Access Control)​

定义​:系统未能正确限制用户权限,导致未授权访问敏感数据或功能。
典型场景​:

  • 水平越权​:用户A访问用户B的数据(如/user/profile?id=B)。
  • 垂直越权​:普通用户访问管理员功能(如/admin/deleteAll)。
  • 不安全的直接对象引用(IDOR)​​:通过修改URL参数访问未授权资源。

防护措施​:

  • 实施基于角色的访问控制(RBAC)​属性基访问控制(ABAC)​
  • 服务端校验所有请求,避免依赖前端控制。
  • 使用随机ID(UUID)替代自增ID。

3. 加密机制失效(Cryptographic Failures)​

定义​:敏感数据因弱加密算法、错误配置或明文传输而泄露。
常见问题​:

  • 使用弱哈希算法​(如MD5、SHA-1)存储密码。
  • SSL/TLS配置错误​(如支持旧版协议TLS 1.0)。
  • 数据库/日志中存储明文信用卡号或密码。

防护措施​:

  • 使用强哈希算法​(如Argon2、bcrypt、PBKDF2)。
  • 强制HTTPS,禁用不安全的加密协议。
  • 遵循PCI DSS等合规标准。

4. 不安全设计(Insecure Design)​

定义​:安全缺陷源于设计阶段,而非实现错误。
案例​:

  • 密码重置功能未验证用户身份​(仅依赖安全问题)。
  • 支付流程缺乏防重放机制,导致重复扣款。

防护措施​:

  • 采用威胁建模​(如STRIDE)识别设计风险。
  • 实施安全设计模式​(如零信任架构)。
  • 在需求阶段明确安全要求。

5. 安全配置错误(Security Misconfiguration)​

定义​:因默认配置、未打补丁或暴露敏感信息导致漏洞。
常见错误​:

  • 使用默认管理员密码​(如admin/admin)。
  • 开启调试模式​(暴露堆栈跟踪)。
  • 服务器目录列表未禁用,泄露文件结构。

防护措施​:

  • 自动化配置检查(如Ansible、Chef)。
  • 定期扫描漏洞(如Nessus、OpenVAS)。
  • 遵循CIS基准等安全配置指南。

6. 易受攻击的组件(Vulnerable and Outdated Components)​

定义​:使用含已知漏洞的第三方库/框架(如Log4j、Spring4Shell)。
风险​:

  • 攻击者利用公开漏洞(CVE)入侵系统。
  • 供应链攻击(如恶意NPM包)。

防护措施​:

  • 使用软件成分分析(SCA)工具​(如Dependabot、Snyk)。
  • 定期更新依赖项,移除无用组件。
  • 监控漏洞数据库(如CVE、NVD)。

7. 身份认证失效(Identification and Authentication Failures)​

定义​:身份验证机制存在缺陷,导致账户被盗或会话劫持。
问题示例​:

  • 弱密码策略​(允许password123)。
  • 会话固定攻击​(Session Fixation)。
  • 无多因素认证(MFA)​

防护措施​:

  • 强制强密码​(至少12字符+特殊符号)。
  • 实施MFA​(如短信/OTP/生物识别)。
  • 使用安全的会话管理(如JWT+短期有效期)。

8. 软件和数据完整性失效(Software and Data Integrity Failures)​

定义​:代码或数据在传输/存储过程中被篡改。
案例​:

  • 供应链攻击​(如SolarWinds事件)。
  • 自动更新未签名,导致恶意代码注入。

防护措施​:

  • 使用数字签名验证软件完整性(如GPG)。
  • 限制CI/CD管道的访问权限。
  • 监控依赖项的来源。

9. 安全日志与监控不足(Security Logging and Monitoring Failures)​

定义​:未能及时发现或响应攻击。
后果​:

  • 数据泄露数月后才察觉(如Equifax事件)。
  • 无法追踪攻击路径。

防护措施​:

  • 集中化日志管理(如ELK、Splunk)。
  • 设置实时告警(如SIEM系统)。
  • 定期进行渗透测试红队演练

10. 服务端请求伪造(SSRF)​

定义​:诱骗服务器向内部系统发起恶意请求。
攻击场景​:

  • 访问云元数据(如AWS IAM凭据)。
  • 扫描内网端口(如http://internal-db:3306)。

防护措施​:

  • 禁用不必要的URL协议(如file://gopher://)。
  • 使用白名单限制请求目标。
  • 隔离敏感后端服务。

总结:如何落地防护?​

  1. 开发阶段​:安全编码培训 + 威胁建模。
  2. 测试阶段​:DAST/SAST扫描 + 渗透测试。
  3. 运维阶段​:WAF + 日志监控 + 定期更新。

官方资源​:OWASP Top 10 2021
工具推荐​:Burp Suite(测试)、OWASP ZAP(扫描)、HashiCorp Vault(密钥管理)。

如需更具体的某类风险分析,可进一步探讨!


网站公告

今日签到

点亮在社区的每一天
去签到