一种扫描器的调用方法和装置与流程

文档序号:21844835发布日期:2020-08-14 16:55阅读:132来源:国知局
一种扫描器的调用方法和装置与流程
本申请涉及网络安全领域,特别涉及一种扫描器的调用方法和装置。
背景技术
:随着技术的不断发展,网络在给人们的生活带来巨大便利的同时,也隐藏着一些网络漏洞,威胁着网络安全。攻击者可以利用这些网络漏洞窃取网络资源、破坏系统等等,因此有必要对网络漏洞进行探测,以及时发现并修复网络漏洞。目前,可以通过各种功能不同的扫描器探测网络漏洞,例如基于网络协议的扫描器、基于服务及其应用的扫描器、基于漏洞的扫描器等等。在实际情况下,一般会采用多个扫描器对网络设备进行扫描,以尽量多地发现可能存在的各种漏洞。现有技术中通常会采用单一线程的调度方式来调用这些扫描器,线程中包括了多个扫描器及对应的调用顺序,所有的网络设备均可以采用上述线程进行扫描。然而,若线程中某个扫描器发生了异常,则会导致线程中的其它扫描器无法运行,必须等待异常恢复后才可以运行,引起扫描效率低下。技术实现要素:有鉴于此,本申请提供一种扫描器的调用方法。具体地,本申请是通过如下技术方案实现的:一种扫描器的调用方法,预先设有扫描项目与扫描策略的对应关系,所述扫描策略包括对应扫描项目使用的扫描器,所述方法包括:接收扫描任务,所述扫描任务中携带扫描项目;按照所述对应关系,查找所述扫描项目对应的扫描策略;将所述扫描任务分别下发给查找到的扫描策略中的各个扫描器,以调用各个扫描器。一种扫描器的调用装置,预先设有扫描项目与扫描策略的对应关系,所述扫描策略包括对应扫描项目使用的扫描器,所述装置包括:接收单元,用于接收扫描任务,所述扫描任务中携带扫描项目;查找单元,用于按照所述对应关系,查找所述扫描项目对应的扫描策略;调用单元,用于将所述扫描任务分别下发给查找到的扫描策略中的各个扫描器,以调用各个扫描器。本申请所述扫描器的调用方法,可以预先设置不同的扫描项目及对应扫描策略的对应关系,当接收到扫描任务后,可以按照所述扫描任务中携带的扫描项目查找上述对应关系,以找到对应的扫描策略,然后将扫描任务分别下发给扫描策略中的各个扫描器,避免了现有技术中某个扫描器出现故障导致必须等待的问题,能够提升扫描效率。附图说明图1是本申请一示例性实施例示出的一种扫描器的调用方法的流程示意图;图2是本申请一示例性实施例示出的另一种扫描器的调用方法的流程示意图;图3是本申请一示例性实施例示出的一种扫描器的调用装置的一结构示意图;图4是本申请一示例性实施例示出的一种扫描器的调用装置的框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。网络漏洞可以指在硬件、软件或协议等的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下窃取网络资源、访问或破坏系统等。常见的网络漏洞包括注入式漏洞、缓冲区溢出、dos(denialofservice,拒绝服务攻击)及弱密码等等。在实际情况下,可以通过漏洞扫描发现网络中可能存在的漏洞。扫描的对象是网络环境中的各个设备,比如交换机、路由器、防火墙和服务器等等,扫描的工具则是各种不同功能的漏洞扫描软件(下文称为扫描器)。这些扫描器可以对扫描对象进行扫描,以及时地发现漏洞、记录漏洞的相关信息,协助管理人员采取必要的安全防护措施来消除、修复这些漏洞,从而保证数据的安全。现有技术中通常会采用单一线程的调度方式来调用扫描器进行扫描,而为了提供更全面的漏洞扫描,操作人员一般会在线程中加入尽可能多的扫描器,使得各种网络设备均可以采用上述线程进行扫描。然而,由于上述线程中规定了各个扫描器的调用顺序,若线程中的某个扫描器发生了故障,则会使得后续的其它扫描器无法运行,而必须等待故障清除,或者等待时长达到了超时时长,后续的扫描器才能运行。那么这些等待的过程就导致整个扫描任务的效率低下。基于此,本申请提供了一种扫描器的调用方法,能够针对不同的网络设备制定不同的扫描策略,以更好地满足不同的扫描需求。图1是本申请一示例性实施例示出的一种扫描器的调用方法的流程示意图。所述扫描器的调用方法可以应用于具有处理器、存储器的电子设备中,例如服务器或服务器集群、pc(personalcomputer,个人计算机)、移动终端等等,本申请对此不作特殊限制。请参考图1,所述扫描器的调用方法可以包括以下步骤。步骤102,接收扫描任务,所述扫描任务中携带扫描项目。步骤104,按照所述对应关系,查找所述扫描项目对应的扫描策略。步骤106,将所述扫描任务分别下发给查找到的扫描策略中的各个扫描器,以调用各个扫描器。下面对上述步骤进行详细说明:本申请中,可以预先设置有扫描项目和扫描策略的对应关系。其中,扫描项目可以是操作人员根据不同的扫描需求、或者扫描任务对象归纳得到的。比如,扫描需求为对网络环境是否安全进行检测,那么对应的扫描项目可以定为安全检测;再比如,扫描对象是手机,那么对应的扫描项目可以定为手机漏洞检测;再比如,扫描对象是不同厂商的摄像头,那么对应的扫描项目可以定为弱口令检测或其它与摄像头漏洞相关的检测。类似的,针对其他扫描需求或扫描对象,本申请中的扫描项目还可以为资产发现、模拟人工漏洞检测等等。本申请中,可以为各个的扫描项目设置对应的扫描策略,扫描策略中包括对应扫描项目使用的扫描器。扫描策略中可以只包含一个扫描器,也可以包含多个扫描器。例如,扫描项目为资产发现,那么扫描策略中可以只包含一个扫描器,即资产发现扫描器。再例如,扫描项目为安全检测,那么扫描策略中可以包括三个扫描器:tcp/udp端口探测扫描器、注入类漏洞扫描器、缓冲区溢出扫描器。当然,上述例子只是对扫描策略进行示例性的说明,实际情况下扫描策略中可能会包括更多数量的扫描器。本申请中,扫描策略中的各个扫描器可以扫描器标识的形式存在,并且可以将扫描项目和扫描策略的对应关系以表的形式进行存储,下表例性地示出了一种扫描项目和扫描策略的对应关系表:扫描项目扫描策略安全检测扫描器a、扫描器b、扫描器c手机漏洞扫描器a、扫描器b模拟人工漏洞检测扫描器b、扫描器c、扫描器d、扫描器a本申请中,可以由操作人员下发扫描任务,并且在扫描任务中指定对应的扫描项目。服务器等设备接收到扫描任务后,可以获取预先设置的扫描项目和扫描策略的对应关系,然后利用扫描任务中携带的扫描项目查找上述对应关系,以查找到对应的扫描策略。然后基于查找到的扫描策略调用对应的扫描器进行扫描,以执行所述扫描任务。具体地,可以按照扫描策略中各个的扫描器的标识,将扫描任务下发给各个扫描器,各个扫描器接收到扫描任务后可以执行所述扫描任务。值得说明的是,本实施例中,扫描策略中的各个扫描器可以不存在固定的调用顺序,即各个扫描器接收到扫描任务后,可以并行地执行扫描任务,彼此之间不会互相干扰。采用这种方式,即便是扫描策略中某个扫描器出现了异常无法运行,或者某个扫描器执行任务耗时较久,其他扫描器也不需要对此进行等待,能够提高整体的扫描效率。并且,当需要向扫描策略中添加或删除扫描器时,也可以灵活地进行修改,不需要对整个扫描策略进行较大的改动。例如,针对上述扫描项目为安全检测,扫描策略为:扫描器a、扫描器b、扫描器c。将扫描任务下发给上述三个扫描器后,这三个扫描器可以并行地执行扫描任务。假设扫描器a发生了故障,那么扫描器b和c不需要等待扫描器a恢复正常也能执行自身的扫描任务。再假设扫描器a在接收到安全检测的扫描任务之前,还接收到手机漏洞、模拟人工漏洞检测的扫描任务,那么扫描器a可能需要先执行手机漏洞、模拟人工漏洞检测的扫描任务,然后再执行安全检测的扫描任务,那么就会导致扫描器a的扫描耗时较长。在这种情况下,同样的,扫描器b和c不需要等待扫描器a执行完毕也能执行自身的扫描任务。本实施例中,可以预先设置不同的扫描项目及对应扫描策略的对应关系,当接收到扫描任务后,可以按照所述扫描任务中携带的扫描项目查找上述对应关系,以找到对应的扫描策略,然后基于查找到的扫描策略调用对应的扫描器进行扫描。相比于现有技术,本实施例所示方案可以为不同的扫描项目制定不同的扫描策略,且扫描策略中的各个扫描器可以不存在固定的调用顺序,各个扫描器可以并行地执行扫描任务,避免了现有技术中某个扫描器出现故障导致其他扫描器必须等待的问题,能够提升扫描效率。下面对本申请提供的另一种扫描器的调用方法进行说明。请参考图2,图2是本申请一示例性实施例示出的另一种扫描器的调用方法的流程示意图,所述扫描器的调用方法可以应用于服务器。步骤202,接收扫描任务,所述扫描任务中携带扫描项目和目标ip网段。本实施例中,同样也可以预先设置扫描项目和扫描策略的对应关系,具体内容可参照前述实施例,本申请在此不再赘述。本步骤中,扫描任务中还可以携带目标ip网段或目标ip地址。其中,ip地址可以为ipv4地址,也可以为ipv6地址,本申请对此不作特殊限制。由前述内容可知,扫描器的扫描对象一般为网络环境中的各种网络设备,比如交换机、路由器、防火墙、服务器等等,那么目标ip网段或目标ip地址则对应着需要扫描的网络设备的网络地址。例如,假设需要对某交换机进行扫描,那么就可以把该交换机的ip地址作为目标ip地址,携带于扫描任务中。再例如,假设需要对某局域网内所有的主机进行扫描,那么就可以把这些主机对应的ip网段作为目标ip网段,携带于扫描任务中。步骤204,按照预设的拆分规则将所述扫描任务拆分为若干个子任务。本步骤中,可以将扫描任务进行拆分,得到若干个子任务,那么后续在执行时也可以每个子任务为一个执行单位,若某个子任务执行失败也不会对其它子任务产生影响,这样可以提高整个扫描任务的稳定性。本步骤中,由于扫描任务中携带目标ip网段,则可以按照一定的规则对所述目标ip网段进行拆分,然后根据拆分后得到的ip网段或ip地址划分各个子任务。在一个例子中,可以按照预设的拆分粒度,均匀地拆分目标ip网段。比如,可以在拆分时指定子任务的个数。假设目标ip网段为192.168.0.1—192.168.0.225,指定的子任务的个数为5,那么可以将上述目标ip网段拆分为5个ip网段,分别为:192.168.0.1—192.168.0.45、192.168.0.46—192.168.0.90、192.168.0.91—192.168.0.135、192.168.0.136—192.168.0.180、192.168.0.181—192.168.0.225。每个ip网段对应着一个子任务。再比如,还可以在拆分时指定子任务包含的ip地址数。假设目标网段仍是192.168.0.1—192.168.0.225,指定子任务包含的ip地址数为75,那么可以将上述目标ip网段拆分为3个ip网段,分别为:192.168.0.1—192.168.0.75、192.168.0.76—192.168.0.150、192.168.0.151—192.168.0.225。每个ip网段对应着一个子任务。当然,还可以对目标ip网段进行随机拆分,得到随机数量的子任务。假设目标网段仍是192.168.0.1—192.168.0.225,可以对其进行随机拆分,得到两个ip网段,分别为:192.168.0.1—192.168.0.120、192.168.0.121—192.168.0.225。每个ip网段对应着一个子任务。在另一个例子中,还可以不对目标ip地址进行上述“一视同仁”的拆分,而是考虑目标ip网段本身的情况进行拆分。举例来说,在一些情况下,一些ip网段或ip地址的扫描情况是操作人员需要重点关注的,比如网络中存储核心数据的服务器对应的ip地址的漏洞扫描情况就是需要重点关注的,那么可以将该服务器的ip地址单独划分到一个子任务中。具体地,可以预设一些需要重点关注的ip网段或ip地址,然后分析目标ip网段中是否存在上述重点关注的ip网段或ip地址,若存在,则可以将重点关注的ip网段或ip地址单独划分到一个子任务中,将目标ip网段中的剩余ip地址或ip网段划分到其它子任务中。例如,目标网段仍是192.168.0.1—192.168.0.225,其中,192.168.0.2和192.168.0.14—192.168.0.20是需要重点关注的,那么可以将192.168.0.2划分到一个子任务,将192.168.0.14—192.168.0.20划分到一个子任务,将剩下的ip网段或ip地址划分到其它子任务中。本步骤中,若扫描任务中携带多个目标ip网段,且这些ip网段之间存在重合的部分,那么还可以将重合的部分删除。比如,目标ip网段为192.168.0.1—192.168.0.200和192.168.0.150—192.168.0.300,那么可以将这两个ip网段之间重合的部分:192.168.0.150—192.168.0.200删除,得到删除后的目标ip网段为:192.168.0.1—192.168.0.300。然后再对目标ip网段进行拆分,得到子任务。本步骤中,还可以连续地接收多个扫描任务,然后获取这些扫描任务对应的优先级,比如优先级为高、中、低等等。将扫描任务按照优先级从高到低排序,然后按照排序顺序依次将各个扫描任务拆分为子任务。其中,优先级可以是由操作人员在下发扫描任务时,在扫描任务中指定的。优选地,优先级也可以是根据扫描项目确定的。比如,可以预先设置扫描项目和优先级的映射关系,当接收到扫描任务及其携带的扫描项目后,可以基于所述扫描项目查找所述映射关系,以查找对应的优先级。采用这种方法,可以将扫描任务按照优先级来拆分子任务,使得优先级较高的扫描任务可以先被拆分,优先级较低的任务可以后续再被拆分,能够更好满足扫描需求。步骤206,判断每个子任务对应的ip地址和/或ip网段中是否存在无效ip地址。若是,执行步骤208;若否,执行步骤210。步骤208,过滤所述无效ip地址。本申请中,针对每个子任务,可以判断子任务对应的ip地址和/或ip网段中是否存在无效ip地址,若存在,则可以过滤掉所述无效ip地址。其中,无效ip地址可以指的是不存在对应主机的ip地址。本申请中,扫描任务中携带的目标ip网段一般为连续的ip网段,比如192.168.0.1—192.168.0.255,但是在实际情况下,并不是这个网段中的每一个ip地址都存在对应的主机,即有些ip地址不存在对应的主机,那么这些ip地址就是无效ip地址。当然,在实际情况下,还有可能某个ip地址对应的主机发生了故障,导致无法正常运行,那么这种情况下该主机对应的ip地址也是无效ip地址。本申请中,针对每个子任务,可以向子任务对应的ip网段和/或ip地址发送报文,判断是否接收到各个ip地址返回的响应报文。若未接收到某ip地址返回的响应报文,则说明该ip地址为无效ip地址。优选地,本申请中还可以调用资产发现扫描器,以判断是否存在无效ip地址。其中,“资产”即代表ip地址存在对应主机,且主机未发生故障,运行情况良好的。资产发现扫描器可自动地对各个ip地址进行扫描,扫描过程中可以探测接口的连接情况、报文的收发速度等等,以判断ip地址是否为无效ip地址。本申请中,若子任务对应的ip地址中存在无效ip地址的,则过滤所述无效ip地址;若不存在无效ip地址,则保持子任务原有的ip地址不变。步骤210,针对每个子任务,将所述子任务分别下发给查找到的扫描策略中的各个扫描器,以调用对应的扫描器。本申请中,扫描任务中携带扫描项目,那么将扫描任务拆分得到若干个子任务后,子任务的扫描项目就是所述扫描任务的扫描项目。比如,扫描任务的扫描项目为安全检测,那么将这个扫描任务拆分为3个子任务后,这3个子任务对应的扫描项目也是安全检测。针对每个子任务,可以根据子任务的扫描项目,查找预设的扫描项目和扫描策略的对应关系,然后根据查找的扫描策略调用对应的扫描器,以执行所述子任务。具体地,可以将子任务分别下发给查找到的扫描策略中的各个扫描器,各个扫描器接收到子任务后可以并行地执行子任务。优选地,本步骤中,各个扫描器还可以根据子任务的可执行时间段,来判断是否执行子任务。具体地,各个扫描器可以连续地接收多个子任务,这些子任务可能来自于不同的扫描任务,那么这些子任务的可执行时间段也很可能是不一样的。在这种情况下,各个扫描器在执行各个子任务之前,可以获取子任务对应的可执行时间段,判断当前执行时间是否匹配所述可执行时间段,若匹配,则执行所述子任务;若不匹配,则可以暂时不执行子任务,当当前执行时间满足子任务的可执行时间段后再执行该子任务。其中,子任务对应的可执行时间段可以是由操作人员在下发扫描任务时,在扫描任务中指定的。比如,扫描任务中携带的可执行时间段为0:00-2:00,那么该扫描任务拆分得到的所有子任务的可执行时间段也是0:00-2:00。较优地,子任务对应的可执行时间段也可以是根据扫描项目确定的。比如,可以预先设置扫描项目和可执行时间段的映射关系,当接收到扫描任务及其携带的扫描项目后,可以基于所述扫描项目查找所述映射关系,以查找对应的可执行时间段。本步骤中,对于当前执行时间匹配可执行时间段的子任务,可根据子任务对应的扫描策略调用对应的扫描器。每执行完扫描策略中的一个扫描器后,可以对扫描器进度进行更新。当扫描策略中的所有扫描器都执行完成后,可以返回子任务执行完成的消息。若某个扫描任务对应的所有子任务均执行完成,则可以返回扫描任务执行完成的消息。可以统计各个扫描任务的扫描进度,并将扫描进度展示给用户。步骤212,将扫描结果存入数据库。本步骤中,每个子任务在调用扫描器的过程中,还可以将扫描结果存入数据库。其中,扫描结果可以为:是否存在漏洞、存在哪些漏洞、扫描过程中访问的端口信息、漏洞修复建议等等。本实施例实现了,根据扫描任务中携带的目标ip网段、优先级对扫描任务进行拆分,得到若干个子任务,然后过滤掉每个子任务中的无效ip地址,将过滤后的子任务按照对应的扫描策略调用扫描器,并且可以将扫描结果存入数据库。本实施例所示方法,可以将扫描任务进行拆分得到子任务,以子任务为单位进行执行,使得各个子任务之间不受干扰,提高整个扫描任务的稳定性。并且还可以过滤掉每个子任务中的无效ip地址,避免了对这些无效ip地址进行扫描带来的性能浪费,提高了扫描任务的执行效率。与前述扫描器的调用方法的实施例相对应,本申请还提供了扫描器的调用装置的实施例。本申请扫描器的调用装置的实施例可以应用在服务器上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在服务器的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本申请扫描器的调用装置所在服务器的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的服务器通常根据该服务器的实际功能,还可以包括其他硬件,对此不再赘述。图4是本申请一示例性实施例示出的一种扫描器的调用装置的框图。请参考图4,所述扫描器的调用装置300可以应用在前述图2所示的服务器中,包括有:接收单元310、查找单元320、执行单元330。其中,接收单元310,用于接收扫描任务,所述扫描任务中携带扫描项目;查找单元320,用于按照所述对应关系,查找所述扫描项目对应的扫描策略;调用单元330,将所述扫描任务分别下发给查找到的扫描策略中的各个扫描器,以调用各个扫描器。可选的,所述装置还包括:拆分单元,用于在接收到扫描任务后,按照预设的拆分规则将所述扫描任务拆分为若干个子任务;所述调用单元330具体用于:针对每个子任务,将所述子任务分别下发给查找到的扫描策略中的各个扫描器。可选的,所述扫描任务中携带目标ip网段,所述拆分单元具体用于:按照预设的拆分粒度对所述目标ip网段进行拆分;根据拆分后得到的ip网段和/或ip地址划分子任务。可选的,所述装置还包括:判断每个子任务对应的ip地址和/或ip网段中是否存在无效ip地址;若存在,过滤所述无效ip地址。可选的,所述扫描任务有多个,所述拆分单元具体用于:确定各个扫描任务的优先级;将所述各个扫描任务按照优先级从高到低的顺序进行排序;按照排序顺序对各个扫描任务进行拆分,得到各自对应的子任务。可选的,扫描器执行子任务的过程,包括:确定接收到的子任务的可执行时间段;判断当前执行时间是否匹配所述可执行时间段;若匹配,执行所述子任务。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1