发明内容
本发明的目的在于提供一种安全测试方法、装置及电子设备,以缓解现有技术中存在的测试脏数据大量产生的技术问题。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提供了一种安全测试方法,应用于应用服务端,包括:接收扫描器服务端发送的安全测试请求;所述应用服务端包括安全检测代理模块;所述安全检测代理模块对所述安全测试请求进行拦截,并对所述安全测试请求进行安全测试,获得安全测试结果;基于所述安全测试结果,确定所述安全测试请求是否存在安全问题;如果所述安全测试请求存在安全问题,则将所述安全测试结果发送至所述扫描器服务端。
在一些实施方式中,所述应用服务端还包括请求接收器。
在一些实施方式中,还包括:所述请求接收器获取安全测试请求数据;所述应用服务端基于所述安全测试请求在代码层对所述安全测试请求进行处理,生成请求参数。
在一些实施方式中,还包括:所述安全检测代理模块基于所述请求参数,确定所述安全测试请求的数据类型;当所述安全测试请求的数据类型为攻击检测请求数据时,则对安全测试请求数据进行数据模型匹配。
在一些实施方式中,还包括:如果所述数据模型匹配失败,则拦截所述安全测试请求,并向所述扫描器服务端发送安全问题标记。
在一些实施方式中,还包括:所述扫描器服务端接收所述安全问题标记,并记录相应的安全问题。
在一些实施方式中,还包括:当所述安全测试请求的数据类型不是攻击检测请求数据时,则将所述安全测试请求数据存储于所述应用服务端。
第二方面,本发明实施例提供了一种安全测试装置,包括:扫描器服务端和应用服务端;所述应用服务端包括安全检测代理模块;其中,所述扫描器服务端用于向应用服务端发送安全测试请求;所述安全检测代理模块,用于对所述安全测试请求进行拦截,并对所述安全测试请求进行安全测试,获得安全测试结果;所述安全检测代理模块,还用于基于所述安全测试结果,确定所述安全测试请求是否存在安全问题;如果所述安全测试请求存在安全问题,则将所述安全测试结果发送至所述扫描器服务端。
第三方面,本发明实施例提供了一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一项所述的方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述第一方面任一项所述的方法。
本发明提供了一种安全测试方法、装置及电子设备,该方法应用于应用服务端,包括:接收扫描器服务端发送的安全测试请求;应用服务端包括安全检测代理模块;该安全检测代理模块对上述安全测试请求进行拦截,并对安全测试请求进行安全测试,获得安全测试结果;基于安全测试结果,确定安全测试请求是否存在安全问题;如果安全测试请求存在安全问题,则将安全测试结果发送至扫描器服务端。通过上述方法可以缓解现有技术中存在的测试脏数据大量产生的技术问题,实现减少数据库损耗,降低安全测试对功能测试影响的技术效果。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
随着信息安全逐渐融入于应用系统,应用安全测试己是应用系统开发过程中不可或缺的一部分,当前应用安全测试方法一般通过扫描器或客户端向应用服务端发送大量带有安全测试数据的请求,服务端接收到测试请求后进行正常执行,执行完成后向客户端或扫描器返回请求执行的结果。客户端或扫描器通过服务端的响应来判断应用是否存在漏洞。但是,当前应用安全测试过程中会对应用数据库的数据进行大量操作,导致产生大量的测试脏数据或删除重要数据,严重影响测试账户的正常使用。
基于此,本发明实施例提供了一种安全测试方法、装置及电子设备,以缓解现有技术中存在的测试脏数据大量产生的技术问题。为便于对本实施例进行理解,首先对本发明实施例所公开的一种安全测试方法进行详细介绍,参见图1所示的一种安全测试方法的流程示意图,该方法应用于应用服务器端,该应用服务器可以包括应用数据库和安全检测代理模块。该方法可以由电子设备执行,主要包括以下步骤S110至步骤S130:
S110:接收扫描器服务端发送的安全测试请求;
其中,该应用服务端也可以是应用系统服务器,包括安全检测代理模块。在一些实施方式中,应用服务端还可以包括请求接收器。
该安全测试方法基于应用/服务器计算架构(S/A架构)应用,该S/A架构能将各种应用软件集中部署在服务器(群)上,通过独有的RAP协议(Remote ApplicationProtocol),即可让客户端快速安全的执行服务器上的应用软件。该扫描器服务端可以用于向应用系统发送各类安全测试请求体;该安全检测代理模块植入在应用系统服务器中,由安全检测代理模块进行请求漏洞检测,并将测试结果反馈给扫描器服务端。
当该方法应用于扫描器服务端时,在该步骤之前还包括:将安全测试数据输入扫描器服务端。即,安全测试过程由扫描器服务端或手工对被测试网站进行安全测试,数据即为正常的http/https请求数据源,经过应用系统后被发送到应用服务器端的安全检测代理模块。
S120:安全检测代理模块对安全测试请求进行拦截,并对安全测试请求进行安全测试,获得安全测试结果;
其中,该安全测试请求可以是数据包,例如安全测试请求包,一般该类安全测试请求是与数据库相关的请求,为了降低脏数据的产生,可以对该类请求进行拦截和安全检测。除了安全测试请求外,扫描器服务端还会发送正常数据请求,如查询、登陆等数据请求。
在一些实施方式中,安全测试请求被应用系统获取进行代码层次的处理后,再执行步骤S120,即进一步处理数据之前进行扫描器安全检测代理模块检测,判断该系统应用层是否存在安全问题,并且将包含测试pyload的请求进行拦截记录。
S130:基于安全测试结果,确定安全测试请求是否存在安全问题;如果安全测试请求存在安全问题,则将安全测试结果发送至扫描器服务端。对安全测试请求进行安全测试可以是对安全测试请求数据进行安全模型匹配,安全模型匹配后,存在安全问题则向扫描器服务端中响应测试问题;不存在安全问题,由应用系统进一步处理数据。
本申请实施例提供的安全测试方法在应用服务端植入漏洞检测的安全检测代理模块,通过该模块对与数据库相关的测试请求进行拦截以及进一步的安全检测,避免对数据库进行操作,从而降低测试脏数据的产生,实现减少数据库损耗,降低安全测试对功能测试影响的技术效果。
在一些实施例中,应用服务端还包括请求接收器。参见图2,该安全测试方法还可以包括:
S210,请求接收器获取安全测试请求数据;
S220,应用服务端基于安全测试请求在代码层对安全测试请求进行处理,生成请求参数;
S230,安全检测代理模块基于请求参数,确定安全测试请求的数据类型;
S240,当安全测试请求的数据类型为攻击检测请求数据时,则对安全测试请求数据进行数据模型匹配;
S250,如果数据模型匹配失败,则拦截安全测试请求,并向扫描器服务端发送安全问题标记;
S260,扫描器服务端接收安全问题标记,并记录相应的安全问题;
S270,当安全测试请求的数据类型不是攻击检测请求数据时,则将安全测试请求数据存储于应用服务端。
作为一个具体的示例,该方法包括:
(1)获取浏览器客户端正常的应用数据请求包,根据请求建立与浏览器客户端请求对应的操作模型;
(2)获取客户端请求数据包,应用系统解析处理请求数据,生成数据库语句;
(3)应用系统接入扫描器安全检测代理模块,对应用系统解析生成的相关数据处理语句进行模型检测;
(4)模型匹配成功,数据转交给应用系统进一步处理;
(5)模型匹配失败后,拦截该请求记录日志,并向扫描器服务端响应安全问题标记;
(6)扫描器服务端接收到对应相应后记录安全问题。
上述实施例提供的安全测试方法包括在应用服务端植入漏洞检测的安全检测代理模块,该安全检测代理模块可以接收扫描器服务端发送的请求,并且判断该请求为正常数据库请求还是安全测试请求;如果是正常数据库请求,例如查询、登陆等请求,可以直接进入相应流程执行;如果是安全测试请求,则将该请求拦截;该安全检测代理模块进一步判断拦截的安全测试请求造成的服务是否存在安全问题,如果存在安全问题,则将向扫描器服务端发送存在安全问题的标记,并丢弃该安全测试请求包;如果不存在安全问题,将直接丢弃该安全测试请求包。
本发明提供了一种安全测试方法,该方法应用于应用服务端,包括:接收扫描器服务端发送的安全测试请求;应用服务端包括安全检测代理模块;该安全检测代理模块对上述安全测试请求进行拦截,并对安全测试请求进行安全测试,获得安全测试结果;基于安全测试结果,确定安全测试请求是否存在安全问题;如果安全测试请求存在安全问题,则将安全测试结果发送至扫描器服务端。通过上述方法可以缓解现有技术中存在的测试脏数据大量产生的技术问题,实现减少数据库损耗,降低安全测试对功能测试影响的技术效果。
本发明实施例还提供了一种安全测试装置,参照图3,该装置包括:扫描器服务端310和应用服务端320;应用服务端包括安全检测代理模块330;
其中,扫描器服务端310用于向应用服务端320发送安全测试请求;
安全检测代理模块330,用于对安全测试请求进行拦截,并对所述安全测试请求进行安全测试,获得安全测试结果;
安全检测代理模块330,还用于基于所述安全测试结果,确定所述安全测试请求是否存在安全问题;如果所述安全测试请求存在安全问题,则将所述安全测试结果发送至所述扫描器服务端。
本申请实施例所提供的安全测试装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本申请实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。本申请实施例提供的安全测试装置与上述实施例提供的安全测试方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本申请实施例还提供了一种电子设备,具体的,该电子设备包括处理器和存储装置;存储装置上存储有计算机程序,计算机程序在被所述处理器运行时执行如上所述实施方式的任一项所述的方法。
图4为本申请实施例提供的一种电子设备的结构示意图,该电子设备400包括:处理器40,存储器41,总线42和通信接口43,所述处理器40、通信接口43和存储器41通过总线42连接;处理器40用于执行存储器41中存储的可执行模块,例如计算机程序。
其中,存储器41可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口43(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线42可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器41用于存储程序,所述处理器40在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器40中,或者由处理器40实现。
处理器40可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器40中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器40可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器41,处理器40读取存储器41中的信息,结合其硬件完成上述方法的步骤。
对应于上述方法,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述方法的步骤。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。