基于redis缓存的通用漏洞扫描系统及方法与流程

文档序号:29169196发布日期:2022-03-09 04:26阅读:175来源:国知局
基于redis缓存的通用漏洞扫描系统及方法与流程

1.本发明属于漏洞扫描技术领域,尤其涉及基于redis缓存的通用漏洞扫描系统及方法。


背景技术:

2.随着计算机和互联网行业的高速发展,各种开发软件及数据交互技术欣欣向荣,但随之而来的是开发软件和数据交互技术中存在一些漏洞问题,需要不断对开发软件和数据交互技术进行漏洞扫描。
3.现有的在开发软件和数据交互技术中,所使用的漏洞扫描技术为通过读取开发软件或者数据交互技术的硬盘中的缓存数据进行漏洞扫描,在针对单个开发软件时,所使用的读取缓存中的数据进行漏洞扫描已经够用了,但是若要针对多个开发软件或数据交互技术的漏洞扫描,通过逐一读取硬盘中的缓存库进行漏洞扫描的技术已经不够用了,其存在漏洞扫描效率低下,时间成本较高的问题。


技术实现要素:

4.本发明所解决的技术问题在于提供一种基于redis缓存的通用漏洞扫描系统及方法,以解决现有漏洞扫描技术中效率低下、时间成本较高的问题。
5.本发明提供的基础方案:基于redis缓存的通用漏洞扫描系统,包括服务器、数据库以及redis缓存库,所述服务器用于获取用户下达的漏洞扫描任务并生成控制指令,所述数据库中存储有扫描数据,所述扫描数据包括漏洞样本数据和待漏洞扫描的数据包,所述redis缓存库用于抓取和存储数据库中的扫描数据,并根据漏洞样本数据建立漏洞模板,所述服务器中包括漏洞扫描模块、漏洞报告模块以及漏洞解决模块,所述漏洞扫描模块用于对redis缓存库中的扫描数据进行通用漏洞扫描,生成扫描结果;所述漏洞报告模块用于根据扫描结果与漏洞库进行匹配,生成漏洞扫描报告;所述漏洞解决模块预存有漏洞解决方案,所述漏洞解决模块用于根据解析报告中的关键信息自动推送相应的漏洞解决方案。
6.本发明的原理及优点在于:在现有技术中,执行漏洞扫描任务时主要通过读取数据库中的数据包是否存在漏洞,而数据库存储在硬盘中,会使得漏洞扫描的效率低下,时间成本增加。
7.因此,为解决上述问题,本发明的技术方案为将数据库中的漏洞样本数据和待漏洞扫描数据存储至redis缓存库中,redis缓存库将漏洞样本数据生成漏洞模板,服务器将漏洞扫描任务生成控制命令,服务器中的漏洞扫描模块根据控制命令读取并扫描redis缓存库中的数据包,依据redis缓存库的访问效率快的特性,从而使得漏洞扫描的效率提升,随后漏洞报告模块将扫描的漏洞生成漏洞扫描报告,服务器中的漏洞解决模块预设有漏洞解决方案,通过提取漏洞扫描报告中的关键信息,从而推送相应的漏洞解决方案,用户可根据漏洞解决方案快速解决扫描出的漏洞,使得在发现漏洞时能够得到及时的解决。因此,本发明的优点在于,(1)提升漏洞扫描的效率,减少时间成本;(2)再发现漏洞时用户可根据漏
洞解决方案及时解决漏洞,避免在成更大的损失。
8.进一步,所述redins缓存库中设有持久化模块及删除模块,所述持久化模块用于将redis缓存库中的漏洞模板持久化,所述删除模块用于根据预设的时间阈值删除redis缓存库中的数据包。
9.有益效果:通过持久化模块可以使得数据库中的漏洞样本数据得到不断的补充,为下一次漏洞扫描任务提供更丰富和更完整的漏洞模板;而删除模块能够减轻redis缓存库的缓存压力,避免造成redis缓存库的内存过度消耗。
10.进一步,所述漏洞模板中包括第一漏洞扫描模板和第二漏洞扫描模板,所述第一漏洞扫描模板用于保存漏洞样本数据中记录的漏洞,所述第二漏洞扫描模板用于保存未在第一漏洞扫描模板记录的漏洞。
11.有益效果:通过设定第一漏洞模板和第二漏洞模板,能够不断记录除数据库漏洞样本呢数据以外的新的漏洞,使得漏洞的曝光度不断更新和不断增加。
12.进一步,所述redis缓存库中设有数据传输单元,所述数据传输单元用于将第二漏洞模板中保存的漏洞发送至第一漏洞模板中。
13.有益效果:通过数据传输单元能够将新的漏洞保存至用于保存数据库中的记录的漏洞,使得在执行漏洞扫描任务时拥有更多的漏洞模板。
14.基于redis缓存的通用漏洞扫描方法,包括:
15.生成控制指令步骤:服务器获取漏洞扫描任务,并将漏洞扫描任务生成控制指令;
16.数据获取步骤:服务器根据控制指令从数据库中获取漏洞扫描任务的扫描数据,所述扫描数据中包括漏洞样本数据和待扫描数据包;
17.数据redis缓存步骤:将所述扫描数据存储至redis缓存库中,所述redis缓存库建立有漏洞库,并将漏洞样本数据抓取和存储至漏洞库中,建立漏洞模板;
18.执行漏洞扫描步骤:执行所述控制命令,对redis缓存库中的数据包进行漏洞扫描任务,生成漏洞扫描报告;
19.漏洞解决步骤:提取漏洞扫描报告中的关键信息,根据预设的漏洞解决方案自动推送相应的漏洞解决方案。
20.本发明的原理及优点在于:在现有技术中,执行漏洞扫描任务时主要通过读取数据库中的数据包是否存在漏洞,而数据库存储在硬盘中,会使得漏洞扫描的效率低下,时间成本增加。
21.因此,为解决上述问题,本发明的技术方案为将数据库中的漏洞样本数据和待漏洞扫描数据存储至redis缓存库中,redis缓存库将漏洞样本数据生成漏洞模板,服务器将漏洞扫描任务生成控制命令,根据控制命令读取并扫描redis缓存库中的数据包,依据redis缓存库的访问效率快的特性,从而使得漏洞扫描的效率提升,随后将扫描的漏洞生成漏洞扫描报告,服务器中预设有漏洞解决方案,通过提取漏洞扫描报告中的关键信息,从而推送相应的漏洞解决方案,用户可根据漏洞解决方案快速解决扫描出的漏洞,使得在发现漏洞时能够得到及时的解决。因此,本发明的优点在于,(1)提升漏洞扫描的效率,减少时间成本;(2)再发现漏洞时用户可根据漏洞解决方案及时解决漏洞,避免在成更大的损失。
22.进一步,所述数据redis缓存步骤中包括:
23.将redis缓存库建立的漏洞模板持久化至数据库中;
24.根据预设的时间阈值将redis缓存库中存储的数据包删除。
25.有益效果:通过持久化操作将其保存至数据库中,从而不断丰富和完善漏洞的样本数据,为下一次漏洞扫描任务提供漏洞样本,而为了减轻redis缓存库的内存,避免造成大量的key数据堆积在内存中,通过将每次存储进redis缓存库的数据包打上一个预设的时间阈值标记,从而使得redis缓存库中不会造成大量数据堆积,避免redis缓存库的内存损耗过快。
26.进一步,所述漏洞模板包括第一漏洞模板和第二漏洞模板,所述第一漏洞模板是指用于保存漏洞样本数据中记录的漏洞,所述第二漏洞模板是指用于保存未在第一漏洞模板中记录的漏洞。
27.有益效果:通过设定第一漏洞模板和第二漏洞模板,能够不断记录除数据库漏洞样本呢数据以外的新的漏洞,使得漏洞的曝光度不断更新和不断增加。
28.进一步,所述执行漏洞扫描步骤中包括:
29.根据redis缓存库漏洞模板的第一漏洞模板对redis缓存库中的数据包进行漏洞扫描任务;
30.若根据redis缓存库漏洞模板的第一漏洞模板对redis缓存库中的数据包进行漏洞扫描任务中含有未在第一漏洞模板中记录的漏洞,则将其保存至第二漏洞模板中;
31.将保存在第二漏洞模板中的漏洞传输并保存至第一漏洞模板中。
32.有益效果:服务器在对redis缓存库进行漏洞扫描时,将扫描出的漏洞与漏洞库的第一漏洞模板进行比对,若出现未在第一漏洞模板中记录的漏洞时,则将其保存至第二漏洞模板中,随后将保存在第二漏洞模板中的漏洞传输并保存至第一漏洞模板中,从而不断丰富漏洞样本数据。
附图说明
33.图1为本发明实施例的逻辑框图;
34.图2为本发明实施例的原理框图。
具体实施方式
35.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明,同时,虽然在实施例中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或所描述的步骤。
36.下面通过具体实施方式进一步详细说明:
37.实施例基本如附图1所示:基于redis缓存的通用漏洞扫描方法,包括:
38.生成控制指令步骤:服务器获取漏洞扫描任务,并将漏洞扫描任务生成控制指令;
39.数据获取步骤:服务器根据控制指令从数据库获取漏洞扫描任务的扫描数据,所述扫描数据中包括漏洞样本数据和待扫描数据包。
40.在本实施例中,服务器获取漏洞扫描任务,并将漏洞扫描任务生成控制指令具体为,服务器中的控制芯片接收用户的漏洞扫描任务,漏洞扫描任务的详细信息包括扫描任务名称、使用策略、文件夹以及扫描的目标,漏洞扫描任务的下达可以为用户手动触发执行漏洞扫描任务,也可以设定漏洞扫描任务的执行时间,从而实现定时、定期执行漏洞扫描任
务,在到达执行时间时,服务器按照预设的顺序自动执行漏洞扫描任务,在本实施例中,主要选用用户手动触发执行漏洞扫描任务。
41.数据获取步骤中,数据库中存储有扫描数据,其中包括与漏洞扫描任务相对应的扫描数据,服务器根据漏洞扫描任务生成的控制指令将于漏洞扫描任务相关的扫描数据抓取打包,其中扫描数据包括有漏洞样本数据及带扫描数据,漏洞样本数据在本实施例中是指数据库中所存储的所有次漏洞扫描任务积累下来的漏洞数据,因其含有所有次漏洞扫描任务的漏洞数据,因此具有不断扩充的功能,使得漏洞数据更丰富,更全面。
42.数据redis缓存步骤:将所述扫描数据存储至redis缓存库中,所述redis缓存库建立有漏洞库,并将漏洞样本数据抓取和存储至漏洞库中,建立漏洞模板。
43.在本实施例中,将所述扫描数据存储至redis缓存库中,存储进redis缓存库中的扫描数据包括了漏洞样本数据以及待扫描的数据包,其中漏洞样本数据存储进redis缓存库中时,redis缓存库内设定一个漏洞库,其中,包含漏洞信息及漏洞类型等,在本实施例中,所述存储的漏洞类型包括:sql注入漏洞,是指通过把sql命令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的sql命令;任意文件上传漏洞,是指由于网页代码中的文件上传路径变量过滤不严造成的漏洞;代码执行漏洞,是指用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令,可能会允许攻击者通过改变$path或程序执行环境的其他方面来执行一个恶意构造的代码;在本实施例的其他实施例中,还包括有其他漏洞类型,本实施例中不做过多赘述。
44.在数据redis缓存步骤中,还包括:
45.将redis缓存库建立的漏洞模板持久化至数据库中;
46.根据预设的时间阈值将redis缓存库中存储的数据包删除。
47.其中,将redis缓存库建立的漏洞模板持久化至数据库中详细为,数据库中含有以往多次漏洞扫描任务存储下来的漏洞样本数据,在本实施例中的漏洞扫描任务所扫描出的漏洞若含有未在数据库中存储的漏洞样本数据,则通过持久化操作将其保存至数据库中,从而不断丰富和完善漏洞的样本数据,为下一次漏洞扫描任务提供漏洞样本。
48.而根据预设的时间阈值将redis缓存库中存储的数据包删除在于,为了减轻redis缓存库的内存,避免造成大量的key数据堆积在内存中,通过将每次存储进redis缓存库的数据包打上一个预设的时间阈值标记,在本实施例中,预设的时间阈值为2天,在本实施例的其他实施例中,还可以设定5天或者7天;当时间阈值到达后,redis缓存库则遍历所存储的数据包,将时间阈值为2天的数据包删除,从而使得redis缓存库中不会造成大量数据堆积,避免redis缓存库的内存损耗过快。
49.此外,所述的漏洞模板包括第一漏洞模板和第二漏洞模板,第一漏洞模板是指用于保存漏洞样本数据中记录的漏洞,第二漏洞模板是指用于保存未在第一漏洞模板中记录的漏洞;在本实施例中,通过设定两种漏洞模板,一种保存存储在数据库种的漏洞,另一种记录除数据库以外记录的新的漏洞,从而使得在漏洞扫描时不仅可以发现通用漏洞,同时还能够针对新的漏洞进行记录和保存。
50.执行漏洞扫描步骤:执行所述控制命令,对redis缓存库中的数据包进行漏洞扫描任务,生成漏洞扫描报告;所述执行漏洞扫描步骤中包括:
51.根据redis缓存库漏洞模板的第一漏洞模板对redis缓存库中的数据包进行漏洞扫描任务;
52.若根据redis缓存库漏洞模板的第一漏洞模板对redis缓存库中的数据包进行漏洞扫描任务中含有未在第一漏洞模板中记录的漏洞,则将其保存至第二漏洞模板中;
53.将保存在第二漏洞模板中的漏洞传输并保存至第一漏洞模板中。
54.在本实施例中,根据redis缓存库漏洞模板的第一漏洞模板对redis缓存库中的数据包进行漏洞扫描任务主要在于,服务器在对redis缓存库进行漏洞扫描时,将扫描出的漏洞与漏洞库的第一漏洞模板进行比对,若出现未在第一漏洞模板中记录的漏洞时,则将其保存至第二漏洞模板中,随后将保存在第二漏洞模板中的漏洞传输并保存至第一漏洞模板中,并通过持久化操作将其持久化至数据库中,从而不断丰富数据库的漏洞样本数据。
55.漏洞解决步骤:提取漏洞扫描报告中的关键信息,自动推送相应的漏洞解决方案。
56.在本实施例中,漏洞扫描报告中包括概述信息、漏洞分析概述信息、端口列表信息以及漏洞根因及详情,其中,概述信息用于展示本次扫描任务的总概述,包括任务综述,即扫描的漏洞总数、漏洞类型、高危漏洞个数、任务名称、扫描对象、开始以及结束时间;还包括网站指纹信息,用于记录执行扫描任务的用户的ip地址信息。
57.漏洞分析概述信息包括漏洞扫描概览信息以及漏洞类型分布信息,其中漏洞扫描概述信息包括扫描的漏洞个数、高危漏洞个数、中危漏洞个数、低危漏洞个数以及提示的威胁个数;漏洞类型分布信息包括漏洞分类、漏洞类型以及检测结果,在本实施例中,漏洞分类包括恶意内容、潜在风险以及网站安全漏洞,恶意内容中的漏洞类型包括恶意外链、挖矿后门以及网页木马;潜在风险中的漏洞类型包括网站请求以及https协议;网站安全漏洞中的漏洞类型包括应急漏洞、信息泄露、远程代码执行漏洞、注入攻击以及授权问题等。而根据上述漏洞类型的检测结果中包括是否安全、漏洞详情以及风险详情。
58.端口列表信息中包括端口信息、状态信息、协议信息以及服务信息。漏洞根因及详情信息包括漏洞名称、漏洞级别、漏洞详情、修复建议以及url列表,例如,针对远程代码执行漏洞为例:
59.其漏洞级别为高危级别,漏洞简介为,通过漏洞扫描的控制执行命令,扫描到网页存在反序列化远程代码执行漏洞,可导致直接获取服务器权限。修复建议中包括方案一和方案二,其中,方案一为升级网站版本;方案二为移除相关插件或者替换旧版本的插件。
60.而漏洞解决步骤中,服务器中预先存储有漏洞解决方案,需要提取漏洞扫描报告的关键信息,比如漏洞类型、漏洞级别、漏洞个数或者漏洞根因信息,在本实施例中通过使用百分比的方式来进行界定,例如,漏洞扫描报告中的关键信息与漏洞解决方案之间的相似百分比在百分之70以上,则推送相应的漏洞解决方案,若存在多个百分之70以上的漏洞解决方案,则选择相似度最高的进行推送。
61.如图2所示,基于redis缓存的通用漏洞扫描系统,包括服务器、数据库以及redis缓存库,其中:
62.服务器用于获取用户下达的漏洞扫描任务并生成控制指令;
63.数据库中存储有扫描数据,扫描数据包括漏洞样本数据和待漏洞扫描的数据包;
64.redis缓存库用于抓取和存储数据库中的扫描数据,并根据漏洞样本数据建立漏洞模板,漏洞模板中包括第一漏洞扫描模板和第二漏洞扫描模板,第一漏洞扫描模板用于
保存漏洞样本数据中记录的漏洞,第二漏洞扫描模板用于保存未在第一漏洞扫描模板记录的漏洞,redis缓存库中设有数据传输单元,数据传输单元用于将第二漏洞模板中保存的漏洞发送至第一漏洞模板中。
65.其中,服务器中包括漏洞扫描模块、漏洞报告模块以及漏洞解决模块,所述漏洞扫描模块用于对redis缓存库中的扫描数据进行通用漏洞扫描,生成扫描结果;所述漏洞报告模块用于根据扫描结果与漏洞库进行匹配,生成漏洞扫描报告;所述漏洞解决模块预存有漏洞解决方案,所述漏洞解决模块用于根据解析报告中的关键信息自动推送相应的漏洞解决方案。而redins缓存库中设有持久化模块及删除模块,所述持久化模块用于将redis缓存库中的漏洞模板持久化,所述删除模块用于根据预设的时间阈值删除redis缓存库中的数据包。
66.以上的仅是本发明的实施例,方案中公知的具体结构及特性等常识在此未作过多描述,所属领域普通技术人员知晓申请日或者优先权日之前发明所属技术领域所有的普通技术知识,能够获知该领域中所有的现有技术,并且具有应用该日期之前常规实验手段的能力,所属领域普通技术人员可以在本技术给出的启示下,结合自身能力完善并实施本方案,一些典型的公知结构或者公知方法不应当成为所属领域普通技术人员实施本技术的障碍。应当指出,对于本领域的技术人员来说,在不脱离本发明结构的前提下,还可以作出若干变形和改进,这些也应该视为本发明的保护范围,这些都不会影响本发明实施的效果和专利的实用性。本技术要求的保护范围应当以其权利要求的内容为准,说明书中的具体实施方式等记载可以用于解释权利要求的内容。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1