OWASP Top 10 2021发布 - “失效的访问控制”跃居榜首

作者:安数网络 发布时间:2021-09-17 11:18:51 浏览次数:2086

OWASP 发布了2021年草案,全新的OWASP Top 10 2021带有三个新的类别和排位的变化。

OWASP Top 10是每个Web应用程序的最低或基本安全测试要求。

OWASP Top 10于2003年首次推出,经过多次修订。现在发布了2021年的报告草案。

2021年前10名发生了什么变化:有三个新类别,四个类别的命名和范围发生了变化,并且 2021年的前10 名中进行了一些合并。

OWASP Top 10 2021

 A01:2021 - Broken Access Control 失效的访问控制

从 2017 年的第五位上升到首位,它也被称为授权,它定义了 Web 应用程序如何向某些用户而不是其他用户授予对内容和功能的访问权限。

访问控制强制执行策略,使用户不能在其预期权限之外采取行动。故障通常会导致未经授权的信息泄露、修改或破坏所有数据或执行超出用户限制的业务功能。常见的访问控制漏洞包括:
  1) 通过修改 URL、内部应用程序状态或 HTML 页面,或仅使用自定义 API 攻击工具来绕过访问控制检查。
  2) 允许将主键更改为其他用户的记录,允许查看或编辑其他人的帐户。
  3) 特权提升。在未登录的情况下充当用户或以用户身份登录时充当管理员。
  4) 元数据操作,例如重放或篡改 JSON Web 令牌 (JWT) 访问控制令牌,或用于提升权限或滥用 JWT 失效的 cookie 或隐藏字段。
  5) CORS 错误配置允许未经授权的 API 访问。
  6) 强制以未经身份验证的用户身份浏览经过身份验证的页面或以标准用户身份浏览特权页面。访问 API 时缺少对 POST、PUT 和 DELETE 的访问控制。

 A02:2021 - Cryptographic Failures 加密失败

从第三位上升到第二位,以前称为敏感数据泄露(Sensitive Data Exposure),这是广泛的症状而不是根本原因。缺乏加密通常会导致敏感数据泄露或系统受损。

 首先是确定传输中和静止数据的保护需求。例如,密码、信用卡号、健康记录、个人信息和商业秘密需要额外保护,主要是如果该数据属于隐私法(例如欧盟的通用数据保护条例 (GDPR))或法规(例如金融数据保护)例如 PCI 数据安全标准 (PCI DSS)。对于所有此类数据:
  1) 是否有任何数据以明文形式传输?这涉及 HTTP、SMTP 和 FTP 等协议。外部互联网流量是危险的。验证所有内部流量,例如,负载平衡器、Web 服务器或后端系统之间的流量。
  2) 默认情况下或在较旧的代码中是否使用任何旧的或弱的加密算法?
  3) 是否正在使用默认加密密钥、生成或重复使用弱加密密钥,或者是否缺少适当的密钥管理或轮换?
  4) 是否未强制执行加密,例如,是否缺少任何用户代理(浏览器)安全指令或标头?
  5) 用户代理(例如,应用程序、邮件客户端)是否不验证收到的服务器证书是否有效?


A03:2021 - Injection 注入

从第一位下降到第三位,它是一种攻击者利用未经验证的输入漏洞并通过在后端数据库中执行的 Web 应用程序注入 SQL 命令的技术。

跨站脚本攻击现在是此版本中此类别的一部分。

应用程序在以下情况下容易受到攻击:
  1) 应用程序不会验证、过滤或清理用户提供的数据。
  2) 没有上下文感知转义的动态查询或非参数化调用直接在解释器中使用。
  3) 在对象关系映射 (ORM) 搜索参数中使用恶意数据来提取额外的敏感记录。
  4) 直接使用或连接恶意数据。SQL 或命令包含动态查询、命令或存储过程中的结构和恶意数据。
一些更常见的注入是 SQL、NoSQL、OS 命令、对象关系映射 (ORM)、LDAP 和表达式语言 (EL) 或对象图导航库 (OGNL) 注入。源代码审查是检测应用程序是否容易受到注入攻击的最佳方法。强烈建议对所有参数、标头、URL、cookie、JSON、SOAP 和 XML 数据输入进行自动化测试。组织可以将静态源 (SAST) 和动态应用程序测试 (DAST) 工具包含到 CI/CD 管道中,以在生产部署之前识别引入的注入缺陷。

A04:2021 - Insecure Design 不安全的设计

这是 OWASP Top 2021 的一个新类别,它关注与设计和架构缺陷相关的风险。

不安全设计是一个广泛的类别,代表许多不同的缺陷,表现为缺失或无效的控制设计。缺少不安全的设计是缺少控制的地方。例如,想象一下应该加密敏感数据的代码,但没有方法。无效的不安全设计是可以实现威胁的地方,但域(业务)逻辑验证不足会阻止该操作。例如,假设域逻辑应该根据收入等级处理流行病税收减免,但不验证所有输入都已正确签名并提供比应授予的更重要的减免收益。
安全设计是一种文化和方法,它不断评估威胁并确保代码经过稳健设计和测试,以防止已知的攻击方法。安全设计需要安全的开发生命周期、某种形式的安全设计模式或铺砌道路组件库或工具,以及威胁建模。
 

A05:2021 - Security Misconfiguration 安全配置错误

从第六位移至第五位,它侧重于跨应用程序堆栈的安全加固或对云服务的权限配置不当。

XML 外部实体 (XXE) (XML External Entities,XXE)现在属于此类别。

 如果应用程序是:
  1) 在应用程序堆栈的任何部分缺少适当的安全强化或对云服务的权限配置不正确。
  2) 启用或安装了不必要的功能(例如,不必要的端口、服务、页面、帐户或权限)。
  3) 默认帐户及其密码仍处于启用状态且未更改。
  4) 错误处理向用户显示堆栈跟踪或其他信息过多的错误消息。
  5) 对于升级的系统,最新的安全功能被禁用或未安全配置。
  6) 应用程序服务器、应用程序框架(例如,Struts、Spring、ASP.NET)、库、数据库等中的安全设置未设置为安全值。
  7) 服务器不发送安全标头或指令,或者它们未设置为安全值。
  8) 软件已过时或易受攻击(请参阅 A06:2021-易受攻击和过时的组件)。
如果没有协调一致的、可重复的应用程序安全配置过程,系统将面临更高的风险。


A06:2021 - Vulnerable and Outdated Components 易受攻击和过时的组件

从第九位升至第六位,是我们难以测试和评估风险的已知问题。此类别重点关注客户端和服务器端使用的所有易受攻击的组件版本。

 你的系统可能很脆弱:
  1) 如果您不知道您使用的所有组件的版本(客户端和服务器端)。这包括您直接使用的组件以及嵌套的依赖项。
  2) 如果软件易受攻击、不受支持或已过期。这包括操作系统、Web/应用程序服务器、数据库管理系统 (DBMS)、应用程序、API 和所有组件、运行时环境和库。
  3) 如果您不定期扫描漏洞并订阅与您使用的组件相关的安全公告。
  4) 如果您没有以基于风险的方式及时修复或升级底层平台、框架和依赖项。这通常发生在修补是变更控制下的每月或每季度任务的环境中,使组织面临数天或数月不必要地暴露于固定漏洞的风险。
  5) 如果软件开发人员不测试更新、升级或修补的库的兼容性。
  6) 如果您不保护组件的配置(请参阅 A05:2021-安全配置错误)。


A07:2021 – Identification and Authentication Failures 认证和授权失败

以前它被称为损坏的身份验证(Broken Authentication),此类别侧重于身份验证失败。从第二位下滑到第七位。

它会导致自动攻击,例如攻击者使用用户名和密码列表的凭据填充。

 确认用户的身份、身份验证和会话管理对于防止与身份验证相关的攻击至关重要。如果应用程序存在以下情况,则可能存在身份验证漏洞:
  1) 允许自动攻击,例如撞库,其中攻击者拥有有效用户名和密码的列表。
  2) 允许蛮力或其他自动攻击。
  3) 允许使用默认密码、弱密码或众所周知的密码,例如“Password1”或“admin/admin”。
  4) 使用弱或无效的凭据恢复和忘记密码流程,例如无法确保安全的“基于知识的答案”。
  5) 使用纯文本、加密或弱散列密码(请参阅 A3:2017-敏感数据泄露)。
  6) 缺少或无效的多因素身份验证。
  7) 在 URL 中公开会话 ID(例如,URL 重写)。
  8) 成功登录后不要轮换会话 ID。
  9) 不会正确地使会话 ID 无效。用户会话或身份验证令牌(主要是单点登录 (SSO) 令牌)在注销或一段时间不活动期间未正确失效。

A08:2021 – Software and Data Integrity Failures 软件和数据完整性故障

这是 OWASP Top 10 2021 中引入的一个新类别,它侧重于与无法防止完整性违规的代码和基础设施相关的软件和数据完整性故障。

2017 年的不安全反序列化(Insecure Deserialization)现在是这一大类别的一部分。

 软件和数据完整性故障与不能防止完整性违规的代码和基础设施有关。例如,在对象或数据被编码或序列化为攻击者可以看到和修改的结构的情况下,很容易受到不安全的反序列化的影响。另一种形式是应用程序依赖来自不受信任的来源、存储库和内容交付网络 (CDN) 的插件、库或模块。不安全的 CI/CD 管道可能会导致未经授权的访问、恶意代码或系统受损。最后,许多应用程序现在包括自动更新功能,其中更新在没有充分完整性验证的情况下被下载并应用于以前受信任的应用程序。攻击者可能会上传自己的更新以分发并在所有安装上运行。

A09:2021 – Security Logging and Monitoring Failures 安全日志记录和监控失败

以前是日志记录和监控不足(Insufficient Logging&Monitoring),从第十位前进一步,此类别已扩展为包括更多类型的故障。此类别有助于检测、升级和响应活动的违规行为。

此类故障会直接影响可见性、事件警报和取证。

如果没有日志记录和监控,就无法检测到漏洞。任何时候都会发生日志记录、检测、监控和主动响应不足的情况:
  1) 不记录可审计的事件,例如登录、失败登录和高价值交易。
  2) 警告和错误不会生成、不充分或不清楚的日志消息。
  3) 不会监控应用程序和 API 的日志是否存在可疑活动。
  4) 日志仅存储在本地。
  5) 适当的警报阈值和响应升级流程没有到位或有效。
  6) DAST 工具(例如 OWASP ZAP)的渗透测试和扫描不会触发警报。
  7) 应用程序无法实时或接近实时地检测、升级或警告主动攻击。
通过使用户或攻击者可以看到日志记录和警报事件,您很容易受到信息泄漏的影响(请参阅 A01:2021 – 损坏的访问控制)。


A10:2021 – Server-Side Request Forgery (SSRF) 服务器端请求伪造

此类别是新添加的。侧重于保护 Web 应用程序在不验证用户提供的 URL 的情况下获取远程资源的连接。

每当 Web 应用程序在未验证用户提供的 URL 的情况下获取远程资源时,就会出现 SSRF 缺陷。它允许攻击者强制应用程序将精心设计的请求发送到意外目的地,即使受到防火墙、VPN 或其他类型的网络 ACL 的保护也是如此。
随着现代 Web 应用程序为最终用户提供方便的功能,获取 URL 成为一种常见情况。因此,SSRF 的发病率正在增加。此外,由于云服务和架构的复杂性,SSRF 的严重性越来越高。

OWASP介绍:

OWASP是一个开源的、非盈利的全球性安全组织,致力于应用软件的安全研究。OWASP的使命是使应用软件更加安全,使企业和组织能够对应用安全风险做出更清晰的决策。目前OWASP全球拥有250个分部近7万名会员,共同推动了安全标准、安全测试工具、安全指导手册等应用安全技术的发展。


及时掌握网络安全态势 尽在傻蛋网络安全监测系统

【网络安全监管部门】免费试用

本文来源:owasp

如涉及侵权,请及时与我们联系,我们会在第一时间删除或处理侵权内容。
电话:400-869-9193 负责人:张明