OWASP TOP 10

什么是OWASP Top 10

OWASP,全称“开放式Web应用程序安全项目”是一个非营利性的组织,2003年该组织首次出版了“Top 10”,也就是10项最严重的Web应用程序安全风险列表。

Top 10 总结了Web应用程序最可能、最常见、最危险的十大安全漏洞。

OWASP Top 10中公布的漏洞,是最容易被黑客利用的,它也成为开发、测试及相关技术人员必须学会的知识。不少互联网公司的相关岗位面试中,OWASP Top 10是最常被提及的。

了解OWASP Top 10,可以有效避免自己的Web应用程序被黑客轻易攻破。

除了OWASP Top 10,OWASP创建了许多项目,例如容器安全十大风险、十大隐私风险、API安全Top 10、十大移动应用恶意行为等等,但风头均没有盖过OWASP Top 10。

2021版OWASP Top 10

Top1 失效的访问控制

失效的访问控制,也叫越权,指的是在未对通过身份验证的用户,实施恰当的访问控制。攻击者可以利用这一漏洞,访问未经授权的功能或数据。

比如,访问其他用户的账户、查看敏感文件、修改其他用户的数据,更改访问权限等等,都属于失效的访问控制造成的后果。

常见的访问漏洞包括:

通过修改 URL、内部应用程序状态或 HTML 页面,或仅使用自定义 API 攻击工具来绕过访问控制检查。

允许将主键更改为其他用户的记录,允许查看或编辑其他人的帐户。

特权提升。在未登录的情况下充当用户或以用户身份登录时充当管理员。

元数据操作,例如重放或篡改 JSON Web 令牌 (JWT) 访问控制令牌,或用于提升权限或滥用 JWT 失效的 cookie 或隐藏字段。

CORS 错误配置允许未经授权的 API 访问。

强制以未经身份验证的用户身份浏览经过身份验证的页面或以标准用户身份浏览特权页面。访问 API 时缺少对 POST、PUT 和 DELETE 的访问控制。

Top2 加密失败

在之前的Top10中,“加密失败”以前叫做“敏感数据泄露”,敏感数据泄露的根本原因是对数据加密存在有机可乘的漏洞,因此2021版改称为“加密失败”更贴切一些。

对于需要加密或加密传输的数据,常见的漏洞包括:

数据采用明文形式传输,例如使用HTTP、SMTP和FTP等协议。

默认情况下或在老代码中使用弱加密算法或过时的加密算法。

未强制执行加密。

用户代理不验证服务器证书是否有效。

Top3 注入

随着大量主流框架被使用,发生注入攻击的概率也随之下降,“注入”也从2017年的第一位下降到第三位。

SQL注入是典型的注入攻击,攻击者可以在web应用程序中事先定义好的查询语句的结尾,添加额外的SQL语句,从而实现非法操作。

常见的漏洞包括:

不验证、过滤和清理用户提供的数据

没有上下文感知转义的动态查询或非参数化调用直接在解释器中使用。

在对象关系映射 (ORM) 搜索参数中使用恶意数据来提取额外的敏感记录。

直接使用或连接恶意数据。SQL 或命令包含动态查询、命令或存储过程中的结构和恶意数据。

Top4 不安全的设计

“不安全设计”是2021年新增的一个类型,它重点关注的是设计缺陷的风险,“不安全设计”代表的是一类漏洞。

Top5 安全配置错误

90%的web应用程序都经历过错误配置测试,这些将导致安全风险。

常见的漏洞:

在应用程序堆栈的任何部分缺少适当的安全强化或对云服务的权限配置不正确。

启用或安装了不必要的功能(例如,不必要的端口、服务、页面、帐户或权限)。

默认帐户及其密码仍处于启用状态且未更改。

错误处理向用户显示堆栈跟踪或其他信息过多的错误消息。

对于升级的系统,最新的安全功能被禁用或未安全配置。

应用程序服务器、应用程序框架(例如,Struts、Spring、ASP.NET)、库、数据库等中的安全设置未设置为安全值。

服务器不发送安全标头或指令,或者它们未设置为安全值。

软件已过时或易受攻击(请参阅 A06:2021-易受攻击和过时的组件)。

Top6 易受攻击和过时的组件

如果客户端和服务器使用了易受攻击的组件版本,就可能成为被攻击者攻击的目标。

常见的漏洞有:

不知道所使用的组件的版本

不定期扫描漏洞,不关注所使用组件的官方公告

没有以基于风险的方式及时修复或升级底层平台、框架和依赖项。这通常发生在修补是变更控制下的每月或每季度任务的环境中,使组织面临数天或数月不必要地暴露于固定漏洞的风险。

软件开发人员不测试、升级或修补库的兼容性

不保护组件的配置

Top7 认证和授权失败

通俗地说,该漏洞会导致攻击者使用用户的用户名和密码进行填充,从而入侵系统。

常见的漏洞有:

允许自动攻击,例如撞库,其中攻击者拥有有效用户名和密码的列表。

允许蛮力或其他自动攻击。

允许使用默认密码、弱密码或众所周知的密码,例如“Password1”或“admin/admin”。

使用弱或无效的凭据恢复和忘记密码流程,例如无法确保安全的“基于知识的答案”。

使用纯文本、加密或弱散列密码(请参阅 A3:2017-敏感数据泄露)。

缺少或无效的多因素身份验证。

在 URL 中公开会话 ID(例如,URL 重写)。

成功登录后不要轮换会话 ID。

不会正确地使会话 ID 无效。用户会话或身份验证令牌(主要是单点登录 (SSO) 令牌)在注销或一段时间不活动期间未正确失效。

Top8 软件和数据完整性故障

同样,这也是一个新增的类型,指的是在不验证完整性的情况下做出与软件更新、关键数据和CI/CD管道相关的假设。

Top9 安全日志记录和监控失败

2017年以前,“安全日志记录和监控失败”叫做“日志记录和监控不足”,此类型已经扩展包括很多类型的漏洞。它指的是在没有日志记录和监控,将无法检测到漏洞,此类故障会直接影响可见性、事件报警和取证。

常见的漏洞:

不记录可审计的事件,例如登录、失败登录和高价值交易。

警告和错误不会生成、不充分或不清楚的日志消息。

不会监控应用程序和 API 的日志是否存在可疑活动。

日志仅存储在本地。

适当的警报阈值和响应升级流程没有到位或有效。

DAST 工具(例如 OWASP ZAP)的渗透测试和扫描不会触发警报。

应用程序无法实时或接近实时地检测、升级或警告主动攻击。

通过使用户或攻击者可以看到日志记录和警报事件,您很容易受到信息泄漏的影响(请参阅 A01:2021 – 损坏的访问控制)。

Top10 服务器端请求伪造

这一漏洞是在行业调查中添加的,数据显示发生概率较低。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值