IAST 初探:博采众长、精准定位、DevOps友好
✦
✦
交互式应用安全测试(IAST)是一个自动识别和诊断应用程序和 API 漏洞的技术,它结合了 SAST 和 DAST 的优势,可以从应用内部持续监测漏洞。 在整个开发生命周期中,IAST通过你在开发和测试中使用的工具实时提供告警。
IAST 的显著特性是它借助插桩(Instrumentation)直接从运行的代码中收集安全信息和遥测,以识别和诊断应用程序和 API 中的漏洞。 但这并不意味着你需要等到生产阶段才开始进行 IAST,而是在你写下第一行代码的时候就开始在 IDE 中使用它。
由于 IAST 可以直接访问代码本身,它可以对每一行代码执行 SAST。 此外,因为 IAST 可以访问 HTTP 流量,它可以对每个请求和响应进行类似 DAST 的分析。 因此,IAST 结合了 SAST 和 DAST 工具的安全功能。
IAST 包含以下两个主要功能:
自有代码安全测试: IAST 可以自动分析应用程序和 API 的自有代码,找出之前没被发现的漏洞。 IAST 能够识别各种各样类型的漏洞,不仅包含十大安全漏洞列表(OWASP Top 10)中的漏洞,还能识别出其他更复杂的漏洞。
开源安全测试: IAST 还可以通过两种方式来测试开源代码库和框架的安全性。 首先,IAST 可以识别困扰开源软件的已知漏洞(通常以 CVE 的形式发布)。 其次,IAST 还可以识别开源软件中未知的(“新的”或者“潜在的”)漏洞。
IAST 为敏捷环境提供哪些优势?
1、测试左移
IAST 在 SDLC 早期的测试左移中发挥神奇的作用。它将测试转移到 SDLC 的早期部分,使得问题被尽早发现,减少补救成本。
由于该安全技术有助于快速跟踪问题报告和修复期之间的窗口期,所以可以有效减少开发过程中的延误。
安全和开发团队都需要在开发阶段使用 SAST 和 SCA 工具,而 IAST 实在测试阶段使用的安全工具。每当 IAST 发现安全问题,都会被反馈给开发人员,让他们在开发阶段修复这些漏洞。
2、 暴露漏洞的来源
IAST 可以简单地分析应用程序内部,因为它可以访问应用程序的数据流、库、框架和源代码。 分析应用程序内部结构的特性有助于开发人员快速识别漏洞并快速修复。
3、 准确性
IAST 的关键特性之一是以极低的误报率检测可验证的、不可验证的和可能的安全问题。 在发出告警的正确率方面,它比 SAST 和 DAST 优秀得多,而 DAST 和 SAST 在检测的漏洞数量方面也无法与之相比。
每个组织都希望有一个安全工具能在应用程序的所有内部流程方面为他们提供准确的报告,而不是提供虚假报告。
虽然 DAST 返回低误报并不难,但很难定位到与漏洞相关的代码行。 但 IAST 和 SAST 可以提供详细信息,例如带有漏洞的代码位置,以帮助安全和开发团队进行修复。
4、 对 SDLC 的所有阶段都很有价值
IAST 安全工具对于整个软件开发阶段都十分有用。 它不只是聚焦于某个特定阶段,还可以帮助开发人员在开发过程中实时修复问题。 此外,它在测试阶段也非常重要。 IAST 还有助在生产过程中检测漏洞,并将结果发回给开发团队进行修复。
5、 与 DevOps 工具无缝集成
IAST 是 DevOps 友好的安全工具,它也可以集成到开发和测试在使用的其他工具中。 DevOps 团队需要易于配置和实施的工具,并且与构建和测试工具无缝集成。 IAST 非常容易部署,且易集成到 CI/CD 流水线中。
6、 快速且清晰的反馈
IAST 可以实时检测漏洞并提供及时的反馈。 代码运行和扫描之后,开发者会收到及时反馈并且告诉其如何进行补救。
反馈不仅快速而且清晰,并且提供了可执行的操作(如漏洞类型、发现漏洞的代码行)。
QA 团队也可以从 IAST 识别安全漏洞的方式中受益,因为反馈结果是清晰的和可执行的。 安全专家也可以借助这一工具而省去查找漏洞位置的时间和精力。
7、 静态和动态的结合
IAST 一个重要的方面是静态能力(分析静态代码的能力)和动态能力(分析运行中代码的能力)。 这两种能力的结合使 IAST 在其高精确度和追踪代码行漏洞方面发挥了最大的作用,使得漏洞的修复变得十分轻松。
IAST 工具类型
SAST/IAST 工具 (被动型 IAST)
被动型 IAST 的工作方式与 RASP (运行时应用自我保护)工具类似。 它通过使用编入代码的传感器来分析应用程序的行为。
这类工具保留了静态分析的最大弊端: 缺乏对第三方组件的关注。 因此,如果使用一个被动式 IAST 解决方案,必须使用另一个工具——软件成分分析(SCA),或者全然信任第三方组件,后者显然是不现实的。
被动式 IAST 工具另一个缺点是它们只能在被单元测试或第三方爬虫激活的功能中发现漏洞。 这意味着,这类工具不能保证整个应用程序都被检测,这可能导致很多漏洞被遗漏。
作为 SAST 产品的扩展而开发的 IAST 工具仍然是被动式扫描程序,它不会进行任何攻击或主动抓取。 与纯粹的 SAST 工具相比,它无疑是一种改进,但并不能满足对 Web 漏洞扫描程序的需求。
DAST/IAST 工具 (主动型 IAST)
具有 IAST 功能的 DAST 工具专注于引入 SAST 的一个优势: 准确定位问题的源头。 这样开发人员就无需花费时间来查找导致漏洞的那行代码。 因此,主动型 IAST 解决方案的价值点在于它们提供更准确的结果,并降低误报率。
不过,动态分析工具是在运行的应用程序上实时工作,所以它们无法直接访问源代码。 但它们可以访问编译器和解释器。 假如使用的编程语言是 PHP,一个主动型 IAST 工具可以直接定位到导致漏洞的具体代码行。 如果是预编译的语言,它可以在字节码中准确定位问题,从而加快在应用程序代码中发现问题的速度。
总而言之,不能指望带有 IAST agent 的 DAST 解决方案完全取代专门的源代码扫描程序,但它引入了 SAST 的一些优势,甚至提升了动态测试的效率。

IAST 在软件开发周期中的重要性
IAST 最大的优势之一是它在开发过程中的可用性,尤其是在基于敏捷方法的开发过程中。 构建自己网络应用程序的企业需要尽快了解潜在的安全问题,以避免在生产中发现漏洞所带来的成本和风险。 这就是为什么目前应用安全和软件开发的主要趋势之一是用 DevSecOps 取代 DevOps。
就其性质而言,SAST 工具是作为 CI 的一部分来使用的。 DAST 工具经常被误认为不适合自动化,但实际上,领先的 DAST 解决方案被许多企业成功地用于 CI/CD 流水线中。 尽管在软件开发周期中引入 IAST agent 会变得更复杂,但这一切是值得的。
被动型 IAST 和主动型 IAST 都同样适用于 SDLC。 然而,被动型 IAST 安全测试的误报率更高,更依赖测试团队的技术水平(需要单元测试来执行爬虫的功能),并且不会检测开发中使用的第三方元素。 另一方面,检测更彻底的主动型 IAST 可能需要更多的计算资源。
IAST 需要一个成熟的测试环境、现代软件开发环境以及标准的架构,以获得最佳性能。

IAST 常见使用阶段
IAST 在 SDLC 的所有阶段都非常有用,我们将介绍其中3个较为常见的用例。

IAST 在开发阶段的介入
开发团队常常从 IAST 中受益颇多,因为它有助于检测应用程序中的漏洞,而这通常是在 SDLC 期间完成,而不是在应用部署到生产环境中时进行。 这降低了漏洞的补救成本。 同时也请注意它也可以在预生产和生产环境中运行并且在 DevOps 环境中完全支持 CI/CD。
IAST 在测试阶段的介入
它不需要等待任何扫描完成后再报告应用程序中的漏洞。 它是一个可以被纳入质量保证环境和CI/CD的工具,它可以在部署前阶段用于测试,并且对DevOps友好。
IAST 在生产阶段的介入
它还为运维团队提供了在生产阶段所需的所有必要支持。 这是因为并不是所有的漏洞都能在部署到生产之前得到修复。
因此,有了这个工具,即使在生产环境中你也能保证应用程序的安全,因为它为你提供关于补丁的信息,以优先修复非常严重的问题,并帮助监控整个系统的稳定性。

总 结
交互式应用安全测试(IAST)是近几年来的新型技术,它仍然在寻找自己的立足点以被安全和开发者社区接受。 每一种测试技术都有其独特的优势,有时使用其中一种而舍弃另一种可能并不完全正确。 因此,如果您的团队有足够的预算,十分建议您同时使用 SAST、DAST 和 IAST,因为它们能检测出99.9%的漏洞。
在本文中,您已经了解到 IAST 的特点。 如果企业需要避免未来以更高的成本修复漏洞,那么每个组织都需要拥有 IAST 工具。
IAST 初探:博采众长、精准定位、DevOps友好的更多相关文章
- 如何实现室内Wi-Fi无线终端的精准定位
如何实现室内Wi-Fi无线终端的精准定位 如何实现室内Wi-Fi无线终端的精准定位 随着商圈020的兴起,室内定位技术的也如百花争艳般不断涌现.但随着室内Wi-Fi网的架设普及,基于Wi-Fi定位技术 ...
- vue开发东京买菜,全栈项目,前端django,带手机GPS精准定位,带发票系统,带快递系统,带微信/支付宝/花呗/银行卡支付/带手机号一键登陆,等等
因为博客园不能发视频,所以,完整的视频,开发文档,源码,请向博主索取 完整视频+开发文档+源码,duanshuiLu.com下载 vue+django手机购物商城APP,带支付,带GPS精准定位用户, ...
- django开发东京买菜,全栈项目,前端vue,带手机GPS精准定位,带发票系统,带快递系统,带微信/支付宝/花呗/银行卡支付/带手机号一键登陆,等等
因为博客园不能发视频,所以,完整的视频,开发文档,源码,请向博主索取 完整视频+开发文档+源码,duanshuiLu.com下载 vue+django手机购物商城APP,带支付,带GPS精准定位用户, ...
- c# 异常精准定位
在日常项目开发中,异常抛出和捕获是再平常不过的事情.通过try-catch我们可以方便的捕获异常,同时通过查看异常堆栈我们能发现抛出异常代码的位置. 例如下面这段代码: using System; u ...
- 利用 Traceview 精准定位启动时间测试的异常方法 (工具开源)
机智的防爬虫标识原创博客地址:http://www.cnblogs.com/alexkn/p/7095855.html博客求关注: http://www.cnblogs.com/alexkn 1.启动 ...
- 实用技巧:如何通过IP地址进行精准定位
在甲方工作的朋友可能会遇到这样的问题,服务器或者系统经常被扫描,通过IP地址我们只能查到某一个市级城市,如下图: 当我们想具体到街道甚至门牌号,该怎么办??? 偶然间发现百度地图有高精度IP定位API ...
- 通过IP地址进行精准定位
可能会遇到这样的问题,服务器或者系统经常被扫描,通过IP地址我们只能查到某一个市级城市,如下图: 当我们想具体到街道甚至门牌号,该怎么办??? 偶然间发现百度地图有高精度IP定位API的接口,通过该接 ...
- Arcgis andoid开发之应用百度地图接口实现精准定位与显示
怀着激动.兴奋的心情,在这个漫天柳絮的季节写下了这片博文,为什么呢,因为困扰我很久的一个技术性的问题得到了解决,发次博文,供大家参观.学习,同时,也以慰藉我长期困扰的心情,好了,废话不再,言归正传,看 ...
- 利用wireshark任意获取qq好友IP实施精准定位
没事玩一把,感觉还挺有趣,首先打开wireshark: 不管你连接的什么网,如图我连接的是WLAN,双击进入如图界面: ctrl-f进行搜索:如图 选择分组详情,字符串,并输入020048.这时候你就 ...
- POI 获取chekbox textbox (精准定位)
方式1:POI 方式2: xls 获取checkbox , 已经checkbox 的 label (如果shape name 读取时一直为空, 用wps 打开excel , 保存后在测试) ...
随机推荐
- 自动化混沌工程 ChaosMeta V0.6 版本发布
混沌工程 ChaosMeta 的全新版本 V0.6.0 现已正式发布!该版本包含了许多新特性和增强功能,在编排界面提供了包括流量注入.度量等各类节点的支持,可视化支撑演练全流程.解决混沌工程原则中&q ...
- xxl-job默认accessToken命令执行漏洞复现
起因: 昨天看见微步发布XXL-JOB默认accessToken身份绕过漏洞,之前hw期间遇到过几次,都没弱口令和未授权,对其有点印象,遂复现一下. 漏洞影响:2.3.1和2.4 环境准备: 1.下载 ...
- JUC并发编程学习(五)集合类不安全
集合类不安全 List不安全 单线程情况下集合类和很多其他的类都是安全的,因为同一时间只有一个线程在对他们进行修改,但是如果是多线程情况下,那么集合类就不一定是安全的,可能会出现一条线程正在修改的同时 ...
- Python根据输入的公司编号、名称、网址,格式化输出公司信息。其中1)冒号统一为英文冒号,编号占6位,不足6位的前面补0。编号后面是制表符。
根据输入的公司编号.名称.网址,格式化输出公司信息.其中 1)冒号统一为英文冒号,编号占6位,不足6位的前面补0.编号后面是制表符. 2)"公司名称:" 后面输出字符串占8位,左对 ...
- java笔记——面向对象
1.概述:面向对象是基于面向过程的编程思想 举例:把大象装进冰箱 2.开发:不断的创建对象,使用对象,指挥对象做事情 3.面向对象特征:封装 , 继承 , 多态 4.类和对象的关系: 类是一组相关的属 ...
- Maven安装与配置【idea2022版本】
一.maven下载 https://maven.apache.org/download.cgi 下载完毕后解压,注意解压路径不要有中文 二.环境变量 在环境变量Path里面新建(自己的maven的bi ...
- Prometheus+Grafana 监控平台实践-搭建&常用服务监控&告警
前言 Prometheus 是一个开放性的监控解决方案,通过各种 Exporter 采集当前主机/服务的数据,和 Grafana 相结合可以实现强大的监控和可视化功能 本篇将分享使用 docker c ...
- Winform RichTextBox 控件文本内容自动滚动到最后一行
RichTextBox 控件文本内容始终显示追加的最新内容,也就是自动滚动到控件文本框的最后一行. 有两种方法: HideSelection设置为false: // RichTextBox1.Text ...
- OkHttp3发送http请求
导入依赖 <!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp --> <dependency> ...
- 解决 VM with version 2.1.0 has multidex support ; VM has multidex support, MultiDex support library is disabled.问题
发布打包完之后,android studio提示 VM with version 2.1.0 has multidex support I/MultiDex: installI/MultiDex: V ...