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

文档序号:29131326发布日期:2022-03-05 01:17阅读:262来源:国知局
在应用安全测试过程中防止脏数据落地的方法与流程
在应用安全测试过程中防止脏数据落地的方法
【技术领域】
1.本发明涉及数据安全技术领域,尤其涉及一种在应用安全测试过程中防止脏数据落地的方法。


背景技术:

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


技术实现要素:

4.为克服上述的技术问题,本发明提供了一种在应用安全测试过程中防止脏数据落地的方法。
5.本发明解决技术问题的方案是提供一种在应用安全测试过程中防止脏数据落地的方法,包括如下步骤:
6.步骤s1:对数据流进行实时分析;
7.步骤s2:插入判断代码,收集程序在运行过程中的上下文信息;
8.步骤s3:在socket输入输出流上进行字节码操作插桩hook拦截处理;
9.步骤s4:对发送的脏数据进行拦截并重定向至其他页面。
10.优选地,在步骤s1中,通过jdk instrumentation api,加载agent用于监测运行在jvm上的应用程序,在程序启动前修改类的定义,基于应用程序获取当前应用的上下文,在应用运行中实时分析数据流。
11.优选地,在步骤s2中,在确保测试程序原有的逻辑完整的基础上,插入判断代码。
12.优选地,在步骤s2中,通过在java中底层函数插桩hook,通过jdk instrument和字节码操作工具bytebuddy修改的方式插入判断代码。
13.优选地,在步骤s3中,通过数据落地组件和网路层发送数据包的方式进行拦截处理。
14.优选地,步骤s4还包括如下步骤:
15.步骤s41:在执行lorder class操作前,及在字节码载入java环境之前,通过自定义的transformer的transform方法进行转换,以实现添加hook点class的流程;
16.步骤s42:对已经载入的class经过transformer的transform方法执行字节码的操作,以增加相应的hook点;
17.步骤s43:在hook点处,在采用socketoutputstream输出流调用方法write之前,进行是否为安全测试执行重放的数据进行判断,若是,则对该hook点进行截断并重定向至其
他页面展示。
18.相对于现有技术,本发明的在应用安全测试过程中防止脏数据落地的方法具有如下优点:
19.本发明在基于iast黑盒测试过程中,在socket输入输出流的方法上,通过字节码修改插桩来防止脏数据落地,防止数据被污染,避免了在进行安全测试时因脏数据落地而导致增加后续清理难度的问题,有利于提高安全漏洞测试效率及确保测试人员的测试进程的正常进行;同时通过该方法防止脏数据落地,避免了需要人工对数据进行查找、判断,降低了因人工判断而导致较为浪费时间及可能出现的误判,有利于节省时间、提高工作效率。
【附图说明】
20.图1是本发明在应用安全测试过程中防止脏数据落地的方法的具体流程示意图。
【具体实施方式】
21.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施实例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。
22.请参阅图1,本发明提供一种在应用安全测试过程中防止脏数据落地的方法,包括如下步骤:
23.步骤s1:对数据流进行实时分析。
24.具体地,在步骤s1中,通过jdk instrumentation api,加载agent用于监测运行在jvm上的应用程序,在程序启动前修改类的定义,基于应用程序获取当前应用的上下文,在应用运行中实时分析数据流。
25.进一步地,步骤s2:插入判断代码,收集程序在运行过程中的上下文信息。
26.具体地,在步骤s2中,在确保测试程序原有的逻辑完整的基础上,插入判断代码。
27.优选地,在本发明中,在步骤s2中,通过在java中底层函数插桩hook,通过jdk instrument和字节码操作工具bytebuddy修改的方式插入判断代码。
28.进一步地,步骤s3:在socket输入输出流上进行字节码操作插桩hook拦截处理。
29.优选地,在步骤s3中,通过数据落地组件和网路层发送数据包的方式进行拦截处理。
30.进一步地,步骤s4:对发送的脏数据进行拦截并重定向至其他页面。
31.具体地,在通过字节码操作工具在应用程序中使用socketoutputstream输出流对象调用方法write之前,嵌入一段代码判断是否为安全测试重放的数据,同时,进行拦截发送的脏数据,并重定向至其他页面。
32.进一步地,步骤s4还包括如下步骤:
33.步骤s41:在执行lorder class操作前,及在字节码载入java环境之前,通过自定义的transformer的transform方法进行转换,以实现添加hook点class的流程;
34.步骤s42:对已经载入的class经过transformer的transform方法执行字节码的操作,以增加相应的hook点;
35.步骤s43:在hook点处,在采用socketoutputstream输出流调用方法write之前,进
行是否为安全测试执行重放的数据进行判断,若是,则对该hook点进行截断并重定向至其他页面展示。
36.通过将脏数据截断并重定向至其他页面,实现了数据的分流隔离管理,以避免脏数据污染服务测试流程情形的产生。
37.相对于现有技术,本发明的在应用安全测试过程中防止脏数据落地的方法具有如下优点:
38.本发明在基于iast黑盒测试过程中,在socket输入输出流的方法上,通过字节码修改插桩来防止脏数据落地,防止数据被污染,避免了在进行安全测试时因脏数据落地而导致增加后续清理难度的问题,有利于提高安全漏洞测试效率及确保测试人员的测试进程的正常进行;同时通过该方法防止脏数据落地,避免了需要人工对数据进行查找、判断,降低了因人工判断而导致较为浪费时间及可能出现的误判,有利于节省时间、提高工作效率。
39.以上所述仅为本发明的较佳实施例,并非因此限制本发明的专利范围,凡是在本发明的构思之内所作的任何修改,等同替换和改进等均应包含在本发明的专利保护范围内。


技术特征:
1.一种在应用安全测试过程中防止脏数据落地的方法,其特征在于:包括如下步骤:步骤s1:对数据流进行实时分析;步骤s2:插入判断代码,收集程序在运行过程中的上下文信息;步骤s3:在socket输入输出流上进行字节码操作插桩hook拦截处理;步骤s4:对发送的脏数据进行拦截并重定向至其他页面。2.如权利要求1所述的在应用安全测试过程中防止脏数据落地的方法,其特征在于:在步骤s1中,通过jdk instrumentation api,加载agent用于监测运行在jvm上的应用程序,在程序启动前修改类的定义,基于应用程序获取当前应用的上下文,在应用运行中实时分析数据流。3.如权利要求1所述的在应用安全测试过程中防止脏数据落地的方法,其特征在于:在步骤s2中,在确保测试程序原有的逻辑完整的基础上,插入判断代码。4.如权利要求1所述的在应用安全测试过程中防止脏数据落地的方法,其特征在于:在步骤s2中,通过在java中底层函数插桩hook,通过jdk instrument和字节码操作工具bytebuddy修改的方式插入判断代码。5.如权利要求1所述的在应用安全测试过程中防止脏数据落地的方法,其特征在于:在步骤s3中,通过数据落地组件和网路层发送数据包的方式进行拦截处理。6.如权利要求1所述的在应用安全测试过程中防止脏数据落地的方法,其特征在于:步骤s4还包括如下步骤:步骤s41:在执行lorder class操作前,及在字节码载入java环境之前,通过自定义的transformer的transform方法进行转换,以实现添加hook点class的流程;步骤s42:对已经载入的class经过transformer的transform方法执行字节码的操作,以增加相应的hook点;步骤s43:在hook点处,在采用socketoutputstream输出流调用方法write之前,进行是否为安全测试执行重放的数据进行判断,若是,则对该hook点进行截断并重定向至其他页面展示。

技术总结
本发明涉及数据安全技术领域,尤其涉及一种在应用安全测试过程中防止脏数据落地的方法,包括如下步骤:步骤S1:对数据流进行实时分析;步骤S2:插入判断代码,收集程序在运行过程中的上下文信息;步骤S3:在Socket输入输出流上进行字节码操作插桩hook拦截处理;步骤S4:对发送的脏数据进行拦截并重定向至其他页面。对发送的脏数据进行拦截并重定向至其他页面。对发送的脏数据进行拦截并重定向至其他页面。


技术研发人员:刘强
受保护的技术使用者:深圳前海环融联易信息科技服务有限公司
技术研发日:2021.12.28
技术公布日:2022/3/4
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1