OWASP 是什么?介绍 OWASP Top 10 漏洞和风险

OWASP 是一家非营利基金会,致力于提升软件的安全性。

OWASP(开放式 Web 应用程序安全项目)是一个开放式社区,致力帮助组织设计、开发、获取、运行和维护可信任的安全应用软件。其计划包括由社区主导的开源软件项目以及本地和全球会议,涉及全球数百个分会和数万名成员。

OWASP 为何如此重要?

在提高人们对 Web 应用安全风险的警觉性方面,OWASP 发挥着至关重要的作用。它还提供了宝贵的资源、工具、文档和最佳实践,帮助人们应对 Web 应用安全领域日益严峻的挑战。OWASP 致力于帮助开发人员、安全专业人员和组织了解潜在威胁,并为保障安全采取最佳实践。

OWASP 维护了一份列表,其中包含十项最严重的 Web 应用安全风险,以及抑制这些风险的有效流程、规程和控制措施。OWASP 还提供 “API 安全十大风险” 列表,旨在对参与 API 开发和维护的人员做出指导,并提高他们对常见 API 安全弱点的警觉性。

OWASP 社区鼓励个人与组织为社区项目和资源做出贡献。这种基于协作和调查的方法使社区能够利用成员的集体知识和专业技能,从而获得全面、最新的资源。

应用和 API 存在一些共同的安全风险,需要在实施安全解决方案时加以考虑。例如:

  • 身份验证/授权控制薄弱
  • 配置错误
  • 业务逻辑滥用(撞库攻击或帐户接管)
  • 服务器端请求伪造 (SSRF)。

 

“OWASP Top 10” 列表列举了最严重的 Web 应用安全风险,被广泛认可。当开发人员、安全专业人员和组织需要优先识别和抑制最严重的 Web 应用安全风险时,可以将该列表作为指南使用。

风险出现在 “OWASP Top 10” 列表中,不一定表明其在所有 Web 应用中具有普遍性或严重性,并且十大风险并未按特定顺序或优先级排名。

“OWASP Top 10” 列表在 2021 年列出的 Web 应用安全风险包括:

“OWASP Top 10” 列表在 2021 年列出的 Web 应用安全风险包括:

  1. 访问控制失效。当未能充分执行访问控制和授权措施,使攻击者能够未经授权地访问功能或数据时,即表示出现此类漏洞。这可能是由不安全的直接对象引用 (IDOR) 导致的。当用户输入被用作对内部对象的直接引用时,如果应用无法对其进行验证或授权,就可能会出现 IDOR。缺少功能级别的访问控制也可能导致此类情况的发生,即应用仅在初始身份验证或授权阶段对访问控制进行检验,但未在应用的整个功能或操作中始终如一地执行这些控制措施。Web 应用防火墙 (WAF) 可以监控并执行访问控制,阻止未经授权地访问敏感对象或资源,从而帮助防范此类攻击。

  2. 加密失效。导致此类风险的原因是在敏感数据的传输和静止期间对其保护不足。加密失效可能导致数据受到侵害,保密资料遭到未经授权的访问,以及违反《欧盟通用数据保护条例 (GDPR)》等数据隐私法规和《PCI 数据安全标准 (PCI DSS)》等金融标准。不安全的加密存储、以纯文本形式存储数据或不安全的密钥管理都可能导致此类故障。此外,弱密钥、弱随机数生成,或密码学协议中的缺陷所导致的信息泄露也可能引发此类风险。
  3. 注入攻击。当攻击者将不受信任或恶意的数据插入命令或查询语言时,或当用户提供的数据未经应用检验、过滤或净化,导致意外执行恶意命令时,就会产生注入缺陷。此类风险广泛涉及 NoSQL、操作系统命令、LDAP 和 SQL 注入攻击,还包括跨站脚本 (XSS)即攻击者将恶意客户端脚本(如 JavaScript 脚本)注入到其他用户查看的网页中。此类攻击可能导致登录凭据、个人数据或会话 Cookie 等敏感信息被盗。对于传入的请求,包括反射的(非持久)、存储的(持久)和基于文档对象模块 (DOM) 的 XSS,WAF 可以对它们进行检查和过滤。这有助于检测和阻止恶意代码的注入尝试,阻止它们到达应用。
  4. 不安全的设计。这是一个涵盖范围广泛的类别,代表了不同的弱点,具体表现为安全控制措施缺失或无效,以及架构存在缺陷。当应用的设计依赖于本质上不安全的流程,或没有实施必要的安全控制措施,以抵御特定的攻击时,就会出现这些缺陷。通过增加对威胁建模、安全设计模式和参考架构的使用,可以降低这些风险。
  5. 安全配置错误。Web 应用框架、平台、服务器或安全控制措施若缺乏安全强化,可能会导致未经授权的访问、敏感信息的暴露,或其他安全漏洞。云服务权限配置不当,或安装并启用了不必要的功能(如未使用的端口、服务、帐户或权限),也可能导致安全配置错误,进而引发风险。Web 应用和 API 的配置错误是一项重大风险,因为各大云服务提供商默认的安全态势不尽相同,并且架构正逐渐去中心化,分布在多云结构中。
  6. 易受攻击和过时的组件。使用过时、未修补或易受攻击的组件(如库、框架或插件)可能会使应用暴露出已知的安全缺陷,增加隐患遭到利用的风险。这些风险可能源于不受支持或过时的软件,包括操作系统 (OS)、Web/应用服务器、数据库管理系统 (DBMS)、应用、API 以及所有组件、运行时环境和库。如果组织未曾针对系统底层平台、框架和依赖项建立及时、基于风险的修复或升级措施,这些威胁将变得尤其危险,使系统不必要地暴露在已知风险中,并长达数天或数周之久。复杂的软件供应链和通过 CI/CD 管道实现的自动化流程增加了将易受攻击的软件引入 IT 堆栈的风险。WAF 可以作为关键的临时应急工具,防止漏洞遭到利用。
  7. 安全日志与监控失效。日志记录与监控的不完善会妨碍对安全事件的及时发现和响应,从而难以识别和减少攻击或未经授权的活动。这可能意味着登录、登录失败和高价值交易等可审计事件无法被识别或记录下来,而应用也无法实时检测正在进行的攻击。
  8. 软件和数据的完整性失效。此类漏洞源于应用代码和基础设施未能防范数据和软件的完整性受到破坏。当应用所依赖的插件、库或模块来自不受信任的来源、仓库和 CDN 时,可能会出现此类情况。在更新软件、修改敏感数据以及变更未经验证的 CI/CD 管道时,也可能发生此类情况。攻击者可能会上传自己的更新,试图在所有安装设备上分发和运行。不安全的反序列化也是此类风险的来源之一,即应用在不进行数据有效性检验的情况下,接收并使用不受信任的序列化数据,这可能导致远程代码执行 (RCE) 和权限提升等攻击。
  9. 安全日志与监控失效。日志记录与监控的不完善会妨碍对安全事件的及时发现和响应,从而难以识别和减少攻击或未经授权的活动。这可能意味着登录、登录失败和高价值交易等可审计事件无法被识别或记录下来,而应用也无法实时检测正在进行的攻击。
  10. Server-Side Request Forgery (SSRF)。应用在提取远程资源中的数据之前,如果未验证或清洗用户输入的 URL,就可能引发此类漏洞。即使受到防火墙或其他防御措施的保护,攻击者也可以利用这些缺陷,迫使应用访问恶意网络目的地。如果目标资源与其他系统(如云端元数据服务或后端 API)之间存在信任关系,也会导致此类攻击,攻击者将能够向这些受信任的服务发出请求,并提取敏感信息,或执行未经授权的操作。有助于抑制 SSRF 风险的措施包括,对系统进行设计,实现最低权限的访问,并使用 WAF 在安全策略中明确定义统一资源标识符 (URI) 参数,然后指定允许/禁止访问这些参数的主机。

2021 年的“OWASP Top 10”列表与之前 2017 年的相比,反映了一些新的类别和命名变化。这些变化包括:将 2017 年“XML 外部实体 (XXE)”风险威胁整合到了 2021 年的“安全错误配置”类别中;将 2017 年的“跨站脚本 (XSS)”添加到了 2021 年的“注入”类别中;将 2017 年“不安全的反序列化”风险归入了 2021 年“软件和数据的完整性失效”类别中。

“OWASP Amass” 项目。该项目开发了一款工具,旨在帮助信息安全专业人员利用开源信息收集技术和主动侦察技术,执行攻击面的网络映射和外部资产的发现。

“OWASP 应用安全验证标准 (ASVS)” 项目。该项目为测试 Web 应用技术安全控制措施提供了基准,也为开发人员提供了安全开发所需的清单。

  1. “OWASP 备忘单系列” 项目。该项目的创建目标是为应用开发人员和安全防御人员提供一套易于遵循的良好实践指南。这些指南旨在提供大多数开发人员都能够真正落地执行的良好实践,而非关注对许多开发人员和应用而言难以实施的详细最佳实践。
  2. “OWASP CycloneDX” 项目。该项目建立了一套全栈物料清单 (BOM) 标准,旨在提供先进的供应链能力,以降低网络风险。
  3. “OWASP Defectdojo” 项目。Defectdojo 是一款开源漏洞管理工具,通过提供模板功能、报告生成功能、度量标准和基线自助工具,简化了测试流程。
  4. “OWASP Dependency-Check” 项目。这是一款软件组成分析 (SCA) 工具,用于尝试检测项目的依赖项是否包含公开披露的漏洞。它的做法的是判断给定的依赖项是否具有通用平台枚举 (CPE) 标识符。如果发现,它将生成一份报告,链接到相关的通用漏洞披露 (CVE) 条目。
  5. “OWASP Dependency-Track” 项目。该项目提供了一个智能组件分析平台,可帮助企业识别和降低软件供应链中的风险。
  6. “OWASP Juice Shop” 项目。可用于安全培训、安全意识演示、夺旗比赛,也可作为安全工具的实验对象。在用于此类用途的不安全 Web 应用中,这可能是最现代、最复杂的。Juice Shop 涵盖了整个 “OWASP 十大风险” 列表中的所有漏洞,以及在现实应用中发现的许多其他安全缺陷。
  7. “OWASP 移动应用安全” 项目。这是 OWASP 为移动应用提供安全标准的旗舰项目。它包含一套全面的测试指南,涵盖移动应用安全测试期间使用的流程、技术和工具,它还提供了一套详尽的测试用例,使测试人员能够提供一致且完整的结果。
  8. “OWASP ModSecurity 核心规则集” 项目。这是一套通用攻击检测规则,适用于 ModSecurity 或兼容的 Web 应用防火墙。CRS 旨在保护网络应用程序免受各种攻击(包括 “OWASP Top 10” 列表中提到的那些),同时将误报数量降到最低。
  9. “OWASP OWTF” 项目。OWTF(攻击性 Web 测试框架)是一个开源的 Web 应用渗透测试框架,用于评估和测试 Web 应用的安全性。OWTF 的主要目标是帮助安全专业人员和渗透测试人员自动评估和测试 Web 应用中的漏洞,使他们能够更有效地识别和应对安全弱点。
  10. “OWASP SAMM” 项目。SAMM(软件保障成熟度模型)提供了一种有效、可量化的方法,用于分析和改进安全开发生命周期的建模。SAMM 支持完整的软件生命周期,具有技术无关性和流程无关性。
  11. “OWASP 安全知识框架” 项目。这是一款用多种编程语言解释安全编码原则的 Web 应用,旨在帮助开发人员构建在设计上具有安全性的应用。
  12. “OWASP Security Shepherd” 项目。这是一个 Web 应用和移动应用安全培训平台,其设计目标是在具有不同技能背景的人群中建立和提升安全意识。该项目的宗旨是磨练应用安全新手或资深工程师的渗透测试技能,将其提升到安全专家水平。
  13. “OWASP Web 安全测试指南” 项目。这份综合性指南用于指导测试 Web 应用和 Web 服务的安全性。它提供了一套最佳实践框架,被世界各地的渗透测试人员和组织使用。
  14. “OWASP ZAP” 项目。这是一款 Web 应用安全性测试工具,旨在帮助安全专业人员及开发人员在开发和测试阶段识别并抑制 Web 应用中的安全漏洞。
  15. “OWASP Web 安全测试指南” 项目。这份综合性指南用于指导测试 Web 应用和 Web 服务的安全性。它提供了一套最佳实践框架,被世界各地的渗透测试人员和组织使用。
  16. OWASP 通过提高开发人员、安全专业人员和组织对网络应用程序安全风险的认识并倡导最佳实践,在不断提高软件安全性的过程中发挥着至关重要的作用。作为一个社区驱动的项目,OWASP 将专家和爱好者聚集在一起,共同合作提高网络应用程序的安全性,帮助建立一种具有安全意识的文化,促进安全编码实践和安全开发方法。

此外,OWASP 还提供了丰富的免费开源工具、文档,以及助力组织强化安全势态的资源,包括 “OWASP Top 10” 列表、 “OWASP API 安全十大风险” 列表和 “针对 Web 应用的自动化威胁” 项目。OWASP 的其他计划包括:

OWASP 通过提高开发人员、安全专业人员和组织对网络应用程序安全风险的认识并倡导最佳实践,在不断提高软件安全性的过程中发挥着至关重要的作用。作为一个社区驱动的项目,OWASP 将专家和爱好者聚集在一起,共同合作提高网络应用程序的安全性,帮助建立一种具有安全意识的文化,促进安全编码实践和安全开发方法。


OWASP CSRFGuard 是一个保护 Web 应用免受跨站请求伪造(CSRF)攻击的库。

OWASP 基金会致力于提高软件的安全性以及人们对 Web 应用安全风险和漏洞的警觉性,F5 对 OWASP 及其行动表示支持。F5 Web 应用防火墙解决方案可以阻止和抑制 “OWASP 十大风险” 列表中提出的广泛风险

F5 如何应对 OWASP 提出的安全风险

OWASP 基金会致力于提高软件的安全性以及人们对 Web 应用安全风险和漏洞的警觉性,F5 对 OWASP 及其行动表示支持。F5 Web 应用防火墙解决方案可以阻止和抑制 “OWASP 十大风险” 列表中提出的广泛风险

F5 WAF 解决方案结合了签名和行为保护,内置了来自 F5 Labs 的威胁情报和基于机器学习的安全性,可及时跟进新出现的威胁。它减轻了在云端、本地和边缘环境采取一致方式保护应用安全的负担和复杂性,同时通过集中式 SaaS 基础设施简化了管理。为了简化对应用安全性的管理,F5 WAF 还将保护集成到了开发框架和 CI/CD 管道中,并通过单一仪表板提供核心安全功能、集中化协调以及监督。该仪表板具有全方位视图,可查看所有分布式应用的应用性能和安全事件。

F5 还通过解决方案对“OWASP API 安全十大风险”列表中确定的风险提出了应对方法。随着应用的发展,API 部署的增加,这些解决方案将在不断扩张的攻击面和新型威胁中保护应用和 API 的安全。F5 Web Application and API Protection (WAAP) 解决方案针对现代应用的整个攻击面提供了全方位防护措施,其中包括 WAF、API 安全、L3-L7 DDoS 抑制,以及用于抵抗自动化威胁和欺诈的 Bot 防御。无论您所有的应用和 API 资产托管于何处,该分布式平台都可以在其中轻松部署一致的策略,扩展安全性,并将安全性集成到 API 生命周期和更广泛的生态系统中。

F5 还提供解决 OWASP 对 Web 应用的自动化威胁项目中概述的风险。F5 Distributed Cloud Bot Defense 能够防止可绕过现有 Bot 管理解决方案的欺诈和滥用,并提供实时监控和情报以及基于机器学习的回顾性分析,从而保护组织免受自动化攻击,不会对用户造成干扰或阻碍客户体验。无论攻击者如何调整,无论攻击是从 Web 应用转向 API,还是试图通过伪造遥测数据或使用人工 CAPTCHA 识别器来绕过反自动化防御措施,Distributed Cloud Bot Defense 都能提供有效的防御。

F5 还可以针对高级的线上安全提供多层 DDoS 防护,作为一种云交付型托管式缓解服务,可实时检测并缓解大规模网络、协议和以应用为目标的攻击;同样的防护也可以作为本地硬件、软件和混合解决方案的形式进行使用。F5 Distributed Cloud DDoS Mitigation 可在容量耗尽攻击和特定于应用第 3 到第 4 层及高级的第 7 层攻击到达网络基础设施和应用之前,便对其进行防御。