发明内容
为了克服现有技术的不足,本发明的目的之一在于提供一种基于被动流量的WEB漏洞检测方法,旨在实现通过被动扫描实现WEB漏洞检测,提高漏洞检测效率。
本发明的目的之一采用以下技术方案实现:
一种基于被动流量的WEB漏洞检测方法,包括以下步骤:
接收需要测试的报文;
解析所述报文,将解析后的所述报文进行存储;
扫描解析后的所述报文,包括:
对解析后的所述报文进行通用漏洞扫描,得到第一扫描结果,
对解析后的所述报文进行POC集成扫描,得到第二扫描结果,
对解析后的所述报文进行端口扫描,得到第三扫描结果,
将所述第一扫描结果、所述第二扫描结果和所述第三扫描结果作为漏洞检测结果进行存储;
返回所述漏洞检测结果。
进一步地,解析所述报文,将解析后的所述报文进行存储,包括以下步骤:
判断所述报文是否为畸形报文;
若是,则丢弃所述报文;
若否,则将所述报文与历史报文进行去重处理;
若所述报文与所述历史报文重复,则丢弃所述报文;
若所述报文与所述历史报文不重复,则将所述报文进行拆分后以键值对的形式进行存储。
进一步地,将所述报文与历史报文进行去重处理,包括:
将所述报文的域名、路径和参数,分别与所述历史报文的域名、路径和参数进行比对;
若所述报文的域名、路径和参数均与所述历史报文相同,则判定所述报文与所述历史报文重复。
进一步地,扫描解析后的所述报文,包括以下步骤:
将解析后的所述报文加入扫描队列;
从所述扫描队列中提取所述报文进行所述通用漏洞扫描、所述POC集成扫描和所述端口扫描,分别得到所述第一扫描结果、所述第二扫描结果和所述第三扫描结果。
进一步地,对解析后的所述报文进行POC集成扫描,包括以下步骤:
根据预先设置的特征库,识别并标注所述报文的特征;
根据识别到的特征,对所述报文进行对应的POC集成扫描。
进一步地,扫描解析后的所述报文,还包括以下步骤:
对解析后的所述报文进行敏感信息匹配,存储匹配结果;其中,预先设置敏感信息,所述敏感信息包括手机号、身份证号、内网IP地址、URL地址中的任意一种或任意两种以上。
进一步地,还包括以下步骤:
对历史报文进行重新检测,包括:
更新所述特征库和所述POC;
获取更新后的认证标识符;
提取所述历史报文;
根据所述更新的认证标识符,对所述历史报文的认证标识符进行更新后,对所述历史报文进行通用漏洞扫描、POC集成扫描和端口扫描,得到所述历史报文的漏洞检测结果;
存储所述历史报文的漏洞检测结果。
本发明的目的之二在于提供一种基于被动流量的WEB漏洞检测装置,其旨在通过被动扫描检测WEB漏洞,提高漏洞检测效率。
本发明的目的之二采用以下技术方案实现:
报文接收模块,用于接收需要测试的报文;
报文解析模块,用于解析所述报文,将解析后的所述报文进行存储;
扫描模块,用于扫描解析后的所述报文,包括:
对解析后的所述报文进行通用漏洞扫描,得到第一扫描结果,
对解析后的所述报文进行POC集成扫描,得到第二扫描结果,
对解析后的所述报文进行端口扫描,得到第三扫描结果,
将所述第一扫描结果、所述第二扫描结果和所述第三扫描结果作为漏洞检测结果进行存储;
结果反馈模块,用于返回所述漏洞检测结果。
本发明的目的之三在于提供执行发明目的之一的电子设备,其包括处理器、存储介质以及计算机程序,所述计算机程序存储于存储介质中,所述计算机程序被处理器执行时实现上述的基于被动流量的WEB漏洞检测方法。
本发明的目的之四在于提供存储发明目的之一的计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的基于被动流量的WEB漏洞检测方法。
相比现有技术,本发明的有益效果在于:
1.区别于主动扫描方式先爬虫后扫描,本申请接收的是需要检测的报文,与纯爬虫相比,检测覆盖面更广。
2.本申请通过被动扫描的方式,将测试重点集中在业务逻辑的漏洞上,能提高检测效率。
具体实施方式
以下将结合附图,对本发明进行更为详细的描述,需要说明的是,以下参照附图对本发明进行的描述仅是示意性的,而非限制性的。各个不同实施例之间可以进行相互组合,以构成未在以下描述中示出的其他实施例。
实施例1
本实施例提供了一种基于被动流量的WEB漏洞检测方法,旨在通过对被动流量进行拆分和扫描重放,解决现有漏洞扫描方式覆盖面不足的问题,并能提升WEB漏洞扫描测试的效率,实现辅助安全测试人员更快更高效地发现报文中的WEB漏洞。
根据上述原理,对基于被动流量的WEB漏洞检测方法进行介绍,如图1所示,基于被动流量的WEB漏洞检测方法,具体包括以下步骤:
接收需要测试的报文;
解析所述报文,将解析后的所述报文进行存储;
扫描解析后的所述报文,包括:
对解析后的所述报文进行通用漏洞扫描,得到第一扫描结果,
对解析后的所述报文进行POC集成扫描,得到第二扫描结果,
对解析后的所述报文进行端口扫描,得到第三扫描结果,
将所述第一扫描结果、所述第二扫描结果和所述第三扫描结果作为漏洞检测结果进行存储;
返回所述漏洞检测结果。
本实施例所提及的基于被动流量的WEB漏洞检测方法适用于服务端,具该服务端可为搭载在服务器上的被动扫描平台,可由云服务器或本地服务器提供服务。
上述接收到的报文由客户端发送,安全测试人员通过客户端将需要测试的报文镜像至平台,进行被动流量的漏洞检测,该需要测试的报文包括请求保文以及返回报文,从而实现被动扫描,与现有的主动扫描方式相比,由安全测试人员通过客户端触发的报文检测,覆盖面更广,能够发现更多潜在的漏洞,且基于被动扫描的方式,通过客户端,安全测试人员可以将测试重点放到业务逻辑等漏洞上,从而实现提高测试效率的目的。
在本实施例中,客户端将待测试的报文镜像至被动扫描平台时,可配置镜像策略,例如不对静态资源进行镜像,静态资源包括图片、js文件等。
对解析后的报文进行通用漏洞扫描,具体地,对报文进行WEB通用类型扫描:遍历解析后的报文参数,将每个参数都使用集成好的攻击载荷,例如SQL、XXS、命令注入等通用类型,进行重放测试,将测试返回的结果作为第一扫描结果。
在本发明的其他实施例中,通用漏洞扫描可采用被动扫描工具,如XRAY。
对解析后的报文进行POC集成扫描,具体地,通过运行观点验证程序(POC)进行漏洞扫描测试,根据不同特征的报文采用与对应特征匹配的POC进行扫描测试,得到POC扫描结果作为第二扫描结果。例如当接收到特征为json数据包的报文,采用fastjson测试载荷完成POC集成扫描,其中Fastjson为开源的json解析库。
对解析后的所述报文进行端口扫描,对报文的域名进行解析,得到域名对应的IP,对所述IP进行扫描,得到端口扫描结果作为第三扫描结果。通过扫描IP端口,可以扩大WEB资产面。
将得到的第一扫描结果、第二扫描结果和第三扫描结果作为漏洞检测结果进行存储后,返回所述漏洞检测结果,包括:
直接返回所述漏洞检测结果;
或根据客户端的请求,实时从存储中获取所述漏洞检测结果进行返回,从而使得安全测试人员可主动获取漏洞检测结果。
需要注意的是,在对报文进行扫描,除了可以得到漏洞检测结果,还可以完成WEB资产梳理,因此除了返回所述漏洞检测结果,还可返回WEB资产梳理结果。
优选地,解析所述需要测试的报文,将解析后的所述报文进行存储,包括以下步骤:
判断所述报文是否为畸形报文;
若是,则丢弃所述报文;
若否,则将所述报文与历史报文进行去重处理;
若所述报文与所述历史报文重复,则丢弃所述报文;
若所述报文与所述历史报文不重复,则将所述报文进行拆分后以键值对的形式进行存储。
优选地,将所述报文与历史报文进行去重处理,包括:
将所述报文的域名、路径和参数,分别与所述历史报文的域名、路径和参数进行比对;
若所述报文的域名、路径和参数均与所述历史报文相同,则判定所述报文与所述历史报文重复,则不对重复的报文作后续处理,即不进行存储和扫描。
上述历史报文为以往接收到的需要测试的报文。
在本发明的较优实施例中,扫描解析后的所述报文,包括以下步骤:
将解析后的所述报文加入扫描队列;
从所述扫描队列中提取所述报文进行上述通用漏洞扫描、POC集成扫描和端口扫描,分别得到上述第一扫描结果、第二扫描结果和第三扫描结果。
优选地,对解析后的所述报文进行POC集成扫描,包括以下步骤:
根据预先设置的特征库,识别并标注所述报文的特征;
根据识别到的特征,对所述报文进行对应的POC集成扫描。
在进行本实施例所述的POC集成扫描之前,根据预先设置的特征库,对报文的特征进行识别和标注,例如请求报文中的Content-Type出现application/json,则标记为json数据包,返回报文中包含Powerer by xxxcms,则标记为xxxcms。
特征识别是根据请求报文或者返回报文中出现特定的字符,或者网站的特定路径,则判定为某一特征框架或者设备。需要注意的是,一个报文可同时匹配多个特征。
根据识别到的特征,可选择对应的POC进行对该报文进行扫描。
本实施例将特征库与POC集成扫描结合,可自定义更新特征库,具有覆盖面广的优点。特别是对于新出现的漏洞,可灵活编写新的特征和POC扫描规则(程序)进行及时检测。
优选地,扫描解析后的所述报文,还包括以下步骤:
对解析后的所述报文进行敏感信息匹配,存储所述匹配结果;其中,预先设置敏感信息,所述敏感信息包括手机号、身份证号、内网IP地址、URL地址中的任意一种或任意两种以上。
若解析后的所述报文加入了扫描队列,则从所述扫描队列里提取所述报文进行敏感信息匹配。
需要注意的是,针对返回报文进行敏感信息匹配,其中敏感信息可自由配置,通常可包含手机号、身份证、内网IP地址、URL地址等。通过敏感信息匹配,可快速发现信息泄露点,具有较好的扩展性。
优选地,还包括以下步骤:
对历史报文进行重新检测,包括:
更新所述特征库和所述POC;
获取更新后的认证标识符;
根据所述更新的认证标识符,对所述历史报文的认证标识符进行更新后,对所述历史报文同时进行通用漏洞扫描、POC集成扫描和端口扫描,得到所述历史报文的漏洞检测结果;
存储所述历史报文的漏洞检测结果。
在其他实施例中,也可选择不更新所述特征库和所述POC,直接从存储中提取历史报文(上述解析后进行存储的报文数据)进行认证标识符的更新后,进行上述通用漏洞检测、POC集成扫描、端口扫描和敏感信息匹配,得到历史报文的漏洞检测结果,将历史报文的漏洞检测结果进行存储后供客户端获取。
需要注意的是,上述认证标识符为鉴权字段,更新后的认证标识符(
Cookie)可由安全测试人员手动设置,也可通过程序自动设置。所述认证标识符在本实施例中为报文的鉴权字段。
本实施例提出更新历史报文鉴权字段,重新检测机制。在出现新类型的漏洞时,通过结合特征库和POC,可以快速定位历史报文中可能出现漏洞的报文。也可用于在漏洞修复后,快速对修复后的漏洞点进行回归测试,快速定位以及测试历史报文中的漏洞。仅需更新鉴权字段,即可快速完成对众多历史报文的重测,极大地提高了测试效率和速度。
实施例2
本实施例公开了一种对应实施例1的基于被动流量的WEB漏洞检测方法的装置,为虚拟结构装置,如图2所示,基于被动流量的WEB漏洞检测装置,包括:
报文接收模块210,用于接收需要测试的报文;
报文解析模块220,用于解析所述报文,将解析后的所述报文进行存储;
扫描模块230,用于扫描解析后的所述报文,包括:
对解析后的所述报文进行通用漏洞扫描,得到第一扫描结果,
对解析后的所述报文进行POC集成扫描,得到第二扫描结果,
对解析后的所述报文进行端口扫描,得到第三扫描结果,
将所述第一扫描结果、所述第二扫描结果和所述第三扫描结果作为漏洞检测结果进行存储;
结果反馈模块240,用于返回所述漏洞检测结果。
优选地,在扫描模块230中,还包括通用漏洞扫描模块、POC集成扫描模块和端口扫描模块,分别用于进行通用漏洞扫描、POC集成扫描和端口扫描。
优选地,扫描模块230还具有扫描队列,在进行扫描之前,需要将报文导入扫描队列。
优选地,扫描模块还包括敏感信息匹配模块,用于对解析后的报文进行敏感信息匹配,得到匹配结果,敏感信息包含手机号、身份证、内网IP地址、URL地址等。
优选地,还包括数据存储模块,用于存储解析后的报文和漏洞检测结果。
优选地,所述POC集成模块还包括特征识别模块,用于识别报文的特征,使得可根据报文的特征进行对应的POC集成扫描。
实施例3
图3为本发明实施例3提供的一种电子设备的结构示意图,如图3所示,该电子设备包括处理器310、存储器320、输入装置330和输出装置340;计算机设备中处理器310的数量可以是一个或多个,图3中以一个处理器310为例;电子设备中的处理器310、存储器320、输入装置330和输出装置340可以通过总线或其他方式连接,图3中以通过总线连接为例。
存储器320作为一种计算机可读存储介质,用于存储软件程序、计算机可执行程序以及模块,在本实施例中,存储器320用于存储本发明实施例1的基于被动流量的WEB漏洞检测方法对应的程序指令/模块,即存储器320在本实施例中存储上述基于被动流量的WEB漏洞检测装置中的报文接收模块210、报文解析模块220、扫描模块230和结果反馈模块240。
在一个具体的实施例中,存储器320可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、实现至少一个功能所需的应用程序;存储数据区可存储客户端使用过程中所创建的数据等。此外,在另一个具体的实施例中,存储器320不仅可以包括高速随机存取存储器,还可以包括非易失性存储器,其中非易失性存储器可以是至少一个磁盘存储器件、闪存器件或其他非易失性固态存储器件。在其他具体的实施例中,存储器320可进一步包括相对于处理器310远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述用于连接远程存储器和电子设备的网络包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器310通过运行存储在存储器320中的软件程序、指令以及模块,即运行上述基于被动流量的WEB漏洞检测装置中的报文接收模块210、报文解析模块220、扫描模块230和结果反馈模块240,从而通过执行电子设备的各种功能应用以及数据处理,以实现实施例1的基于被动流量的WEB漏洞检测方法。
输入装置330可用于接收输入数据。输出装置340可包括显示屏等设备。
实施例4
本实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于实现基于被动流量的WEB漏洞检测方法,该方法包括:
接收需要测试的报文;
解析所述报文,将解析后的所述报文进行存储;
扫描解析后的所述报文,包括:
对解析后的所述报文进行通用漏洞扫描,得到第一扫描结果,
对解析后的所述报文进行POC集成扫描,得到第二扫描结果,
对解析后的所述报文进行端口扫描,得到第三扫描结果,
将所述第一扫描结果、所述第二扫描结果和所述第三扫描结果作为漏洞检测结果进行存储;
返回所述漏洞检测结果。
当然,本实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明实施例中所提供的基于被动流量的WEB漏洞检测方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台电子设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述基于被动流量的WEB漏洞检测方法或装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。