在应用安全测试过程中防止脏数据落地的方法技术

技术编号:32557190 阅读:17 留言:0更新日期:2022-03-05 11:58
本发明专利技术涉及数据安全技术领域,尤其涉及一种在应用安全测试过程中防止脏数据落地的方法,包括如下步骤:步骤S1:对数据流进行实时分析;步骤S2:插入判断代码,收集程序在运行过程中的上下文信息;步骤S3:在Socket输入输出流上进行字节码操作插桩hook拦截处理;步骤S4:对发送的脏数据进行拦截并重定向至其他页面。对发送的脏数据进行拦截并重定向至其他页面。对发送的脏数据进行拦截并重定向至其他页面。

【技术实现步骤摘要】
在应用安全测试过程中防止脏数据落地的方法


[0001]本专利技术涉及数据安全
,尤其涉及一种在应用安全测试过程中防止脏数据落地的方法。

技术介绍

[0002]目前一些企业为了降低应用程序存在安全漏洞的风险,一般会采用交互式安全测试(iast)的方式进行黑盒漏洞测试,以发现潜在的安全漏洞,但在测试服务接口的请求上进行参数注入的修改的时候,存在污染测试服务的数据源的可能性,具体为由于IAST agent回传的流量会再次通过黑盒测试,修改请求参数进行重放流量操作,进而导致脏数据落地,以致造成数据污染及影响测试人员的测试进程。
[0003]因此,现有技术存在不足,需要改进。

技术实现思路

[0004]为克服上述的技术问题,本专利技术提供了一种在应用安全测试过程中防止脏数据落地的方法。
[0005]本专利技术解决技术问题的方案是提供一种在应用安全测试过程中防止脏数据落地的方法,包括如下步骤:
[0006]步骤S1:对数据流进行实时分析;
[0007]步骤S2:插入判断代码,收集程序在运行过程中的上下文信息;
[0008]步骤S3:在Socket输入输出流上进行字节码操作插桩hook拦截处理;
[0009]步骤S4:对发送的脏数据进行拦截并重定向至其他页面。
[0010]优选地,在步骤S1中,通过JDK Instrumentation API,加载Agent用于监测运行在JVM上的应用程序,在程序启动前修改类的定义,基于应用程序获取当前应用的上下文,在应用运行中实时分析数据流。
[0011]优选地,在步骤S2中,在确保测试程序原有的逻辑完整的基础上,插入判断代码。
[0012]优选地,在步骤S2中,通过在Java中底层函数插桩hook,通过JDK Instrument和字节码操作工具ByteBuddy修改的方式插入判断代码。
[0013]优选地,在步骤S3中,通过数据落地组件和网路层发送数据包的方式进行拦截处理。
[0014]优选地,步骤S4还包括如下步骤:
[0015]步骤S41:在执行Lorder Class操作前,及在字节码载入java环境之前,通过自定义的transformer的transform方法进行转换,以实现添加hook点class的流程;
[0016]步骤S42:对已经载入的class经过transformer的transform方法执行字节码的操作,以增加相应的hook点;
[0017]步骤S43:在hook点处,在采用SocketOutputStream输出流调用方法write之前,进行是否为安全测试执行重放的数据进行判断,若是,则对该hook点进行截断并重定向至其
他页面展示。
[0018]相对于现有技术,本专利技术的在应用安全测试过程中防止脏数据落地的方法具有如下优点:
[0019]本专利技术在基于iast黑盒测试过程中,在socket输入输出流的方法上,通过字节码修改插桩来防止脏数据落地,防止数据被污染,避免了在进行安全测试时因脏数据落地而导致增加后续清理难度的问题,有利于提高安全漏洞测试效率及确保测试人员的测试进程的正常进行;同时通过该方法防止脏数据落地,避免了需要人工对数据进行查找、判断,降低了因人工判断而导致较为浪费时间及可能出现的误判,有利于节省时间、提高工作效率。
【附图说明】
[0020]图1是本专利技术在应用安全测试过程中防止脏数据落地的方法的具体流程示意图。
【具体实施方式】
[0021]为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施实例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用于解释本专利技术,并不用于限定本专利技术。
[0022]请参阅图1,本专利技术提供一种在应用安全测试过程中防止脏数据落地的方法,包括如下步骤:
[0023]步骤S1:对数据流进行实时分析。
[0024]具体地,在步骤S1中,通过JDK Instrumentation API,加载Agent用于监测运行在JVM上的应用程序,在程序启动前修改类的定义,基于应用程序获取当前应用的上下文,在应用运行中实时分析数据流。
[0025]进一步地,步骤S2:插入判断代码,收集程序在运行过程中的上下文信息。
[0026]具体地,在步骤S2中,在确保测试程序原有的逻辑完整的基础上,插入判断代码。
[0027]优选地,在本专利技术中,在步骤S2中,通过在Java中底层函数插桩hook,通过JDK Instrument和字节码操作工具ByteBuddy修改的方式插入判断代码。
[0028]进一步地,步骤S3:在Socket输入输出流上进行字节码操作插桩hook拦截处理。
[0029]优选地,在步骤S3中,通过数据落地组件和网路层发送数据包的方式进行拦截处理。
[0030]进一步地,步骤S4:对发送的脏数据进行拦截并重定向至其他页面。
[0031]具体地,在通过字节码操作工具在应用程序中使用SocketOutputStream输出流对象调用方法write之前,嵌入一段代码判断是否为安全测试重放的数据,同时,进行拦截发送的脏数据,并重定向至其他页面。
[0032]进一步地,步骤S4还包括如下步骤:
[0033]步骤S41:在执行Lorder Class操作前,及在字节码载入java环境之前,通过自定义的transformer的transform方法进行转换,以实现添加hook点class的流程;
[0034]步骤S42:对已经载入的class经过transformer的transform方法执行字节码的操作,以增加相应的hook点;
[0035]步骤S43:在hook点处,在采用SocketOutputStream输出流调用方法write之前,进
行是否为安全测试执行重放的数据进行判断,若是,则对该hook点进行截断并重定向至其他页面展示。
[0036]通过将脏数据截断并重定向至其他页面,实现了数据的分流隔离管理,以避免脏数据污染服务测试流程情形的产生。
[0037]相对于现有技术,本专利技术的在应用安全测试过程中防止脏数据落地的方法具有如下优点:
[0038]本专利技术在基于iast黑盒测试过程中,在socket输入输出流的方法上,通过字节码修改插桩来防止脏数据落地,防止数据被污染,避免了在进行安全测试时因脏数据落地而导致增加后续清理难度的问题,有利于提高安全漏洞测试效率及确保测试人员的测试进程的正常进行;同时通过该方法防止脏数据落地,避免了需要人工对数据进行查找、判断,降低了因人工判断而导致较为浪费时间及可能出现的误判,有利于节省时间、提高工作效率。
[0039]以上所述仅为本专利技术的较佳实施例,并非因此限制本专利技术的专利范围,凡是在本专利技术的构思之内所作的任何修改,等同替换和改进等均应包含在本专利技术的专利保护范围内。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种在应用安全测试过程中防止脏数据落地的方法,其特征在于:包括如下步骤:步骤S1:对数据流进行实时分析;步骤S2:插入判断代码,收集程序在运行过程中的上下文信息;步骤S3:在Socket输入输出流上进行字节码操作插桩hook拦截处理;步骤S4:对发送的脏数据进行拦截并重定向至其他页面。2.如权利要求1所述的在应用安全测试过程中防止脏数据落地的方法,其特征在于:在步骤S1中,通过JDK Instrumentation API,加载Agent用于监测运行在JVM上的应用程序,在程序启动前修改类的定义,基于应用程序获取当前应用的上下文,在应用运行中实时分析数据流。3.如权利要求1所述的在应用安全测试过程中防止脏数据落地的方法,其特征在于:在步骤S2中,在确保测试程序原有的逻辑完整的基础上,插入判断代码。4.如权利要求1所述的在应用安全测试过程中防止脏数据落地的方法,其特征在于:在步骤S2中,通过在Java中底层函数插桩hook,通过JDK...

【专利技术属性】
技术研发人员:刘强
申请(专利权)人:深圳前海环融联易信息科技服务有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1