什么是 OWASP,什么是 Owasp Top 10?
开放 Web 应用程序安全项目或 OWASP 是一个国际非营利组织,它记录了最相关的 Web 应用程序安全最佳实践和资源,以提高全球软件的安全性。他们公开提供和访问他们的材料,以便组织和开发人员可以提高他们自己的网络安全性。
OWASP Top 10 就是这样一份文件,它在一份报告中列出了前 10 大最严重的安全问题,包括攻击向量、弱点和预防技术。
为什么 OWASP Top 10 很重要?
OWASP Top 10 报告由来自世界各地的一组安全专家汇总而成。该报告自 2003 年以来发布,每 2-3 年更新一次,为公司提供可操作的清单,以将其纳入其应用程序安全流程。
该清单对于大小组织都很重要,特别是考虑到最近发生的网络攻击数量激增及其严重性。就拿 入侵殖民地管道 今年4月在美国。攻击是通过虚拟专用网络进入该组织的网络进行的,该网络允许员工远程访问公司的计算机网络。发现 VPN 漏洞的已知原因是缺乏多因素身份验证,这使黑客可以简单地使用受损的用户名和密码来通过,这些用户名和密码可能是在 VPN 上的一批泄露密码中获得的暗网。
OWASP 十有什么影响?
OWASP Ten 可能是最有影响力的一组指南,可帮助公司开始将其 Web 应用程序的安全风险降至最低。 OWASP Top 10 清单本质上可以作为改变组织中软件开发生命周期的入门指南,目的是生成更安全的代码。
它的影响力在于它提供的信息的特异性和可操作性。它被世界领先的组织采用为黄金标准,在评估合规性标准时,它通常被审计师视为必备条件。
OWASP 十大 Web 应用程序安全风险的缓解和预防
2021 年报告中概述的 OWASP 十大风险包括:
1. 损坏的访问控制
从 2017 年报告中的第五位上升到 Broken Access Control 类别,这表明它是最严重的 Web 应用程序安全风险。当未正确执行对经过身份验证的用户的操作的限制时,就会发生这种攻击模式,从而允许攻击者绕过授权并像管理员一样执行任务,例如查看或修改其他用户的帐户和权限。
如何缓解: 要保护损坏的访问控制,请确保应用程序使用授权令牌并对其设置严格的控制。强制每个登录用户在发出特权请求时都具有授权令牌。此外,进行彻底的渗透测试以确保没有意外的访问控制。
2.密码失败
这个类别的标题是“敏感数据暴露”,在 2017 年 OWASP Top 10 报告中排名 #3。它已更名为“加密失败”,以强调威胁的根本原因,这些威胁是由于应用程序未能保护最敏感的数据(如财务、医疗保健和其他 PII 数据)而产生的。失败的形式可能是数据以明文形式传输、加密算法较弱、未强制加密以及所用加密过程中的其他错误。这些很容易成为攻击者的目标,攻击者可能会利用这些进行信用卡欺诈、身份盗窃或。一种常用的技术是中间人或路径攻击,攻击者通过将自己置于受害者和他们试图访问的服务之间来窃取“传输中”的数据。
如何缓解: 首先将存储的数据分类为敏感度级别。尽可能避免存储敏感数据,并在必须存储时对所有此类数据进行加密。也可以通过禁用此类敏感数据的缓存来最大限度地降低暴露风险。
3.注射
从之前的 OWASP 版本的顶部位置下滑到 #3 的是注入,这是一种威胁,攻击者将恶意数据发送到代码解释器以欺骗它并执行不需要的命令或访问未经授权的数据。这些攻击通常发生在遗留代码中,并通过表单输入或其他一些数据提交到 Web 应用程序来执行。例如,如果您有一个采用纯文本输入的表单,攻击者可以注入 SQL 数据库代码以通过该表单执行,这就是所谓的 SQL 注入攻击。
如何缓解: 可以通过采取所有预防措施来验证数据并将数据与命令和查询分开,从而防止注入攻击。这涉及拒绝看起来可疑的数据并清理数据中任何有问题的部分。理想情况下,您应该使用安全的 API,它可以完全避免使用解释器。数据库管理员还可以设置适当的控制,以最大限度地减少注入攻击可能暴露的信息量。
4. 不安全的设计
这是 2021 年 OWASP Top 10 中包含的一个新类别,涉及与设计和架构相关的缺陷。它是一个广泛的类别,包括不同的弱点,这些弱点会导致不安全的设计,通常是由于缺乏防御特定攻击的安全控制以及软件开发过程中缺乏业务风险分析。例如,如果电子商务网站无法防止机器人试图批量购买备受追捧的商品,它们可能会损失大量销售额,并在品牌和可能感兴趣的潜在客户中遭受声誉损害那个项目。
如何缓解: 解决不安全设计的方法是遵循安全的开发生命周期,并对安全和隐私相关的控制进行明确的评估和设计。开发应涉及安全设计模式库的使用,并对关键身份验证、访问控制、业务逻辑和关键流程采用威胁建模。
5.安全配置错误
导致攻击的最常见问题之一是安全设置配置不当。常见原因是应用程序堆栈的任何部分都不安全的默认配置、端口、服务页面或帐户等不必要的功能、未修补的缺陷以及泄露机密信息的详细错误消息。这些失误使攻击者可以在未经授权的情况下访问关键数据,并可能导致系统完全受损。
如何缓解: 确保所有操作系统、库和应用程序都得到安全配置,并定期无故障地更新。开发、QA 和生产等不同的环境也应该有不同的凭据。如果需要,采用可以自动执行此功能的技术。清理代码以删除未使用的功能并尽可能保留错误消息。
6.易受攻击和过时的组件
在上一版中标题为“使用具有已知漏洞的组件”,此类别已从 #9 上升到 #7。当开发人员不确定他们在构建应用程序时使用的组件(库、框架和其他模块)时,就会出现这些攻击。这些组件本身通常可能包含可被攻击者利用的漏洞,从而导致数据丢失或服务器受损。
如何缓解: 外部组件的开发人员确实为已知漏洞提供安全补丁和更新,但开发人员并不总是在他们的应用程序上运行这些更新。为了防止通过这些组件进行攻击,开发人员应该删除未使用的依赖项,监控更新源并确保他们手头有最新版本。
7. 身份验证失败
此类别在上一版中排名第二时被称为“破坏身份验证”。它现在包括与识别失败相关的常见弱点枚举 (CWE)。 CWE 的一些示例是 CWE-297:主机不匹配的证书验证不当、CWE-287:身份验证不当和 CWE-384:会话固定。这些攻击通常针对在身份验证和会话管理方面存在弱点的应用程序。攻击者以这些应用程序为目标,以破坏密码、密钥、会话令牌等。一旦此类安全措施遭到破坏,他们就可以假冒或窃取用户的身份。攻击者使用的一种简单技术是凭证填充,他们部署一个脚本来尝试从大规模数据泄露中获得的已知用户名或密码的所有组合。
如何缓解: 作为基本最低要求,必须实施双因素身份验证 (2FA) 或多因素身份验证。还应该有意识地避免使用弱密码并定期更改它们。使用速率限制延迟重复登录尝试也是另一个推荐的最佳实践。
8. 软件和数据完整性故障
这是已添加到 OWASP Top 10 的新威胁类别,重点关注与软件更新、关键数据和持续集成和交付 (CI/CD) 管道相关的假设,而无需验证完整性。例如,当应用程序依赖于插件、库、内容交付网络 (CDN) 或其他模块时,不安全的 CI/CD 管道可能会导致未经授权的访问或恶意代码。具有自动更新功能或使用序列化或反序列化存储数据的应用程序也处于危险之中。
如何缓解: 可以监控这些类型的攻击并实施检查,例如对序列化对象进行数字签名,隔离在特权环境中反序列化的代码,唯一可靠的方法是防止接受来自不受信任来源的数据,无论是图书馆还是存储库.
9. 安全日志和监控失败
此类别以前名为“日志记录和监控不足”,从上一版中的 #10 位置上升,同时扩展到包括更多类型的故障。此类别中的威胁是漏洞检测延迟的结果。许多研究表明,检测到漏洞需要大约 200 天的时间。这种延迟使攻击者有足够的时间来破坏系统、隐藏和保留或篡改敏感数据。
如何缓解: 确保记录和监控所有登录、访问控制失败和服务器端输入失败。日志应该以日志管理解决方案可以使用的格式生成,并且应该被编码以防止对日志监控系统本身的攻击。为了控制数据篡改,尤其是在高价值交易中,还可以实施具有完整性控制的审计跟踪。
10. 服务器端请求伪造(SSRF)
此类威胁是上一版 OWASP Top 10 中新增的威胁。 SSRF 缺陷是当应用程序在检索远程资源时无法验证用户给定的 URL 时发生的缺陷。这是一种常见的攻击模式,因为现代 Web 应用程序努力为最终用户提供方便的功能,并且由于云服务和复杂架构的兴起。攻击者能够强制应用程序将精心设计的请求发送到意想不到的目的地。
如何缓解: 通过分割远程资源访问功能并强制执行“默认拒绝”防火墙策略,可以从网络层防御 SSRF 攻击。从应用程序层,可以通过验证所有客户端提供的输入数据、禁用 HTTP 重定向和防止将原始响应发送到客户端来阻止这些攻击。
引入 Application Shield(WAF) 和免费试用邀请
CDNetworks 提供 Application Shield,这是一种基于云的 Web 应用程序防火墙 (WAF),可帮助组织保护 Web 应用程序免受漏洞和攻击。它与我们的全球内容交付网络 (CDN) 集成,始终在线且在线,使您能够始终保护 Web 资产。 Application Shield 可抵御 OWASP 十大威胁,包括注入、XSS 和其他威胁,并允许针对常见应用程序漏洞自动创建规则和虚拟补丁。它还具有许多其他专门用于减轻和阻止 OWASP Top 10 攻击的功能,例如访问控制、速率限制。此外,Application Shield 还包含免费的 DDoS 缓解措施。
探索 CDNetworks Application Shield 如何提高您的安全性 免费试用.