赞
踩
洞态IAST是一款被动式的交互式安全测试工具,具有漏洞检出率高、误报率低、无脏数据、支持数据包加密/一次性签名/验证码等不支持重放的场景下的漏洞检测、支持微服务/API网关/分布式应用等应用架构下的漏洞检测、支持对移动APP的后端服务器进行漏洞检测等优点。此外,洞态IAST支持在不发送数据包的前提下对历史数据中未出现漏洞的API进行的重复检测,最大可能的检测出漏洞。
IAST的核心技术点有三个:
值传递算法
污点链路梳理
Hook策略
其中,值传递算法用于污点的标记和污点传播动作的检测;污点链路梳理用于分析污点的完整流向;Hook策略用于定义代码流中需要检测是否有污点出现的位置(污点来源方法、污点传播方法、污点过滤方法、危险函数等)。
污点传播的原理:当应用程序从外部输入(HTTP请求、RPC请求、文件、消息队列等等)获取数据时,这些数据被标记为初始污点,数据在应用程序的各个方法/对象之间传递、通信时,出现了污点的流动,在污点流动过程中,污点数据的复制、变化等操作构成了污点的传播;当污点传播至危险函数,导致危险函数触发危险动作时,出现了漏洞。
洞态IAST的创新点:
Java语言中,数据分为基本类型和引用类型,所有的引用类型都继承自Object对象,存在hashcode
方法用来标记实例化对象;“洞态IAST”根据对象的hashcode来对污点数据进行标记及污点传播过程的判断,同时,针对集合类型、字符串类型等场景进行拆分适配,确保值传递算法的准确性。
“洞态IAST”支持预定义策略的污点传播检测与识别、支持未知方法的污点传播自适应检测,关于值传递算法的核心代码和核心思想,可通过开源版本的JavaAgent自行研究学习。
污点传播数据云端存储,实现了任意时间重新对历史污点传播过程进行回朔分析,当0 Day爆发或出现新的漏洞策略时,可直接对历史数据进行分析,检测是否存在相关漏洞;
同时,基于”污点传播自适应”算法,可梳理出污点在应用程序中传播时存在的所有污点链路,最终,形成一幅完整的污点调用图(如下图),根据污点调用图,可通过指定自定义的漏洞策略,快速搜索是否存在相关的漏洞。
洞态IAST可用于代码审计的过程中自动检测漏洞、
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。