赞
踩
A04:2021-不安全设计 Insecure Design
风险说明:
不安全设计是一个广泛的类别,代表不同的弱点,表示为“缺少或无效的控制设计”。不安全设计不是所有其他前10个风险类别的来源。不安全设计和不安全的实现之间存在差异。我们区分设计缺陷和实现缺陷是有原因的,它们有不同的根本原因和补救措施。安全设计仍然可能存在实现缺陷,从而导致可能被利用的漏洞。一个不安全设计不能通过一个完美的实现来修复,因为根据定义,所需的安全控制从未被创建来抵御特定的攻击。导致不安全设计的因素之一是开发的软件或系统中缺乏固有的业务风险分析,因此无法确定需要何种级别的安全设计。
预防措施:
攻击范例:
- 身份凭证恢复工作流可能包括NIST 800-63b、OWASP ASVS和OWASP Top 10中已禁止的“问题和答案”功能。 “问题和答案”不能作为可信的证据来证明身份,因为不止一个人知道答案,这就是为什么它们被禁止的原因。应删除此类代码,并用更安全的设计替换。
- 一家连锁电影院允许团体预订折扣,支持最多15名观众而不 要押金。攻击者可以对这种流量进行威胁建模,并测试他们是否可以在几个请求中同时预订600个座位和所有电影院,从而造成巨大的收入损失。
- 零售连锁店的电子商务网站没有针对黄牛党运行的机器人的保护,黄牛党购买高端显卡然后在拍卖网站上销售。这给显卡制造商和零售连锁店老板创造了糟糕的形象,并与那些无法以任何价格获得这些卡的爱好者产生了持久的伤害。适当的反机器人设计和域逻辑规则,例如在可用的几秒钟内进行的购买,可能会被识别为不可信的购买并拒绝此类交易。
A05:2021-安全配置错误 Security Misconfiguration
风险说明:
您的应用程序可能受到攻击,如果应用程序是:
缺少一个体系的、可重复的应用程序安全配置过程,系统将处于高风险中。
预防措施:
应实施安全的安装过程,包括:
攻击范例:
- 应用程序服务器附带了未从产品服务器中删除的应用程序样例。这些样例应用程序具有已知的安全漏洞,攻击者利用这些漏洞来攻击服务器。假设其中一个应用程序是管理员控制台,并且没有更改默认账户,攻击者就可以通过默认密码登录,从而接管服务器。
- 目录列表在服务器端未被禁用。攻击者发现他们很容易就能列出目录列表。攻击者找到并下载所有已编译的Java类,他们通过反编译来查看代码。然后,攻击者在应用程序中找到一个严重的访问控制漏洞。
- 应用程序服务器配置允许将详细的错误信息(如:堆栈信息)返回给用户,这可能会暴露敏感信息或潜在的漏洞,如:已知含有漏洞的组件的版本信息
- 云服务提供商向其他CSP用户提供默认的网络共享权限。这允许攻击者访问存储在云端的敏感数据。
A06:2021-自带缺陷和过时的组件 Vulnerable and Outdated Components
风险说明:
如果满足下面的某个条件,那么您的应用就易受此类攻击:
预防措施:
应制定一个补丁管理流程:
每个组织都应该制定相应的计划,对整个软件生命周期进行监控、评审、升级或更改配置。
攻击范例:
- 通常组件都是以与应用相同的权限运行的,这使得组件里的缺陷可能导致各式各样的问题。这些缺陷可能是偶然的(如:编码错误),也可能是蓄意的(如:组件里的后门)。下面是一些已被利用的漏洞:
CVE-2017-5638,一个Struts2远程执行漏洞。可在服务端远程执行代码,并已造成巨大的影响。
虽然物联网(IoT)设备一般难以通过打补丁来修复。但对它打补丁非常重要(例如:医疗设备)。
有些自动化工具能帮助攻击者发现未打补丁的或配置不正确的系统。例如:Shodan
IOT搜索引擎能帮助您发现从2014年4月至今仍存在心脏出血漏洞的设备。
A07:2021-身份识别和身份验证错误 Identification and Authentication Failures
风险说明:
预防措施:
攻击范例:
- 使用已知列表密码的撞库攻击是一种常见的攻击方式,假设应用沒有实施自动化威胁或撞 库攻击的保护,在这种情況下,应用会被利用为密码预报的工具来判断认证凭据是否有效
- 大多数身份验证攻击都是由于密码作为单一因素持续使用而发生的。一旦考虑,最佳实践、密码轮换和复杂性要求鼓励用户使用和重用弱密码。建议组织按照NIST
800-63停止这些做法并使用多因素认证- 应用会话超时设置错误。一个用户使用公用电脑来访问应用时,用户没有选择“登出”而是简单的关闭浏览器标签页就离开。一小时后,一个攻击者使用同一个浏览器,而那个应用仍处于前面用户认证通过的状态
A08:2021-软件和数据完整性故障 Software and Data Integrity Failures
风险说明:
软件和数据完整性故障与无法防止违反完整性的代码和基础设施有关。这方面的一个例子是,应用程序依赖于不受信任的源、存储库和内容分发网络(CDN)的插件、库或模块。不安全的CI/CD管道可能会带来未经授权的访问、恶意代码或系统安全风险。最后,许多应用程序现在包括自动更新功能。其中,更新包在没有进行充足完整性验证的情况下被下载,并应用于以前受信任的应用程序。攻击者可能会上传自己的更新包,以便在所有安装上分发和运行。另一个例子是,对象或数据被编码或序列化为攻击者可以看到和修改的结构,很容易受到不安全的反序列化的影响。
预防措施:
攻击范例:
- 许多家庭路由器、机顶盒、设备固件和其他设备通过没有签名的固件进行更新。未签名固件是越来越多的攻击者的目标,预计情况只会变得更糟。这是一个主要问题,因为很多时候除了在未来的版本中修复和等待以前的版本过期之外,没有任何其他补救措施。
- 众所周知一种新的攻击机制,即,最近值得注意的SolarWinds Orion攻击。开发该软件的公司具有安全的构建和更新完整性流程。尽管如此,这些都能够被颠覆。几个月来,该公司向18,000多个组织分发了一个高度针对性的恶意更新,其中大约100个组织受到影响。这是历史上同类性质中影响最深远和最严重的违规行为之一。
- 一个React 应用程序调用一组Spring Boot 微服务。作为函数程序员,他们试图确保他们的代码是不可变的。他们提出的解决方案是将用户状态序列化,并在每个请求中来回传递。攻击者注意到“rO0”Java
对象签名(在 base64 中),并使用 Java Serial Killer工具在应用服务器上获取远程代码执行权。
A09:2021-安全日志和监控故障 Security Logging and Monitoring Failures
风险说明:
2021年版OWASP Top 10中,该类别是为了帮助检测、升级和应对活跃的违规行为。如果不进行日志记录和监测,就无法发现违规行为。任何时候都会发生日志记录、检测、监视和主动响应不足的情况:
预防措施:
开发人员应根据应用的风险,实施以下部分或全部控制:
攻击范例:
- 一家儿童健康计划供应商的网站运营者由于缺乏安全监控和记录而无法发现漏洞。一个外部团体告知儿童健康计划供应商,某恶意攻击者已经获取并修改了超过350万儿童的数千份敏感健康记录。事后审查发现,网站开发人员没有修复重大漏洞。由于没有对系统进行日志记录或监控,因此数据泄露可能自2013年以来一直在进行,时间超过7年
- 印度一家大型航空公司发生数据泄露事件,涉及数百万乘客十多年的个人信息,包括护照和信用卡信息。数据泄露发生在一家第三方云托管服务提供商,该提供商在一段时间后通知了航空公司此次泄露事件。
- 欧洲一家大型航空公司遭遇一起可报告的GDPR违规事件。据报道,攻击者利用支付应用程序的安全漏洞,获取了超过40万客户的支付记录,从而导致了此次攻击。该航空公司因此被隐私监管机构处以2000万英镑的罚款
A10:2021-服务端请求伪造 Server-Side Request Forgery
风险说明:
一旦Web应用在获取远程资源时没有验证用户提供的URL,就会出现SSRF缺陷。它允许攻击者强制应用程序发送一个精心构建的请求到一个意外目的地,即使是在有防火墙、VPN或其他类型的网络访问控制列表(ACL)保护的情况下。
随着现代Web应用为终端用户提供便利的功能,获取URL成为一种常见的场景。因此,SSRF安全攻击事件也在不断增加。此外,由于云服务和架构的复杂性,SSRF的严重性也越来越高
预防措施:
开发者可以通过实现以下部分或全部防御手段,纵深防御来阻止SSRF:
网络层防御建议:
应用层防御建议:
需额外考虑的措施:
攻击范例:
- 如果网络架构未进行网络隔离,攻击者可以访问并绘制出内部网络地图,并根据连接结果或SSRF有效载荷连接的运行时间和拒绝时间判 断内部服务器端口是打开还是关闭
- 攻击者可以访问本地文件或内部服务,以获得敏感信息,例如: file:///etc/passwd http://localhost:28017/
- 大多数云服务提供商都有元数据存储,比如:通过http://169.254.169.254/访问。攻击者可以通过读取元数据来获取敏感信息。
- 攻击者可以滥用内部服务进行进一步的攻击,比如:远程代码执行(RCE)或者拒绝服务攻击(DoS)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。