开放网络应用安全项目(OWASP)是一个开源应用安全社区,其目标是提高软件的安全性。OWASP Top 10 是一项行业标准指南,列出了最关键的应用程序安全风险,以帮助开发人员更好地保护其设计和部署的应用程序的安全。
由于安全风险不断演变,OWASP Top 10 列表会定期修订,以反映这些变化。在 2021 年发布的最新版 OWASP Top 10 中,一些不再构成严重威胁的漏洞类型被最有可能构成重大风险的漏洞类型所取代。
虽然 OWASP Top 10 是保护应用程序安全的良好开端,但它当然不应被视为终极目标,因为一些最受关注的漏洞并未进入 OWASP Top 10 2021。要防范软件弱点,防御者需要更广泛地审视整个信息技术堆栈。这意味着 IT 安全专业人员需要关注整个软件生态系统,并超越 "传统 "的漏洞来源。
只要向解释器发送不受信任的数据源,就会产生注入漏洞。用户输入的 SQL、LDAP、XPath 或 NoSQL 动态数据库查询中经常会出现这样的例子。攻击者在用户输入中注入代码,诱使查询解释器执行恶意命令。
是什么让应用程序容易受到注入缺陷的攻击?
注射缺陷有什么影响?
Fortify 如何帮助解决注射缺陷?
在有状态应用程序中管理身份或会话数据时,可能会出现身份验证失效的情况。当注册、凭证恢复和 API 途径容易受到未过期会话令牌、暴力或账户枚举的影响时,就经常会出现这种情况。攻击者假冒合法用户的身份,控制账户并破坏数据、流程或系统。
是什么导致应用程序容易受到身份验证漏洞的影响?
认证失效会产生什么影响?
Fortify 可以提供哪些帮助?
当应用程序访问未加密的数据,特别是个人身份信息 (PII) 和其他受监管的数据类型时,可能会出现敏感数据暴露问题。在传统应用程序中使用弱加密密码器、错误实施安全传输协议或未使用以数据为中心的安全措施时,经常会发现这样的例子。攻击者可以访问敏感的用户数据,从而在现实生活中获得控制权。
是什么导致应用程序容易受到敏感数据暴露的影响?
敏感数据暴露会产生什么影响?
Fortify 如何帮助解决敏感数据暴露问题?
当包含外部实体引用的 XML 输入被配置较弱的解析器处理时,就会产生 XML 外部实体问题。在解析来自不受信任来源的 XML 输入、启用文档类型定义 (DTD) 或使用 SOAP 1.0 等未打补丁框架的应用程序中,经常会发现这样的例子。XML 无处不在--从 SVG 和图像文件到网络协议以及 PDF 和 RSS 等文档格式。攻击者在 XML 输入中引用外部实体,导致处理器被利用来提取数据、远程执行代码或影响网络服务。
是什么让应用程序容易受到 XML 外部实体的攻击?
XML 外部实体有什么影响?
Fortify 如何帮助 XML 外部实体?
当代码和环境限制重叠不完整,或在多个地方对类似功能进行定义时,就会产生访问控制问题。当通过强行浏览受限页面或应用程序以多种方式和位置定义复杂的访问控制方法来破坏安全性时,就经常会出现这样的例子。攻击者可以破坏访问边界,窃取敏感数据或破坏运行。
是什么导致应用程序容易受到访问控制漏洞的影响?
访问控制失灵会造成什么影响?
Fortify 如何帮助解决门禁系统损坏的问题?
安全配置错误缺陷可能是在配置应用程序或其底层环境时引入的。配置错误可能发生在应用程序堆栈的任何层级,从网络服务和应用程序服务器到容器和存储。默认账户和配置、"泄漏 "的错误信息或未打补丁的框架和服务就是常见的例子。攻击者可以获取部署信息和访问权限数据,从而破坏运行。
是什么导致应用程序容易受到安全错误配置的影响?
安全配置错误会产生什么影响?
影响程度从信息泄露到系统完全崩溃不等。
Fortify 如何帮助解决安全配置错误问题?
当不受信任、未经消毒的用户输入作为 HTML 的一部分被执行时,或者当用户受影响与恶意链接进行交互时,就会出现跨站脚本 (XSS) 漏洞。当来自 JavaScript 或 Flash 等语言的熟悉代码结构从不受信任的来源被接受,或被存储起来供另一个用户代理稍后显示时,就经常会出现这样的例子。攻击者可以在用户机器上执行远程代码、窃取凭据或从重定向网站发送恶意软件。
是什么让应用程序容易受到跨站脚本 (XSS) 的攻击?
XSS 有三种形式,通常以浏览器等用户代理为目标:
跨站脚本 (XSS) 有什么影响?
Fortify 如何帮助解决跨站脚本 (XSS) 问题?
当语言和框架允许将不受信任的序列化数据扩展到对象中时,就会引入不安全的反序列化缺陷,这通常发生在网络应用程序与用户通信或保存应用程序状态时。当开发人员对反序列化过程中可以自行执行的方法不加限制时,就经常会出现这样的例子。攻击者会利用这些在应用程序逻辑外调用的 "小工具链 "远程执行代码、拒绝服务或获取未经授权的访问。
是什么导致应用程序容易受到不安全反序列化的影响?
不安全的反序列化有什么影响?
Fortify 如何帮助解决不安全的反序列化问题?
当开源或第三方框架和库被引入应用程序并以相同权限运行时,就会产生这些缺陷。在基于组件的开发过程中,由于缺乏对依赖关系相关风险的了解,组件或系统难以或无法打补丁,往往会出现这样的例子。攻击者已经利用易受攻击的组件造成了历史上一些最大的漏洞,尽管漏洞的范围可能从应用程序受损到远程代码执行不等。
是什么导致应用程序易受开源或第三方框架和库的影响?
使用存在已知漏洞的组件会有什么影响?
虽然一些已知漏洞只会造成轻微影响,但一些最大的已知漏洞,如 Heartbleed 和 Shellshock,都是利用了共享组件中的已知漏洞。使用存在已知代码漏洞的组件会导致在受影响的服务器上远程执行代码,使攻击者完全控制机器。
Fortify 如何为开源安全提供帮助?
如果对攻击载体或应用程序不当行为不甚了解,或者没有遵循监控入侵指标的最佳实践,就会导致日志记录和监控缺陷不足。没有日志记录功能的遗留系统、未检查应用程序渗透测试的日志,或者日志没有提供足够的细节以了解攻击者的行为,都是常见的例子。攻击者通常需要平均 200 天左右的时间才能从外部发现攻击,从而建立持久性并转移到其他易受攻击的系统。
是什么导致应用程序容易受到日志记录和监控不足的影响?
日志记录和监控不足会产生什么影响?
大多数成功的攻击都是从漏洞探测开始的。允许此类探测继续进行会增加成功利用的可能性。攻击者可能会建立持久性,回溯应用程序和操作系统,窃取数据,或以其他方式在不被察觉的情况下获得对系统的未授权控制。如果没有适当记录或存储安全关键信息,就无法通过取证分析发现攻击源。如果攻击者能够控制日志记录功能,那么要发现问题可能会变得更加困难,甚至不可能。
Fortify 如何帮助解决日志记录和监控不足的问题?
虽然距离上一次在 2017 年发布前 10 名仅过去了四年,但网络安全行业已经发生了许多变化,这让我们不得不三思而后行,考虑首要关注的问题或增加哪些新问题。
引入了三个新类别:
A04:2021
不安全的设计:这一类主要针对设计缺陷。之所以需要这个类别,是因为开发过程中的左移运动要求威胁建模也要左移。
A08:2021
软件和数据完整性故障:重点关注围绕软件更新、关键数据和 CI/CD 管道的假设,而不验证它们可能影响的完整性。这也包含了 A08:2017 - 不安全反序列化。
A10:2021
服务器端请求伪造 (SSRF):在社区调查中,该类别主要排在前 10 位。他们非常强调这个漏洞,因为它的可利用性和影响都高于平均水平。
其他变动
其他类别要么更名,要么移级,要么合并到其他类别中:
想了解Fortify 如何帮助您的组织? 立即通过OpenText™ 开始 免费试用Fortify on Demand 15 天。
Fortify 可让您通过应用程序安全平台快速构建安全软件,该平台可在整个 CI/CD 管道中自动进行测试,使开发人员能够快速解决问题。
解锁安全测试、漏洞管理以及量身定制的专业知识和支持
以业内最准确的结果及早发现并修复安全问题
识别已部署Web应用程序和服务中的漏洞
更智能、更简单的保护