System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据处理,具体而言,涉及一种插件查询方法及装置。
技术介绍
1、目前,随着计算机网络技术的飞速发展和互联网的广泛普及,人们不得不在享受网络带来的便利的同时,寻求更为可靠的网络安全解决方案。漏洞扫描技术在这种背景下应运而生,能够有效提高网络的安全性。作为扫描器最核心、最有价值的就是插件库,整个扫描过程,其实也是插件调度的过程。新增插件时,面对庞大的插件库和复杂的依赖关系,依赖插件只能通过该插件需要的key、端口、服务来确认,但是这些key、端口、服务的识别插件可能也有直接或间接的依赖关系,可能会出现a依赖b和c、b依赖c,如此a依赖c就是重复的依赖,引擎在调度a插件时会先去执行b和c插件,调度b插件时会先去执行c插件,即使有办法避免c插件被重复执行,但是c插件还是会被调度两次,既浪费资源还增加了漏扫的时间。可见,现有插件查询方法,耗费资源和时间,查询结果不全面,查询效率低。
技术实现思路
1、本申请实施例的目的在于提供一种插件查询方法及装置,能够用图数据库来存储依赖关系,从而使依赖关系图形化且支持图数据库查询,查询结果准确全面,避免浪费资源和时间,有利于提升查询效率。
2、本申请第一方面提供了一种插件查询方法,包括:
3、获取插件库中插件的插件信息文件和依赖信息文件;
4、根据所述插件信息和所述依赖信息构建插件依赖关系图谱;
5、将所述依赖关系图谱保存到图数据库;
6、获取插件查询数据;
7、根据所述插
8、输出所述查询结果。
9、在上述实现过程中,该方法可以优先获取插件库中插件的插件信息文件和依赖信息文件,并根据所述插件信息和所述依赖信息构建插件依赖关系图谱;可见,该方法可以将插件库中的插件信息和依赖关系提取出来,并建立对应的依赖关系图谱,从而为后续的插件查询、依赖关系查询提供更专业的数据支持。在构建好插件依赖关系图谱之后,该方法可以将所述依赖关系图谱保存到图数据库,从而以此来实现持久化保存,进而使得插件之间的直接依赖和间接依赖能够呈现出一个枝干分明的树形结构。此后,该方法可以获取插件查询数据,并根据所述插件查询数据和所述图数据库进行插件依赖关系查询得到查询结果,再输出所述查询结果。可见,该方法能够依赖图数据库对插件之间的依赖关系进行高效查询,从而避免浪费资源,有利于提高漏洞扫描的效率。
10、进一步地,所述获取插件库中插件的插件信息文件和依赖信息文件,包括:
11、获取插件库;
12、对所述插件库的所有插件进行遍历,读取到每个插件的插件信息和每个所述插件的依赖信息;
13、通过csv文件分别记录所述插件信息和所述依赖信息,得到插件信息文件和依赖信息文件。
14、在上述实现过程中,该方法可以通过遍历的手段获取到每个插件的插件信息和依赖信息,然后基于csv文件的特性记录该插件信息和依赖信息,从而便于后续步骤提取与应用。
15、进一步地,所述根据所述插件信息和所述依赖信息构建插件依赖关系图谱,包括:
16、将所述插件信息文件和所述依赖信息文件转换成与图数据库相匹配的目标文本数据和目标关系数据;
17、根据所述目标文本数据和所述目标关系数据构建依赖关系图谱。
18、在上述实现过程中,该方法可以对csv文件进行数据提取与转换,从而为图数据库的生成提供便利。
19、进一步地,所述获取插件查询数据,包括:
20、确定目标扫描器的待添加插件以及所述待添加插件所依赖的待查询插件;
21、根据所述待查询插件生成插件查询数据。
22、在上述实现过程中,该方法可以基于待添加插件确定其所依赖的插件,并对其所依赖的插件进行依赖关系查询,从而避免目标扫描器直接调用插件时产生的重复调用的问题出现,进而保障目标扫描器的作业效率。
23、进一步地,在所述输出所述查询结果之后,所述方法还包括:
24、基于所述查询结果确定所述待查询插件之间的依赖关系;
25、根据所述依赖关系确定所述待查询插件的调度顺序;
26、基于所述调度顺序确定所述待添加插件的依赖关系;
27、根据所述待添加插件的依赖关系将所述待添加插件添加至所述目标扫描器中。
28、在上述实现过程中,该方法可以基于查询结果确定待查询插件的调度顺序,并在基于该调度顺序实现插件的非重复调度,从而以此来提高插件的调度效率。
29、进一步地,所述根据所述插件查询数据和所述图数据库进行插件依赖关系查询,得到查询结果,包括:
30、根据所述插件查询数据确定python脚本和待处理插件集合;
31、通过所述python脚本和所述图数据库对所述待处理插件集合进行依赖关系查询,得到每个插件的直接依赖列表以及每个所述插件的间接依赖列表;
32、根据所述直接依赖列表和所述间接依赖列表生成查询结果。
33、在上述实现过程中,该方法可以通过查询获取到直观的全局查询结果,从而便于后续对冗余关系进行识别,进而便于对该冗余关系进行去除。
34、进一步地,在所述输出所述查询结果之后,所述方法还包括:
35、基于所述python脚本的intersection函数对比所述直接依赖列表和所述间接依赖列表,得到列表交集数据;
36、根据所述列表交集数据对所述待处理插件集合进行冗余关系去除处理,得到去除冗余后的插件集合。
37、在上述实现过程中,该方法可以去取冗余的依赖关系,从而实现优化依赖关系图谱的效果,进而实现优化插件调用过程的效果。
38、本申请第二方面提供了一种插件查询装置,所述插件查询装置包括:
39、第一获取单元,用于获取插件库中插件的插件信息文件和依赖信息文件;
40、构建单元,用于根据所述插件信息和所述依赖信息构建插件依赖关系图谱;
41、保存单元,用于将所述依赖关系图谱保存到图数据库;
42、第二获取单元,用于获取插件查询数据;
43、查询单元,用于根据所述插件查询数据和所述图数据库进行插件依赖关系查询,得到查询结果;
44、输出单元,用于输出所述查询结果。
45、进一步地,所述第一获取单元包括:
46、获取子单元,用于获取插件库;
47、所述获取子单元,还用于对所述插件库的所有插件进行遍历,读取到每个插件的插件信息和每个所述插件的依赖信息;
48、记录子单元,用于通过csv文件分别记录所述插件信息和所述依赖信息,得到插件信息文件和依赖信息文件。
49、进一步地,所述构建单元包括:
50、转换子单元,用于将所述插件信息文件和所述依赖信息文件转换成与图数据库相匹配的目标文本文档来自技高网...
【技术保护点】
1.一种插件查询方法,其特征在于,包括:
2.根据权利要求1所述的插件查询方法,其特征在于,所述获取插件库中插件的插件信息文件和依赖信息文件,包括:
3.根据权利要求1所述的插件查询方法,其特征在于,所述根据所述插件信息和所述依赖信息构建插件依赖关系图谱,包括:
4.根据权利要求1所述的插件查询方法,其特征在于,所述获取插件查询数据,包括:
5.根据权利要求4所述的插件查询方法,其特征在于,在所述输出所述查询结果之后,所述方法还包括:
6.根据权利要求1所述的插件查询方法,其特征在于,所述根据所述插件查询数据和所述图数据库进行插件依赖关系查询,得到查询结果,包括:
7.根据权利要求6所述的插件查询方法,其特征在于,在所述输出所述查询结果之后,所述方法还包括:
8.一种插件查询装置,其特征在于,所述插件查询装置包括:
9.一种电子设备,其特征在于,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行权利要求1至7中任一项所述的插
10.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行权利要求1至7任一项所述的插件查询方法。
...【技术特征摘要】
1.一种插件查询方法,其特征在于,包括:
2.根据权利要求1所述的插件查询方法,其特征在于,所述获取插件库中插件的插件信息文件和依赖信息文件,包括:
3.根据权利要求1所述的插件查询方法,其特征在于,所述根据所述插件信息和所述依赖信息构建插件依赖关系图谱,包括:
4.根据权利要求1所述的插件查询方法,其特征在于,所述获取插件查询数据,包括:
5.根据权利要求4所述的插件查询方法,其特征在于,在所述输出所述查询结果之后,所述方法还包括:
6.根据权利要求1所述的插件查询方法,其特征在于,所述根据所述插件查询数据和所述图数据库进行...
【专利技术属性】
技术研发人员:李铭,
申请(专利权)人:湖北天融信网络安全技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。