【IAST安全左移最佳工具】(2)


今天有学员问,面试中被问到是否了解IAST,当时就懵逼了,脑袋空白,不知所云…

因此群里展开了啥是IAST的大讨论 ,将相关内容整理一下 ,供其它学员参考

啥叫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
Instrumentation

and 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 已经能够检测逻辑漏洞了,原文"可对常见风险进行检测,且可利用专利级的检测方式,对水平越权、垂直越权等逻辑漏洞进行自动化测试"

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取

  • 15
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值