2021 OWASP TOP10学习(待完善)
OWASP TOP10:open web application security project(开放式web应用安全项目)
总结了web最可能、最常见、最危险的十大漏洞,是web安全界最权威的项目。
自我认知
OWASP TOP10有什么用?涵盖访问广吧,格局更大吧。包含了开发的全过程:环境方面(设计、配置、组件、基础设施、日志和监控),通信方面(访问控制、加密机制、身份识别),用户方面(注入、ssrf)。
但其实了解过之后,还是挺干的,具体真正学习应该得潜移默化的了。
虽然了解一遍,但还是不够理解,理解得比较浅层,勿喷。
变化
A1失效的访问控制
访问控制强制实施策略,使用户无法在其预期权限之外进行操作。失败的访问控制通常会导致未经授权 的信息泄露、修改或销毁所有数据、或在用户权限之外执行业务功能。
常见的漏洞
- 权限漏洞:访问的权限未设置;对POST等未做访问限制;访问权限检查被轻易绕过;CORS 配置错误造成越权;通过唯一标识符;可以查看修改其他用户信息;未登录造成权限提升;伪造令牌越权。
- 信息泄露漏洞:
.git
等备份文件。
A2加密机制失效
与加密机制相关的故障(或缺乏加密机制), 这往往会导致敏感数据泄漏。
常见的漏洞
- 加密漏洞:使用明文传输(HTTP、SMTP、经过TLS升级(如 STARTTLS )的FTP);在使用任何旧的或脆弱的加密算法或传输协议;使用默认加密密钥、生成或重复使用脆弱的加密密钥;缺少安全相关的HTTP(浏览器)指令或标头;缺少安全相关的HTTP(浏览器)指令或标头;未被验证的服务器证书和信任链;伪随机性;过时的散列函数;已弃用的加密填充方法;加密的错误消息或侧信道信息;缺乏密码基密钥派生函数;初始化向量密码操作模式操作模式不安全。
A3注入
恶意数据未做处理或处理不当,造成被直接使用或连接,提取额外的敏感记录。
常见的漏洞
- 更常见的注入:SQL、NoSQL、OS命令、对象关系映射(ORM)、LDAP和表达式 语言(EL)或对象图导航库(OGNL)注入。
源代码审查是 检测应用程序是否易受注入攻击的最佳方法。
A4不安全设计(新类别)
侧重于与设计和体系结构缺陷相关的风险,呼吁更多地使用威胁建模、 安全设计模式和参考体系结构。
A5安全配置错误
随着当今软件正转向高度可配置,所以配置错误造成漏洞就出现得多了。
常见的配置错误
- 缺少适当的安全加固或者云服务的权限配置错误。
- 启用或安装了不必要的功能(例如:不必要的端口、服务、网页、帐户或权限)。
- 默认帐户和密码没有更改。
- 错误处理机制向用户纰漏大量错误信息。
- 最新的安全特性被禁用或未安全配置。
- 应用程序服务器、应用程序框架(如:Struts、Spring、ASP.NET)、库文件、数据库等没有进 行安全配置。
- 服务器不发送安全标头或指令,或未被设定安全参数。
- 的应用软件已过期或易受攻击
需要一个体系的、可重复的应用程序安全配置过程
A6自带缺陷和过时的组件
自带缺陷和过时的组件
A7身份识别和身份验证错误
常见的漏洞
- 弱密码漏洞:撞库自动化攻击、暴力或其他自动化攻击、弱密码攻击、用明码和被加密的或使用较脆弱杂凑法的密码
- 无效的认证:脆弱或无效的认证资讯、无效的多因素认证。
- session漏洞:URL中泄漏session ID、成功登入后没有轮换session ID、没有正确的注销会话session ID。
A8软件和数据完整性故障(新类别)
软件和数据完整性故障与无法防止违反完整性的代码和基础设施有关。
常见的漏洞
- 不受信任的源、存储库和内容分发网络(CDN)的插件、库或模块带来风险。
- 对象 或数据被编码或序列化为攻击者可以看到和修改的结构,很容易受到不安全的反序列化的影响。
A9安全日志和监控故障
该类别是为了帮助检测、升级和应对活跃的违规行为。
A10服务端请求伪造(新类别)
一旦Web应用在获取远程资源时没有验证用户提供的URL,就会出现SSRF缺陷。它允许攻击 者强制应用程序发送一个精心构建的请求到一个意外目的地,即使是在有防火墙、VPN或其他类型 的网络访问控制列表(ACL)保护的情况下。
预防措施
- 网络层:设置多个远程资源访问功能的网段;执行“默认拒绝”防火墙策略或网络访问控制规则。
- 应用层:检查和验证所有客户端提供的输入数据;禁用 HTTP 重定向;注意URL的一致性;使用白名单允许列表执行URL。