发明内容
有鉴于此,本申请的目的在于提供一种应用系统漏洞的检测、方法、存储介质及电子设备,通过测试接口收集装置在待检测应用系统的浏览器运行至少一个预设服务流程时,将该预设服务流程包括的多个接口对应的多个接口请求信息进行统一收集,发送至漏洞扫描服务器进行漏洞扫描,减少了触发每个接口的漏洞扫描流程的时间,提升了测试效率,同时可以在运行至少一个预设服务流程时,收集与每一个预设服务流程相关的多个接口,提升了漏洞扫描流程对相关接口的覆盖率,有助于提高对应用系统漏洞扫描的准确性。
本申请实施例提供了一种应用系统漏洞的检测系统,所述检测包括测试接口收集装置以及漏洞扫描服务器;其中,
测试接口收集装置,当检测到待检测应用系统的浏览器运行至少一个预设服务流程时,获取每一个预设服务流程中包括的多个接口请求信息,并将获取到的多个接口请求信息发送至所述漏洞扫描服务器;其中,所述接口请求信息中包括该接口的位置以及接口所要请求的参数信息;发送至漏洞扫描服务器的多个接口请求信息是属于与校验服务流程一致的预设服务流程中的多个接口请求信息;
漏洞扫描服务器,滤除接收到的多个接口请求信息中的重复请求信息,并在接收到扫描指令后,对已滤除重复请求信息的多个接口请求信息进行扫描,确定出待检测应用系统的漏洞信息。
进一步的,所述测试接口收集装置包括采集模块、过滤模块以及加密模块;
采集模块,当检测到待检测应用系统的浏览器运行至少一个预设服务流程时,检测所述待检测应用系统的收集接口是否为开启状态,若所述待检测应用系统的收集接口为开启状态,收集获取每一个预设服务流程中包括的多个接口请求信息,并将获取到的多个接口请求信息发送至所述过滤模块;
过滤模块,确定每一个接口请求信息所属的预设服务流程是否与校验服务流程一致,将与所述校验服务流程一致的预设服务流程对应的多个接口请求信息发送至所述加密模块;
加密模块,加密每一个接口请求信息,并将加密后的多个接口信息发送至所述漏洞扫描服务器。
进一步的,所述漏洞扫描服务器包括解密模块以及去重模块;
解密模块,解密接收到每一个接口请求信息,并将每一个解密后的接口请求信息发送至所述去重模块;
去重模块,确定每一个接口请求信息中包括的接口标识信息以及域名系统标识信息,若检测到存储的历史接口请求信息中存在任一历史接口请求信息中的历史接口标识信息以及历史域名系统标识信息,与接收到的接口请求信息的接口标识信息以及域名系统标识信息对应一致,滤除接收到的该接口请求信息。
进一步的,所述漏洞扫描服务器还包括存储模块,用于存储经过去重模块滤除接收到的多个接口请求信息中的重复请求信息后的至少一个接口请求信息。
进一步的,所述漏洞扫描服务器还包括漏洞扫描模块,所述漏洞扫描模块用于:
在接收到扫描指令后,识别扫描指令中指示扫描的域名系统标识信息,从所述存储模块中获取该域名系统下的多个接口请求信息,并对获取到的多个接口请求信息进行扫描,确定出漏洞接口。
进一步的,针对于接收到的每一个接口请求信息,所述漏洞扫描模块用于通过以下步骤确定漏洞接口:
检测所述接口请求信息中携带的参数信息是否与预设漏洞异常信息相匹配;
若检测所述接口请求信息中携带的参数信息与预设漏洞异常信息相匹配,确定所述接口请求信息异常,并确定与所述接口请求信息对应的接口为漏洞接口。
本申请实施例还提供了应用系统漏洞检测的检测方法,所述检测方法包括:
控制测试接口收集装置当检测到待检测应用系统的浏览器运行至少一个预设服务流程时,获取每一个预设服务流程中包括的多个接口请求信息,并将获取到的多个接口请求信息发送至所述漏洞扫描服务器;其中,所述接口请求信息中包括该接口的位置以及接口所要请求的参数信息;发送至漏洞扫描服务器的多个接口请求信息是属于与校验服务流程一致的预设服务流程中的多个接口请求信息;
控制漏洞扫描服务器滤除接收到的多个接口请求信息中的重复请求信息,并在接收到扫描指令后,对已滤除重复请求信息的多个接口请求信息进行扫描,确定出待检测应用系统的漏洞信息。
进一步的,所述控制测试接口收集装置,当检测到待检测应用系统的浏览器运行至少一个预设服务流程时,获取每一个预设服务流程中包括的多个接口请求信息,并将获取到的多个接口请求信息发送至所述漏洞扫描服务器,包括:
控制采集模块当检测到待检测应用系统的浏览器运行至少一个预设服务流程时,检测所述待检测应用系统的接口收集插件是否为开启状态,若所述待检测应用系统的接口收集插件为开启状态,收集获取每一个服务流程中包括的多个接口请求信息,并将获取到的多个接口请求信息发送至过滤模块;
控制过滤模块确定每一个接口请求信息所属的预设服务流程是否与校验服务流程一致,将与所述校验服务流程一致的预设服务流程对应的多个接口请求信息发送至加密模块;
控制加密模块加密每一个接口请求信息,并将加密后的多个接口信息发送至所述漏洞扫描服务器。
本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述的应用系统漏洞检测的检测方法的步骤。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述的应用系统漏洞检测的检测方法的步骤。
本申请实施例提供的应用系统漏洞的检测系统、方法、存储介质及电子设备,测试接口收集装置在检测到待检测应用系统的浏览器运行至少一个预设服务流程时,获取每一个预设服务流程中包括的多个接口请求信息,并将获取到的多个接口请求信息发送至漏洞扫描服务器,漏洞扫描服务器滤除接收到的多个接口请求信息中的重复请求信息,并在接收到扫描指令后,对已经滤除重复请求的多个接口请求信息进行扫描,确定出待检测应用系统的漏洞信息,从而减少了触发每个接口的漏洞扫描流程的时间,提升了测试效率,同时,还可以提升漏洞扫描流程对相关接口的覆盖率,有助于提高对应用系统漏洞扫描的准确性。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的每个其他实施例,都属于本申请保护的范围。
首先,对本申请可适用的应用场景进行介绍。本申请可应用于安全测试技术领域,随着科技的发展,为了信息的保密性和安全性,信息安全逐渐融入到应用系统中,应用安全测试逐渐成为应用系统开发过程以及应用过程中不可或缺的一部分,为了保证应用系统的正常运行,对应用安全系统的测试尤为重要。
经研究发现,现阶段,在对安全测试过程中都是通过测试人员结合测试工具,逐一点击被检测应用系统相关功能流程上的相关接口,然后接口在被点击后请求进行漏洞扫描,在处理过程中需要对每个相关接口进行点击才能触发漏洞扫描流程,测试效率低,同时,由于应用系统相关功能流程上的相关接口数量较多,在进行点击时,可能存在漏点击的过程,漏洞扫描流程对相关接口的覆盖率也较低,对应用系统漏洞扫描的准确性也较低。
基于此,本申请实施例提供了一种应用系统漏洞的检测系统,以降低数据传输的丢包率,减少数据传输时延。
进一步的,对本申请公开的一种应用系统漏洞的检测系统100进行介绍。
请参阅图1,图1为本申请实施例所提供的一种应用系统漏洞的检测系统100的结构示意图。如图1所示,所述检测系统100包括测试接口收集装置110以及漏洞扫描服务器120;
在检测到应用系统的浏览器运行至少一个预设服务流程时,测试接口收集装置110获取在每一个预设服务流程中预先设置的多个接口请求信息,并将获取到得多个接口请求信息发送至漏洞扫描服务器120;漏洞扫描服务器120在接收到测试接口收集装置110发送的多个接口请求信息后,滤除多个接口请求信息中重复的接口请求信息,并在接收到扫描指令后对相应的接口请求信息进行扫描,从而确定出待检测应用系统中存在的漏洞以及漏洞信息。
具体的,测试接口收集装置110,当检测到待检测应用系统的浏览器运行至少一个预设服务流程时,获取每一个预设服务流程中包括的多个接口请求信息,并将获取到的多个接口请求信息发送至所述漏洞扫描服务器120。其中,所述接口请求信息中包括该接口的位置以及接口所要请求的参数信息;发送至漏洞扫描服务器的多个接口请求信息是属于与校验服务流程一致的预设服务流程中的多个接口请求信息;
这里,测试接口收集装置110可以是以插件的形式设置于待检测应用系统中包括的各个浏览器终端,以收集浏览器中各个预设服务流程中预设的多个接口中得接口数据。
其中,测试接口收集装置110可以设置在浏览器终端的软件机器人或者软件agent,将agent设置在浏览器终端,当agent处于开启状态时,一旦浏览器运行相应的预设服务流程时,agent就将接收设置在该预设服务流程中的多个接口对应的多个接口请求信息。
这里,运行浏览器的人员可以是测试阶段的测试人员,也可以是系统应用过程中的用户,即对于待检测应用系统中浏览器运行的至少一个预设服务流程,可以是在测试阶段对于接口测试时的多个预设服务流程,也可以是应用系统正常运行时,各个浏览器可以提供的多个预设服务流程。
这里,接口请求信息可以包括请求协议、互联网协议地址(IP)、端口号、接口地址、接口参数以及参数值等内容,在接口请求信息中可以反映出该接口的位置以及接口所要请求的参数信息等。
其中,对于接口的请求,可以通过超文本传输(HTTP)协议进行传输,在HTTP协议中包括多个统一资源定位系统(URL),每个URL就是一个接口。
这里,测试接口收集装置110收集多个接口请求信息发送至漏洞扫描服务器120,可以是获取到一个浏览器浏览周期过程中的全部预设服务流程包括的全部接口请求信息一起发送;还可以是将一个预设服务流程包括的全部接口请求信息一起发送。
进一步的,漏洞扫描服务器120,滤除接收到的多个接口请求信息中的重复请求信息,并在接收到扫描指令后,对已滤除重复请求信息的多个接口请求信息进行扫描,确定出待检测应用系统的漏洞信息。
这里,漏洞扫描服务器120在接收到测试接口收集装置110发送的多个接口请求信息后,需要确定在历史扫描过程中是否存在和当前接收到的接口请求信息重复的历史接口请求信息,若存在,则需要滤除接收到的多个接口请求信息中的重复请求信息,并保存滤除去重后的多个接口信息,在接收到扫描指令后,对接口请求信息进行扫描,以确定出待检测应用系统中存在的漏洞以及漏洞信息。
进一步的,请参阅图2,图2为本申请实施例所提供的测试接口收集装置110的结构示意图,如图2中所示,所述测试接口收集装置110包括采集模块111、过滤模块112以及加密模块113;
具体的,采集模块111,当检测到待检测应用系统的浏览器正在运行至少一个预设服务流程时,检测所述待检测应用系统的接口收集插件是否为开启状态,若所述待检测应用系统的接口收集插件为开启状态,收集每一个预设服务流程中包括的多个接口请求信息,并将获取到的多个接口请求信息发送至所述过滤模块112;
这里,当检测到待检测应用系统的浏览器开始运行预设服务流程时,检测待检测应用系统的接口收集插件是否处于开启状态,若是接口收集插件处于开启状态,收集在运行的至少一个预设服务流程中每一个预设服务流程中的多个接口请求信息,并将获取到的多个接口请求信息发送至过滤模块112。
这里,在浏览器处设置测试接口收集装置110时,测试接口收集装置110是否可以进行接口信息的收集,取决于待检测应用系统的收集接口的状态,当待检测应用系统的收集接口为开启状态时,测试接口收集装置110中的采集模块111获取预设服务流程中的多个接口中每一个接口的接口请求信息。
这里,对于待检测应用系统的收集接口的状态是可以进行调节的,在需要进行接口检测时,可以开启收集接口,测试接口收集装置110中的采集模块111获取预设服务流程中的多个接口中每一个接口的接口请求信息;若是不需要进行接口检测时,可以将收集接口关闭。
这里,在进行多个接口请求信息的收集时,还需要获取标注每个接口请求信息所属的系统的域名以及接口名称,以对每条接口请求信息进行区分。
其中,接口名称可以是接口在设置时的具体名称,也可以是接口在设置时的编号等,即是对接口的唯一标识信息以用来区分每个接口以及每条接口信息。
进一步的,过滤模块112确定每一个接口请求信息所属的预设服务流程是否与校验服务流程一致,将与所述校验服务流程一致的预设服务流程对应的多个接口请求信息发送至所述加密模块113。
这里,在对接口漏洞进行验证时,每次的验证可能是针对于一个或者几个特定的预设服务流程的验证,在向漏洞扫描服务器120发送接口请求信息时,需要预先确定采集模块111采集的多个接口请求信息是否均是针对于需要进行校验的校验服务流程中的接口,若是存在不是校验服务流程的接口请求信息,将这部分接口请求信息发送至漏洞扫描服务器120,这种旁路引流的处理方式,可以减轻数据传输以及漏洞扫描服务器120的数据处理压力,有助于提高接口检测的效率。
这里,对于每一个接口请求信息所属的预设服务流程与校验服务流程是否一致的验证比较过程,可以是比较预设服务流程与校验服务流程的流程标识信息是否一致,还可以是比较预设服务流程与校验服务流程的流程过程是否一致,还可以是比较预设服务流程与校验服务流程所提供的服务或实现的功能是否一致等可以验证预设服务流程与校验服务流程一致性的方式,在本申请中对预设服务流程与校验服务流程是否一致的验证方式不做具体限定。
进一步的,加密模块113,加密每一个接口请求信息,并将加密后的多个接口信息发送至所述漏洞扫描服务器120。
这里,为了保证数据在传输过程中的安全性,在测试接口收集装置110向漏洞扫描服务器120发送多个接口请求信息时,需要对每个接口请求信息进行加密。
其中,加密方式可以是采用高级加密标准(Advanced Encryption Standard,AES)加密方式;还可以是采用公钥与私钥的组合加密方式对传输的多个接口请求信息进行加密,但是无论采用何种加密方式,测试接口收集装置110与漏洞扫描服务器120之间的加密方式是事先约定好的,以便在对多个接口请求信息的发送请求过程中,可以准确地对接口请求信息进行相应的加解密处理。
进一步的,请参阅图3,图3为本申请实施例所提供的漏洞扫描服务器120的结构示意图之一,如图3中所示,所述漏洞扫描服务器120包括解密模块121以及去重模块122。
具体的,解密模块121解密接收到每一个接口请求信息,并将每一个解密后的接口请求信息发送至所述去重模块122。
这里,漏洞扫描服务器120在接收到测试接口收集装置110发送的加密后的多个接口请求信息后,通过漏洞扫描服务器120中的解密模块121进行解密,得到可以处理的多个接口请求信息。
这里,解密模块121在进行解密过程中,可能会存在解密失败的情况,这时,需要解密模块121对本申请的解密规则进行查验,确定是否是解密规则有误或是解密方式的差异导致解密失败,还可以向测试接口收集装置110的加密模块113进行反馈,请求加密模块113查验是否是对多个接口请求信息的加密方式存在误差。
这里,若是确定是解密模块121的操作误差导致的解密失败,需要更正解密规则或是解密方式,再更正结束后再重新对加密后的多个接口请求信息进行解密;若是确定出是加密模块113的加密失误,请求加密模块113再次对多个接口请求信息进行加密,解密模块121再次对重新接收到的加密后的多个接口请求信息进行解密。
进一步的,去重模块122确定每一个接口请求信息中包括的接口标识信息以及域名系统标识信息,若检测到存储的历史接口请求信息中存在任一历史接口请求信息中的历史接口标识信息以及历史域名系统标识信息,与接收到的接口请求信息的接口标识信息以及域名系统标识信息对应一致,滤除接收到的该接口请求信息。
这里,根据接收到的每个接口请求信息,确定出可以指示该接口请求信息的接口标识的接口标识信息以及域名系统标识信息,并检测该接口请求信息的接口标识信息以及域名系统标识信息是否与存储的历史接口请求信息中的任一历史接口标识信息以及历史域名系统标识信息对应一致,若存在对应一致的接口请求信息,确定该接口请求信息与存储在漏洞扫描服务器120中的历史接口请求信息是重复的,为了保证对接口进行扫描查验过程中,每个域名系统的每个接口下对应的接口请求信息只有一个,以减轻漏洞扫描服务器120的处理压力,对于重复的接口请求信息进行滤波处理,即将重复的接口请求信息滤除。
这里,对于接口标识信息与历史接口标识信息一致性的检测,可以是通过接口的名称是否与历史接口的名称一致来确定,也可以是接口对应的编号与历史接口的编号是否一致;对于域名系统标识信息与历史域名系统标识信息一致性的检测,可以是通过域名系统的名称是否与历史域名系统的名称一致来确定,也可以是域名系统对应的编号与历史域名系统的编号是否一致。
进一步的,请参阅图4,图4为本申请实施例所提供的漏洞扫描服务器120的结构示意图之二,如图4所示,所述还包括存储模块123,所述存储模块123用于:存储经过去重模块122滤除接收到的多个接口请求信息中的重复请求信息后的至少一个接口请求信息。
这里,在漏洞扫描服务器120接收到测试接口收集装置110发送的多个接口请求信息后,会先将接收到的接口请求信息集中存储在文本文件中,在接收到扫描指令时,从存储模块123中根据域名系统对应的文本文件取出相应的多个接口请求信息,进行接口请求。
这里,对于经过去重模块滤除接收到的多个接口请求信息中的重复请求信息后的至少一个接口请求信息,可以是以对象简谱(JavaScript Object Notation,json)的格式进行存储,并且在存储时,一个域名系统下的接口请求信息存储在一个文本文件中,在进行数据存储时,一个域名系统对应一个文本文件。
进一步的,如图4所示,所述漏洞扫描服务器120还包括漏洞扫描模块124,所述漏洞扫描模块124用于:
在接收到扫描指令后,识别扫描指令中指示扫描的域名系统标识信息,从所述存储模块123中获取该域名系统下的多个接口请求信息,并对获取到的多个接口请求信息进行扫描,确定出漏洞接口,并生成相应的测试报告。
这里,在接收到扫描指令后,识别扫描指令指示需要进行扫描的域名系统标识信息,在确定出需要扫描的域名系统后,从存储模块123中获取与该域名系统对应的文本文件中包括的多个接口请求信息,对该域名系统下的每一个接口请求信息进行扫描,确定出存在漏洞的接口。
这里,对于域名系统的扫描,是对域名系统中包括的全部接口请求信息进行扫描,即扫描是一次性地,避免了对每一个分散开的接口请求信息,进行扫描的时间消耗,提升了漏洞扫描的效率。
这里,测试报告的内容可以包括存在漏洞接口的接口信息(接口位置、接口测试功能)、漏洞类型以及针对于相应漏洞的处理方案等。
进一步的,针对于接收到的每一个接口请求信息,所述漏洞扫描模块124用于通过以下步骤确定漏洞接口:检测所述接口请求信息中携带的参数信息是否与预设漏洞异常信息相匹配;若检测所述接口请求信息中携带的参数信息与预设漏洞异常信息相匹配,确定所述接口请求信息异常,并确定与所述接口请求信息对应的接口为漏洞接口。
这里,在进行扫描之前会事先确定异常接口的检验规则,在对接口请求信息进行扫描,当确定出接口请求信息的参数信息与事先确定异常接口的检验规则的预设漏洞异常信息相匹配时,确定该接口请求信息命中了事先确定异常接口的检验规则,这时,确定该接口请求信息异常,并确定与该接口请求信息对应的接口为漏洞接口。
下面将结合具体应用过程阐述对应用系统漏洞的检测流程,请同时参阅图5至图7,图5为数据在网络中传输流程的示意图;图6为浏览器端测试接口收集装置工作流程的示意图;图7为漏洞扫描服务器中数据处理流程示意图。如图5所示,功能测试人员接口请求数据经过测试接口收集装置110发送至漏洞扫描服务器120,并且在收集接口请求信息的过程中,不会影响系统的正常的功能测试过程;漏洞扫描服务器120获取多个接口请求信息,将多个接口请求信息去重后,以json格式存储在漏洞扫描服务器中,漏洞扫描服务器进程调用相应的多个接口请求信息进行扫描测试,并在扫描测试完成后生成扫描报告;如图6所示,浏览器安装测试接口收集装置110后,进行相关过滤配置,配置的系统域名为即将被检测的域名系统;请求接口被命中后进行对称加密后发送至漏洞扫描服务器120;如图7所示,漏洞扫描服务器120接收到多个接口请求信息后进行解密去重;去重过程根据接口进行去重,即同域名同接口进有一个接口请求信息,将去重后的接口请求信息以json格式存储与文本文件中,每个域名保存一个文件,扫描进行启动后获取请求体数据进行漏洞安全测试,并在测试完成后生成测试报告。
本申请实施例提供的一种应用系统漏洞的检测系统,测试接口收集装置在检测到待检测应用系统的浏览器运行至少一个预设服务流程时,获取每一个预设服务流程中包括的多个接口请求信息,并将获取到的多个接口请求信息发送至漏洞扫描服务器,漏洞扫描服务器滤除接收到的多个接口请求信息中的重复请求信息,并在接收到扫描指令后,对已经滤除重复请求的多个接口请求信息进行扫描,确定出待检测应用系统的漏洞信息,从而减少了触发每个接口的漏洞扫描流程的时间,提升了测试效率,同时,还可以提升漏洞扫描流程对相关接口的覆盖率,有助于提高对应用系统漏洞扫描的准确性。
请参阅图8,图8为本申请实施例所提供的一种应用系统漏洞检测的检测方法的流程图。如图8中所示,本申请实施例提供的应用系统漏洞检测的检测方法,包括:
S801、控制测试接口收集装置当检测到待检测应用系统的浏览器运行至少一个预设服务流程时,获取每一个预设服务流程中包括的多个接口请求信息,并将获取到的多个接口请求信息发送至漏洞扫描服务器;其中,所述接口请求信息中包括该接口的位置以及接口所要请求的参数信息;发送至漏洞扫描服务器的多个接口请求信息是属于与校验服务流程一致的预设服务流程中的多个接口请求信息。
该步骤中,控制测试接口收集装置在检测到应用系统的浏览器运行至少一个预设服务流程时,测试接口收集装置获取在每一个预设服务流程中预先设置的多个接口请求信息,并将获取到得多个接口请求信息发送至漏洞扫描服务器;漏洞扫描服务器在接收到测试接口收集装置发送的多个接口请求信息后,滤除多个接口请求信息中重复的接口请求信息,并在接收到扫描指令后对相应的接口请求信息进行扫描,从而确定出待检测应用系统中存在的漏洞以及漏洞信息。
这里,测试接口收集装置,当检测到待检测应用系统的浏览器运行至少一个预设服务流程时,获取每一个预设服务流程中包括的多个接口请求信息,并将获取到的多个接口请求信息发送至所述漏洞扫描服务器。
这里,运行浏览器的人员可以是测试阶段的测试人员,也可以是系统应用过程中的用户,即对于待检测应用系统中浏览器运行的至少一个预设服务流程,可以是在测试阶段对于接口测试时的多个预设服务流程,也可以是应用系统正常运行时,各个浏览器可以提供的多个预设服务流程。
这里,接口请求信息可以包括请求协议、互联网协议地址(IP)、端口号、接口地址、接口参数以及参数值等内容,在接口请求信息中可以反映出该接口的位置以及接口所要请求的参数信息等。
S802、控制漏洞扫描服务器滤除接收到的多个接口请求信息中的重复请求信息,并在接收到扫描指令后,对已滤除重复请求信息的多个接口请求信息进行扫描,确定出待检测应用系统的漏洞信息。
该步骤中,控制漏洞服务器在接收到测试接口收集装置发送的多个接口请求信息后,需要确定在历史扫描过程中是否存在和当前接收到的接口请求信息重复的历史接口请求信息,若存在,则需要滤除接收到的多个接口请求信息中的重复请求信息,并保存滤除去重后的多个接口信息,在接收到扫描指令后,对接口请求信息进行扫描,以确定出待检测应用系统中存在的漏洞以及漏洞信息。
进一步的,所述控制测试接口收集装置,当检测到待检测应用系统的浏览器运行至少一个预设服务流程时,获取每一个预设服务流程中包括的多个接口请求信息,并将获取到的多个接口请求信息发送至所述漏洞扫描服务器,包括:
控制采集模块当检测到待检测应用系统的浏览器运行至少一个预设服务流程时,检测所述待检测应用系统的接口收集插件是否为开启状态,若所述待检测应用系统的接口收集插件为开启状态,收集获取每一个服务流程中包括的多个接口请求信息,并将获取到的多个接口请求信息发送至过滤模块;
控制过滤模块确定每一个接口请求信息所属的预设服务流程是否与校验服务流程一致,将与所述校验服务流程一致的预设服务流程对应的多个接口请求信息发送至加密模块;
控制加密模块加密每一个接口请求信息,并将加密后的多个接口信息发送至所述漏洞扫描服务器。
这里,控制采集模块当检测到待检测应用系统的浏览器开始运行预设服务流程时,检测待检测应用系统的接口收集插件是否处于开启状态,若是接口收集插件处于开启状态,收集在运行的至少一个预设服务流程中每一个预设服务流程中的多个接口请求信息,并将获取到的多个接口请求信息发送至过滤模块。
这里,在对接口漏洞进行验证时,每次的验证可能是针对于一个或者几个特定的预设服务流程的验证,在向漏洞扫描服务器发送接口请求信息时,需要预先确定采集模块采集的多个接口请求信息是否均是针对于需要进行校验的校验服务流程中的接口,若是存在不是校验服务流程的接口请求信息,将将这部分接口请求信息发送至漏洞扫描服务器,这种旁路引流的处理方式,可以减轻数据传输以及漏洞扫描服务器的数据处理压力,有助于提高接口检测的效率。
这里,为了保证数据在传输过程中的安全性,在测试接口收集装置向漏洞扫描服务器发送多个接口请求信息时,需要对每个接口请求信息进行加密。
其中,加密方式可以是采用高级加密标准(Advanced Encryption Standard,AES)加密方式;还可以是采用公钥与私钥的组合加密方式对传输的多个接口请求信息进行加密,但是无论采用何种加密方式,测试接口收集装置与漏洞扫描服务器之间的加密方式是事先约定好的,以便在对多个接口请求信息的发送请求过程中,可以准确地对接口请求信息进行相应的加解密处理。
进一步的,通过以下步骤滤除多个接口请求信息中的重复请求信息:控制解密接收到每一个接口请求信息,并将每一个解密后的接口请求信息发送至所述去重模块;并控制去重模块确定每一个接口请求信息中包括的接口标识信息以及域名系统标识信息,若检测到存储的历史接口请求信息中存在任一历史接口请求信息中的历史接口标识信息以及历史域名系统标识信息,与接收到的接口请求信息的接口标识信息以及域名系统标识信息对应一致,滤除接收到的该接口请求信息。
这里,解密模块在进行解密过程中,可能会存在解密失败的情况,这时,需要解密模块对本申请的解密规则进行查验,确定是否是解密规则有误或是解密方式的差异导致解密失败,还可以向测试接口收集装置的加密模块进行反馈,请求加密模块查验是否是对多个接口请求信息的加密方式存在误差。
这里,根据接收到的每个接口请求信息,确定出可以指示该接口请求信息的接口标识的接口标识信息以及域名系统标识信息,并检测该接口请求信息的接口标识信息以及域名系统标识信息是否与存储的历史接口请求信息中的任一历史接口标识信息以及历史域名系统标识信息对应一致,若存在对应一致的接口请求信息,确定该接口请求信息与存储在漏洞扫描服务器中的历史接口请求信息是重复的,为了保证对接口进行扫描查验过程中,每个域名系统的每个接口下对应的接口请求信息只有一个,以减轻漏洞扫描服务器的处理压力,对于重复的接口请求信息进行滤波处理,即将重复的接口请求信息滤除。
进一步的,在所述控制去重模块确定每一个接口请求信息中包括的接口标识信息以及域名系统标识信息,若检测到存储的历史接口请求信息中存在任一历史接口请求信息中的历史接口标识信息以及历史域名系统标识信息,与接收到的接口请求信息的接口标识信息以及域名系统标识信息对应一致,滤除接收到的该接口请求信息之后,所述检测方法还包括:
控制存储模块存储经过去重模块滤除接收到的多个接口请求信息中的重复请求信息后的至少一个接口请求信息。
这里,对于经过去重模块滤除接收到的多个接口请求信息中的重复请求信息后的至少一个接口请求信息,可以是以对象简谱(JavaScript Object Notation,json)的格式进行存储,并且在存储时,一个域名系统下的接口请求信息存储在一个文本文件中,在进行数据存储时,一个域名系统对应一个文本文件。
进一步的,在所述控制去重模块确定每一个接口请求信息中包括的接口标识信息以及域名系统标识信息,若检测到存储的历史接口请求信息中存在任一历史接口请求信息中的历史接口标识信息以及历史域名系统标识信息,与接收到的接口请求信息的接口标识信息以及域名系统标识信息对应一致,滤除接收到的该接口请求信息之后,所述检测方法还包括:
控制漏洞扫描模块在接收到扫描指令后,识别扫描指令中指示扫描的域名系统标识信息,从所述存储模块中获取该域名系统下的多个接口请求信息,并对获取到的多个接口请求信息进行扫描,确定出漏洞接口。
这里,在接收到扫描指令后,识别扫描指令指示需要进行扫描的域名系统标识信息,在确定出需要扫描的域名系统后,从存储模块中获取与该域名系统对应的文本文件中包括的多个接口请求信息,对该域名系统下的每一个接口请求信息进行扫描,确定出存在漏洞的接口。
进一步的,针对于接收到的每一个接口请求信息,通过以下步骤确定漏洞接口:
检测所述接口请求信息中携带的参数信息是否与预设漏洞异常信息相匹配;
若检测所述接口请求信息中携带的参数信息与预设漏洞异常信息相匹配,确定所述接口请求信息异常,并确定与所述接口请求信息对应的接口为漏洞接口。
这里,在进行扫描之前会事先确定异常接口的检验规则,在对接口请求信息进行扫描,当确定出接口请求信息的参数信息与事先确定异常接口的检验规则的预设漏洞异常信息相匹配时,确定该接口请求信息命中了事先确定异常接口的检验规则,这时,确定该接口请求信息异常,并确定与该接口请求信息对应的接口为漏洞接口。
本申请实施例提供的一种应用系统漏洞的检测方法,测试接口收集装置在检测到待检测应用系统的浏览器运行至少一个预设服务流程时,获取每一个预设服务流程中包括的多个接口请求信息,并将获取到的多个接口请求信息发送至漏洞扫描服务器,漏洞扫描服务器滤除接收到的多个接口请求信息中的重复请求信息,并在接收到扫描指令后,对已经滤除重复请求的多个接口请求信息进行扫描,确定出待检测应用系统的漏洞信息,从而减少了触发每个接口的漏洞扫描流程的时间,提升了测试效率,同时,还可以提升漏洞扫描流程对相关接口的覆盖率,有助于提高对应用系统漏洞扫描的准确性。
请参阅图9,图9为本申请实施例所提供的一种电子设备的结构示意图。如图9中所示,所述电子设备900包括处理器910、存储器920和总线930。
所述存储器920存储有所述处理器910可执行的机器可读指令,当电子设备900运行时,所述处理器910与所述存储器920之间通过总线930通信,所述机器可读指令被所述处理器910执行时,可以执行如上述图8所示方法实施例中的应用系统漏洞的检测方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时可以执行如上述图8所示方法实施例中的系统漏洞的检测方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。