什么是IAST?

交互式应用程序安全测试(IAST)是 2012 年 Gartner 公司提出的一种新的应用程序安全测试方案,通过代理和在服务端部署的Agent 程序,收集、监控 Web 应用程序运行时请求数据、函数执行,并与扫描器端进行实时交互,高效、准确的识别安全漏洞,同时可准确确定漏洞所在的代码文件、行数、函数及参数。- 来源信通院 研发运营安全白皮书-2020年

为啥需要它?

新技术的出现,是为了解决老技术历史遗留问题,IAST的老技术就是SAST和DAST
传统的应用安全测试主要包括SAST(静态应用安全测试)和DAST(动态应用安全测试)。SAST对应用程序源代码进行白盒分析。分析是在代码的静态视图上运行的,这意味着代码在被检测时并没有运行,SAST的误报率无法得到有效控制,并且难以适用处于生产阶段的系统。DAST对应用进行黑盒测试,无法访问代码细节。DAST产品不用关注底层的技术和平台,因此使用度更广泛,准确率也有不错的保障。但DAST的技术特性决定了其高漏报率的结果,且无法应用于应用的研发阶段。而如今,作为入选Gartner十大信息安全技术的IAST(交互式安全测试),结合了SAST和DAST的优点,低误报率和高检出率同时得到了保证。灰盒测试的特性使IAST可以有效地应用于从开发到生产的全流程当中,让安全测试与SDLC无缝结合。看到上面这段描述没? 老的技术有问题,需要新的技术来顶,此段内容来源悬镜灵脉IAST介绍

IAST原理及优缺点?

IAST检测原理

基于开发语言自身的插桩技术,在软件运行过程中采用污点传播技术跟踪用户输入数据(污点)执行流程,来检查安全漏洞。

程序插桩

程序插桩?到底啥是插桩?插桩是一种测试程序性能、检测错误、获取程序执行信息的技术(来源IBM,及维基百科)插桩技术(Program Instrumentation)最早由J.C. Huang 在1978年发表到IEEE的《Program Instrumentationand Software Testing》提出的。在保证被测程序原有逻辑完整性的基础上在程序中插入一些探针(probe),即添加一些代码,获得程序的控制流和数据流信息。例如通过自动工具或手动,在函数执行前后插入读取计时器的代码,获取函数执行时间。可见,程序插桩是一项有着悠久历史的技术,主要应用在软件测试中,其实就是我们比较熟悉的测试方法,比如我们在源代码的函数执行前打印当前时间,在函数之后再次打印时间,进而计算函数的执行时间,找出影响软件性能的函数,就是源代码级别的程序插桩的一种应用。在安全领域最早使用程序插桩技术的,目前没有一个统一说法,2012年鸟哥编写的检测php代码安全漏洞PHP taint 0.0.1,是我知道的第一个基于程序插桩技术检测安全漏洞的工具。都这里就没有办法继续展开了,因为每种语言的插桩都不一样,与语言自身实现关系太强,比较底层,已经大大超出笔者的认知了,逃逃逃

IAST优点

  • 零成本对接功能测试流程号称几乎零成本接入到功能测试流程,就是将IAST的agent内置到功能测试机的装机镜像中,这样搭建一个测试环境就有IAST检测能力。这是产品宣传的介绍,但实际使用时,还需要考虑怎样保证装机覆盖度? 怎样无缝覆盖新创建的镜像,怎样检测非镜像安装的环境,怎样保证IAST运行正常
    怎样保证每个测试环境所有的功能模块都是最新的?
    报警处理怎么找到对应的修复人?这些问题都是与具体的使用场景有关系,需要在实施前进行仔细思考,否则IAST对接后,无法达到理想效果,需要返工处理- 能够覆盖全业务场景传统动态应用安全测试(DAST)很难覆盖使用一次Token,或者有人机校验的场景,而IAST基于测试的流量,可以覆盖所有场景- 报警误报率极低IAST的实际检测方式与人工代码审计的流程基本一致,可以说IAST是将安全专家审计代码的流程进行了自动化,基于获得的软件内部数据流和控制流多种数据综合判定是否存在安全漏洞,误报率是比较低。- 代码级漏洞详情这个比较好理解,在具体检测到漏洞的代码处,可以记录问题代码的文件、行号、用户输入、函数调用栈等详细信息- 赋能研发和测试是最好的赋能研发、测试工程师的工具,使其具有安全专家的能力- 降低漏洞修复成本在研发和测试阶段检测的漏洞,研发可以及时修复,对于成本降低显而易见。- 安全适度左移的最佳方案安全左移被Gartner提出后,受到热捧,是符合企业软件开发的诉求,但安全怎样左移却没有一个统一标准,有些企业把安全左移的怨声载道,成倍的增加了研发的负担,将研发部和安全部搞的水火不容,是一种典型性的步子跨的太大了。而IAST的出现应该可以说,安全左移的最佳实践,

IAST缺点

  • IAST语言强相关的IAST是基于开发语言自身提供的插桩技术进行漏洞检测,语言对插桩的支持成为IAST先决条件,并非所有开发语言都对该技术有很好的支持 ,可以确认 Java、Python、PHP、Go 应该是有插桩技术- IAST覆盖度依赖测试覆盖度IAST一般是基于功能测试人员的测试流量,因此IAST漏洞检测覆盖度依赖于功能测试的覆盖度- 对系统性能有影响IAST的实现需要在不改变原有代码逻辑的基础上,则原代码特定位置添加检测探针,整体上增加了代码量,在系统运行时,增加额外的开销,进而影响整体性能 ,基于洞态在java语言的性能测试Java Agent | 洞态文档 (dongtai.io),100并发下,性能损耗39%(供参考,具体的性能影响,与环境依赖比较大)- 不适合乙方工程师IAST需要在软件环境中部署额外的agent,因此不适用乙方工程师给甲方企业做黑盒测试的场景,这种场景下,工程师无法接触到源代码或部署环境。

怎么用IAST?

IAST未来?

个人感觉IAST是比较有未来的在甲方安全测试中,如前所述,IAST有这种低误报的特性。同时,看到有些厂商如默认雳鉴IAST 已经能够检测逻辑漏洞了,原文"可对常见风险进行检测,且可利用专利级的检测方式,对水平越权、垂直越权等逻辑漏洞进行自动化测试"开源网安灰盒安全测试平台- DevSecOps|IAST灰盒|灰盒测试|应用安全 (seczone.cn)也介绍"支持业务逻辑漏洞检测"虽然目前我还没有理解他们具体怎样检测的逻辑漏洞,但相信IAST针对可以在逻辑漏洞检测方向有所突破,成为超越SAST和DAST绝对优势。

IAST相关产品

IAST是依赖于语言自身的插桩技术,因此与开发语言强相关,但看了大部分IAST产品,除开源的洞态外,基本上没有说支持啥语言,这也许就是中国网络安全产品的特色,不管用户啥环境啥场景,我的产品都行,是在不行也有0.1%能够覆盖,最终结果可想而知。在不就是我也不写清楚,想要详情请联系商务,商务左转右转,了解了到在反馈给你,然后就是每天/周跟进你是否有需求,是否需要测试,是否有计划(预算), 是否采购,让你最后买买买,你不得不删删删(联系方式)。因此对于IAST产品的分类应该从厂商产品和语言两个方面进行比较。

最后对IAST做个总结

一句话(总结): IAST将手动安全测试变成了自动化
两句话(二层展开):
对于管理者:更加关心投入与产出,最终预期,所以可以从整个角度展开
对于技术迷:可以从实现原理角度展开
最终两种结合,形成二层介绍
IAST是利用语言自身的插桩技术,在语言内部跟踪数据执行流程,实时发现安全漏洞,具有高检出、低误报的优势,是安全适度左移最佳实践
三句话(三层扩展):这个更加泛的角度,如插桩的产生背景,用途。IAST产品对比,优势,未来等IAST是利用语言自身的插桩技术,在语言内部跟踪数据执行流程,实时发现安全漏洞,集成了SAST和DAST工具的优点,具有高检出、低误报的优势,是安全适度左移最佳实践, 在互联网、银行等行业得到了普遍应用,目前除检测传统安全漏洞外,能够检测权限等逻辑漏洞

参考文档

Program Instrumentation and Software Testing (程序插桩和软件测试) 英文版 在线下载,免费下载 github5安全文库

悬镜灵脉IAST

instrumentation (插桩)技术 比较好的介绍

(IBM Source code instrumentation overview -IBM 源代码插桩技术概述-主要讲插桩的额外开销

J.C. Huang’s 程序插桩之父的网站
J.C. Huang’s 程序插桩之父的介绍
信通院 研发运营安全白皮书-2020年 http://www.github5.com/view/266

被Gartner评为十大安全技术的IAST是什么相关推荐

  1. ITsMine在中国互联网安全大会(ISC)上被评为十大最具创新性的网络安全创业公司之一

    LABS/02的投资组合公司ITsMine获得了亚洲最大的网络安全会议的认可   北京和耶路撒冷--(美国商业资讯)--专注于保护组织数据的网络安全公司ITsMine被中国2018年互联网安全大会(2 ...

  2. Gartner:2018年十大安全项目详解

    Gartner 2018年十大安全项目详解 Last Modified By Bennyye @ 2018-11-20 1     概述 2018年6月份,一年一度的Gartner安全与风险管理峰会上 ...

  3. Gartner发布对2022年及以后IT组织和用户的十大预测

    来源:Gartner中国 编辑:蒲蒲 Gartner于近日发布对2022年及以后的十大战略预测.Gartner的十大预测从三个方面探讨了企业和IT领导人在持续中断和不确定性中获得的经验教训.这三个方面 ...

  4. Gartner2018年度的十大安全项目

    一.概述 2018年"十大安全技术"换成了"十大安全项目",所为何故?我个人的理解:今年"十大安全项目"的叫法更加符合客户视角,而且更加强调 ...

  5. Gartner2019年十大安全项目详解

    (文章来源https://www.sec-un.org/gartner2019年十大安全项目详解/ ) 1. 概述 2019年2月11日,Gartner一改过去在年度安全与风险管理峰会上发表10大安全 ...

  6. 华月互网获得2012全国十大IDC服务商

    本文讲的是华月互网获得2012全国十大IDC服务商,2013年3月1号,第八届中国互联网址站长讨论会圆满落幕,华月互网(www.xahxs.com)作为一家新兴的idc服务商,在域名和虚拟主机服务方面 ...

  7. Gartner: 2016年十大安全预测

    在Gartner 2016年安全与风险峰会上,Gartner研究副总裁Earl Parkins指出了在未来2到4年内安全领域的10大战略性规划假设Strategic Planning Assumpti ...

  8. AI能为智能手机带来哪些惊喜?Gartner列了这十大应用

    李杉 编译自 Gartner 量子位 出品 | 公众号 QbitAI 这两年的智能手机市场,已经被千篇一律的大触摸屏占据,但是美国市场研究公司Gartner说,它们还有希望走出差异化路线. 这个差异化 ...

  9. 前沿观察 | Gartner:2020年数据与分析领域的十大技术趋势

    来源:金融科技研究 本文约2000字,建议阅读5分钟. 本文为你介绍数据与分析领域的十大技术趋势. [ 导读 ]近日,Gartner发布了数据与分析领域的十大技术趋势,为数据和分析领导者的新冠疫情(C ...

  10. Gartner 2019基础设施和运维十大趋势:Serverless、边缘计算、SaaS 变复杂等

    https://blog.csdn.net/cf2SudS8x8F0v/article/details/84880324 来源:机器之心 Gartner公司强调了基础设施和运维(I&O)领导者 ...

最新文章

  1. linux 安装tinyxml,使用TinyXml
  2. java保存不了_在使用Java写入文件时,文件不能保存在文件夹中
  3. POS DES MAC 算法
  4. Redis中事务的实现流程
  5. MySQL高级 - like模糊匹配
  6. 通俗易懂。HTTP请求行、请求头、请求体、响应行、响应头、响应体详解
  7. c语言哈密顿路径算法,用于检查给定图中是否存在哈密顿循环或路径的C ++程序...
  8. spock测试_将Spock 1.3测试迁移到Spock 2.0
  9. poj_3977 折半枚举
  10. makefile / CMake
  11. 使用js对select动态添加和删除OPTION示例代码
  12. d3 和echart_D3.js与echart.js的应用场景
  13. 自疫情暴发以来,99%的中国IT决策者认为数据变得更重要
  14. 【二叉树的迭代版后序遍历】LeetCode 145. Binary Tree Postorder Traversal
  15. clr20r3 程序终止的几种解决方案_IT外包桌面解决方案——不慌,蓝屏而已
  16. python超市管理系统总汇总功能解说_AdminModules --- 管理模块
  17. 产品经理必须要掌握的数据分析能力
  18. [转]海南楼市泡沫拯救中国经济~ 恍然大悟呀~
  19. Unity3d使用RenderTexture制作动态头像
  20. 1012:8除不尽的数

热门文章

  1. comsol服务器的性能如何,COMSOL Server
  2. 微信小程序的事件冒泡和捕获
  3. KVM环境下vCPU绑定到物理CPU
  4. 格雷希尔Gripseal燃油管快速接头如何做密封性测试
  5. 12张图读懂模电、数电必备的电路基础知识
  6. 高斯过程回归预测 C++代码实现
  7. 微信小程序订单支付后端demo
  8. 基于 AngularJS 的 UI 框架 Suave UI
  9. 华硕主板如何设置开机自启_华硕主板怎么设置自动开机,华硕主板设置通电开机-...
  10. 【FAQ】【Push Kit】 华为怎么设置角标