OWASP (Open Web Application Security Project) Top 10 是由OWASP组织发布的关于Web应用安全的权威指南,列举出当前最严重的Web应用安全风险。以下是最新版(例如OWASP Top 10 2021版)中列出的十大安全风险及其概述:
1.Broken Access Control(失效的身份验证与访问控制)
- 许多Web应用未能正确限制对资源的访问,导致未经授权的用户可以查看、修改或删除不应该接触的数据。
2.Cryptographic Failures(加密失败)
- 应用未能正确使用加密或使用了弱加密,可能导致数据在传输中被窃取,或者存储的数据容易遭到破解。
3.Injection(注入)
- 包括SQL注入、NoSQL注入、OS命令注入等,攻击者通过向应用输入恶意数据,操纵后台数据库或执行系统命令。
4.Insecure Design(不安全的设计)
- 设计阶段缺乏安全考量,导致后期出现难以修复的安全问题。提倡采用安全设计原则和框架以预防常见漏洞。
5.Security Misconfiguration(安全配置错误)
- 应用程序、框架、服务器或其他组件由于配置不当而产生安全隐患,包括默认凭据未更改、不必要的服务开放等。
6.Vulnerable and Outdated Components(使用含有已知漏洞的组件)
- 使用存在已知安全漏洞的第三方库、框架或组件,增加了攻击者利用这些漏洞的可能性。
7.Identification and Authentication Failures(身份识别与认证失败)
- 包括弱密码策略、失效的多因素认证、未妥善处理身份验证过程中的错误等,导致用户身份验证环节的安全性降低。
8.Software and Data Integrity Failures(软件和数据完整性失败)
- 缺乏对代码和数据的完整性保护,攻击者可能篡改应用代码或数据,改变其正常行为。
9.Security Logging and Monitoring Failures(安全日志与监控缺失)
- 不足的日志记录和监控可能导致无法及时发现安全事件,影响对安全事件的响应速度和效果。
10.Server-Side Request Forgery(服务器端请求伪造,SSRF)
- 攻击者可以通过伪造服务器端请求,获取内部网络资源或发起攻击,比如探测内网服务、攻击内部系统等。
为了防范这些风险,开发者和安全团队应当在开发、测试、部署和运维阶段采取相应措施,例如使用安全编码实践、实施严格的访问控制策略、定期更新组件和补丁、进行安全审计和渗透测试等。