掌桥专利:专业的专利平台
掌桥专利
首页

请求数据实时导入漏洞扫描器的系统、方法、设备及介质

文献发布时间:2023-06-19 11:26:00


请求数据实时导入漏洞扫描器的系统、方法、设备及介质

技术领域

本发明涉及网络风险监测技术领域,尤其涉及一种请求数据实时导入漏洞扫描器的系统、方法、设备及介质。

背景技术

传统的Web安全漏洞扫描器是由用户提供目标Web服务器地址,扫描器通过自身内置的网页爬虫和参数字典列表生成HTTP请求数据,再将其发送给目标Web服务器,分析目标Web服务器返回的HTTP响应数据,以检测安全漏洞。随着技术的发展,当前的Web应用程序,绝大部分有意义的功能,都需要经过身份认证之后,再配合特定范围内的参数值,以供正常访问和使用。为了对目标Web服务器接收的,且已经过身份认证并带有合理参数值的真实HTTP请求数据进行安全漏洞检测,目前的web安全漏洞扫描器提供了被动扫描功能,即扫描器先收集目标Web服务器亦收、已经过身份认证并带有合理参数值的真实HTTP请求数据,再以此数据为基础,检测安全漏洞,从而提升效率和可靠性。

当前常用两种方案来实现被动扫描:第一种方案为Web安全漏洞扫描器先开启获取HTTP请求的代理服务监听端口,即用户在访问目标Web服务器之前,将扫描器提供的代理服务地址和端口手动设置在客户端浏览器中,以使用户通过浏览器向目标Web服务器发送HTTP请求时,请求数据先到达扫描器。第二种方案通过Web服务器将自身接收到的来自客户端浏览器的HTTP请求数据记录到访问日志中,再将访问日志的内容发送给Web安全漏洞扫描器,用户无需在客户端浏览器做任何额外的设置。

第一种方案中,由于Web安全漏洞扫描器需要先开启获取HTTP请求的代理服务监听端口,因此需要广大终端用户,即目标Web应用的使用者手动修改各自浏览器的代理服务设置,然而,代理服务器通常部署于内部网络中,外部用户无法访问到,此外,要求数以万计的用户做额外配置也不合理的。第二种方案中,由于Web服务器将接收的HTTP请求数据记录到访问日志中,而针对每一个HTTP请求,配置的Web服务器的访问日志只会保留少量的数据,因此,若要满足Web安全漏洞扫描器的需求,则需将Web服务器的访问日志配置修改为保留HTTP请求所包含的全部数据,而这又会增大Web服务器的运行压力以及访问日志存储空间的需求。

发明内容

本发明提供一种请求数据实时导入漏洞扫描器的系统、方法、设备及介质,用以解决现有技术中需要修改浏览器配置或服务器配置才可实现漏洞扫描器的被动监听功能的缺陷,实现在不修改配置的情况下,将Web服务器接收到的HTTP请求数据,实现完整、实时的传输至Web安全漏洞扫描器以及数据流向的单向性及独立性。

本发明提供一种请求数据实时导入漏洞扫描器的系统,包括:服务器,基于接收的请求数据进行复制,生成请求数据副本;数据转发模块,监听所述服务器并获取其内的请求数据副本,判断所述请求数据副本是否存在自定义标志,若存在,则丢弃所述请求数据副本,否则,对所述请求数据副本添加自定义标志并发送至安全漏洞扫描器。

根据本发明提供一种的请求数据实时导入漏洞扫描器的系统,数据转发模块包括:端口监测子模块,用于监听所述服务器和所述端口监测子模块之间实现数据传输的第一端口,并基于所述第一端口接收所述服务器生成的请求数据副本;网络监控子模块,用于监听所述端口监测子模块和所述网络监控子模块之间实现数据传输的第二端口,基于所述第二端口接收所述端口监测子模块内的请求数据副本,判断所述请求数据副本是否存在自定义标志,并对未添加所述自定义标志的请求数据副本添加自定义标志以发送至安全漏洞扫描器。

根据本发明提供的一种请求数据实时导入漏洞扫描器的系统,所述端口监测子模块包括:第一监听单元,监听流经所述第一端口的数据;第一接收单元,根据所述第一监听单元监听的流经第一端口的数据,接收所述服务器生成的请求数据副本;

所述网络监控子模块,包括:第二监听单元,监听所述端口监测子模块;第二接收单元,用于接收所述端口监测子模块基于第二端口输出的请求数据副本;判断单元,判断所述第二接收单元接收的请求数据副本是否存在自定义标志;自定义单元,基于所述判断单元判断的不存在自定义标志的请求数据副本添加自定义标志,并发送至安全漏洞扫描器。

根据本发明提供的一种请求数据实时导入漏洞扫描器的系统,所述第二监听单元包括第一监听子单元和第二监听子单元,其中:所述第一监听子单元,用于监听所述第一监听单元监听的第一端口的流经数据;所述第二监听子单元,用于监听所述第二端口的流经数据。

根据本发明提供的一种请求数据实时导入漏洞扫描器的系统,在所述基于监听实时获取所述请求数据副本之前,包括:基于监听需求,开启所述数据转发模块的监听实例;

在所述对所述请求数据副本添加自定义标志并发送至安全漏洞扫描器之前,包括:开启所述安全漏洞扫描器的被动代理监听功能,以接收添加自定义标志后的请求数据副本。

根据本发明提供的一种请求数据实时导入漏洞扫描器的系统,所述服务器,包括:第二接收单元,接收用户的请求数据;复制单元,基于所述第二接收单元接收的请求数据进行复制,以生成请求数据副本,并基于第一端口将所述请求数据副本发送至所述数据转发模块。

根据本发明提供的一种请求数据实时导入漏洞扫描器的系统,所述服务器,还包括:数据处理单元,基于接收的请求数据进行解析并返回响应数据。

本发明还提供一种请求数据实时导入漏洞扫描器的方法,包括:基于接收的请求数据进行复制,生成请求数据副本;监听并获取生成的请求数据副本,判断所述请求数据副本是否存在自定义标志,若存在,则丢弃所述请求数据副本,否则,对所述请求数据副本添加自定义标志并发送至安全漏洞扫描器。

本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述请求数据实时导入漏洞扫描器的方法的步骤。

本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述请求数据实时导入漏洞扫描器的方法的步骤。

本发明提供的请求数据实时导入漏洞扫描器的系统、方法、设备及介质,通过对请求数据进行复制,并基于监听主动获取生成的请求数据副本,使得数据传输链的后一节点无需依赖前一节点主动传输数据,并且使得前一节点无需等待后一节点返回响应数据,从而实现数据流向的单向性及独立性,避免中间传输节点出现问题时造成整个数据传输链的崩溃;另外,通过对已添加自定义标志的请求数据副本丢弃,对未添加自定义标志的请求数据副本添加自定义标志并转发至安全漏洞扫描器实施后续漏洞扫描,以通过引入自定义标志进行请求数据副本的重复性判断,有效识别请求数据副本是否重复、冗余,并将重复、冗余的请求数据副本丢弃。

附图说明

为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明提供的请求数据实时导入漏洞扫描器的系统的结构示意图;

图2是本发明提供的请求数据实时导入漏洞扫描器的方法的流程示意图;

图3是本发明提供的电子设备的结构示意图;

附图标记:

1:服务器;2:数据转发模块;31:处理器;32:通信接口;33:存储器;34:通信总线。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1示出了一种请求数据实时导入漏洞扫描器的系统的结构示意图,参考图1,该系统包括:

服务器1,基于接收的请求数据进行复制,生成请求数据副本;

数据转发模块2,监听服务器并获取其内的请求数据副本,判断请求数据副本是否存在自定义标志,若存在,则丢弃请求数据副本,否则,对请求数据副本添加自定义标志并发送至安全漏洞扫描器。

应当注意,服务器1和数据转发模块2位于第一主机内,安全漏洞扫描器位于第二主机内。为使第二主机的操作系统支持运行安全漏洞扫描器,比如Xray扫描器,第二主机的操作系统可以为社区企业操作CentOS系统、以桌面应用为主的基于尤尼斯(UNIX)操作系统发展而来的一种克隆操作系统(Linux操作系统)或微软操作系统等,其中,以桌面应用为主的Linux操作系统可以为Ubuntu系统,微软操作系统可以为Windows 7或Windows 10;第一主机的操作系统可参照第二主机的操作系统进行设置,本实施例中第一主机的操作系统可以为CentOS系统,另外,第一主机的操作系统可以与第二主机的操作系统相同。

在本实施例中,服务器1,包括:第二接收单元,接收用户的请求数据;复制单元,基于第二接收单元接收的请求数据进行复制,以生成请求数据副本,并将请求数据副本发送至数据转发模块。需要说明的是,请求数据可以为超文本传输协议请求数据,即HTTP请求数据,此时,客户端通过浏览器发起HTTP请求至服务器1的指定端口,服务器1基于指定端口监听客户端的HTTP请求数据以接收HTTP请求数据,并基于接收的HTTP请求数据返回一个状态及响应内容至客户端,因此,为了不影响服务器1正常接收请求数据后对其进行正常处理,服务器1还包括:数据处理单元,基于接收的请求数据进行解析并返回响应数据。另外,复制单元在将生成的请求数据副本发送至数据转发时,通过第一端口传输请求数据副本。

应当注意,服务器1可采用超文本传输协议网络服务器,比如Nginx服务器,该服务器可以实现反向代理以及作为负载均衡器使用,便于实现将Nginx服务器自身接收到的来自客户端浏览器发起的HTTP请求数据复制并转发至指定位置,比如,转发至本实施例中的数据转发模块2中的指定位置,此外,Nginx服务器在完成向第一端口转发HTTP请求数据副本之后,无需等待响应数据。

一般的,HTTP请求数据包括请求行、请求头部、空行和请求主体组成,在利用Nginx服务器时,需要预先对Nginx服务器进行配置,包括:配置需匹配的请求头部的请求地址,以接收特定的HTTP请求数据;基于匹配的请求头部的请求地址,执行复制HTTP请求数据的操作,并在复制HTTP请求数据时连同请求主体一并复制;配置访问,以使Nginx仅接收内部访问;配置接收的请求数据的发送目标地址;根据实际需求设置HTTP的版本号;开启对请求头部的发送;开启对请求主体的发送;设置链接超时等待时间,具体时间可根据实际设计需求设置,比如为20毫秒;设置读取响应的超时等待时间;保留请求数据中主机名的原始值;设置当前事物完成之后关闭链接。应当注意,本实施例中的Nginx无需等待响应数据,因此可将读取响应的超时等待时间设置为0毫秒,在其他实施例中,可根据实际设计需求设置超时等待时间。

数据转发模块2包括:端口监测子模块,用于监听服务器1和端口监测子模块之间实现数据传输的第一端口,并基于第一端口接收服务器1生成的请求数据副本;网络监控子模块,用于监听端口监测子模块和网络监控子模块之间实现数据传输的第二端口,基于第二端口接收端口监测子模块内的请求数据副本,判断请求数据副本是否存在自定义标志,并对未添加所述自定义标志的请求数据副本添加自定义标志以发送至安全漏洞扫描器。

本实施例中,通过端口监测子模块以及网络监控子模块的监听功能,使得端口监测子模块无需依赖服务器1主动传输数据以及网络监控子模块无需依赖端口监测子模块主动传输数据,服务器1无需等待端口监测子模块返回响应数据,以及端口监测子模块无需等待网络监控子模块返回响应数据,从而确保数据流向的单向性以及独立性,避免中间传输节点出现问题时造成整个数据传输链的崩溃。

需要说明的是,端口监测子模块包括可从命令行跨网络读取和写入数据的联网实用程序,比如Ncat,当HTTP请求数据副本到达Ncat监听的第一端口时,Ncat无需对请求数据副本进行处理。另外,网络监控子模块包括用于捕获网络数据流量的软件,比如Gor,Gor实时监听Ncat监听的第一端口的网络流量数据,以确保HTTP请求数据副本到达Ncat监听的第一端口的同时,Gor获取该HTTP请求数据副本。

具体而言,网络监控子模块,包括:第二监听单元,监听端口监测子模块;第二接收单元,用于接收端口监测子模块基于第二端口输出的请求数据副本;判断单元,判断第二接收单元接收的请求数据副本是否存在自定义标志;自定义单元,基于判断单元判断的不存在自定义标志的请求数据副本添加自定义标志,并发送至安全漏洞扫描器。

更进一步地说,为了实现端口监测子模块与网络监控子模块同步接收服务器1转发至第一端口的HTTP请求数据副本,以进一步确保端口监测子模块与网络监控子模块之间数据流向的单向性及独立性,第二监听单元包括第一监听子单元和第二监听子单元,其中:第一监听子单元,用于监听第一监听单元监听的第一端口的流经数据;第二监听子单元,用于监听第二端口的流经数据。

由于服务器在配置文件时指定了请求头部的请求地址,当请求数据的请求头部与该请求地址匹配时,可通过服务器进行复制转发,若请求数据副本基于后续转发后重新回到服务器内,易造成重复循环处理,因此,在第二接收单元接收端口监测子模块基于第二端口输出的请求数据副本之后,还需要通过自定义单元对初次处理的请求数据副本添加自定义标志,判断单元根据是否包含自定义标志对已处理的请求数据进行筛除。

另外,为实现服务器1与端口监测子模块之间数据流向的单向性以及独立性,端口监测子模块包括:第一监听单元,监听流经第一端口的数据;第一接收单元,根据第一监听单元监听的流经第一端口的数据,接收服务器生成的请求数据副本。

在基于监听实时获取请求数据副本之前,包括:基于监听需求,开启数据转发模块2的监听实例。本实施例中,为了实现整个数据传输链中数据流向的单向性及独立性,需提前通过第一主机安装Ncat软件、下载并解压缩Gor软件,并利用第一主机实现Ncat对第一端口的监听,以及利用第一主机实现Gor对Ncat监听的第一端口的监听、Gor对第二端口的监听。

在将添加自定义标志后请求数据副本发送至安全漏洞扫描器之前,包括:开启安全漏洞扫描器的被动代理监听功能,以接收添加自定义标志后的请求数据副本。在添加自定义标志后的请求数据副本后,利用第二主机的第三端口运行安全漏洞扫描器的被动代理程序,以接收自网络监控子模块Gor转发的请求数据副本,并以此请求数据副本为基础构造扫描探测请求,并将构造的扫描探测请求与服务器Nginx进行交换,从而进行安全漏洞检查。另外,还需要基于第二主机预先生成数字证书和秘钥,以便于后续利用生成的数字证书和秘钥将构造的扫描探测请求与服务器Nginx进行交换。

综上所述,本发明实施例通过对请求数据进行复制,并基于监听主动获取生成的请求数据副本,使得数据传输链的后一节点无需依赖前一节点主动传输数据,并且使得前一节点无需等待后一节点返回响应数据,从而实现数据流向的单向性及独立性,避免中间传输节点出现问题时造成整个数据传输链的崩溃;另外,通过对已添加自定义标志的请求数据副本丢弃,对未添加自定义标志的请求数据副本添加自定义标志并转发至安全漏洞扫描器实施后续漏洞扫描,以通过引入自定义标志进行请求数据副本的重复性判断,有效识别请求数据副本是否重复、冗余,并将重复、冗余的请求数据副本丢弃。

下面对本发明提供的请求数据实时导入漏洞扫描器的方法进行描述,下文描述的请求数据实时导入漏洞扫描器的方法与上文描述的请求数据实时导入漏洞扫描器的方法的系统可相互对应参照。

下面结合图2描述本发明的请求数据实时导入漏洞扫描器的方法,该方法包括:

S01,基于接收的请求数据进行复制,生成请求数据副本;

S02,监听并获取生成的请求数据副本,判断请求数据副本是否存在自定义标志,若存在,则丢弃请求数据副本,否则,对请求数据副本添加自定义标志并发送至安全漏洞扫描器。

需要说明的是,本说明书中的S0N不代表请求数据实时导入漏洞扫描器的方法的先后顺序,下面具体描述本发明的请求数据实时导入漏洞扫描器的方法。

步骤S01,基于接收的请求数据进行复制,生成请求数据副本。

首先,在基于接收的请求数据进行复制之前,配置第一主机和第二主机的操作系统,利用第一主机安装数据转发模块,包括端口监测子模块Ncat以及网络监控子模块Gor,并使Ncat监听服务器与Ncat之间传输数据的第一端口,使Gor监听Ncat监听的第一端口的流经数据,以及使Gor监听Ncat与Gor之间传输数据的第二端口的流经数据,从而便于后续实施该方法时,Ncat无需依赖服务器主动传输数据,Gor无需依赖Ncat主动传输数据,利用第二主机开启安全漏洞扫描器的被动代理监听功能,生成数字证书和秘钥。另外,还需要对Nginx服务器进行配置,具体可参照系统实施例所述,此处不做赘述。

随后,Nginx服务器接收请求数据,并对其进行原有的正常处理过程,比如对其进行解析并返回响应数据;请求数据在进行正常处理过程之外,还通过Nginx服务器对该请求数据进行复制,以生成请求数据副本,并将请求数据副本转发至Ncat监听的第一端口,具体可参考系统实施例所述,此处不做赘述。

步骤S02,监听并获取生成的请求数据副本,判断请求数据副本是否存在自定义标志,若存在,则丢弃请求数据副本,否则,对请求数据副本添加自定义标志并发送至安全漏洞扫描器。

在本实施例中,利用Ncat监听的第一端口接收Nginx服务器转发的请求数据副本;通过Gor监听Ncat监听的第一端口的流经数据以及Gor监听的第二端口的流经数据,使Gor与Ncat同时接收请求数据副本;Gor接收请求数据副本后,对其进行判断,判断请求数据副本是否添加了自定义标志,若添加了自定义标志,则该请求数据副本为经后续转发后重新回到Nginx服务器的请求数据,将其丢弃;否则,对其添加自定义标志,并转发至第二主机的安全漏洞扫描器内,安全漏洞扫描器的被动代理程序以此请求数据副本为基础构造扫描探测请求,并基于数字证书和秘钥将扫描探测请求与服务器Nginx进行交换,从而发现可能的安全漏洞问题,具体可参照系统实施例所述,此处不做赘述。

图3示例了一种电子设备的实体结构示意图,如图3所示,该电子设备可以包括:处理器(processor)31、通信接口(Communications Interface)32、存储器(memory)33和通信总线34,其中,处理器31,通信接口32,存储器33通过通信总线34完成相互间的通信。处理器31可以调用存储器33中的逻辑指令,以执行请求数据实时导入漏洞扫描器的方法,该方法包括:基于接收的请求数据进行复制,生成请求数据副本;监听并获取生成的请求数据副本,判断请求数据副本是否存在自定义标志,若存在,则丢弃请求数据副本,否则,对请求数据副本添加自定义标志并发送至安全漏洞扫描器。

此外,上述的存储器33中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的请求数据实时导入漏洞扫描器的方法,该方法包括:基于接收的请求数据进行复制,生成请求数据副本;监听并获取生成的请求数据副本,判断请求数据副本是否存在自定义标志,若存在,则丢弃请求数据副本,否则,对请求数据副本添加自定义标志并发送至安全漏洞扫描器。

又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的请求数据实时导入漏洞扫描器的方法,该方法包括:基于接收的请求数据进行复制,生成请求数据副本;监听并获取生成的请求数据副本,判断请求数据副本是否存在自定义标志,若存在,则丢弃请求数据副本,否则,对请求数据副本添加自定义标志并发送至安全漏洞扫描器。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

相关技术
  • 请求数据实时导入漏洞扫描器的系统、方法、设备及介质
  • 请求数据实时导入漏洞扫描器的系统、方法、设备及介质
技术分类

06120112920326