CN115134167B - 一种漏洞扫描方法、装置、设备及存储介质 - Google Patents
一种漏洞扫描方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115134167B CN115134167B CN202210923397.6A CN202210923397A CN115134167B CN 115134167 B CN115134167 B CN 115134167B CN 202210923397 A CN202210923397 A CN 202210923397A CN 115134167 B CN115134167 B CN 115134167B
- Authority
- CN
- China
- Prior art keywords
- vulnerability scanning
- scanning
- current
- plugin
- plug
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000004590 computer program Methods 0.000 claims description 17
- 238000001514 detection method Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0681—Configuration of triggering conditions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种漏洞扫描方法、装置、设备及存储介质,涉及漏洞扫描技术领域,包括:获取扫描器中的各漏洞扫描插件对应的配置信息;漏洞扫描插件为由不同计算机语言开发的用于执行客户端下发的漏洞扫描任务的插件;根据检查出的各漏洞扫描插件的执行依赖顺序确定出当前漏洞扫描插件;判断当前是否满足当前插件对应的配置信息中的触发条件;若满足,则通过选取出的与当前漏洞扫描插件对应的语言解释器调用当前漏洞扫描插件进行扫描得到相应的扫描信息。本申请的漏洞扫描插件使用不同的计算机语言开发,不受单一开发语言的限制,从而提高漏洞扫描插件的扩展性,并且通过判断当前是否满足插件的触发条件,从而动态调整扫描策略,提升漏洞扫描效率。
Description
技术领域
本发明涉及漏洞扫描技术领域,特别涉及一种漏洞扫描方法、装置、设备及存储介质。
背景技术
当前,漏洞扫描领域中漏洞检测的手段和技术方式是不断积累和扩展的,过于单一的漏洞检测手段和方法往往具有局限性,很难满足当今的复杂网络的漏洞扫描功能和性能需求。漏洞扫描主要依靠执行大量漏洞扫描插件完成对目标系统资产的探测、判断和标记。漏洞扫描插件是漏洞扫描的能力执行单元,漏洞扫描的关键依赖于漏洞扫描插件的扫描手段和检测执行过程。
但是,扫描器过于依赖单一语言开发的漏洞扫描插件,由于编码语言的限制,导致漏洞扫描插件的撰写逻辑非常复杂,部分漏洞扫描插件功能无法通过快速编码实现,漏洞扫描插件的扩展性差,从而影响扫描器功能。也就是说,现有的扫描器大多执行由单一语言开发的漏洞插件,由于开发语言的先天限制,没有哪种开发语言能够实用全部扫描场景,这也导致了单一语言开发的漏洞扫描插件也有扩展性差,扫描功能场景覆盖有限、漏洞扫描执行效率差的严重缺陷。如果需要增加其他语言编写的插件,则需要增加对应的解释器和插件执行调度逻辑引擎,这样做也没能改善扩展性差的问题,还会存在开发代价大的问题。
然而,对于个别支持多语言的扫描器来说,不同语言的插件是由不同子系统进行调用,不同子系统相对隔离,这样导致了扫描过程消息无法共享,无法达到根据扫描结果动态调整扫描策略的目的。也就是说,传统漏洞扫描插件之间是独立的,很难有动态扫描结果信息共享机制,这就导致扫描过程中存在很多的重复性探测工作,扫描效率低,也即,插件之间信息相互独立,很难根据动态的已执行的漏洞扫描插件的扫描结果进行不同策略的选择,从而导致扫描效率低下。
发明内容
有鉴于此,本发明的目的在于提供一种漏洞扫描方法、装置、设备及存储介质,能够提高漏洞扫描插件的扩展性,并能够提升漏洞扫描效率。其具体方案如下:
第一方面,本申请公开了一种漏洞扫描方法,包括:
在接收到客户端下发的漏洞扫描任务时,获取扫描器中的各漏洞扫描插件对应的配置信息,并检查各所述漏洞扫描插件的执行依赖顺序;所述漏洞扫描插件为由不同计算机语言开发的用于执行所述漏洞扫描任务的插件;
根据所述执行依赖顺序确定出当前漏洞扫描插件;并从所述当前漏洞扫描插件对应的当前配置信息中查看所述当前漏洞扫描器件的触发条件;
判断当前是否满足所述当前漏洞扫描插件对应的所述触发条件;
若满足,则根据所述当前配置信息中的插件语言选取与所述插件语言对应的语言解释器,并通过所述语言解释器调用所述当前漏洞扫描插件执行相应的漏洞扫描操作得到相应的当前扫描信息。
可选的,所述判断当前是否满足所述当前漏洞扫描插件对应的所述触发条件之后,还包括:
若当前不满足所述当前漏洞扫描插件对应的所述触发条件,则跳过所述当前漏洞扫描插件,并重新执行所述根据所述执行依赖顺序确定出当前漏洞扫描插件的步骤。
可选的,所述通过所述语言解释器调用所述当前漏洞扫描插件执行相应的漏洞扫描操作得到相应的当前扫描信息之后,还包括:
将所述当前扫描信息写入预先构建的信息共享池;
相应的,所述判断当前是否满足所述当前漏洞扫描插件对应的所述触发条件,包括:
从所述信息共享池中获取上一个漏洞扫描插件对应的扫描信息,并根据所述扫描信息判断当前是否满足所述当前漏洞扫描插件对应的所述触发条件。
可选的,所述将所述当前扫描信息写入预先构建的信息共享池,包括:
通过set方法将所述当前扫描信息写入预先构建的信息共享池。
可选的,所述从所述信息共享池中获取上一个漏洞扫描插件对应的扫描信息,包括:
通过get方法从所述信息共享池中获取上一个漏洞扫描插件对应的扫描信息。
可选的,所述配置信息包括插件名称、插件路径、插件语言以及触发条件。
可选的,所述通过所述语言解释器调用所述当前漏洞扫描插件执行相应的漏洞扫描操作得到相应的当前扫描信息之后,还包括:
将所述当前扫描信息上报至业务端以便所述扫描器对收集到的所述当前扫描信息进行汇总以生成相应的扫描报告。
第二方面,本申请公开了一种漏洞扫描装置,包括:
配置信息获取模块,用于在接收到客户端下发的漏洞扫描任务时,获取扫描器中的各漏洞扫描插件对应的配置信息;
依赖顺序检查模块,用于检查各所述漏洞扫描插件的执行依赖顺序;所述漏洞扫描插件为由不同计算机语言开发的用于执行所述漏洞扫描任务的插件;
扫描插件确定模块,用于根据所述执行依赖顺序确定出当前漏洞扫描插件;并从所述当前漏洞扫描插件对应的当前配置信息中查看所述当前漏洞扫描器件的触发条件;
条件判断模块,用于判断当前是否满足所述当前漏洞扫描插件对应的所述触发条件;
解释器选取模块,用于在当前满足所述当前漏洞扫描插件对应的所述触发条件时,则根据所述当前配置信息中的插件语言选取与所述插件语言对应的语言解释器;
扫描插件调用模块,用于通过所述语言解释器调用所述当前漏洞扫描插件执行相应的漏洞扫描操作得到相应的当前扫描信息。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的漏洞扫描方法的步骤。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的漏洞扫描方法的步骤。
可见,本申请提供了一种漏洞扫描方法,包括:在接收到客户端下发的漏洞扫描任务时,获取扫描器中的各漏洞扫描插件对应的配置信息,并检查各所述漏洞扫描插件的执行依赖顺序;所述漏洞扫描插件为由不同计算机语言开发的用于执行所述漏洞扫描任务的插件;根据所述执行依赖顺序确定出当前漏洞扫描插件;并从所述当前漏洞扫描插件对应的当前配置信息中查看所述当前漏洞扫描器件的触发条件;判断当前是否满足所述当前漏洞扫描插件对应的所述触发条件;若满足,则根据所述当前配置信息中的插件语言选取与所述插件语言对应的语言解释器,并通过所述语言解释器调用所述当前漏洞扫描插件执行相应的漏洞扫描操作得到相应的当前扫描信息。由此可知,本申请的漏洞扫描插件为由不同计算机语言开发的插件,使得漏洞扫描插件的开发不再受单一开发语言的限制,漏洞检测手段丰富,能够尽可能的覆盖更多的漏洞扫描场景,提高漏洞扫描插件的扩展性,所以在接收到客户端下发的漏洞扫描任务时,获取扫描器中各漏洞扫描插件对应配置信息,同时检查出各插件的执行依赖顺序,然后确定出当前漏洞扫描插件,进而判断当前是否满足当前漏洞扫描插件对应的当前配置信息中的触发条件,从而能够动态调整扫描策略,在当前满足插件的触发条件时,通过选取出的与当前插件对应语言解释器调用当前漏洞扫描插件进行漏洞扫描,从而能够提升漏洞扫描效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种漏洞扫描方法流程图;
图2为本申请公开的一种具体的漏洞扫描方法流程图;
图3为本申请公开的一种漏洞扫描方法实施示意图;
图4为本申请公开的一种具体的漏洞扫描器件构成示意图;
图5为本申请公开的一种漏洞扫描装置结构示意图;
图6为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
当前,扫描器过于依赖单一语言开发的漏洞扫描插件,由于编码语言的限制,导致漏洞扫描插件的撰写逻辑非常复杂,部分漏洞扫描插件功能无法通过快速编码实现,漏洞扫描插件的扩展性差,从而影响扫描器功能。而且传统漏洞扫描插件之间是独立的,很难有动态扫描结果信息共享机制,这就导致扫描过程中存在很多的重复性探测工作,扫描效率低,也即,插件之间信息相互独立,很难根据动态的已执行的漏洞扫描插件的扫描结果进行不同策略的选择,从而导致扫描效率低下。为此,本申请提供了一种新的漏洞扫描方案,能够提高漏洞扫描插件的扩展性,并能够提升漏洞扫描效率
本发明实施例公开了一种漏洞扫描方法,参见图1所示,该方法包括:
步骤S11:在接收到客户端下发的漏洞扫描任务时,获取扫描器中的各漏洞扫描插件对应的配置信息,并检查各所述漏洞扫描插件的执行依赖顺序;所述漏洞扫描插件为由不同计算机语言开发的用于执行所述漏洞扫描任务的插件。
需要指出的是,上述漏洞扫描插件为由不同计算机语言开发的插件,例如,扫描器中有三个漏洞扫描插件,分别为A插件、B插件和C插件,其中,A插件由python语言编写,B插件由lua语言编写,C插件由nasl语言编写。上述漏洞扫描插件为用于执行漏洞扫描操作的执行单元,该漏洞扫描插件通常可以用脚本、二进制可执行文件等形式表示。也就是说,多种计算机语言开发的漏洞扫描插件互为补充,根据不同计算机语言的特性,结合开发效率和执行效率构建插件,使得漏洞扫描插件的开发不再受单一开发语言的限制,并且漏洞检测手段丰富,能够尽可能的覆盖更多的漏洞扫描场景,提高漏洞扫描插件的扩展性。并且,在漏洞扫描任务开始之前,给上述扫描器上电加载配置,可以包括业务配置数据,扫描器的管理对象可以是客户或者系统自带的可变更的属性,并且可以通过特定的数据接口完成所有漏洞扫描插件的注册,注册过程中需要明确该漏洞扫描插件的配置信息,所述配置信息可以包括插件名称、插件路径、插件语言以及触发条件。也就是说,可以利用确定出的漏洞插件对应的配置信息在扫描器中进行插件的注册。并且上述A插件、上述B插件、上述C插件的插件语言分别为python语言,lua语言,nasl语言,相应的,与上述A插件、上述B插件、上述C插件对应的语言解释器分别为:python解释器,lua解释器,nasl解释器。并且上述A插件、上述B插件、上述C插件的触发条件可以为:上述A插件无触发条件,也就是说上述A插件在任何情况下可以被触发,上述B插件的触发条件为“主机在线”,上述C插件触发条件为“TCP(Transmission Control Protocol,传输控制协议)的80端口开放”。
需要指出的是,所有漏洞扫描插件需要具备统一的调用接口、统一的接口参数,并且所有漏洞扫描插件上报的扫描结果是需要有统一的数据范式化结构的以及不同的漏洞扫描插件之间可以指定插件执行顺序的依赖关系,即指定不同的漏洞扫描插件之间的执行依赖顺序,但是不能使不同的漏洞扫描插件之间产生环状依赖。例如,指定上述A插件、上述B插件和上述C插件的执行依赖顺序为:A插件——>B插件——>C插件。
本实施例中,完成扫描器的上电加载配置以及插件的注册之后,在接收到漏洞扫描任务时,可以获取扫描器注册漏洞扫描插件时明确的配置信息,然后再检查各所述漏洞扫描插件的执行依赖顺序,例如,检查出的各所述漏洞扫描插件的执行依赖顺序为A插件——>B插件——>C插件。
步骤S12:根据所述执行依赖顺序确定出当前漏洞扫描插件;并从所述当前漏洞扫描插件对应的当前配置信息中查看所述当前漏洞扫描器件的触发条件。
本实施例中,检查出扫描器中的各漏洞扫描插件之间的执行依赖顺序,然后根据该执行依赖顺序确定出当前漏洞扫描插件,也就是说,按照该执行依赖顺序依次确定第一个漏洞扫描插件,第二个漏洞扫描插件,…,第n个漏洞扫描插件,例如,按照执行依赖顺序,当前该确定出的是所述第二个漏洞扫描插件,该第二个漏洞扫描插件即为当前漏洞扫描插件。例如,按照上述A插件、上述B插件、上述C插件的执行依赖顺A插件——>B插件——>C插件序,确定出当前漏洞扫描插件为A插件。
本实施例中,确定出当前漏洞扫描插件时,并查看当前漏洞扫描插件的触发条件,也就是说,因为之前已经获取到扫描器中的各漏洞扫描插件对应配置信息,所以可以从获取都的所有漏洞扫描插件对应的所有配置信息中查看当前漏洞扫描插件对应的当前配置信息,进而查看当前配置信息中的所述当前漏洞扫描器件的触发条件。例如,查看到上述A插件的触发条件,并且该A插件无触发条件。
步骤S13:判断当前是否满足所述当前漏洞扫描插件对应的所述触发条件。
本实施例中,从当前漏洞扫描插件对应的当前配置信息中查看到该当前漏洞扫描插件对应的触发条件时,判断当前是否满足所述当前漏洞扫描插件对应的所述触发条件。例如,按照上述A插件、上述B插件、上述C插件的的执行依赖顺序,可以确定出当前漏洞扫描插件为A插件,该A插件无触发条件,也就是说,判断当前是否满足所述A插件对应的所述触发条件。
步骤S14:若满足,则根据所述当前配置信息中的插件语言选取与所述插件语言对应的语言解释器,并通过所述语言解释器调用所述当前漏洞扫描插件执行相应的漏洞扫描操作得到相应的当前扫描信息。
本实施例中,在判断当前是否满足所述当前漏洞扫描插件对应的所述触发条件时,若当前满足所述当前漏洞扫描插件对应的所述触发条件,则根据所述当前配置信息中的插件语言选取与所述插件语言对应的语言解释器,并通过所述语言解释器调用所述当前漏洞扫描插件执行相应的漏洞扫描操作得到相应的当前扫描信息。可以理解的是,获取扫描器中的各漏洞扫描插件对应的配置信息,所以可以根据当前漏洞扫描插件对应的当前配置信息中的插件语言选取出与所述插件语言对应的预先构建的语言解释器,进而通过该语言解释器调用该当前漏洞扫描插件,并触发当前漏洞扫描插件进行漏洞扫描,得到当前相应的扫描信息。也就是说,满足触发条件,则触发调用的当前漏洞扫描插件进行漏洞扫描。例如,当前的情况满足上述A插件的触发条件,由于A插件无触发条件,所以在任何情况下都可以满足A插件的触发条件,然后通过选取出的与上述A插件对应的语言解释器,即python解释器调用该A插件执行漏洞扫描操作,该A插件扫描发现目标主机处于在线状态,上述A插件标记TARGET为ONLINE状态,即得到的扫描信息“TARGET在线”。
本实施例中,在判断当前是否满足所述当前漏洞扫描插件对应的所述触发条件时,若当前不满足所述当前漏洞扫描插件对应的所述触发条件,则跳过所述当前漏洞扫描插件,并重新执行所述根据所述执行依赖顺序确定出当前漏洞扫描插件的步骤。可以理解的是,在当前不满足所述当前漏洞扫描插件对应的所述触发条件,则跳过所述当前漏洞扫描插件,也即禁止调用当前漏洞扫描插件,然后根据所述执行依赖顺序确定出下一个漏洞扫描插件,即将下一个漏洞扫描插件成为当前漏洞扫描插件,进而执行所述判断当前是否满足所述当前漏洞扫描插件对应的所述触发条件的步骤。本实施例通过判断是否满足触发条件的方式能够动态调整扫描策略,也即按照实际的漏洞扫描任务触发相应的漏洞扫描插件进行漏洞扫描。
可见,本申请实施例中的漏洞扫描插件为由不同计算机语言开发的插件,使得漏洞扫描插件的开发不再受单一开发语言的限制,漏洞检测手段丰富,能够尽可能的覆盖更多的漏洞扫描场景,提高漏洞扫描插件的扩展性,所以在接收到客户端下发的漏洞扫描任务时,获取扫描器中各漏洞扫描插件对应配置信息,同时检查出各插件的执行依赖顺序,然后确定出当前漏洞扫描插件,进而判断当前是否满足当前漏洞扫描插件对应的当前配置信息中的触发条件,从而能够动态调整扫描策略,在当前满足插件的触发条件时,通过选取出的与当前插件对应语言解释器调用当前漏洞扫描插件进行漏洞扫描,从而能够提升漏洞扫描效率。
参见图2所示,本发明实施例公开了一种具体的漏洞扫描方法,相较于上一实施例,本实施例对技术方案作了进一步的说明和优化。
步骤S21:在接收到客户端下发的漏洞扫描任务时,获取扫描器中的各漏洞扫描插件对应的配置信息,并检查各所述漏洞扫描插件的执行依赖顺序;所述漏洞扫描插件为由不同计算机语言开发的用于执行所述漏洞扫描任务的插件。
步骤S22:根据所述执行依赖顺序确定出当前漏洞扫描插件;并从所述当前漏洞扫描插件对应的当前配置信息中查看所述当前漏洞扫描器件的触发条件。
步骤S23:判断当前是否满足所述当前漏洞扫描插件对应的所述触发条件。
步骤S24:若满足,则根据所述当前配置信息中的插件语言选取与所述插件语言对应的语言解释器,并通过所述语言解释器调用所述当前漏洞扫描插件执行相应的漏洞扫描操作得到相应的当前扫描信息。
关于上述步骤S21至步骤S24的具体内容可以参考前述实施例中公开的相应内容,在此不再进行赘述。
步骤S25:将所述当前扫描信息写入预先构建的信息共享池,并将所述当前扫描信息上报至业务端以便所述扫描器对收集到的所述当前扫描信息进行汇总以生成相应的扫描报告。
本实施例中,当前漏洞扫描插件完成漏洞扫描得到相应的扫描信息之后,可以将该扫描信息写入预先构建的信息共享池中,具体的,可以通过set方法将所述当前扫描信息写入预先构建的信息共享池,实现扫描信息的共享,从而根据该扫描信息动态调整扫描策略,也即从所述信息共享池中获取上一个漏洞扫描插件对应的扫描信息,并根据所述扫描信息判断当前是否满足所述当前漏洞扫描插件对应的所述触发条件。例如,可以理解的是,判断当前是否满足所述当前漏洞扫描插件对应的触发条件时,可以根据从信息共享池中获取到的上一个漏洞扫描插件对应的扫描信息进行判断,并且,获取扫描信息,具体的可以包括:通过get方法从所述信息共享池中获取上一个漏洞扫描插件对应的扫描信息。
本实施例中,当前漏洞扫描插件完成漏洞扫描得到相应的扫描信息时,还可以将扫描信息上报至业务端以便所述扫描器对收集到的扫描信息进行汇总以生成相应的扫描报告。可以理解的是,扫描器可以从业务端中收集各漏洞扫描插件的扫描信息,进而对这些扫描信息进行汇总,生成相应的扫描报告。
例如,调用set方法将A插件的扫描信息写入共享信息池中,也即,将内容为TARGET在线的扫描信息通过set方法写入预先构建的信息共享池,并将上述A插件“TARGET在线”的扫描信息上报至业务端,上述A插件完成漏洞扫描操作后,进而按照上述执行依赖顺序再次确定出当前漏洞扫描插件为B插件,查看到上述B插件的触发条件为主机在线,进而从共享信息池中获取上述A插件的扫描信息“TARGET在线”,根据上述A插件该扫描信息,判断当前是否满足B插件的触发条件,判断出当前确实满足B插件触发条件,即TARGET为ONLINE状态满足B插件的触发条件,则通过选取出的上述B插件对应的语言解释器,即lua解释器,调用B插件,通过B插件执行相关的漏洞扫描操作,上述B插件发现目标主机的80端口关闭,即上述A插件标记TARGET的80端口为close状态,并调用set方法将扫描信息“80端口关闭”写入共享消息池,同时,上述B插件发现目标主机的22端口为open状态,调用set方法将B插件的扫描结果“22端口开放”写入共享消息池,并将扫描结果“80端口关闭,22端口开放”上报给业务端;按照上述执行依赖顺序再次确定出当前漏洞扫描插件为C插件,查看到上述C插件的触发条件为TCP的80端口开放,进而从共享信息池中获取上述B插件的扫描信息“0端口关闭,22端口开放”,根据上述B插件该扫描信息,判断当前是否满足C插件的触发条件,判断出当前并不满足C插件的触发条件,即80端口处于关闭状态,禁止调用C插件执行漏洞扫描操作,从而跳过C插件。A插件上报扫描信息“TARGET在线”至业务端,B插件上报扫描信息“80端口关闭、22端口开放”至业务端,从而扫描器收集这些扫描信息进行汇总,生成的扫描报告为“TARGET在线且80端口关闭、22端口开放”。
可见,本申请实施例中的漏洞扫描插件为由不同计算机语言开发的插件,使得漏洞扫描插件的开发不再受单一开发语言的限制,漏洞检测手段丰富,能够尽可能的覆盖更多的漏洞扫描场景,提高漏洞扫描插件的扩展性,所以在接收到客户端下发的漏洞扫描任务时,获取扫描器中各漏洞扫描插件对应配置信息,同时检查出各插件的执行依赖顺序,然后确定出当前漏洞扫描插件,进而判断当前是否满足当前漏洞扫描插件对应的当前配置信息中的触发条件,在当前满足插件的触发条件时,通过选取出的与当前插件对应语言解释器调用当前漏洞扫描插件进行漏洞扫描,并将所述当前扫描信息写入预先构建的信息共享池中,实现不同计算机语言类型的插件消息能够共享,使得在判断当前是否满足当前漏洞扫描插件对应的当前配置信息中的触发条件时,可以根据从信息共享池中获取到的上一漏洞扫描插件的扫描信息进行判断,实现动态调整扫描策略,从而能够提升漏洞扫描效率。
例如,如图3所示,扫描器上电加载配置,并注册插件,漏洞扫描任务下发开始,通过任务调度器分配一定的资源空间,开始启动扫描流程,并在扫描前完成漏洞扫描插件的执行依赖顺序的检查,也即检查各所述漏洞扫描插件的执行依赖顺序,并获取各漏洞扫描插件的配置信息,以便后续进行插件的筛选、标记和语言解释器的选取。标记插件的配置信息,通过策略控制器调用相应解释器,触发对应插件进行漏洞扫描。插件执行过程中,将中间扫描过程信息通过set方法将信息写入信息共享池。插件执行过程中也可通过get方法从共享信息池中读取其他插件写入的消息。策略控制器通过get方法从共享信息池中读取其他插件写入的消息,判断后续插件是否需要继续调用执行。如果当前不满足触发条件,则插件不需要调用,直接跳过该插件,继续执行其他,执行完成的插件上报相应的执行结果,即上报扫描信息。
相应的,本申请实施例还公开了一种漏洞扫描装置,参见图4所示,该装置包括:
配置信息获取模块11,用于在接收到客户端下发的漏洞扫描任务时,获取扫描器中的各漏洞扫描插件对应的配置信息;
依赖顺序检查模块12,用于检查各所述漏洞扫描插件的执行依赖顺序;所述漏洞扫描插件为由不同计算机语言开发的用于执行所述漏洞扫描任务的插件;
扫描插件确定模块13,用于根据所述执行依赖顺序确定出当前漏洞扫描插件;并从所述当前漏洞扫描插件对应的当前配置信息中查看所述当前漏洞扫描器件的触发条件;
条件判断模块14,用于判断当前是否满足所述当前漏洞扫描插件对应的所述触发条件;
解释器选取模块15,用于在当前满足所述当前漏洞扫描插件对应的所述触发条件时,则根据所述当前配置信息中的插件语言选取与所述插件语言对应的语言解释器;
扫描插件调用模块16,用于通过所述语言解释器调用所述当前漏洞扫描插件执行相应的漏洞扫描操作得到相应的当前扫描信息。
由上可见,本申请实施例中的漏洞扫描插件为由不同计算机语言开发的插件,使得漏洞扫描插件的开发不再受单一开发语言的限制,漏洞检测手段丰富,能够尽可能的覆盖更多的漏洞扫描场景,提高漏洞扫描插件的扩展性,所以在接收到客户端下发的漏洞扫描任务时,获取扫描器中各漏洞扫描插件对应配置信息,同时检查出各插件的执行依赖顺序,然后确定出当前漏洞扫描插件,进而判断当前是否满足当前漏洞扫描插件对应的当前配置信息中的触发条件,从而能够动态调整扫描策略,在当前满足插件的触发条件时,通过选取出的与当前插件对应语言解释器调用当前漏洞扫描插件进行漏洞扫描,从而能够提升漏洞扫描效率。
在一些具体的实施例中,所述漏洞扫描装置,具体还可以包括:
步骤执行模块,用于在当前不满足所述当前漏洞扫描插件对应的所述触发条件时,则跳过所述当前漏洞扫描插件,并重新执行所述根据所述执行依赖顺序确定出当前漏洞扫描插件的步骤。
在一些具体的实施例中,所述漏洞扫描装置,具体还可以包括:
信息写入模块,用于将所述当前扫描信息写入预先构建的信息共享池;
在一些具体的实施例中,所述条件判断模块14,具体还可以包括:
信息获取单元,用于从所述信息共享池中获取上一个漏洞扫描插件对应的扫描信息;
条件判断单元,用于根据所述扫描信息判断当前是否满足所述当前漏洞扫描插件对应的所述触发条件。
在一些具体的实施例中,所述信息写入模块,具体还可以包括:
信息写入单元,用于通过set方法将所述当前扫描信息写入预先构建的信息共享池。
在一些具体的实施例中,所述信息获取单元,具体还可以包括:
信息获取子单元,用于通过get方法从所述信息共享池中获取上一个漏洞扫描插件对应的扫描信息。
在一些具体的实施例中,所述漏洞扫描装置,具体还可以包括:
信息上报模块,用于将所述当前扫描信息上报至业务端以便所述扫描器对收集到的所述当前扫描信息进行汇总以生成相应的扫描报告。
例如,如图5所示,该漏洞扫描装置可以由以下器件组成,分别为配置管理器、调度分发器、插件注册器、混合解释器、插件执行器、消息共享池、策略控制器。其中,所述配置管理器负责整个系统的配置管理;所述调度分发器:负责接收分发用户下发的漏洞扫描任务;所述插件注册器:负责进行插件的注册,插件元数据存储检索;所述混合解释器:负责通过不同语言解释器解析插件内容;所述插件执行器:负责真正用于漏洞扫描的插件的执行工作,通常是进程或者线程;所述消息共享池:负责插件扫描过程的中间数据的操作和共享;所述策略控制器:负责根据插件的执行调度触发条件,再结合消息共享池中的过程信息,所述动态调整扫描策略,用于执行和停止正在扫描的插件;通过结果收集模块收集和上报插件的扫描结果。
进一步的,本申请实施例还提供了一种电子设备。图6是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图6为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的漏洞扫描方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的漏洞扫描方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的漏洞扫描方法步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种漏洞扫描方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种漏洞扫描方法,其特征在于,包括:
在接收到客户端下发的漏洞扫描任务时,获取扫描器中的各漏洞扫描插件对应的配置信息,并检查各所述漏洞扫描插件的执行依赖顺序;所述漏洞扫描插件为由不同计算机语言开发的用于执行所述漏洞扫描任务的插件;
根据所述执行依赖顺序确定出当前漏洞扫描插件;并从所述当前漏洞扫描插件对应的当前配置信息中查看所述当前漏洞扫描插件的触发条件;
判断当前是否满足所述当前漏洞扫描插件对应的所述触发条件;
若满足,则根据所述当前配置信息中的插件语言选取与所述插件语言对应的语言解释器,并通过所述语言解释器调用所述当前漏洞扫描插件执行相应的漏洞扫描操作得到相应的当前扫描信息;
若当前不满足所述当前漏洞扫描插件对应的所述触发条件,则跳过所述当前漏洞扫描插件,并重新执行所述根据所述执行依赖顺序确定出当前漏洞扫描插件的步骤;
其中,所述通过所述语言解释器调用所述当前漏洞扫描插件执行相应的漏洞扫描操作得到相应的当前扫描信息之后,还包括:
将所述当前扫描信息写入预先构建的信息共享池;
相应的,所述判断当前是否满足所述当前漏洞扫描插件对应的所述触发条件,包括:
从所述信息共享池中获取上一个漏洞扫描插件对应的扫描信息,并根据所述扫描信息判断当前是否满足所述当前漏洞扫描插件对应的所述触发条件。
2.根据权利要求1所述的漏洞扫描方法,其特征在于,所述将所述当前扫描信息写入预先构建的信息共享池,包括:
通过set方法将所述当前扫描信息写入预先构建的信息共享池。
3.根据权利要求2所述的漏洞扫描方法,其特征在于,所述从所述信息共享池中获取上一个漏洞扫描插件对应的扫描信息,包括:
通过get方法从所述信息共享池中获取上一个漏洞扫描插件对应的扫描信息。
4.根据权利要求1所述的漏洞扫描方法,其特征在于,所述配置信息包括插件名称、插件路径、插件语言以及触发条件。
5.根据权利要求1至4任一项所述的漏洞扫描方法,其特征在于,所述通过所述语言解释器调用所述当前漏洞扫描插件执行相应的漏洞扫描操作得到相应的当前扫描信息之后,还包括:
将所述当前扫描信息上报至业务端以便所述扫描器对收集到的所述当前扫描信息进行汇总以生成相应的扫描报告。
6.一种漏洞扫描装置,其特征在于,包括:
配置信息获取模块,用于在接收到客户端下发的漏洞扫描任务时,获取扫描器中的各漏洞扫描插件对应的配置信息;
依赖顺序检查模块,用于检查各所述漏洞扫描插件的执行依赖顺序;所述漏洞扫描插件为由不同计算机语言开发的用于执行所述漏洞扫描任务的插件;
扫描插件确定模块,用于根据所述执行依赖顺序确定出当前漏洞扫描插件;并从所述当前漏洞扫描插件对应的当前配置信息中查看所述当前漏洞扫描插件的触发条件;
条件判断模块,用于判断当前是否满足所述当前漏洞扫描插件对应的所述触发条件;
解释器选取模块,用于在当前满足所述当前漏洞扫描插件对应的所述触发条件时,则根据所述当前配置信息中的插件语言选取与所述插件语言对应的语言解释器;
扫描插件调用模块,用于通过所述语言解释器调用所述当前漏洞扫描插件执行相应的漏洞扫描操作得到相应的当前扫描信息;
步骤执行模块,用于在当前不满足所述当前漏洞扫描插件对应的所述触发条件时,则跳过所述当前漏洞扫描插件,并重新执行所述根据所述执行依赖顺序确定出当前漏洞扫描插件的步骤;
其中,所述漏洞扫描装置,还包括:
信息写入模块,用于将所述当前扫描信息写入预先构建的信息共享池;
相应的,所述条件判断模块,具体包括:
信息获取单元,用于从所述信息共享池中获取上一个漏洞扫描插件对应的扫描信息;
条件判断单元,用于根据所述扫描信息判断当前是否满足所述当前漏洞扫描插件对应的所述触发条件。
7.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至5任一项所述的漏洞扫描方法的步骤。
8.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的漏洞扫描方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210923397.6A CN115134167B (zh) | 2022-08-02 | 2022-08-02 | 一种漏洞扫描方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210923397.6A CN115134167B (zh) | 2022-08-02 | 2022-08-02 | 一种漏洞扫描方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115134167A CN115134167A (zh) | 2022-09-30 |
CN115134167B true CN115134167B (zh) | 2024-04-12 |
Family
ID=83386407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210923397.6A Active CN115134167B (zh) | 2022-08-02 | 2022-08-02 | 一种漏洞扫描方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115134167B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111291384A (zh) * | 2020-04-28 | 2020-06-16 | 杭州海康威视数字技术股份有限公司 | 漏洞扫描方法、装置及电子设备 |
CN111723374A (zh) * | 2020-06-05 | 2020-09-29 | 绿盟科技集团股份有限公司 | 一种漏洞扫描方法及装置 |
CN113553595A (zh) * | 2021-07-27 | 2021-10-26 | 北京天融信网络安全技术有限公司 | 一种漏洞扫描方法、装置、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030212779A1 (en) * | 2002-04-30 | 2003-11-13 | Boyter Brian A. | System and Method for Network Security Scanning |
-
2022
- 2022-08-02 CN CN202210923397.6A patent/CN115134167B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111291384A (zh) * | 2020-04-28 | 2020-06-16 | 杭州海康威视数字技术股份有限公司 | 漏洞扫描方法、装置及电子设备 |
CN111723374A (zh) * | 2020-06-05 | 2020-09-29 | 绿盟科技集团股份有限公司 | 一种漏洞扫描方法及装置 |
CN113553595A (zh) * | 2021-07-27 | 2021-10-26 | 北京天融信网络安全技术有限公司 | 一种漏洞扫描方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115134167A (zh) | 2022-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6904597B2 (en) | Inter-thread communications between different components using double buffer | |
CN103038788B (zh) | 提供多个网络资源 | |
CN109995859A (zh) | 一种调度方法、调度服务器及计算机可读存储介质 | |
CN110363026B (zh) | 文件操作方法、装置、设备、系统及计算机可读存储介质 | |
CN111367693B (zh) | 基于消息队列调度插件任务的方法、系统、设备及介质 | |
US20090150869A1 (en) | System and method of monitoring dynamic scopes in synchronous and asynchronous calls | |
JP2012505484A (ja) | 権限管理に基づく端末装置管理のための方法および装置 | |
CN105718307B (zh) | 进程管理方法及进程管理装置 | |
CN113076253A (zh) | 一种测试方法和测试装置 | |
CN110381101A (zh) | Api网关控制系统、控制方法、设备和介质 | |
US8224933B2 (en) | Method and apparatus for case-based service composition | |
CN101483562A (zh) | 一种例行测试的方法、系统及相关设备 | |
CN110457132B (zh) | 一种功能对象的创建方法、装置和终端设备 | |
CN112180757B (zh) | 一种智能家居系统及其策略管理方法 | |
CN113158195B (zh) | 一种基于poc脚本的分布式漏洞扫描方法及系统 | |
US7917476B2 (en) | Device management system using log management object and method for generating and controlling logging data therein | |
CN115134167B (zh) | 一种漏洞扫描方法、装置、设备及存储介质 | |
CN114339637B (zh) | 一种短信拼接方法、装置、设备及存储介质 | |
CN116483543A (zh) | 一种任务处理方法、装置、设备及存储介质 | |
CN115617487A (zh) | 一种容器重调度方法、装置、设备、存储介质 | |
CN112019452B (zh) | 一种业务需求的处理方法、系统及相关装置 | |
CN109379453B (zh) | 一种DNS出口服务器ip地址的探测方法及系统 | |
Lin et al. | A web services status monitoring technology for distributed system management in the cloud | |
Blair et al. | A feature manager approach to the analysis of component-interactions | |
CN117573471A (zh) | 一种任务表状态监控方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |