应用程序漏洞是应用程序中的弱点,攻击者可以利用它来损害应用程序的安全性。漏洞可以通过多种方式引入应用程序,例如应用程序的设计、实现或配置失败。
应用威胁
近年来,应用程序漏洞变得越来越普遍。2021 年,国家漏洞数据库 (NVD) 添加了20,169 个新的常见漏洞和披露 (CVE) 。这表示在生产应用程序中发现的漏洞数量比上一年发现的 18,325 个增加了 10% 以上。
新应用程序漏洞的快速增长超过了组织识别、测试和部署补丁以纠正这些问题的能力。因此,公司通常运行包含可利用漏洞的应用程序。
通过利用这些漏洞,网络威胁参与者可以实现各种目标。成功的利用可能会导致代价高昂且具有破坏性的数据泄露,或者使攻击者能够在组织的 IT 环境中部署勒索软件或其他恶意软件。或者,某些漏洞可用于对公司系统执行拒绝服务(DoS) 攻击,使它们无法为组织及其客户提供服务。
常见的应用程序漏洞利用
虽然定期创建新的漏洞利用和零日漏洞,但它们通常会利用一小部分漏洞。其中许多漏洞已为人所知多年,但仍继续出现在应用程序代码中。
OWASP Top Ten List 是一个众所周知的资源,它突出显示了应用程序中出现的一些最常见和最有影响力的漏洞(重点是 Web 应用程序)。当前版本的 OWASP Top Ten 列表于 2021 年发布,包括以下十个漏洞:
- 损坏的访问控制
- 加密失败
- 注射
- 不安全的设计
- 安全配置错误
- 易受攻击和过时的组件
- 识别和认证失败
- 软件和数据完整性故障
- 安全日志记录和监控失败
- 服务器端请求伪造
此列表描述了一般的漏洞类别,重点是问题的根本原因。Common Weaknesses Enumeration (CWE) 提供有关特定问题的特定实例的信息。OWASP 十大漏洞中的每一个都包含一个或多个相关 CWE 的列表。例如,Cryptographic Failures 包括一个包含 29 个映射 CWE 的列表,例如使用硬编码的加密密钥或不正确的加密签名验证。
应用程序安全的需要
公司越来越依赖 IT 系统和应用程序来执行核心业务流程并为其客户提供服务。这些应用程序可以访问高度敏感的数据,并且对业务运营至关重要。
应用程序安全(AppSec) 对于组织保护客户数据、维护服务以及遵守法律和法规义务的能力至关重要。应用程序漏洞可能会对公司及其客户产生重大影响,修复这些漏洞需要花费大量时间和资源。通过在软件开发生命周期的早期识别和修复漏洞,组织可以将这些漏洞对组织的成本和影响降至最低。
修复应用程序漏洞的方法
随着开发团队采用DevSecOps实践,自动化漏洞管理对于在满足开发和发布目标的同时确保安全性至关重要。开发团队可以使用多种工具来识别应用程序漏洞,包括:
静态应用程序安全测试(SAST):SAST 工具在不运行应用程序的情况下分析应用程序的源代码。这使得当应用程序未处于可运行状态时,可以在软件开发生命周期的早期识别一些漏洞。
动态应用程序安全测试(DAST):DAST 解决方案与正在运行的应用程序交互,执行黑盒漏洞评估。DAST 工具旨在通过发送常见的恶意输入以及使用模糊测试生成的随机和格式错误的请求来搜索应用程序中的已知和未知漏洞。
交互式应用程序安全测试 (IAST):IAST 解决方案使用仪器来了解正在运行的应用程序。有了这种内部可见性,IAST 解决方案可以识别黑盒 DAST 方法可能检测不到的问题。
软件组合分析 (SCA):大多数应用程序都包含第三方代码,例如库和依赖项,它们也可能包含可利用的漏洞。SCA 提供了对应用程序中使用的外部代码的可见性,从而可以识别和修复该软件中的已知漏洞。
有效的 DevSecOps 工作流程会将大部分或所有这些方法集成到自动化 CI/CD 管道中。这最大限度地提高了漏洞被尽快识别和修复的可能性,同时最大限度地减少了开发人员的开销和中断。