一种拦截脏数据的方法和系统技术方案

技术编号:31748746 阅读:12 留言:0更新日期:2022-01-05 16:29
本发明专利技术涉及计算机软件安全测试技术领域中的一种拦截脏数据的方法和系统,包括以下步骤:启动漏洞检测任务,加载对应用程序以及应用程序与数据库通信的底层代码;获取底层代码并编辑检测逻辑代码,得到底层检测代码;获取应用程序的原始请求,通过主动IAST发起重放请求,应用程序响应重放请求得到数据流;应用程序与数据库进行网络通信,触发底层检测代码启动;根据底层检测代码,检测数据流的结构化查询语言的类型;构造异常结构化查询语言,并发送给数据库;数据库返回报错信息到应用程序,并停止数据流写入数据库,具有拦截脏数据写入数据库、不影响用户请求以及查询类型的结构化查询语言正常执行的优点,突破了脏数据被携带写入数据库的瓶颈。写入数据库的瓶颈。写入数据库的瓶颈。

【技术实现步骤摘要】
一种拦截脏数据的方法和系统


[0001]本专利技术涉及计算机软件安全测试
,具体涉及一种拦截脏数据的方法和系统。

技术介绍

[0002]随着安全生命周期(简称SDL)、安全敏捷框架(简称DevSecOps)在企业的落地实施,交互式应用安全测试技术(简称IAST)作为评定网络安全领域的前十技术之一,融合了动态安全测试技术(简称DAST)和静态安全测试技术(简称SAST)的优势,具有高检出率、低误报率的优势,被越来越多的用户认可,并纳入SDL、DevSecOps流程中。
[0003]IAST的实现模式较多,其中最具代表性的是主动插桩模式和被动插桩模式,相较于被动插桩模式,主动插桩模式在运行时字节码插桩的基础上,基于原始请求构造重放请求验证漏洞,而应用程序的重要数据绝大部分是保存在数据库的,当重放请求被应用程序处理时,可能造成非用户预期的数据写入数据库,即脏数据写入数据库。
[0004]现有实现的主动IAST数据污染处理方案为基于socket底层函数判断重放请求,抛出异常的方案,但该方案会导致数据库连接耗尽后用户请求失败、查询类型的结构化查询语言(简称SQL)无法正常执行(查询类型的SQL不会造成数据污染,大部分SQL注入漏洞是需要执行查询类型的SQL的)等问题,这两项致命问题导致该方案实际无法落地。

技术实现思路

[0005]本专利技术针对现有技术中的缺点,提供了一种拦截脏数据的方法和系统,具有拦截脏数据写入数据库、不影响用户请求以及查询类型的结构化查询语言正常执行的优点,突破了应用程序处理重放请求时会携带脏数据写入数据库的瓶颈。
[0006]为了解决上述技术问题,本专利技术通过下述技术方案得以解决:
[0007]一种拦截脏数据的方法,包括以下步骤:
[0008]启动应用程序的漏洞检测任务,同时对应用程序以及应用程序与数据库通信的底层代码进行加载;
[0009]获取所述底层代码并编辑检测逻辑代码,将所述检测逻辑代码编入底层代码中,得到底层检测代码;
[0010]获取应用程序的原始请求,并通过主动IAST发起重放请求,应用程序响应重放请求;
[0011]获取应用程序响应重放请求时的数据流,应用程序携带数据流与数据库进行网络通信,并触发所述底层检测代码启动执行程序;
[0012]根据所述底层检测代码,检测数据流的结构化查询语言的类型是否为增删改类型;
[0013]当数据流的结构化查询语言为增删改类型时,构造异常结构化查询语言,并发送给数据库;
[0014]根据接收到的异常结构化查询语言,返回报错信息到应用程序,并根据报错信息停止数据流写入数据库。
[0015]可选的,获取应用程序的原始请求,并通过主动IAST发起重放请求,应用程序响应重放请求,包括以下步骤:
[0016]根据所述原始请求,主动IAST构造重放请求,并将重放请求发送至应用程序;
[0017]应用程序接收所述重放请求,并形成数据流。
[0018]可选的,所述检测数据流的结构化查询语言的类型是否为增删改类型,包括以下步骤:
[0019]根据重放请求的头部标签,判断重放请求是否为主动IAST的重放请求,若是,则解析数据流并获取数据流的结构化查询语言;若否,则停止底层检测代码的执行程序;
[0020]根据所述结构化查询语言的buffer数据结果,判断结构化查询语言是否为增删改类型,若是,则构造异常结构化查询语言;若否,则停止底层检测代码的执行程序。
[0021]可选的,构造异常结构化查询语言,包括以下步骤:
[0022]获取增删改类型的结构化查询语言对应的数据流的所有位数数值,并修改一个或多个位数数值,得到异常结构化查询语言。
[0023]可选的,所述buffer数据结果为结构化查询语言传输至数据库时转化为buffer类型时得到。
[0024]可选的,得到所述报错信息,包括以下步骤:
[0025]获取异常结构化查询语言的语法,并定义为错误语法;
[0026]将错误语法加载至返回信息,得到报错信息。
[0027]一种拦截脏数据的系统,包括请求单元、获取单元、编辑单元、检测单元、反馈单元和拦截单元;
[0028]所述请求单元用于主动IAST在应用程序启动漏洞检测时,发起重放请求;
[0029]所述获取单元用于获取应用程序与数据库通信的底层代码、应用程序的原始请求、数据流的结构化查询语言和异常结构化查询语言的语法;
[0030]所述编辑单元用于编辑检测逻辑代码,并将所述检测逻辑代码编入底层代码;
[0031]所述检测单元用于检测数据流的结构化查询语言的类型是否为增删改类型;
[0032]所述反馈单元用于返回报错信息到应用程序;
[0033]所述拦截单元用于停止含有脏数据的数据流写入数据库。
[0034]可选的,所述编辑单元还用于修改增删改类型的结构化查询语言对应的数据流的一个或多个位数数值。
[0035]可选的,还包括处理器和存储介质,所述存储介质中存储所述系统执行上述任意一项所述的一种拦截脏数据的方法。
[0036]一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,执行上述任意一项所述的拦截脏数据的方法。
[0037]采用本专利技术提供的技术方案,与现有技术相比,具有如下有益效果:
[0038]通过将检测逻辑代码编入应用程序与数据库通信的底层代码,得到底层检测代码,从而使得当应用程序接收到重放请求时,对重放请求进行检测,同时通过进一步检测结构化查询语言的类型,判断数据流中是否存在脏数据,同时在检测到存在脏数据时,通过修
改结构化查询语言,构造异常结构化查询语言的方法,向应用程序反馈报错信息,并根据报错信息,实现截断含有脏数据的数据流写入数据库的目的;与现有的不构造异常结构化语言,直接抛出含有脏数据异常信息相比,构造异常结构化查询语言最终得到的报错信息不会影响应用程序与数据库的正常连接。
附图说明
[0039]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0040]图1为本专利技术实施例提出的一种拦截脏数据的方法和系统的流程图。
具体实施方式
[0041]下面结合实施例对本专利技术做进一步的详细说明,以下实施例是对本专利技术的解释而本专利技术并不局限于以下实施例。
[0042]如图1所示,一种拦截脏数据的方法,包括以下步骤:启动应用程序的漏洞检测任务,同时对应用程序以及应用程序与数据库通信的底层代码进行加载;获取底层代码并编辑检测逻辑代码,将检测逻辑代码编入底层代码中,得到底层检测代码。
[0043]对于java语言来讲,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种拦截脏数据的方法,其特征在于,包括以下步骤:启动应用程序的漏洞检测任务,同时对应用程序以及应用程序与数据库通信的底层代码进行加载;获取所述底层代码并编辑检测逻辑代码,将所述检测逻辑代码编入底层代码中,得到底层检测代码;获取应用程序的原始请求,并通过主动IAST发起重放请求,应用程序响应重放请求;获取应用程序响应重放请求时的数据流,应用程序携带数据流与数据库进行网络通信,并触发所述底层检测代码启动执行程序;根据所述底层检测代码,检测数据流的结构化查询语言的类型是否为增删改类型;当数据流的结构化查询语言为增删改类型时,构造异常结构化查询语言,并发送给数据库;根据接收到的异常结构化查询语言,返回报错信息到应用程序,并根据报错信息停止数据流写入数据库。2.根据权利要求1所述的一种拦截脏数据的方法,获取应用程序的原始请求,并通过主动IAST发起重放请求,应用程序响应重放请求,包括以下步骤:根据所述原始请求,主动IAST构造重放请求,并将重放请求发送至应用程序;应用程序接收所述重放请求,并形成数据流。3.根据权利要求2所述的一种拦截脏数据的方法,所述检测数据流的结构化查询语言的类型是否为增删改类型,包括以下步骤:根据重放请求的头部标签,判断重放请求是否为主动IAST的重放请求,若是,则解析数据流并获取数据流的结构化查询语言;若否,则停止底层检测代码的执行程序;根据所述结构化查询语言的buffer数据结果,判断结构化查询语言是否为增删改类型,若是,则构造异常结构化查询语言;若否,则停止底层检测代码的执行程序。4.根据权利要求1所述的一种拦截脏数据的方法,构造异常结构化查询语言,包括以下步骤:获取增删改类型的结构化查...

【专利技术属性】
技术研发人员:吴凤娟
申请(专利权)人:杭州默安科技有限公司
类型:发明
国别省市:

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

1