文章目录
一、插件安装和配置
(1)安装
洞态 IAST IntelliJ IDEA 插件是面向开发人员的轻量级插件选项,提供了开发人员软件安全测试和修复的功能。系统配置要求IntelliJ IDEA 版本: 2020.3 以上。
在 Plugins > Marketplace 搜寻 DongTai IAST 并安装。
(2)配置
至 DongTai IAST Server 端右上方的 Add Agent 获取 Token。
在 IntelliJ IDEA 界面上点击 Tools > DongTai IAST Cloud 配置云端并填入 Token。
配置成功之后可以点击IDEA项目右上角的RUN with IAST或者Debug with IAST运行即可。
安装和配置教程详见:
https://doc.dongtai.io/05_ext/01_plugin.html#intellij-idea
二、敏感数据配置
(一)示例分析
洞态 IAST提供新版本提供了敏感数据的检查特性,位置如上图所示。该功能是通过检查请求参数请求体内容数据进行的字符串正则匹配。
首先需要添加【策略管理】,如上所示创建了身份证信息泄露和手机号码泄露策略。该策略主要用于设置对应应用漏洞的描述、修复建议、风险等级以及是否启用
设置完成策略管理之后,在敏感信息配置中就可以添加匹配规则,这里是具体的匹配算法设置。
【注意事项】
1:正常情况下,对于表单的正则验证使用的是^1[3-9]\d{9}$进行精确的匹配,但是对于洞态 IAST来说,它所验证的不会是一个具体的字段数据,而是整个请求头或者请求体数据,需要匹配组数据以及手机号码前后字符串,
参考如下
\D?( 敏感数据正则表达式 )\D?
手机号码正则参考:\D?(1[3-9]\d{9})\D?
身份证正则参考:\D?(\d{18})|(\d{17}(\d|X|x))\D?
2.设置完成匹配规则之后注意到关联的【策略模板管理】中添加已创建的策略组件
上面步骤操作之后就可以进行敏感数据的拦截测试了,启动项目并进行正常的给功能开发即可,洞态 IAST插件会通过插桩方式获取请求和响应数据并发送到平台上面。
【1】进入到项目管理页面,点击项目漏洞可以看到具体匹配的信息
【2】下面的实例是捕获到的接口响应时身份证信息明文暴露
【2】下面的实例是捕获到的接口响应时手机号码信息明文暴露
(二)检测位置分析
下面针对检测位置进行示例分析,对常用的请求头、请求体以及响应数据进行检测观察。
(1)HTTP Response Data
1.AJAX数据
观察下面数据可以看到对于AJAX返回的数据是可以对JSON字符串进行正则匹配并捕获到敏感信息的
2.模板引擎数据
针对响应是模板引擎渲染的页面,可以看到已经捕获到了渲染到页面的敏感数据
(2)HTTP Request Param 参数
通过HTTP请求参数传递的敏感数据可以看到已经被检测出来
(3)HTTP Request Data
下面是一个AJAX的POST请求,请求体中保存了表单数据,观察下面信息可以看到已经被检测到对应的敏感信息
三、小结
【1】洞态 IAST插件通过插桩方式获取请求和响应数据并发送到平台上面,帮助我们分析和匹配安全漏洞以及敏感数据
【2】通过示例可以看到,洞态 IAST的敏感信息检测可以捕获各类请求和响应数据,基本涵盖了日常开发涉及的交互数据
【3】洞态 IAST敏感信息检测通过正则表达式进行数据的匹配检测,对于一般的固定格式的数据非常适用,比如手机号码,身份证等等,只要我们根据具体的数据格式写出合适的正则即可。
【4】对于上面提到的正则,需要根据实际业务数据适当调整。因为该检测匹配不是特定的属性字段而是把整个请求体或者响应体作为一个字符串进行匹配,可能存在一些误判或者遗漏,需要注意
【5】通过该插件可以很方便的帮助我们检测出系统那些数据交互存在敏感信息泄露问题,并且不需要我们人为干预,保持正常的开发即可,可以定期去平台查看处理
【6】在个人使用过程中发现,以该插件启动项目的方式会降低项目运行速度。因为其中涉及到较多的接口交互,以及定期的数据包发送,虽然都是异步处理但是还是有一些影响的,不过整体影响不大。
【7】注意洞态 IAST设置Agent 停止阈值配置,如果CPU利用率超过某个阈值,默认60%,探针引擎停止工作