翻译文章 · 2023年7月25日 0

什么是IAST(from synopsys)

原文链接:https://www.synopsys.com/glossary/what-is-iast.html#A

定义:

交互式应用程序安全测试解决方案帮助组织通过动态测试技术(通常称为运行时测试)来识别和管理与运行中的Web应用程序发现的漏洞相关的安全风险。IAST通过软件仪器化或使用仪器来监视应用程序的运行,并收集关于其功能和性能的信息来工作。IAST解决方案通过在运行的应用程序中部署代理和传感器,并持续分析所有由手动测试、自动化测试或二者组合发起的应用程序交互,以实时识别漏洞。此外,一些解决方案还整合了软件组合分析(SCA)工具,以解决开源组件和框架中已知的漏洞问题。

IAST 提供了哪些好处?

  1. IAST 将测试前移。通常,IAST 在软件开发生命周期 (SDLC) 的测试/质量保证阶段进行。IAST 将测试前移,因此可以在开发周期的早期捕获问题,从而降低修复成本和延迟。许多工具可以集成到持续集成 (CI) 和持续开发 (CD) 工具中。最新一代的工具可以在更改代码重新编译并重新测试运行的应用程序时立即返回结果,帮助开发人员在开发过程的更早阶段识别漏洞。
  2. IAST 提供准确的结果以便快速分类。为了满足快速开发 Web 应用程序的需求,组织需要准确、自动化且可扩展的安全测试工具,以处理数十万个 HTTP 请求,并以较低的误报率返回结果。DAST 工具经常产生很多误报,但却不能定位到已识别漏洞所在的代码行,这使得对结果进行分类和消除误报变得困难。IAST 和 SAST 都可以提供详细信息(包括代码行),以帮助开发和安全团队对测试结果进行分类。
  3. IAST 精确定位漏洞来源。IAST 从应用程序内部进行分析,并可访问应用程序代码、运行时控制和数据流信息、内存和堆栈跟踪信息、HTTP 请求和响应以及库、框架和其他组件(通过 SCA 工具)。这种分析使开发人员能够精确定位已识别漏洞的来源,并迅速修复。
  4. IAST 可轻松集成到 CI/CD。Web 应用程序开发团队和 DevOps 团队需要无缝集成到标准构建、测试和质量保证工具的 AppSec 工具,而无需进行大量配置或调优以减少误报。这些工具应易于部署、更新和扩展,以支持大型企业需求。IAST 是唯一一种能够无缝集成到 CI/CD 流水线的动态测试技术。
  5. IAST 可实现更早、更经济的修复。安全和开发团队需要在 SDLC 的早期发现漏洞并使开发人员能够及时修复,此时开发人员对其代码最为熟悉,修复错误和漏洞的成本最低,同时减少了安全风险。SAST 和 SCA 工具通常在开发阶段使用,而 IAST 则在测试/质量保证阶段使用。测试结果反馈给开发人员,他们在开发阶段修复已识别的漏洞。

为什么 IAST 是一项重要的安全活动?

根据 2017 年的 Verizon 数据泄露调查报告,29.5% 的数据泄露是由 Web 应用程序攻击造成的(远远超过其他攻击向量)。Web 应用程序是黑客尝试突破并获取敏感知识产权/数据以及个人数据(如用户名和密码、信用卡号和患者信息等)的攻击目标。组织应确保 Web 应用程序在部署到生产环境之前是安全的,以避免安全攻击和昂贵的数据泄露风险。此外,一旦发现关键漏洞,开发人员应能够迅速进行修复。

虽然开发和安全团队通常使用 SAST 和 SCA 解决方案来识别其 Web 应用程序中专有代码和开源代码的安全弱点和漏洞,但许多漏洞只能通过动态测试正在运行的应用程序来检测。

IAST 在运行应用程序中识别安全漏洞,同时向开发人员提供相关代码行和上下文的修复建议。这样,他们可以快速找到并修复安全漏洞,使 Web 应用程序在部署到生产环境之前降低安全攻击风险和数据泄露的风险。

运行 IAST 有效的关键步骤是什么?

  1. 部署 DevOps。IAST 需要集成到您的 CI/CD 环境中。
  2. 选择适合您的工具。选择一个可以对您使用的编程语言编写的应用程序进行代码审查,并与您的软件使用的基础框架兼容的工具。
  3. 创建扫描基础设施并部署工具。设置访问控制、授权以及所需的任何集成,例如用于缺陷跟踪的 Jira,以部署工具。
  4. 自定义工具。根据您组织的需要对工具进行微调。将工具集成到构建环境中,创建用于跟踪扫描结果的仪表板,并构建自定义报告。
  5. 设置优先级并添加应用程序。一旦工具准备就绪,添加您的应用程序。如果您有很多应用程序,优先考虑首先扫描高风险的 Web 应用程序。
  6. 分析扫描结果。对扫描结果进行分类,以消除误报。尽早在 SDLC 中跟踪和修复任何漏洞问题。
  7. 提供培训。

IAST 和 DAST 有何不同?

使用 DAST 工具在测试/质量保证阶段或应用程序发布到生产环境时查找安全漏洞是低效且潜在昂贵的,因为 DAST 无法识别存在漏洞的代码行。随着时间的推移,IAST 很可能会逐渐取代一部分 DAST 的使用,原因有两点:首先,IAST 提供了明显的优势,可以迅速返回漏洞信息和修复建议,并在 SDLC 的早期阶段提供;其次,IAST 可以集成到 CI/CD 和 DevOps 工作流中,而 DAST 无法实现。根据 Gartner 的预测,“到 2019 年,企业 IAST 的采用率将超过 30%”(Dionisio Zumerle 和 Ayal Tirosh,《Gartner 应用安全测试魔力四象限报告》,2017 年 2 月)。

在选择 IAST 工具时,您应该注意以下几点:

  1. 支持 Web API:能够让 DevOps 负责人将测试集成到 Jenkins 构建和其他特定于企业的工具中。
  2. 与 Jira 的本地集成:支持缺陷跟踪,并能与其他开发、质量保证和测试工具进行集成。
  3. 兼容多种测试方法:支持各种测试方法,包括现有的自动化测试、手动 QA/开发测试、自动化 Web 爬虫、单元测试等。
  4. 实时分析结果:提供实时分析结果,并具有较低的误报率。
  5. 可在大型企业环境中扩展:能够在大型企业环境中实现横向扩展。
  6. 完全自动化、基于 Docker 或手动部署模型:提供多种部署方式,以适应不同的需求。
  7. 支持基于微服务、云服务和标准架构的应用程序:能够支持不同类型的应用程序架构。