本发明涉及安全测试系统,具体涉及一种基于数据库注入测试的安全测试系统。
背景技术:
随着网络和计算机软件信息技术的发展,客户端/服务器(b/s)模式得到了越来越广泛的应用,网络安全越来越受到大家的重视和关注,相关的安全测试也越来越必不可少。b/s模式中经常出现用户与后台数据库服务器之间进行数据交互的情形,即用户在客户端的网页上通过表单输入并提交数据,服务端的应用程序根据用户提交的数据构造sql语句,提交到数据库服务器进行处理,并向用户返回处理结果。在开发b/s模式的应用程序时,许多开发者忽略了对用户输入数据的合法性进行判断,使应用程序存在安全隐患。攻击者提交一段数据库查询代码,根据程序返回的结果,窃取相关的数据,即为数据库注入攻击技术,也称sql注入(sqlinjection)攻击。
在安全测试中,数据库注入测试都会做为一个使用频繁的常用安全测试方法,测试人员可以通过该方法模拟黑客进行攻击,验证被测网址是否对于用户提交的参数未做过滤就直接放到sql语句中执行,导致参数中的特殊字符打破了sql语句原有逻辑,而被黑客利用该漏洞执行了任意sql语句,从而提高被测网站的安全等级。但是从数据库访问行为本身看,无论是用户的正常访问,还是攻击者的注入攻击,都表现为向数据库服务器提交并运行sql语句,这就导致虽然网络安全产品可以记录用户对数据库的访问信息,但是无法区分一条数据库访问记录所代表的访问行为是正常的访问还是恶意的注入攻击。这样当攻击者实施注入攻击时,安全产品只能记录攻击者的行为,无法及时检测出攻击并实施阻断,只能通过事后分析的方式对攻击进行识别。另外,攻击者的访问记录被淹没在大量的访问记录中,安全管理人员只能通过经验进行识别,给事后分析带来了极大的不便。
很多云端业务系统已经部署了waf或已经在云端部署了数据校验的代码功能,由于waf或云端业务安全代码对很多常见特殊字符进行了过滤,导致基于数据库注入的特殊数据库构造语句不能被正确的解析而在云端业务系统生成数据库语句并提交到后台数据库进行合法的执行,造成数据库注入测试无法成功。
现有的数据库注入测试语句,要么是提供了基本的特殊字符,要么只有简单的数据库构造语句,只能对没有waf或者无数据库注入过滤机制的业务系统进行测试。这些语句很多过于简单,且增加了安全测试的时间,以现在比较流行的数据库注入工具啊d、明小子为例,数据库注入测试语句仅仅是简单的单引号,and,or等语句;由于waf的存在,通常这些特殊字都会被转义掉,无法让云端业务系统最后生成的数据库语句在提交到数据库后合法的执行,导致了数据库注入测试的局限性,也给安全测试工作带来了很多的不便。
技术实现要素:
发明目的:本申请的目的在于提供一种基于数据库注入测试的安全测试系统,解决现有技术中数据库注入测试精确度和智能性低的缺陷。
技术方案:本发明提供了一种基于数据库注入测试的安全测试系统,包括:语音请求录入模块、语音识别模块、文字请求录入模块、文字识别模块、响应监听模块、消息识别模块、信息收集模块、信息发送模块和客户端;其中,
语音请求录入模块被配置为接收语音数据注入请求,并将其传输至语音识别模块以供识别,得到第一注入请求;
文字请求录入模块被配置为接收文字数据注入请求,并将其传输至文字识别模块以供识别,得到第二注入请求;
响应监听模块的输入分别与语音识别模块及文字识别模块的输出连接,被配置为对第一注入请求和/或第二注入请求以及其响应信息进行辅助监听;
消息识别模块被配置为识别第一注入请求和第二注入请求及二者的响应信息是否异常,并将识别结果发送至信息收集模块;
信息收集模块与信息发送模块分别被配置为对接收的信息进行存储和并向客户端发送。
进一步地,消息识别模块包括安全智能单元、安全监测单元、安全信息处理单元、危险监测单元和危险信息处理单元;
安全智能单元被配置为根据大数据算法生成的比对信息判定接收的注入请求及对应的响应信息是否安全,并将对应的安全信息传输至安全监测单元,经对应的危险信息传输至危险监测单元;
安全监测单元被配置为根据大数据算法生成的安全信息对安全信息进行监测并传输至安全信息处理单元,以供安全信息处理单元处理后传输至信息收集模块;
危险监测单元被配置为根据大数据算法生成的危险信息对危险信息进行检测并传输至危险信息处理单元,以供危险信息处理单元处理后传输至信息收集模块。
进一步地,信息收集模块包括依次连接的信息库单元、云端被测业务单元、大数据分析单元和大数据处理单元;
信息库单元被配置为对来源于消息识别模块的信息进行统计存储;
云端被测业务单元被配置为从信息库单元获取数据,并根据检测需求将待测数据发送至大数据分析单元。
进一步地,大数据分析单元和大数据处理单元对接收到的数据进行分析处理后发送至信息发送模块。
进一步地,信息发送模块包括编辑单元和无线网络传输单元,编辑单元对来源于信息收集模块的信息进行编辑之后通过无线网络传输单元发送至客户端。
进一步地,客户端可采用pc端或移动终端中的一种或多种。
进一步地,语音请求录入模块采用语音接收芯片,用于接收并将用户发出的语音数据注入请求传输至语音识别模块。
进一步地,文字请求录入模块可采用外接的键盘,用于接收并将用户发出的文字数据注入请求传输至文字识别模块。
有益效果:与现有技术相比,本发明通过利用大数据对注入请求进行分析,能够实现自动识别正常数据库访问和注入攻击,并对注入攻击进行阻断,从而保护了数据库服务器的安全。另外,可以在检测过程中以将信息传输给客户端,反馈危险信息。
附图说明
图1为本申请的安全测试系统的系统结构框图;
图2为本申请的消息识别模块的结构框图;
图3为本申请的信息收集模块的结构框图;
图4为本申请的信息发送模块的结构框图。
具体实施方式
下面结合附图和实施例对本发明做进一步描述:
本发明提供了一种基于数据库注入测试的安全测试系统,如图1所示,包括:语音请求录入模块1、语音识别模块3、文字请求录入模块2、文字识别模块4、响应监听模块5、消息识别模块6、信息收集模块7、信息发送模块8和客户端9。
其中,语音请求录入模块1被配置为接收语音数据注入请求,并将其传输至语音识别模块3以供识别,得到第一注入请求;文字请求录入模块2被配置为接收文字数据注入请求,并将其传输至文字识别模块4以供识别,得到第二注入请求。用户可以根据注入需求选择注入方式。在本实施例中,语音请求录入模块1可采用语音接收芯片,用于接收并将用户发出的语音数据注入请求传输至语音识别模块,以便对语音数据注入请求进行识别;文字请求录入模块2可采用外接的键盘,用于接收并将用户发出的文字数据注入请求传输至文字识别模块,以便对文字数据注入请求进行识别。
响应监听模块5的输入分别与语音识别模块3及文字识别模块4的输出连接,被配置为对第一注入请求和/或第二注入请求以及其响应信息进行辅助监听。
消息识别模块6被配置为识别第一注入请求和第二注入请求及二者的响应信息是否异常,并将识别结果发送至信息收集模块7。具体地,消息识别模块6包括安全智能单元601、安全监测单元602、安全信息处理单元603、危险监测单元604和危险信息处理单元605;安全智能单元601被配置为根据大数据算法生成的比对信息判定接收的注入请求及对应的响应信息是否安全,并将对应的安全信息传输至安全监测单元602,经对应的危险信息传输至危险监测单元604;安全监测单元602被配置为根据大数据算法生成的安全信息对安全信息进行监测并传输至安全信息处理单元603,以供安全信息处理单元603处理后传输至信息收集模块7;危险监测单元604被配置为根据大数据算法生成的危险信息对危险信息进行检测并传输至危险信息处理单元605,以供危险信息处理单元605处理后传输至信息收集模块7。
信息收集模块7与信息发送模块8分别被配置为对接收的信息进行存储和并向客户端9发送。具体地,信息收集模块7包括依次连接的信息库单元701、云端被测业务单元702、大数据分析单元703和大数据处理单元704;信息库单元701被配置为对来源于消息识别模块6的信息进行统计存储;云端被测业务单元702被配置为从信息库单元701获取数据,并根据检测需求将待测数据发送至大数据分析单元703。大数据分析单元703和大数据处理单元704对接收到的数据进行分析处理后发送至信息发送模块8。
信息发送模块8包括编辑单元801和无线网络传输单元802,编辑单元801对来源于信息收集模块7的信息进行编辑之后通过无线网络传输单元802发送至客户端9。
可选地,客户端9可采用pc端或移动终端中的一种或多种,用户通过客户端可以及时获知检测过程中出现的异常信息或危险信息。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。