CN111131262A - 一种漏洞扫描方法及装置 - Google Patents

一种漏洞扫描方法及装置 Download PDF

Info

Publication number
CN111131262A
CN111131262A CN201911368990.3A CN201911368990A CN111131262A CN 111131262 A CN111131262 A CN 111131262A CN 201911368990 A CN201911368990 A CN 201911368990A CN 111131262 A CN111131262 A CN 111131262A
Authority
CN
China
Prior art keywords
vulnerability
plug
vulnerability plug
tested
ins
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.)
Granted
Application number
CN201911368990.3A
Other languages
English (en)
Other versions
CN111131262B (zh
Inventor
张楠
齐小兵
郭朝辉
任进
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NSFOCUS Information Technology Co Ltd
Nsfocus Technologies Inc
Original Assignee
NSFOCUS Information Technology Co Ltd
Nsfocus Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NSFOCUS Information Technology Co Ltd, Nsfocus Technologies Inc filed Critical NSFOCUS Information Technology Co Ltd
Priority to CN201911368990.3A priority Critical patent/CN111131262B/zh
Publication of CN111131262A publication Critical patent/CN111131262A/zh
Application granted granted Critical
Publication of CN111131262B publication Critical patent/CN111131262B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]

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)
  • Power Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例公开了一种漏洞扫描方法及装置,根据待测网络设备的IP地址对待测网络设备进行探测,确定待测网络设备上的资源,并根据资源与漏洞插件的对应关系,确定待测网络设备上的资源对应的漏洞插件,至少根据待测网络设备上的资源对应的漏洞插件确定待测网络设备对应的漏洞插件,加载待测网络设备对应的漏洞插件,并调度加载后的漏洞插件对待测网络设备进行漏洞扫描。本发明实施例中,通过确定待测网络设备上的资源对应的漏洞插件,能够仅加载对该待测网络设备进行漏洞扫描时需要的漏洞插件,而无需加载不需要的漏洞插件,从而可以提高漏洞扫描的灵活性,还能节省漏洞扫描所需的系统资源,提高漏洞扫描的效率。

Description

一种漏洞扫描方法及装置
技术领域
本发明涉及网络安全技术领域,尤其涉及一种漏洞扫描方法及装置。
背景技术
网络设备的漏洞扫描是一种常用的资源探测方式,通过扫描网络设备中的主机系统漏洞、服务漏洞和应用漏洞,能够准确识别网络设备的资产状态,提高对网络设备进行资产管理的安全性和灵活性。
现阶段,在对网络设备进行漏洞扫描时,通常需要先加载全部的漏洞插件,再从已加载的漏洞插件中调度需要的漏洞插件进行漏洞扫描。该种方式存在的问题是:不同的网络设备需要不同的漏洞插件,针对于某一网络设备来说,全部的漏洞插件中会包含较多无用的漏洞插件,因此,采用加载全部的漏洞插件进行漏洞扫描的方式,会造成大量的无用资源开销,导致漏洞扫描的效率较低。
综上,目前亟需一种漏洞扫描方法,用以减轻漏洞扫描时的资源开销,提高漏洞扫描的效率。
发明内容
本发明实施例提供一种漏洞扫描方法及装置,用以减轻漏洞扫描时的资源开销,提高漏洞扫描的效率。
第一方面,本发明实施例提供的一种漏洞扫描方法,所述方法包括:
根据待测网络设备的IP地址,对所述待测网络设备进行探测,确定所述待测网络设备上的资源,根据资源与漏洞插件的对应关系,确定所述待测网络设备上的资源对应的漏洞插件,并至少根据所述待测网络设备上的资源对应的漏洞插件确定所述待测网络设备对应的漏洞插件,加载所述待测网络设备对应的漏洞插件,并调度加载后的所述漏洞插件对所述待测网络设备进行漏洞扫描。
本发明实施例中,通过确定待测网络设备上的资源对应的漏洞插件,能够仅加载扫描该待测网络设备时需要的漏洞插件,而无需加载扫描待测网络设备时不需要的漏洞插件,从而可以提高漏洞扫描的灵活性,还能节省漏洞扫描所需的系统资源,提高漏洞扫描的效率。
在一种可能的实现方式中,所述根据待测网络设备的IP地址,对所述待测网络设备进行探测之前,还确定所述待测网络设备的IP地址处于存活状态。
在上述实现方式中,通过在探测待测网络设备之前对待测网络设备的IP地址进行活性鉴定,可以避免对失活的IP地址进行探测,从而避免执行无用的操作,提高漏洞扫描的效率。
在一种可能的实现方式中,所述待测网络设备上的资源包括开放端口、关闭端口和每个开放端口上运行的端口服务;所述资源与漏洞插件的对应关系按照操作系统、端口服务和漏洞插件的层级关系进行设置;所述根据资源与漏洞插件的对应关系,确定所述待测网络设备上的资源对应的漏洞插件,包括:根据所述开放端口和关闭端口,确定所述待测网络设备上运行的目标操作系统,根据所述资源与漏洞插件的对应关系中所述目标操作系统下的各个端口服务对应的漏洞插件,确定每个开放端口上运行的端口服务对应的漏洞插件,将各个开放端口上运行的端口服务对应的漏洞插件作为所述待测网络设备上的资源对应的漏洞插件。
在上述实现方式中,漏洞插件通常与网络设备上运行的操作系统和端口服务相关,通过确定待测网络设备上运行的操作系统和端口服务,能够准确匹配出与待测网络设备的漏洞扫描相关的漏洞插件,减少漏洞插件的加载和调度,节省内存开销。
在一种可能的实现方式中,所述至少根据所述待测网络设备上的资源对应的漏洞插件确定所述待测网络设备对应的漏洞插件,包括:根据所述待测网络设备的类型,确定所述待测网络设备对应的通用漏洞插件,将所述待测网络设备的资源对应的漏洞插件和所述通用漏洞插件确定为所述待测网络设备对应的漏洞插件。
在上述实现方式中,通过在待测网络设备对应的漏洞插件中补充通用漏洞插件,可以保证加载的漏洞插件的完整性,避免遗漏对待测网络设备的必要漏洞检测,提高漏洞检测的准确性;且,通过预先划分通用漏洞插件和专有漏洞插件(即与运行服务相关的漏洞插件),还可以提高对各类漏洞插件管理的灵活性。
在一种可能的实现方式中,所述调度加载后的所述漏洞插件对所述待测网络设备进行漏洞扫描,包括:根据加载后的各个漏洞插件的依赖关系,将所述各个漏洞插件划分为多条漏洞插件序列,每条漏洞插件序列中的漏洞插件具有依赖关系;进一步地,并行调度所述多条漏洞插件序列中的漏洞插件;针对于任一漏洞插件序列,按照所述漏洞插件序列中的漏洞插件的依赖关系依次调度所述漏洞插件序列中的漏洞插件。
在上述实现方式中,通过并行方式调度各个漏洞插件序列中的漏洞插件,可以有效提高漏洞扫描的效率。
在一种可能的实现方式中,所述并行调度所述多条漏洞插件序列中的漏洞插件,包括:在多个时间片内并行调度所述多条漏洞插件序列中的漏洞插件;其中,任一时间片内调度的漏洞插件通过如下方式确定:从每个漏洞插件序列中确定出还未调度的且处于最底层依赖关系的备选漏洞插件,根据各个漏洞插件所需的资源占用量,确定每个漏洞插件序列中还未调度的漏洞插件所需的总资源占用量,将所需的总资源占用量最大的漏洞插件序列中的备选漏洞插件作为所述时间片对应的一个目标漏洞插件,从除所述目标漏洞插件以外的其他备选漏洞插件中获取其它目标漏洞插件,所述目标漏洞插件和所述其它目标漏洞插件所需的总资源占用量小于或等于设定资源占用量。
在上述实现方式中,由于在每一时间片时优先调度未调度的总资源占用量最大的漏洞插件序列中的漏洞插件,从而能够均衡各个漏洞插件序列的整体调度时间,平衡每个时间片所调度的总资源占用量,在合理规划使用总资源占用量的同时,还能够保证扫描过程的稳定性,提高漏洞扫描的效率。
在一种可能的实现方式中,所述每个漏洞插件所需的资源占用量通过如下方式得到:调度所述漏洞插件对多个网络设备进行漏洞扫描,并记录所述漏洞插件在每次调度时耗费的资源占用量;根据所述漏洞插件在各次调度时耗费的总资源占用量和调度次数,确定所述漏洞插件所需的资源占用量。
在上述实现方式中,通过使用机器学习方式来确定漏洞插件所需的资源占用量,使得资源占用量能够更加贴合实际的扫描环境,充分考虑了各个网络设备扫描所需的平均资源占用量,从而可以提高确定的资源占用量的准确性。
在一种可能的实现方式中,所述漏洞插件在每次调度时耗费的资源占用量通过如下方式得到:获取所述漏洞插件在所述调度中消耗的中央处理器CPU时间、输入/输出I/O时间、内存使用量和网络带宽使用量中的任意一项或任意多项信息;使用预设资源算法对获取到的所述信息进行计算,得到所述漏洞插件在每次调度时耗费的资源占用量。
在上述实现方式中,通过基于各个维度的资源使用情况来确定漏洞插件在每次漏洞扫描中的资源占用量,可以以更为全面的信息综合确定漏洞插件在每次漏洞扫描中的资源占用量,如此,所确定的资源占用量可以更为准确,且更加符合实际情况。
第二方面,本发明实施例提供的一种漏洞扫描装置,所述装置包括:
探测模块,用于根据待测网络设备的IP地址,对所述待测网络设备进行探测,确定所述待测网络设备上的资源;
确定模块,用于根据资源与漏洞插件的对应关系,确定所述待测网络设备上的资源对应的漏洞插件,并至少根据所述待测网络设备上的资源对应的漏洞插件确定所述待测网络设备对应的漏洞插件;
扫描模块,用于加载所述待测网络设备对应的漏洞插件,并调度加载后的所述漏洞插件对所述待测网络设备进行漏洞扫描。
在一种可能的实现方式中,在所述探测模块根据待测网络设备的IP地址,对所述待测网络设备进行探测之前,所述确定模块还确定所述待测网络设备的IP地址处于存活状态。
在一种可能的实现方式中,所述待测网络设备上的资源包括开放端口、关闭端口和每个开放端口上运行的端口服务;所述资源与漏洞插件的对应关系按照操作系统、端口服务和漏洞插件的层级关系进行设置;所述确定模块具体用于:根据所述开放端口和关闭端口,确定所述待测网络设备上运行的目标操作系统,根据所述资源与漏洞插件的对应关系中所述目标操作系统下的各个端口服务对应的漏洞插件,确定每个开放端口上运行的端口服务对应的漏洞插件,将各个开放端口上运行的端口服务对应的漏洞插件作为所述待测网络设备上的资源对应的漏洞插件。
在一种可能的实现方式中,所述确定模块具体用于:根据所述待测网络设备的类型,确定所述待测网络设备对应的通用漏洞插件,将所述待测网络设备的资源对应的漏洞插件和所述通用漏洞插件确定为所述待测网络设备对应的漏洞插件。
在一种可能的实现方式中,所述扫描模块具体用于:根据加载后的各个漏洞插件的依赖关系,将所述各个漏洞插件划分为多条漏洞插件序列,每条漏洞插件序列中的漏洞插件具有依赖关系;进一步地,并行调度所述多条漏洞插件序列中的漏洞插件,针对于任一漏洞插件序列,按照所述漏洞插件序列中的漏洞插件的依赖关系依次调度所述漏洞插件序列中的漏洞插件。
在一种可能的实现方式中,所述扫描模块具体用于:在多个时间片内并行调度所述多条漏洞插件序列中的漏洞插件;其中,任一时间片内调度的漏洞插件通过如下方式确定:从每个漏洞插件序列中确定出还未调度的且处于最底层依赖关系的备选漏洞插件,根据各个漏洞插件所需的资源占用量,确定每个漏洞插件序列中还未调度的漏洞插件所需的总资源占用量,将所需的总资源占用量最大的漏洞插件序列中的备选漏洞插件作为所述时间片对应的一个目标漏洞插件,从除所述目标漏洞插件以外的其他备选漏洞插件中获取其它目标漏洞插件,所述目标漏洞插件和所述其它目标漏洞插件所需的总资源占用量小于或等于设定资源占用量。
在一种可能的实现方式中,所述扫描模块通过如下方式得到每个漏洞插件所需的资源占用量:调度所述漏洞插件对多个网络设备进行漏洞扫描,并记录所述漏洞插件在每次调度时耗费的资源占用量,根据所述漏洞插件在各次调度时耗费的总资源占用量和调度次数,确定所述漏洞插件所需的资源占用量。
在一种可能的实现方式中,所述扫描模块通过如下方式得到所述漏洞插件在每次调度时耗费的资源占用量:获取所述漏洞插件在所述调度中消耗的中央处理器CPU时间、输入/输出I/O时间、内存使用量和网络带宽使用量中的任意一项或任意多项信息,使用预设资源算法对获取到的所述信息进行计算,得到所述漏洞插件在每次调度时耗费的资源占用量。
第三方面,本发明实施例提供的一种计算设备,包括至少一个处理器以及至少一个存储器,其中,所述存储器存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行上述第一方面任意所述的漏洞扫描方法。
第四方面,本发明实施例提供的一种计算机可读存储介质,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行上述第一方面任意所述的漏洞扫描方法。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种可能的系统架构示意图;
图2为本发明实施例提供的一种漏洞扫描方法对应的流程示意图;
图3为本发明实施例提供的一种漏洞插件序列的示意图;
图4为本发明实施例提供的一种漏洞扫描装置的结构示意图;
图5为本发明实施例提供的一种计算设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种可能的系统架构示意图,如图1所示,该系统架构包括客户端100、漏洞扫描器110和至少一个网络设备,比如网络设备121、网络设备122和网络设备123;其中,漏洞扫描器110可以与每个网络设备连接,比如可以通过有线方式实现连接,也可以通过无线方式实现连接,不作限定。
具体实施中,漏洞扫描器110可以根据客户端100设置的扫描规则对至少一个网络设备进行漏洞扫描,扫描规则可以由客户端100侧的管理人员进行设置,比如可以设置为按照设定周期对固定的网络设备进行漏洞扫描,或者也可以设置为对新接入的网络设备进行扫描,或者还可以设置为对设定类型的网络设备进行扫描,等等。相应地,漏洞扫描器110得到漏洞扫描结果后,可以将漏洞扫描结果回传给客户端100,以便于客户端100侧的管理人员基于漏洞扫描结果确定所管理的各个网络设备的当前状态,了解各个网络设备的安全程度,或者评估各个网络设备在当前阶段的风险等级。如此,若确定某一网络设备的风险等级较高,则管理人员还可以及时修正或隔离该网络设备,从而提高网络系统的安全性。
本发明实施例中,网络设备可以为任意类型的网络设备,比如个人计算机(Personal Computer,PC)设备、互联网数据中心(Internet Data Center,IDC)设备、物联网(Internet of Things,IOT)设备,等等,不作限定。
需要说明的是,图1中的漏洞扫描器110可以为服务器,或者也可以为部署在客户端100中的漏洞扫描组件,比如软件工具开发包(Software Development Kit,SDK)组件,通过远程过程调用(Remote Procedure Call,RPC)协议来实现与客户端的通信,具体不作限定。
根据图1所示意的系统架构,图2为本发明实施例提供的一种漏洞扫描方法对应的流程示意图,该方法适用于漏洞扫描器110,该方法包括:
步骤201,根据待测网络设备的IP地址,对所述待测网络设备进行探测,确定所述待测网络设备上的资源。
具体实施中,当客户端100存在漏洞扫描需求时,可以向漏洞扫描器110发送漏洞扫描请求(比如扫描规则),漏洞扫描请求中可以直接包括待测网络设备的IP地址,或者也可以包括待测网络设备的标识;相应地,当漏洞扫描器110接收到漏洞扫描请求后,若解析漏洞扫描请求得到待测网络设备的标识,则可以根据其管理的各个网络设备的标识与IP地址的对应关系,确定出待测网络设备的标识对应的IP地址,该IP地址即为待测网络设备的IP地址。
其中,待测网络设备的IP地址可以为IPV4地址、IPV6地址、IPV9地址中的任意一种或任意多种。
本发明实施例中,在确定出待测网络设备的IP地址后,漏洞扫描器110可以直接根据该IP地址对待测网络设备进行探测,然而,若待测网络设备的IP地址为失活的IP地址,则即使向该IP地址发送了探测请求,漏洞扫描器110也无法得到待测网络设备返回的探测响应,从而漏洞扫描器110无法对待测网络设备进行漏洞探测,导致漏洞扫描时执行了较多的无用操作,漏洞扫描的效率较低。
为了解决该问题,在一个示例中,漏洞扫描器110在确定出待测网络设备的IP地址之后,对待测网络设备进行探测之前,还可以对待测网络设备的IP地址进行存活性鉴定。具体地说,漏洞扫描器110可以在Tcp Connect协议或Syn协议的支持下联合待测网络设备的IP地址构建及发送请求数据包,并等待待测网络设备返回响应数据包;若成功接收到待测网络设备返回的SYN响应数据包或ACK响应数据包,则可以确定待测网络设备的IP地址处于存活状态,若未接收到待测网络设备返回的SYN响应数据包或ACK响应数据包,则可以确定待测网络设备的IP地址处于失活状态。
相应地,若待测网络设备的IP地址为非法的IP地址,则即使向该IP地址发送了探测请求,漏洞扫描器110也会得到待测网络设备返回的错误的探测响应,导致漏洞扫描器110对待测网络设备进行漏洞扫描的结果不准确。
基于此,在又一个示例中,漏洞扫描器110在确定出待测网络设备的IP地址之后,对待测网络设备进行探测之前,还可以对待测网络设备的IP地址进行合法性鉴定。具体地说,漏洞扫描器110可以判断待测网络设备的IP地址与每个设定非法IP字段的匹配程度,若存在至少一个设定非法IP字段的匹配程度大于等于设定匹配程度,则可以确定该IP地址为非法的IP地址,若该IP地址与任意的设定非法IP字段的匹配程度均小于设定匹配程度,则可以确定该IP地址为合法的IP地址。其中,设定非法IP字段可以由本领域技术人员根据经验进行设置,比如根据RFC1918官方文档中对非法IP地址字段的规定可知,内网私有IP字段(由于内网私有IP地址包含10.64.0.0~10.64.255.255、172.16.0.0~172.31.255.255和192.168.0.00~192.168.255.255,因此内网私有IP字段可以为100.64、172.16或192.168)、环回IP字段(比如127.0.0.1、169.254等)和保留IP字段均属于非法IP字段,因此,可以将内网私有IP字段、环回IP字段和保留IP字段设置为设定非法IP字段。
本发明实施例中,漏洞扫描器110可以仅对待测网络设备的IP地址进行存活性鉴定,也可以仅对待测网络设备的IP地址进行合法性鉴定,还可以同时对待测网络设备的IP地址进行存活性鉴定和合法性鉴定。以后者为例,漏洞扫描器110可以先对待测网络设备的IP地址进行合法性鉴定,确定待测网络设备的IP地址合法后,再对待测网络设备的IP地址进行存活性鉴定,或者也可以先对待测网络设备的IP地址进行存活性鉴定,确定待测网络设备的IP地址处于存活状态后,再对待测网络设备的IP地址进行合法性鉴定,具体不作限定。
在上述示例中,通过在探测待测网络设备之前对待测网络设备的IP地址进行合法性鉴定和/或活性鉴定,可以避免对非法的IP地址和/或失活的IP地址进行探测,从而避免执行无用的操作,提高漏洞扫描的效率和准确性。
在一个示例中,探测过程可以按照如下方式实现:漏洞扫描器110根据待测网络设备的IP地址构造以及发送探测请求,并接收待测网络设备根据探测请求返回的探测响应;其中,探测响应中可以包括待测网络设备上各个资源的标识,比如待测网络设备上部署的各个开放端口的端口号、各个关闭端口的端口号、每个开放端口的Banner信息、每个开放端口上运行的端口服务、待测网络设备支持的网络协议中的任意一项或任意多项。
步骤202,根据资源与漏洞插件的对应关系,确定所述待测网络设备上的资源对应的漏洞插件,并至少根据待测网络设备上的资源对应的漏洞插件确定待测网络设备对应的漏洞插件。
在一种可能的实现方式中,待测网络设备对应的漏洞插件可以包括第一类型漏洞插件和第二类型漏洞插件,第一类型漏洞插件与待测网络设备上的资源相关,第二类型漏洞插件为通用漏洞插件,与待测网络设备上的资源无关。其中,第二类型漏洞插件可以为各个类型的网络设备都通用的漏洞插件,也可以为某一类型的网络设备通用的漏洞插件,比如若确定待测网络设备具有本地登录功能,则第二类型漏洞插件可以包括登录插件,若确定待测网络设备具有远程登录功能,则第二类型漏洞插件可以包括远程插件。
具体实施中,漏洞扫描器110可以先根据资源与漏洞插件的对应关系,确定待测网络设备上的资源对应的各个第一类型漏洞插件,再将待测网络设备上的资源对应的各个第一类型漏洞插件和各个网络设备通用的第二类型漏洞插件作为待测网络设备对应的漏洞插件,或者先根据资源与漏洞插件的对应关系,确定待测网络设备上的资源对应的各个第一类型漏洞插件,再根据待测网络设备的类型确定该类型的网络设备通用的第二类型漏洞插件,然后将待测网络设备上的资源对应的各个第一类型漏洞插件和该类型的网络设备通用的第二类型插件作为待测网络设备对应的漏洞插件。
本发明实施例中,漏洞扫描器110还支持管理人员自定义第三类型漏洞插件,以提高漏洞扫描场景的灵活性,比如管理人员可以在漏洞扫描请求中封装第三类型漏洞插件,并将漏洞扫描请求发送给漏洞扫描器110;相应地,漏洞扫描器110从漏洞扫描请求中解析出第三类型漏洞插件后,可以基于第一类型漏洞扫描插件、第二类型漏洞扫描插件和第三类型漏洞插件,构建得到待测网络设备对应的漏洞插件。
下面描述确定待测网络设备对应的第一类型漏洞插件的具体实现过程。
本发明实施例中,资源与漏洞插件的对应关系可以以表格形式存储,或者也可以以数据库形式存储,或者还可以以栈形式存储,不作限定。
表1为本发明实施例提供的一种资源与漏洞插件的对应关系的示意表。
表1:一种资源与漏洞插件的对应关系的示意
操作系统 端口服务 漏洞插件
Windows ssh 71074,50645,72834
Windows telnet 51025,111143,…
linux ssh 70095,71656
Cisco telnet 50523,50524
Cisco snmp 50853
如表1所示,资源与漏洞插件的对应关系实际可以以操作系统、端口服务和漏洞插件的层级关系进行设置,该层级关系中包含任一操作系统下每个端口服务对应的漏洞插件。举例来说,在Windows操作系统中,ssh端口服务对应的漏洞插件为漏洞插件71074、漏洞插件50645和漏洞插件72834,而telnet端口服务对应的漏洞插件为漏洞插件51025、漏洞插件111143等。
针对于表1所示意的对应关系,具体实施中,漏洞扫描器110发送给待测网络设备的探测请求用于获取待测网络设备上部署的各个开放端口的端口号、各个关闭端口的端口号和每个开放端口的上运行的端口服务。如此,当漏洞扫描器110解析探测响应获取上述信息后,可以先根据待测网络设备上部署的各个开放端口的端口号和各个关闭端口的端口号确定出待测网络设备上运行的操作系统,再根据对应关系中该操作系统下的各个端口服务对应的漏洞插件,确定每个开放端口上运行的端口服务对应的漏洞插件,最后将各个端口服务对应的漏洞插件作为待测网络设备对应的第一类型漏洞插件。
举例来说,当确定待测网络设备上运行的操作系统为操作系统Cisco,开放端口的上运行的端口服务包括端口服务telnet和端口服务snmp时,可以确定待测网络设备对应的漏洞插件为漏洞插件50523、漏洞插件50524和漏洞插件50853。
步骤203,加载所述待测网络设备对应的漏洞插件,并调度加载后的所述漏洞插件对所述待测网络设备进行漏洞扫描。
在一个示例中,针对于加载后的各个漏洞插件,漏洞扫描器110可以先根据各个漏洞插件的依赖关系,将各个漏洞插件划分为N(大于或等于1,且为整数)条漏洞插件序列,每条漏洞插件序列中包含具有依赖关系的至少两个漏洞插件,或者包含不依赖也不被依赖的漏洞插件。如此,由于各条漏洞插件序列中的漏洞插件各自具有独立性,因此可以调用N个漏洞扫描节点并行调度N条漏洞插件序列,且,在对每条漏洞插件序列进行调度时,漏洞扫描节点可以按照该条漏洞插件序列中的各个漏洞插件的依赖关系依次调度该条漏洞插件序列中的各个漏洞插件进行漏洞扫描,以保证各个漏洞插件能够按照依赖关系被准确地调度。
其中,各个漏洞扫描节点可以为按照集群式部署的各个漏洞扫描服务器,或者也可以为漏洞扫描服务器中的各个进程,不作限定。
需要说明的是,当确定N条漏洞插件序列后,若漏洞扫描节点的数量大于或等于N,则可以分别调用N个漏洞扫描节点调度N条漏洞插件序列;若漏洞扫描节点的数量小于N,则可以通过软件或硬件方式在漏洞扫描器110上部署新的漏洞扫描节点,或者也可以只使用已有的漏洞扫描节点调度对应数量的漏洞插件序列,并在调度过程中调用空闲的漏洞扫描节点调度未处理的漏洞插件序列,或者还可以由本领域技术人员根据业务需要进行设置,不作限定。
举例来说,若待测网络设备对应的漏洞插件包括漏洞插件1、漏洞插件2、漏洞插件3、漏洞插件4、漏洞插件5、漏洞插件6、漏洞插件7和漏洞插件8,且漏洞插件2依赖于漏洞插件1的漏洞扫描结果,漏洞插件3依赖于漏洞插件2的漏洞扫描结果,漏洞插件5依赖于漏洞插件4的漏洞扫描结果,漏洞插件8依赖于漏洞插件7的漏洞扫描结果,则可以将漏洞插件1至漏洞插件8划分为如下4条漏洞插件序列:
表2:一种漏洞插件序列的示意
漏洞插件序列 漏洞插件
漏洞插件序列1 漏洞插件1→漏洞插件2→漏洞插件3
漏洞插件序列2 漏洞插件4→漏洞插件5
漏洞插件序列3 漏洞插件6
漏洞插件序列4 漏洞插件7→漏洞插件8
如表2所示,漏洞插件序列1包含依次依赖的漏洞插件3、漏洞插件2和漏洞插件1,漏洞插件序列2包含依次依赖的漏洞插件5和漏洞插件4,漏洞插件序列3包含漏洞插件6,漏洞插件序列4包含依次依赖的漏洞插件8和漏洞插件7。其中,各条漏洞插件序列中被依赖的最底层漏洞插件称为独立漏洞插件,比如漏洞插件1、漏洞插件4、漏洞插件6和漏洞插件7。
如此,当确定出漏洞插件序列1至漏洞插件序列4之后,漏洞扫描器110可以调用漏洞扫描节点1调度漏洞插件序列1,调用漏洞扫描节点2调度漏洞插件序列2,调用漏洞扫描节点3调度漏洞插件序列3,调用漏洞扫描节点4调度漏洞插件序列4,以实现对各个漏洞插件序列的并行调度,提高漏洞扫描的效率。
需要说明的是,表2仅是一种示例性的简单说明,其所列举的漏洞插件序列的形式仅是为了便于说明方案,并不构成对方案的限定,在具体实施中,漏洞插件序列也可以以其它形式进行显示,比如漏洞插件序列图、漏洞插件序列栈,不作限定。
图3为本发明实施例提供的一种漏洞插件序列图的示意,如图3所示,每条漏洞插件序列中的各个漏洞插件可以按照依赖关系构成一条有向路径,各条漏洞插件序列对应的有向路径可以构成一幅有向无环图。
本发明实施例中,由于漏洞扫描器110中的总资源是固定的,因此,若一味地提高漏洞插件调度的并发数(即调用漏洞扫描节点的数量),则可能会影响漏送扫描的稳定性。比如上述方案在开始调度时漏洞插件调度的并发数最多,随着调度时长的增加漏洞插件调度的并发数越来越少,因此漏洞扫描器110的资源负载在开始时较高,随着时长的增加会逐渐降低,如此,漏洞扫描器110的资源负载非常不稳定,导致漏送扫描的稳定性也较差。
为了解决上述问题,在一种可能的实现方式中,漏洞扫描器110可以在多个时间片内并行调度各个漏洞插件序列中的漏洞插件,针对于任一时间片,漏洞扫描器110可以先从每个漏洞插件序列的还未调度的漏洞插件中确定出处于最底层依赖关系的备选漏洞插件,然后从各个漏洞插件序列的备选漏洞插件中获取所需的总资源占用量小于设定资源占用量的至少一个备选漏洞插件,作为该时间片对应的目标漏洞插件的一种可能组合。其中,设定资源占用量可以由本领域技术人员根据经验进行设置,也可以根据业务需要进行设置,比如可以为漏洞扫描器110中的总资源占用量,也可以为漏洞扫描器110中的总资源占用量的90%,具体不作限定。
具体实施中,该时间片对应的目标漏洞插件可能存在多种可能组合,漏洞扫描器110可以从多种可能组合中随机地选取一种可能组合作为该时间片内对应的目标组合,并使用目标组合中的各个目标漏洞插件对应的漏洞扫描节点调度各个目标漏洞插件。然而,虽然该种方式能够保证各个时段内充分地利用漏洞扫描器的总资源占用量,但是该种方式下可能组合中的目标漏洞插件具有部分概率存在于漏洞插件较少的漏洞插件序列中,导致漏洞插件较多的漏洞插件序列的执行完成时间远远晚于漏洞插件较少的漏洞插件序列,从而还是存在随着执行时长的增加资源占用量变少的可能性。
基于此,在一个示例中,针对于任一时间片,在确定出该时间片对应的目标漏洞插件的各种可能组合后,还可以确定在该时间片时每个漏洞插件序列中还未调度的漏洞插件所需的总资源占用量,然后从各种可能组合中选取出包含总资源占用量最大的漏洞插件序列的备选漏洞插件的可能组合作为目标组合,并使用目标组合中的各个目标漏洞插件对应的漏洞扫描节点调度各个目标漏洞插件。在该示例中,由于在每一时间片时优先调度未调度的总资源占用量最大的漏洞插件序列中的漏洞插件进行调度,从而均衡各个插件序列的整体调度时间,还能够平衡每个时间片时调度的总资源占用量。
在另一种可能的实现方式中,针对于任一时间片,漏洞扫描器110也可以先从每个漏洞插件序列中确定出还未调度的且处于最底层依赖关系的备选漏洞插件,然后根据各个漏洞插件所需的资源占用量,确定每个漏洞插件序列的还未调度的漏洞插件所需的总资源占用量,并将总资源占用量最大的漏洞插件序列中的备选漏洞插件作为该时间片对应的一个目标漏洞插件;接着,漏洞扫描器110可以从除该目标漏洞插件以外的其它备选漏洞插件中选取其它目标漏洞插件,且保证该目标漏洞插件所需的资源占用量和其它目标漏洞插件所需的资源占用量之和小于设定资源占用量。
为了便于理解,下面举一个具体的实例进行说明。
基于表2所示的各个漏洞插件序列,当设定资源占用量为10时,若每条漏洞插件序列及各个漏洞插件所需的资源占用量如表3所示:
表3:一种各个漏洞插件序列所需的资源占用量的示意
漏洞插件序列 各个漏洞插件 资源占用量 总资源占用量
漏洞插件序列1 1→2→3 5,4,6 15
漏洞插件序列2 4→5 3,7 10
漏洞插件序列3 6 1 1
漏洞插件序列4 7→8 8,2 10
则在第1时间片时,漏洞插件序列1中还未调度的漏洞插件包括漏洞插件1、漏洞插件2和漏洞插件3,其中处于最底层依赖关系的备选漏洞插件为漏洞插件1;漏洞插件序列2中还未调度的漏洞插件包括漏洞插件4和漏洞插件5,其中处于最底层依赖关系的备选漏洞插件为漏洞插件4;漏洞插件序列3中还未调度的漏洞插件包括漏洞插件6,其中处于最底层依赖关系的备选漏洞插件为漏洞插件6;漏洞插件序列4中还未调度的漏洞插件包括漏洞插件7和漏洞插件8,其中处于最底层依赖关系的备选漏洞插件为漏洞插件7。
以上述第二种实现方式为例,在第1时间片时,各个备选漏洞插件为漏洞插件1、漏洞插件4、漏洞插件6和漏洞插件7,漏洞插件1所需的资源占用量为5,漏洞插件4所需的资源占用量为3,漏洞插件6所需的资源占用量为1,漏洞插件7所需的资源占用量为8。由于漏洞插件序列1至漏洞插件序列4中当前未调度的漏洞插件所需的总资源占用量分别为:15、10、1、10,说明需要最大的总资源占用量的漏洞插件序列为漏洞插件序列1,因此可以将漏洞插件序列1中的备选漏洞插件1作为第1时间片对应的一个目标漏洞插件。
相应地,除目标漏洞插件1之外的其他备选漏洞插件为备选漏洞插件4、备选漏洞插件6和备选漏洞插件7,所需的资源占用量分别为3、1、8,由于目标漏洞插件1、备选漏洞插件4和备选漏洞插件6所需的资源占用量为9,而目标漏洞插件1和备选漏洞插件7所需的资源占用量为13,因此可以将备选漏洞插件4和备选漏洞插件6作为第1时间片对应的其它目标漏洞插件。如此,漏洞扫描器110可以分别调用漏洞扫描节点1、漏洞扫描节点2和漏洞扫描节点3调度漏洞插件1、漏洞插件4和漏洞插件7,扫描待测网络设备得到漏洞插件1的漏洞扫描结果、漏洞插件4的漏洞扫描结果和漏洞插件7的漏洞扫描结果。
其中,第1时间片调度后的漏洞插件序列可以如表4所示:
表4:一种第1时间片调度后各个漏洞插件序列所需的资源占用量的示意
漏洞插件序列 各个漏洞插件 资源占用量 总资源占用量
漏洞插件序列1 2→3 4,6 10
漏洞插件序列2 5 7 7
漏洞插件序列3
漏洞插件序列4 7→8 8,2 10
如表4所示,在第2时间片时,漏洞插件序列1中还未调度的漏洞插件包括漏洞插件2和漏洞插件3,其中处于最底层依赖关系的备选漏洞插件为漏洞插件2;漏洞插件序列2中还未调度的漏洞插件包括漏洞插件5,其中处于最底层依赖关系的备选漏洞插件为漏洞插件5;漏洞插件序列3中不存在还未调度的漏洞插件;漏洞插件序列4中还未调度的漏洞插件包括漏洞插件7和漏洞插件8,其中处于最底层依赖关系的备选漏洞插件为漏洞插件7。
以上述第一种实现方式为例,在第2时间片时,各个备选漏洞插件为漏洞插件2、漏洞插件5和漏洞插件7,漏洞插件2所需的资源占用量为4,漏洞插件5所需的资源占用量为7,漏洞插件7所需的资源占用量为8;因此,漏洞插件2可以作为第一种可能组合,漏洞插件5可以作为第二种可能组合,漏洞插件7可以作为第三种可能组合。
进一步地,由于漏洞插件序列1至漏洞插件序列4中当前未调度的漏洞插件所需的总资源占用量分别为:10、7、10,说明需要最大的总资源占用量的漏洞插件序列为漏洞插件序列1或漏洞插件序列4,而第一种可能组合中包含漏洞插件序列1中的备选漏洞插件2,因此可以将第一种可能组合作为第2时间片对应的目标组合,或者,第三种可能组合中包含漏洞插件序列4中的备选漏洞插件7,因此也可以将第三种可能组合作为第2时间片对应的目标组合。以前者为例,漏洞扫描器110可以调用漏洞扫描节点2调度漏洞插件2,并基于漏洞插件2所依赖的漏洞插件1的漏洞扫描结果,扫描待测网络设备得到漏洞插件2的漏洞扫描结果。
其中,第2时间片调度后的漏洞插件序列可以如表5所示:
表5:一种第2时间片调度后各个漏洞插件序列所需的资源占用量的示意
漏洞插件序列 各个漏洞插件 资源占用量 总资源占用量
漏洞插件序列1 3 6 6
漏洞插件序列2 5 7 7
漏洞插件序列3
漏洞插件序列4 7→8 8,2 10
循环执行上述过程,直至每个漏洞插件序列中均不包括未调度的漏洞插件未知,该过程中每个时间片调度的漏洞插件可以如表6所示:
表6:一种各个时间片所调度的漏洞插件的示意
漏洞插件序列 T<sub>1</sub> T<sub>2</sub> T<sub>3</sub> T<sub>4</sub> T<sub>5</sub>
漏洞插件序列1 1(5) 2(4) 3(6)
漏洞插件序列2 4(3) 5(7)
漏洞插件序列3
漏洞插件序列4 6(1) 7(8) 8(2)
其中,T1表示第1时间片,T2表示第2时间片,T3表示第3时间片,T4表示第4时间片,T5表示第5时间片。如表6所示,对漏洞插件序列1至漏洞插件序列4中的各个漏洞插件需要经由5个时间片调度完成,第1时间片时调度漏洞插件序列1中的漏洞插件1、漏洞插件序列2中的漏洞插件4和漏洞插件序列4中的漏洞插件6,总资源占用量为9;第2时间片时调度漏洞插件序列1中的漏洞插件2,总资源占用量为4;第3时间片时调度漏洞插件序列4中的漏洞插件7,总资源占用量为8;第4时间片时调度漏洞插件序列2中的漏洞插件5和漏洞插件序列4中的漏洞插件8,总资源占用量为9;第5时间片时调度漏洞插件序列1中的漏洞插件3,总资源占用量为6。
显然地,该种方式下各个时间片中调度的漏洞插件的总资源占用量较为均衡,从而在合理规划漏洞扫描器的总资源占用量的同时,能够保证漏洞扫描器的长时间稳定运行,提高漏洞扫描的效率。
本发明实施例中,每个漏洞插件用于对网络设备中的同类漏洞进行扫描,一个漏洞插件可以用于扫描一类漏洞,也可以用于扫描多类漏洞,不作限定。
在一种可能的实现方式中,每个漏洞插件所需的资源占用量可以基于机器学习方式得到,具体如步骤a~步骤e所示:
步骤a,获取M个网络设备的IP地址。
此处,M的取值需要尽可能大,以保证各个漏洞插件均能扫描到较多的网络设备,提高机器学习的准确性。
步骤b,针对于任一网络设备,根据该网络设备的IP地址对该网络设备进行探测,得到该网络设备上的资源。
步骤c,针对于任一网络设备,根据资源与漏洞插件的对应关系和该网络设备上的资源,确定该网络设备对应的专有漏洞插件,根据该网络设备的类型确定该网络设备对应的通用漏洞插件,将该网络设备对应的专有漏洞插件和通用漏洞插件确定为该网络设备对应的漏洞插件。
需要说明的是,步骤b和步骤c可以参照步骤201和步骤202进行具体实现,此处不再赘述。
步骤d,分别调用各个漏洞插件对对应的网络设备进行漏洞扫描,并记录每个漏洞插件在每次调用时的资源占用量。
在一个示例中,任一漏洞插件在每次调用时的资源占用量可以基于该漏洞插件在该次调用时的花费时间和/或消耗资源来确定,花费时间可以包括中央处理器(CentralProcessing Unit,CPU)时间和/或输入/输出(Input/Output,I/O)时间,CPU时间是指CPU全速完成该漏洞插件的调用时的执行内核函数消耗的时间,而I/O时间是指执行内核函数消耗的时间;相应地,消耗资源可以包括内存使用消耗和/或网络带宽使用消耗。
具体实施中,可以预先设置CPU监控模块、内存监控统计模块、I/O资源消耗统计模块和网络占用监控统计模块,在调度每个漏洞插件对对应的任一网络设备进行扫描时,CPU监控模块可以监控该漏洞插件的执行脚本在整个漏洞扫描中所消耗的CPU时间,I/O资源消耗统计模块可以监控该漏洞插件在整个漏洞扫描中执行内核函数所消耗的I/O时间,内存监控统计模块可以统计该漏洞插件在整个漏洞扫描中的内存使用量,网络占用监控统计模块中还设置有通用资源调用单元,各个漏洞插件需要经由通用资源调用单元来发送网络请求和接收网络响应,如此,网络占用监控统计模块可以在漏洞扫描结束后获取通用资源调用单元所记录的该漏洞插件的网络带宽使用量。
进一步地,针对于任一漏洞插件对任一网络设备的任一次调用,可以基于该漏洞插件在该次调用时的CPU时间、I/O时间、内存使用消耗和网络带宽使用消耗,采用设定计算程式确定该漏洞插件在该次调用时的资源占用量。其中,设定计算程式可以由本领域技术人员根据经验进行设置,比如可以为加权平均程式,或者可以为平均程式,不作限定。
在上述示例中,通过使用漏洞插件在一次漏洞扫描中的各个维度的资源使用情况来确定漏洞插件在该次漏洞扫描中的资源占用量,可以以更为全面的信息综合确定漏洞插件在每次漏洞扫描中的资源占用量,如此,资源占用量可以更为准确,且更符合实际情况。
需要说明的是,上述仅是一种示例性的简单说明,并不构成对方案的限定,在具体实施中,本领域技术人员可以根据经验自行设置确定资源占用量所需要的资源使用维度,不作限定。
步骤e,针对于任一漏洞插件,根据该漏洞插件在各次调用时的总资源占用量和该漏洞插件的调用总次数,确定该漏洞插件所需的资源占用量。
举例来说,可以先根据漏洞插件在各次调用时的总资源占用量和漏洞插件的调用总次数,计算得到漏洞插件在每次调用时的平均资源占用量,再将平均资源占用量作为漏洞插件所需的资源占用量。
在上述实现方式中,通过使用机器学习方式来确定漏洞插件所需的资源占用量,使得确定的资源占用量更加贴合实际的扫描环境,从而可以提高确定的漏洞插件所需的资源占用量的准确性。
本发明的上述实施例中,根据待测网络设备的IP地址,对所述待测网络设备进行探测,确定所述待测网络设备上的资源,根据资源与漏洞插件的对应关系,确定所述待测网络设备上的资源对应的漏洞插件,并至少根据所述待测网络设备上的资源对应的漏洞插件确定所述待测网络设备对应的漏洞插件,加载所述待测网络设备对应的漏洞插件,并调度加载后的所述漏洞插件对所述待测网络设备进行漏洞扫描。本发明实施例中,通过确定待测网络设备上的资源对应的漏洞插件,能够仅加载扫描该待测网络设备时需要的漏洞插件,而无需加载扫描待测网络设备时不需要的漏洞插件,从而可以提高漏洞扫描的灵活性,还能节省漏洞扫描所需的系统资源,提高漏洞扫描的效率。
针对上述方法流程,本发明实施例还提供一种漏洞扫描装置,该装置的具体内容可以参照上述方法实施。
图4为本发明实施例提供的一种漏洞扫描的结构示意图,包括:
探测模块401,用于根据待测网络设备的IP地址,对所述待测网络设备进行探测,确定所述待测网络设备上的资源;
确定模块402,用于根据资源与漏洞插件的对应关系,确定所述待测网络设备上的资源对应的漏洞插件,并至少根据所述待测网络设备上的资源对应的漏洞插件确定所述待测网络设备对应的漏洞插件;
扫描模块403,用于加载所述待测网络设备对应的漏洞插件,并调度加载后的所述漏洞插件对所述待测网络设备进行漏洞扫描。
可选地,在所述探测模块401根据待测网络设备的IP地址,对所述待测网络设备进行探测之前,所述确定模块402还用于:
确定所述待测网络设备的IP地址处于存活状态。
可选地,所述待测网络设备上的资源包括开放端口、关闭端口和每个开放端口上运行的端口服务;所述资源与漏洞插件的对应关系按照操作系统、端口服务和漏洞插件的层级关系进行设置;
所述确定模块402具体用于:
根据所述开放端口和关闭端口,确定所述待测网络设备上运行的目标操作系统;
根据所述资源与漏洞插件的对应关系中所述目标操作系统下的各个端口服务对应的漏洞插件,确定每个开放端口上运行的端口服务对应的漏洞插件,将各个开放端口上运行的端口服务对应的漏洞插件作为所述待测网络设备上的资源对应的漏洞插件。
可选地,所述确定模块402具体用于:
根据所述待测网络设备的类型,确定所述待测网络设备对应的通用漏洞插件;
将所述待测网络设备的资源对应的漏洞插件和所述通用漏洞插件确定为所述待测网络设备对应的漏洞插件。
可选地,所述扫描模块403具体用于:
根据加载后的各个漏洞插件的依赖关系,将所述各个漏洞插件划分为多条漏洞插件序列,每条漏洞插件序列中的漏洞插件具有依赖关系;
并行调度所述多条漏洞插件序列中的漏洞插件;针对于任一漏洞插件序列,按照所述漏洞插件序列中的漏洞插件的依赖关系依次调度所述漏洞插件序列中的漏洞插件。
可选地,所述扫描模块403具体用于:
在多个时间片内并行调度所述多条漏洞插件序列中的漏洞插件;
其中,任一时间片内调度的漏洞插件通过如下方式确定:
从每个漏洞插件序列中确定出还未调度的且处于最底层依赖关系的备选漏洞插件;
根据各个漏洞插件所需的资源占用量,确定每个漏洞插件序列中还未调度的漏洞插件所需的总资源占用量,将所需的总资源占用量最大的漏洞插件序列中的备选漏洞插件作为所述时间片对应的一个目标漏洞插件;
从除所述目标漏洞插件以外的其他备选漏洞插件中获取其它目标漏洞插件,所述目标漏洞插件和所述其它目标漏洞插件所需的总资源占用量小于或等于设定资源占用量。
可选地,所述扫描模块403通过如下方式得到每个漏洞插件所需的资源占用量:
调度所述漏洞插件对多个网络设备进行漏洞扫描,并记录所述漏洞插件在每次调度时耗费的资源占用量;
根据所述漏洞插件在各次调度时耗费的总资源占用量和调度次数,确定所述漏洞插件所需的资源占用量。
可选地,所述扫描模块403通过如下方式得到所述漏洞插件在每次调度时耗费的资源占用量:
获取所述漏洞插件在所述调度中消耗的中央处理器CPU时间、输入/输出I/O时间、内存使用量和网络带宽使用量中的任意一项或任意多项信息;
使用预设资源算法对获取到的所述信息进行计算,得到所述漏洞插件在每次调度时耗费的资源占用量。
从上述内容可以看出:本发明的上述实施例中,根据待测网络设备的IP地址,对所述待测网络设备进行探测,确定所述待测网络设备上的资源,根据资源与漏洞插件的对应关系,确定所述待测网络设备上的资源对应的漏洞插件,并至少根据所述待测网络设备上的资源对应的漏洞插件确定所述待测网络设备对应的漏洞插件,加载所述待测网络设备对应的漏洞插件,并调度加载后的所述漏洞插件对所述待测网络设备进行漏洞扫描。本发明实施例中,通过确定待测网络设备上的资源对应的漏洞插件,能够仅加载扫描该待测网络设备时需要的漏洞插件,而无需加载扫描待测网络设备时不需要的漏洞插件,从而可以提高漏洞扫描的灵活性,还能节省漏洞扫描所需的系统资源,提高漏洞扫描的效率。
基于同一发明构思,本发明实施例还提供了一种计算设备,如图5所示,包括至少一个处理器501,以及与至少一个处理器连接的存储器502,本发明实施例中不限定处理器501与存储器502之间的具体连接介质,图5中处理器501和存储器502之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
在本发明实施例中,存储器502存储有可被至少一个处理器501执行的指令,至少一个处理器501通过执行存储器502存储的指令,可以执行前述的漏洞扫描方法中所包括的步骤。
其中,处理器501是计算设备的控制中心,可以利用各种接口和线路连接计算设备的各个部分,通过运行或执行存储在存储器502内的指令以及调用存储在存储器502内的数据,从而实现数据处理。可选的,处理器501可包括一个或多个处理单元,处理器501可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理下发指令。可以理解的是,上述调制解调处理器也可以不集成到处理器501中。在一些实施例中,处理器501和存储器502可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器501可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合漏洞扫描实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器502作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器502可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器502是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本发明实施例中的存储器502还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
基于同一发明构思,本发明实施例还提供了一种计算机可读存储介质,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行上述图2任意所述的漏洞扫描方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (18)

1.一种漏洞扫描方法,其特征在于,所述方法包括:
根据待测网络设备的IP地址,对所述待测网络设备进行探测,确定所述待测网络设备上的资源;
根据资源与漏洞插件的对应关系,确定所述待测网络设备上的资源对应的漏洞插件,并至少根据所述待测网络设备上的资源对应的漏洞插件确定所述待测网络设备对应的漏洞插件;
加载所述待测网络设备对应的漏洞插件,并调度加载后的所述漏洞插件对所述待测网络设备进行漏洞扫描。
2.根据权利要求1所述的方法,其特征在于,所述根据待测网络设备的IP地址,对所述待测网络设备进行探测之前,还包括:
确定所述待测网络设备的IP地址处于存活状态。
3.根据权利要求1所述的方法,其特征在于,所述待测网络设备上的资源包括开放端口、关闭端口和每个开放端口上运行的端口服务;所述资源与漏洞插件的对应关系按照操作系统、端口服务和漏洞插件的层级关系进行设置;
所述根据资源与漏洞插件的对应关系,确定所述待测网络设备上的资源对应的漏洞插件,包括:
根据所述开放端口和关闭端口,确定所述待测网络设备上运行的目标操作系统;
根据所述资源与漏洞插件的对应关系中所述目标操作系统下的各个端口服务对应的漏洞插件,确定每个开放端口上运行的端口服务对应的漏洞插件,将各个开放端口上运行的端口服务对应的漏洞插件作为所述待测网络设备上的资源对应的漏洞插件。
4.根据权利要求1所述的方法,其特征在于,所述至少根据所述待测网络设备上的资源对应的漏洞插件确定所述待测网络设备对应的漏洞插件,包括:
根据所述待测网络设备的类型,确定所述待测网络设备对应的通用漏洞插件;
将所述待测网络设备的资源对应的漏洞插件和所述通用漏洞插件确定为所述待测网络设备对应的漏洞插件。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述调度加载后的所述漏洞插件对所述待测网络设备进行漏洞扫描,包括:
根据加载后的各个漏洞插件的依赖关系,将所述各个漏洞插件划分为多条漏洞插件序列,每条漏洞插件序列中的各个漏洞插件具有依赖关系;
并行调度所述多条漏洞插件序列中的漏洞插件;针对于任一漏洞插件序列,按照所述漏洞插件序列中的漏洞插件的依赖关系依次调度所述漏洞插件序列中的漏洞插件。
6.根据权利要求5所述的方法,其特征在于,所述并行调度所述多条漏洞插件序列中的漏洞插件,包括:
在多个时间片内并行调度所述多条漏洞插件序列中的漏洞插件;
其中,任一时间片内调度的漏洞插件通过如下方式确定:
从每个漏洞插件序列中确定出还未调度的且处于最底层依赖关系的备选漏洞插件;
根据各个漏洞插件所需的资源占用量,确定每个漏洞插件序列中还未调度的漏洞插件所需的总资源占用量,将所需的总资源占用量最大的漏洞插件序列中的备选漏洞插件作为所述时间片对应的一个目标漏洞插件;
从除所述目标漏洞插件以外的其他备选漏洞插件中获取其它目标漏洞插件,所述目标漏洞插件和所述其它目标漏洞插件所需的总资源占用量小于或等于设定资源占用量。
7.根据权利要求6所述的方法,其特征在于,所述每个漏洞插件所需的资源占用量通过如下方式得到:
调度所述漏洞插件对多个网络设备进行漏洞扫描,并记录所述漏洞插件每次调度时耗费的资源占用量;
根据所述漏洞插件在各次调度时耗费的总资源占用量和调度次数,确定所述漏洞插件所需的资源占用量。
8.根据权利要求6所述的方法,其特征在于,所述漏洞插件每次调度时耗费的资源占用量通过如下方式得到:
获取所述漏洞插件在所述调度中消耗的中央处理器CPU时间、输入/输出I/O时间、内存使用量和网络带宽使用量中的任意一项或任意多项信息;
使用预设资源算法对获取到的所述信息进行计算,得到所述漏洞插件在每次调度时耗费的资源占用量。
9.一种漏洞扫描装置,其特征在于,所述装置包括:
探测模块,用于根据待测网络设备的IP地址,对所述待测网络设备进行探测,确定所述待测网络设备上的资源;
确定模块,用于根据资源与漏洞插件的对应关系,确定所述待测网络设备上的资源对应的漏洞插件,并至少根据所述待测网络设备上的资源对应的漏洞插件确定所述待测网络设备对应的漏洞插件;
扫描模块,用于加载所述待测网络设备对应的漏洞插件,并调度加载后的所述漏洞插件对所述待测网络设备进行漏洞扫描。
10.根据权利要求9所述的装置,其特征在于,在所述探测模块根据待测网络设备的IP地址,对所述待测网络设备进行探测之前,所述确定模块还用于:
确定所述待测网络设备的IP地址处于存活状态。
11.根据权利要求9所述的装置,其特征在于,所述待测网络设备上的资源包括开放端口、关闭端口和每个开放端口上运行的端口服务;所述资源与漏洞插件的对应关系按照操作系统、端口服务和漏洞插件的层级关系进行设置;
所述确定模块具体用于:
根据所述开放端口和关闭端口,确定所述待测网络设备上运行的目标操作系统;
根据所述资源与漏洞插件的对应关系中所述目标操作系统下的各个端口服务对应的漏洞插件,确定每个开放端口上运行的端口服务对应的漏洞插件,将各个开放端口上运行的端口服务对应的漏洞插件作为所述待测网络设备上的资源对应的漏洞插件。
12.根据权利要求9所述的装置,其特征在于,所述确定模块具体用于:
根据所述待测网络设备的类型,确定所述待测网络设备对应的通用漏洞插件;
将所述待测网络设备的资源对应的漏洞插件和所述通用漏洞插件确定为所述待测网络设备对应的漏洞插件。
13.根据权利要求9至12中任一项所述的装置,其特征在于,所述扫描模块具体用于:
根据加载后的各个漏洞插件的依赖关系,将所述各个漏洞插件划分为多条漏洞插件序列,每条漏洞插件序列中的漏洞插件具有依赖关系;
并行调度所述多条漏洞插件序列中的漏洞插件;针对于任一漏洞插件序列,按照所述漏洞插件序列中的漏洞插件的依赖关系依次调度所述漏洞插件序列中的漏洞插件。
14.根据权利要求13所述的装置,其特征在于,所述扫描模块具体用于:
在多个时间片内并行调度所述多条漏洞插件序列中的漏洞插件;
其中,任一时间片内调度的漏洞插件通过如下方式确定:
从每个漏洞插件序列中确定出还未调度的且处于最底层依赖关系的备选漏洞插件;
根据各个漏洞插件所需的资源占用量,确定每个漏洞插件序列中还未调度的漏洞插件所需的总资源占用量,将所需的总资源占用量最大的漏洞插件序列中的备选漏洞插件作为所述时间片对应的一个目标漏洞插件;
从除所述目标漏洞插件以外的其他备选漏洞插件中获取其它目标漏洞插件,所述目标漏洞插件和所述其它目标漏洞插件所需的总资源占用量小于或等于设定资源占用量。
15.根据权利要求14所述的装置,其特征在于,所述扫描模块通过如下方式得到每个漏洞插件所需的资源占用量:
调度所述漏洞插件对多个网络设备进行漏洞扫描,并记录所述漏洞插件在每次调度时耗费的资源占用量;
根据所述漏洞插件在各次调度时耗费的总资源占用量和调度次数,确定所述漏洞插件所需的资源占用量。
16.根据权利要求15所述的装置,其特征在于,所述扫描模块通过如下方式得到所述漏洞插件在每次调度时耗费的资源占用量:
获取所述漏洞插件在所述调度中消耗的中央处理器CPU时间、输入/输出I/O时间、内存使用量和网络带宽使用量中的任意一项或任意多项信息;
使用预设资源算法对获取到的所述信息进行计算,得到所述漏洞插件在每次调度时耗费的资源占用量。
17.一种计算设备,其特征在于,包括至少一个处理器以及至少一个存储器,其中,所述存储器存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行权利要求1~8任一权利要求所述的方法。
18.一种计算机可读存储介质,其特征在于,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行权利要求1~8任一权利要求所述的方法。
CN201911368990.3A 2019-12-26 2019-12-26 一种漏洞扫描方法及装置 Active CN111131262B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911368990.3A CN111131262B (zh) 2019-12-26 2019-12-26 一种漏洞扫描方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911368990.3A CN111131262B (zh) 2019-12-26 2019-12-26 一种漏洞扫描方法及装置

Publications (2)

Publication Number Publication Date
CN111131262A true CN111131262A (zh) 2020-05-08
CN111131262B CN111131262B (zh) 2021-11-16

Family

ID=70503391

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911368990.3A Active CN111131262B (zh) 2019-12-26 2019-12-26 一种漏洞扫描方法及装置

Country Status (1)

Country Link
CN (1) CN111131262B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111723374A (zh) * 2020-06-05 2020-09-29 绿盟科技集团股份有限公司 一种漏洞扫描方法及装置
CN113672300A (zh) * 2021-08-17 2021-11-19 绿盟科技集团股份有限公司 一种插件调度的方法、装置及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130167240A1 (en) * 2003-04-11 2013-06-27 Zeno Security Corporation Method and apparatus for detecting events pertaining to potential change in vulnerability status
CN103870334A (zh) * 2012-12-18 2014-06-18 中国移动通信集团公司 一种大规模漏洞扫描的任务分配方法及装置
CN106685954A (zh) * 2016-12-27 2017-05-17 北京神州绿盟信息安全科技股份有限公司 一种插件扫描、确定插件内规则调度顺序的方法及装置
CN108595963A (zh) * 2018-04-26 2018-09-28 杭州迪普科技股份有限公司 一种漏洞扫描方法和装置
CN110245496A (zh) * 2019-05-27 2019-09-17 华中科技大学 一种源代码漏洞检测方法及检测器和其训练方法及系统
CN110321708A (zh) * 2019-03-21 2019-10-11 北京天防安全科技有限公司 一种基于资产类别的快速漏洞扫描方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130167240A1 (en) * 2003-04-11 2013-06-27 Zeno Security Corporation Method and apparatus for detecting events pertaining to potential change in vulnerability status
CN103870334A (zh) * 2012-12-18 2014-06-18 中国移动通信集团公司 一种大规模漏洞扫描的任务分配方法及装置
CN106685954A (zh) * 2016-12-27 2017-05-17 北京神州绿盟信息安全科技股份有限公司 一种插件扫描、确定插件内规则调度顺序的方法及装置
CN108595963A (zh) * 2018-04-26 2018-09-28 杭州迪普科技股份有限公司 一种漏洞扫描方法和装置
CN110321708A (zh) * 2019-03-21 2019-10-11 北京天防安全科技有限公司 一种基于资产类别的快速漏洞扫描方法及系统
CN110245496A (zh) * 2019-05-27 2019-09-17 华中科技大学 一种源代码漏洞检测方法及检测器和其训练方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
白斌: "网络漏洞探测技术分析", 《电脑知识与技术(学术交流)》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111723374A (zh) * 2020-06-05 2020-09-29 绿盟科技集团股份有限公司 一种漏洞扫描方法及装置
CN113672300A (zh) * 2021-08-17 2021-11-19 绿盟科技集团股份有限公司 一种插件调度的方法、装置及存储介质
CN113672300B (zh) * 2021-08-17 2023-12-26 绿盟科技集团股份有限公司 一种插件调度的方法、装置及存储介质

Also Published As

Publication number Publication date
CN111131262B (zh) 2021-11-16

Similar Documents

Publication Publication Date Title
US10073916B2 (en) Method and system for facilitating terminal identifiers
CN108268372B (zh) Mock测试处理方法、装置、存储介质和计算机设备
CN106919485B (zh) 一种基于服务器上配置硬件测试工具的系统
CN111131262B (zh) 一种漏洞扫描方法及装置
US20160380867A1 (en) Method and System for Detecting and Identifying Assets on a Computer Network
US9134997B2 (en) Methods for assessing deliverable product quality and devices thereof
CN110764996A (zh) 一种契约测试方法、系统、存储介质及终端设备
CN108733545B (zh) 一种压力测试方法及装置
CN113098852B (zh) 一种日志处理方法及装置
CN108280024B (zh) 流量分配策略测试方法、装置及电子设备
CN108512682B (zh) 一种确定虚假终端标识的方法和装置
CN112181832B (zh) 测试数据生成方法、装置、计算机设备及存储介质
CN115357513B (zh) 程序模糊测试方法、装置、设备及存储介质
CN107948022B (zh) 一种对等网络流量的识别方法及识别装置
CN110971478B (zh) 云平台服务性能的压测方法、装置及计算设备
CN110020166B (zh) 一种数据分析方法及相关设备
CN113330716B (zh) 确定应用服务的依赖关系的方法及装置、处理器
CN113852610A (zh) 报文处理方法、装置、计算机设备和存储介质
KR102367570B1 (ko) 블록체인에서의 병렬적 블록 처리 방법, 이를 이용하는 블록체인 노드 및 프로그램
CN111049795B (zh) 分布式Web应用的敏感数据未加密漏洞的检测方法及装置
CN110347683B (zh) 一种数据表合并处理方法及装置
CN112148621A (zh) 一种测试方法、装置及电子设备
US20120198063A1 (en) Virtual server system, autonomous control server thereof, and data processing method and computer program thereof
CN110943884B (zh) 一种数据处理方法及装置
CN112019644B (zh) 一种确定ip地址的归属信息的方法、系统、介质和设备

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building

Applicant after: NSFOCUS Technologies Group Co.,Ltd.

Applicant after: NSFOCUS TECHNOLOGIES Inc.

Address before: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building

Applicant before: NSFOCUS INFORMATION TECHNOLOGY Co.,Ltd.

Applicant before: NSFOCUS TECHNOLOGIES Inc.

GR01 Patent grant
GR01 Patent grant