交互式应用安全测试 (IAST)

微信图片_20190926102637

 

前言

 

许多业内人士曾表示,交互式应用安全测试 (IAST) 会是应用程序测试的未来,我们认为这是毋庸置疑的。

 

Gartner 将 IAST 列为信息安全领域的 Top10 技术之一,根据其发布的《2017 应用安全测试魔力象限报告》(2017 Gartner Magic Quadrant for Application Security Testing Report),到 2019 年 1 月,IAST 的应用比例将超过 30%。与其他测试方法相比,IAST 有更明显的优势,还很好地弥补了其他方法的短板。

 

在这篇文章中,观星将详细介绍这项令人兴奋的技术,解释它为何会重塑应用安全测试世界、解决现有应用安全测试技术面临的挑战。

 

我们试图回答以下几个问题:

  • 什么是 IAST?

  • 为什么要关注 IAST?

  • IAST 与其他 AppSec 工具有何不同?

          —  动态应用安全测试 (DAST)

          —  静态应用安全测试 (SAST)

  • IAST 优势有哪些?

  • IAST 方案应该具备什么?

 

一、什么是 IAST?

 

Interactive application security testing (交互式应用安全测试,即 IAST),是一种分析基于 web 的应用程序运行行为的软件安全测试技术。IAST 技术通常是通过在运行程序中部署代理或传感器来实现的。这些代理/传感器会持续分析应用程序的交互行为 (由自动化测试来进行),以识别安全漏洞。

 

IAST 会检测执行时的每一行代码,以及应用程序响应每个 HTTP(S) 请求时的堆栈跟踪、内存值和实际数据流。一些 IAST 解决方案不仅可以主动监控安全漏洞 (如 SQL 注入漏洞),还可以验证这些漏洞,确认它们是真实且可利用的。随后会生成一份含有专线补救建议的漏洞报告,授权开发人员立即修复优先级漏洞。

 

IAST 融合了 SAST 和 DAST 技术的优点,无需源码,支持对字节码的检测。IAST 的一个显著特性是,它是在软件生命周期 (SDLC) 中的 QA/Testing 阶段进行的。IAST 通过把安全测试从生产阶段分离,使得团队可以提前捕获动态漏洞,进而降低漏洞修复成本、消除延迟、降低应用程序被破坏的风险。

 

优秀的 IAST 工具通常会集成软件组合分析 (SCA) 工具,该工具可以扫描二进制文件以查找第三方和开源组件,并报告与这些组件相关的已知漏洞、相关的许可和其他有价值的信息。

 

二、为什么要关注 IAST?

 

对于希望访问敏感个人数据、知识产权等内容的黑客来说,大型企业运行的 web 应用程序是理想的攻击载体。根据 Verizon 发布的 2017 数据泄漏报告,约有 29.5% 的泄漏事件来自 web 应用程序攻击,这也是到目前为止最常见的攻击载体。数据泄漏往往会对企业造成重大经济损失和长期声誉损害。

 

我们可以来看看一些最近的例子:

  • 2017 年秋,旅游预订网站 Orbitz 上的 88 万张银行卡信息泄漏;

  • 2017-18 年冬季,欧洲铁路公司 (Rail Europe) 美国网站上的三个月的支付数据被窃取;

  • 2018 年春季,多达 4 万名客户的付款信息从 Ticketmaster 的英国网站上泄漏;

     

以及臭名昭著的 Equifax 漏洞,导致超 1 亿 4500 万人的个人数据被泄漏。虽然 Equifax 事件发生在 2017 年夏天,对网络安全世界而言,似乎已经是很久之前的事了,但它仍然是许多人的心结:这一产生了广泛不良影响的漏洞,其实原本是很容易预防的。

 

传统应用程序安全测试是通过帮助你发现和修复潜在的漏洞来提供防御,但它们在扫描和测试应用程序的方式上有所不同。在发现威胁方面,有些方案可能比另一些更好,这取决于一系列条件,包括测试环境、软件开发生命周期和一般用例。

 

这些差异给企业出了难题:如果没有选择正确的工具,他们可能会在无意中将 web 应用程序暴露在意外攻击之下。不过还好,IAST 方案可以通过转移测试来减少这些麻烦。采用 IAST 方案后,企业可以在开发周期的早期就发现问题,从而降低漏洞修复成本并消除延迟,且所有操作都不会影响正常的工作流程。

 

微信图片_20190926102648

 

三、IAST 与其他 AppSec 工具有何不同?

 

为了适应 web 应用程序快速开发的需求,企业需要精确和自动化的安全测试工具,这些工具可以轻松扩展并产生切实有效的结果。

 

静态分析 (Static Analysis) 是当今最流行的应用程序安全测试解决方案,它可以提供对静态源代码的全面分析,但是不能识别通过动态测试发现的运行漏洞。静态分析工具通常会检测到大量漏洞并准确报告,但它们也会产生大量误报。这是因为静态分析测试主要在编码和开发阶段的早期进行,而不是在应用程序的生产和使用阶段。

 

相反,动态测试 (Dynamic Testing) 和手动测试 (Manual Testing) 可以发现应用程序运行时的漏洞,并帮助减少误报量。但它们并不会提供所检测到的漏洞的详细信息,也不会提供修复建议。这些漏洞需要额外的验证周期和安全专家的进一步审查,无疑会增加开发团队的工作量,也是对有限的安全资源的消耗。

 

动态应用安全测试 

(DynamicApplication Security Testing)

DAST 工具是通过外部攻击来进行应用程序安全测试。这类工具的缺陷在于:首先,它的覆盖范围是有限的,因为 DAST 工具根本不知道应用程序内部发生的事情;其次,DAST 会带来一些挑战,例如一定的误报率、测试周期长、测试持续时间长等;最后,DAST 的结果不会提供任何关于软件漏洞位置的代码指导,这使得开发人员很难轻松修复识别出的漏洞。

 

IAST 支持实时生成结果,能有效满足集成到 CI/CD 工作流所需的快速周转时间,而 DAST 并不能做到这一点。

 

静态应用安全测试 

(StaticApplication Security Testing)

相比之下,SAST 方案在识别安全漏洞、提供源代码修复指导建议方面表现得很出色。而且它们能提供集成化开发环境、问题跟踪程序和构建工具,以支持 CI/CD 工作流。但 SAST 方案对应用程序中各部分如何协同工作、如何运行等问题一无所知,也就无法检测到处于运行状态的应用程序中,那些可能被黑客利用的漏洞。

 

不过,SAST 可以提供海量报告,从而检测出许多潜在漏洞威胁。

 

交互式应用安全监测 

(InteractiveApplication Security Testing)

IAST 方案填补了传统静态测试和动态测试之间的空白,对于采用 DevOps、持续集成和持续交付 (CI/CD) 实践的团队来说是一个很好的补充。IAST 方案允许用户使用实时数据,并在运行状态下的应用程序中找到、修复安全漏洞。

 

与 DAST 和 SAST 解决方案相比,IAST 可以更快速、更准确地识别大量运行时漏洞,而且可以精确到应该修复的代码行。一些 IAST 解决方案还提供软件组合分析 (SCA) 工具,因此它们还可以识别第三方和开源代码中的漏洞。

 

由于 IAST 可以在几秒钟内提供实时结果,IAST 符合敏捷开发和 DevOps 模式下软件产品快速迭代、快速交付的要求,也可以很容易地集成到现有的开发和测试周期中。

 

微信图片_20190926102653

(SAST、DAST、IAST 对比)

 

四、IAST 优势有哪些?

 

将 IAST (尤其是包含 SCA 的 IAST) 方案集成到软件开发生命周期中,可以让安全团队和开发团队都获益匪浅。

 

  • 为开发团队提供可实施方案

Forrester 最近的报告显示,与渗透测试相比,IAST 将修复安全漏洞所需的时间缩短了 65%。这是因为 IAST 能促使开发人员在开发应用的同时,发现并修复漏洞。

 

  • 在软件开发早期阶段报告综合漏洞和安全风险

IAST 帮助用户在部署 web 应用程序之前,就发现并修复它们运行时的漏洞。从而既为企业节省大量成本和资源,又降低安全风险。

 

  • 低误报率

IAST 方案自动且准确,不会生成一大堆冗长的潜在漏洞列表,让安全人员进行大量繁琐的人工排查。因此,企业可以把精力花在那些更困难、需要更密集的人工测试来识别和验证的特殊漏洞上。

 

  • 无缝集成自动化开发和测试阶段

IAST 方案适用于软件产品开发和测试阶段,可由开发工程师和测试工程师在执行功能测试的同时,“零成本”完成安全测试,易于部署、更新和扩展,以满足大型企业需求。

 

  • 完整的安全弱点检测

目前 IAST 已经支持近 50 种安全弱点的检测,能对应用程序执行覆盖了 OWASP Top 10 和 CWE/SANS Top 25 所包含常见安全弱点的检测。

 

五、IAST 方案应该具备什么?

 

与传统解决方案相比,IAST 具有许多明显的优势,这就是它有望成为安全行业下一个大趋势的重要原因。我们建议您在选择 IAST 解决方案时,考虑以下因素:

 

微信图片_20190926102703(IAST 工具必要项)

 

2019年9月26日 09:58
首页    交互式应用安全测试 (IAST)