CN113553595B - 一种漏洞扫描方法、装置、设备及存储介质 - Google Patents

一种漏洞扫描方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN113553595B
CN113553595B CN202110850324.4A CN202110850324A CN113553595B CN 113553595 B CN113553595 B CN 113553595B CN 202110850324 A CN202110850324 A CN 202110850324A CN 113553595 B CN113553595 B CN 113553595B
Authority
CN
China
Prior art keywords
vulnerability
software
plug
version
target host
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
Application number
CN202110850324.4A
Other languages
English (en)
Other versions
CN113553595A (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.)
Beijing Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec Software Co Ltd
Original Assignee
Beijing Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec Software Co Ltd
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 Beijing Topsec Technology Co Ltd, Beijing Topsec Network Security Technology Co Ltd, Beijing Topsec Software Co Ltd filed Critical Beijing Topsec Technology Co Ltd
Priority to CN202110850324.4A priority Critical patent/CN113553595B/zh
Publication of CN113553595A publication Critical patent/CN113553595A/zh
Application granted granted Critical
Publication of CN113553595B publication Critical patent/CN113553595B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本公开涉及一种漏洞扫描方法、装置、设备及存储介质,该方法包括:确定第一目标主机对应的软件标识以及软件标识对应的版本号,并将软件标识与版本号的关联关系确定为第一目标软件版本;将第一目标软件版本与预先获取的漏洞结构信息中的软件版本进行匹配;如果确定第一目标软件版本与漏洞结构信息中的任一软件版本匹配成功,则在漏洞结构信息中建立该软件版本与第一目标主机之间的关联关系;基于更新后漏洞结构信息中与第一目标主机具有关联关系的漏洞,对第一目标主机进行漏洞扫描。可见,本公开实施例基于漏洞与软件版本的关系,减少与主机具有关联关系的漏洞数量,从而提高漏洞扫描效率。

Description

一种漏洞扫描方法、装置、设备及存储介质
技术领域
本公开涉及网络安全技术领域,尤其涉及一种漏洞扫描方法、装置、设备及存储介质。
背景技术
漏洞扫描是网络安全技术核心之一,其主要功能为发现漏洞并提供修复建议,保障用户的信息安全。目前,针对主机进行漏洞扫描时,在扫描到一个主机的软件及版本后,再对主机上的软件进行漏洞探测,存储时将每个主机的基本信息以及扫描出的全部漏洞数据都保存一份,导致主机直接与漏洞之间存在关联关系的连接数巨大,因此,可能导致漏洞扫描的效率较低。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种漏洞扫描方法、装置、设备及存储介质,基于漏洞与软件版本的关系,减少与主机具有关联关系的漏洞数量,从而提高漏洞扫描效率。
第一方面,本公开提供了一种漏洞扫描方法,所述方法包括:
确定第一目标主机对应的软件标识以及所述软件标识对应的版本号,并将所述软件标识与所述版本号的关联关系确定为第一目标软件版本;
将所述第一目标软件版本与预先获取的漏洞结构信息中的软件版本进行匹配;其中,所述漏洞结构信息包括按照预设树状存储结构存储的漏洞与软件版本的关联关系,所述软件版本包括软件标识与版本号的关联关系,所述漏洞结构信息中包括预设漏洞库中的漏洞;
如果确定所述第一目标软件版本与所述漏洞结构信息中的任一软件版本匹配成功,则在所述漏洞结构信息中建立所述软件版本与所述第一目标主机之间的关联关系,得到更新后漏洞结构信息;
基于所述更新后漏洞结构信息中与所述第一目标主机具有关联关系的漏洞,对所述第一目标主机进行漏洞扫描。
一种可选的实施方式中,所述确定第一目标主机对应的软件标识以及所述软件标识对应的版本号,包括:
基于信息收集类插件集合,采集第一目标主机的基本信息;其中,所述信息收集类插件集合包括具有依赖结构关系的插件;
基于所述第一目标主机的基本信息,确定所述第一目标主机上安装的软件的软件标识以及所述软件的版本号。
一种可选的实施方式中,所述基于信息收集类插件集合,采集第一目标主机的基本信息,包括:
确定所述信息收集类插件集合中预估运行时间最长的插件对应的无依赖插件,并基于所述无依赖插件确定所述信息收集类插件集合中的插件的执行顺序;
基于所述执行顺序,依次执行所述信息收集类插件集合中的插件,采集第一目标主机的基本信息。
一种可选的实施方式中,所述确定所述信息收集类插件集合中预估运行时间最长的插件对应的无依赖插件,包括:
基于插件运行时间历史记录,确定所述信息收集类插件集合中各个插件分别对应的预估运行时间;
在所述信息收集类插件集合中,确定所述预估运行时间最长的插件对应的无依赖插件。
一种可选的实施方式中,所述基于插件运行时间历史记录,确定所述信息收集类插件集合中各个插件分别对应的预估运行时间,包括:
从所述信息收集类插件集合中确定目标插件;
如果确定所述目标插件为无依赖插件,则利用公式(1)计算所述目标插件对应的预估运行时间;
其中,esti为第i个插件的预估运行时间,tij为所选取的最近n条运行时间历史记录中,第i个插件第j次的运行时间,其中,n为正整数,j=1,2,3...n;
如果确定所述目标插件为有依赖插件,则利用公式(2)计算所述目标插件对应的预估运行时间;
其中,k为插件i依赖的插件个数,α为影响系数,dj为插件i依赖的第j个插件,为插件i依赖的第j个插件对应的平均运行时间,其中,k为正整数,j=1,2,3...k,α∈(1/e,1]。
一种可选的实施方式中,所述基于所述第一目标主机的基本信息,确定所述第一目标主机上安装的软件的软件标识以及所述软件的版本号,包括:
基于所述第一目标主机的基本信息,确定所述第一目标主机上安装的软件的软件标识;
从所述第一目标主机的基本信息中,获取所述软件标识对应的版本相关字符串;其中,所述版本相关字符串为基于所述版本信息相关的数据包拼接而成;
基于所述软件标识对应的版本信息概率,从所述版本相关字符串中确定所述软件的版本号;其中,所述版本信息概率用于表征所述版本相关字符串中的每行存在版本号的概率,所述版本信息概率为基于所述软件的版本号的查找历史记录确定。
一种可选的实施方式中,所述基于所述更新后漏洞结构信息中与所述第一目标主机具有关联关系的漏洞,对所述第一目标主机进行漏洞扫描之前,还包括:
如果未确定出所述第一目标主机对应的软件标识的版本号,则将所述第一目标主机的软件标识与所述漏洞结构信息中的软件标识进行匹配;
如果确定所述第一目标主机的软件标识与所述漏洞结构信息中的任一软件标识匹配成功,则在所述漏洞结构信息中建立所述软件标识与所述第一目标主机之间的关联关系,得到更新后漏洞结构信息。
一种可选的实施方式中,所述基于所述更新后漏洞结构信息中与所述第一目标主机具有关联关系的漏洞,对所述第一目标主机进行漏洞扫描,包括:
基于所述更新后漏洞结构信息,确定与所述第一目标主机具有关联关系的漏洞,作为待扫描漏洞;
基于预先确定的漏洞与发现方式评分之间的对应关系,确定所述待扫描漏洞对应的发现方式;其中,所述发现方式评分用于表征对应的发现方式与所述漏洞的适配程度;
利用所述待扫描漏洞对应的发现方式,对所述第一目标主机中的所述待扫描漏洞进行扫描,确定所述第一目标主机中是否存在所述待扫描漏洞。
一种可选的实施方式中,所述方法还包括:
确定第二目标主机对应到的软件标识以及所述软件标识对应的版本号,并将所述软件标识和所述版本号的关联关系确定为第二目标软件版本;
将所述第二目标软件版本与所述更新后漏洞结构信息中的软件版本进行匹配;
如果确定所述第二目标软件版本与所述更新后漏洞结构信息中的任一软件版本匹配成功,则在所述更新后漏洞结构信息中建立所述软件版本与所述第二目标主机之间的关联关系。
第二方面,本公开提供了一种漏洞扫描装置,所述装置包括:
第一确定模块,用于确定第一目标主机对应的软件标识以及所述软件标识对应的版本号,并将所述软件标识与所述版本号的关联关系确定为第一目标软件版本;
第一匹配模块,用于将所述第一目标软件版本与预先获取的漏洞结构信息中的软件版本进行匹配;其中,所述漏洞结构信息包括按照预设树状存储结构存储的漏洞与软件版本的关联关系,所述软件版本包括软件标识与版本号的关联关系,所述漏洞结构信息中包括预设漏洞库中的漏洞;
第一更新模块,用于如果确定所述第一目标软件版本与所述漏洞结构信息中的任一软件版本匹配成功,则在所述漏洞结构信息中建立所述软件版本与所述第一目标主机之间的关联关系,得到更新后漏洞结构信息;
扫描模块,用于基于所述更新后漏洞结构信息中与所述第一目标主机具有关联关系的漏洞,对所述第一目标主机进行漏洞扫描。
第三方面,本公开提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备实现上述任一项所述的方法。
第四方面,本公开提供了一种设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述任一项所述的方法。
第五方面,本公开提供了一种计算机程序产品,所述计算机程序产品包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现上述任一项所述的方法。
本公开实施例提供的技术方案与现有技术相比具有如下优点:
本公开实施例提供了一种漏洞扫描方法,首先,确定第一目标主机对应的软件标识以及软件标识对应的版本号,并将软件标识与版本号的关联关系确定为第一目标软件版本,然后,将第一目标软件版本与预先获取的漏洞结构信息中的软件版本进行匹配,其中,漏洞结构信息包括按照预设树状存储结构存储的漏洞与软件版本的关联关系,软件版本包括软件标识与版本号的关联关系,漏洞结构信息中包括预设漏洞库中的漏洞。如果确定第一目标软件版本与漏洞结构信息中的任一软件版本匹配成功,则在漏洞结构信息中建立该软件版本与第一目标主机之间的关联关系,得到更新后漏洞结构信息。进而,基于更新后漏洞结构信息中与第一目标主机具有关联关系的漏洞,对第一目标主机进行漏洞扫描。可见,本公开实施例基于漏洞与软件版本的关系,减少与主机具有关联关系的漏洞数量,从而提高漏洞扫描效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的一种漏洞扫描方法的流程图;
图2为本公开实施例提供的一种具有依赖结构关系的插件的示意图;
图3为本公开实施例提供的一种漏洞结构信息的示意图;
图4为本公开实施例提供的另一种漏洞结构信息的示意图;
图5为本公开实施例提供的另一种漏洞结构信息的示意图;
图6为本公开实施例提供的一种漏洞扫描系统的结构示意图;
图7为本公开实施例提供的一种漏洞扫描装置的结构示意图;
图8为本公开实施例提供的一种漏洞扫描设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
为了减少主机直接与漏洞存在关联关系的连接数,从而提高漏洞扫描的效率,本公开实施例提供了一种漏洞扫描方法,首先,确定第一目标主机对应的软件标识以及软件标识对应的版本号,并将软件标识与版本号的关联关系确定为第一目标软件版本,然后,将第一目标软件版本与预先获取的漏洞结构信息中的软件版本进行匹配,其中,漏洞结构信息包括按照预设树状存储结构存储的漏洞与软件版本的关联关系,软件版本包括软件标识与版本号的关联关系,漏洞结构信息中包括预设漏洞库中的漏洞。如果确定第一目标软件版本与漏洞结构信息中的任一软件版本匹配成功,则在漏洞结构信息中建立该软件版本与第一目标主机之间的关联关系,得到更新后漏洞结构信息。进而,基于更新后漏洞结构信息中与第一目标主机具有关联关系的漏洞,对第一目标主机进行漏洞扫描。
可见,本公开实施例基于漏洞与软件版本的关系,减少与主机具有关联关系的漏洞数量,从而提高漏洞扫描效率。
基于此,本公开提供了一种漏洞扫描方法,参考图1,为本公开实施例提供的一种漏洞扫描方法的流程图,该方法包括:
S101,确定第一目标主机对应的软件标识以及软件标识对应的版本号,并将软件标识与版本号的关联关系确定为第一目标软件版本。
本公开实施例中,目标主机为需要进行漏洞扫描的设备,例如可以包括智能手机、台式电脑、平板电脑、智能手表等。目标主机中可能存在漏洞的软件包括操作系统、应用软件、运行服务等,其中,目标主机的基本信息可以包括目标主机上安装的软件对应的软件标识以及软件标识对应的版本号等。例如,第一目标主机(如主机一)上安装了第一软件和第二软件,其分别对应的软件标识可以为软件A、软件B,其中,软件A对应的版本号可以为版本a、版本b、版本c等,软件B对应的版本号可以为版本d、版本e等。
本公开实施例中,在确定第一目标主机对应的软件标识以及软件标识对应的版本号之后,将软件标识与版本号的关联关系确定为第一目标软件版本。例如,在确定第一目标主机(如主机一)对应的软件标识为软件A,以及软件A对应的版本号为版本a之后,将软件A与版本a的关联关系确定为第一目标软件版本。
一种可选的实施方式中,当确定第一目标主机对应的软件标识以及所述软件标识对应的版本号时,首先,基于信息收集类插件集合,采集第一目标主机的基本信息,其中,信息收集类插件集合包括具有依赖结构关系的插件。然后,基于第一目标主机的基本信息,确定第一目标主机上安装的软件的软件标识以及软件的版本号。
本公开实施例中,采集第一目标主机的基本信息时需要利用多个信息收集类插件,其中,若干个信息收集类插件之间可能具有依赖结构关系,信息收集类插件集合中可能包括多个依赖结构关系。其中,依赖结构关系是指部分插件的运行需要依赖其他插件运行的结果,例如,第一插件的运行需要依赖第二插件运行的结果,即第二插件执行完之后才能执行第一插件,第一插件与第二插件具有依赖结构关系。参考图2,为本公开实施例提供的一种具有依赖结构关系的插件的示意图,其中,信息收集类插件集合包括插件A-插件F,其中,插件D依赖于插件B和插件C,插件B和插件C均依赖于插件A,插件A为无依赖插件,插件A-插件D组成一种依赖结构关系;插件F依赖于插件E,插件E为无依赖插件,插件E-插件F组成一种依赖结构关系。
举例说明,基于如图2所示的信息收集类插件集合,可以采集到第一目标主机(如主机一)的基本信息,例如,主机一的基本信息包括第一软件、第一软件对应的软件标识(如软件A)、软件标识对应的版本号(如版本a)等。然后,基于主机一的基本信息,确定主机一上安装的软件为软件A以及软件A对应的版本号为版本a。
本公开实施例中,利用具有依赖结构关系的多个信息收集类插件来采集第一目标主机的基本信息,具有业务模块解耦、高效并行运行、按需加载,内存占用更低的优势。例如,参考图2,如果在采集第一目标主机的基本信息时无需插件E和插件F,则可以将其卸载,以便节省内存空间。
一种可选的实施方式中,当基于信息收集类插件集合,采集第一目标主机的基本信息时,首先,确定信息收集类插件集合中预估运行时间最长的插件对应的无依赖插件,并基于无依赖插件确定信息收集类插件集合中的插件的执行顺序,然后,基于执行顺序,依次执行信息收集类插件集合中的插件,采集第一目标主机的基本信息。
本公开实施例中,在执行各个插件时,根据设备的硬件限制,一般会限制同时执行的插件数量,例如,一次只能执行一个插件,或者一次同时执行两个插件等。信息收集类插件集合中的各个插件分别对应于一个预估运行时间,将各个插件的预估运行时间按照时间长短排序后,确定出预估运行时间最长的插件,并确定该预估运行时间最长的插件对应的无依赖插件,然后,基于该无依赖插件确定信息收集类插件集合中的插件的执行顺序,并依次执行信息收集类插件集合中的插件,采集第一目标主机的基本信息。
需要说明的是,在一个依赖结构关系中,有依赖的插件需要考虑所依赖的插件的运行时间,因此一般有依赖的插件的运行时间大于被依赖的插件的运行时间。
例如,如图2所示,假设信息收集类插件集合包括的插件A-插件F分别对应的预估运行时间为2,3,3,10,5,7,则确定出预估运行时间最长的插件为插件D(预估运行时间为10),插件D依赖于插件B和插件C,插件B和插件C均依赖于插件A,插件A为无依赖插件,则确定预估运行时间最长的插件D对应的无依赖插件为插件A。假设根据设备的硬件限制,一次只能执行一个插件,则基于该无依赖插件A,确定无依赖插件A优先执行于无依赖插件E,即,信息收集类插件集合中的插件的执行顺序可以为先执行插件A-插件B-插件C-插件D,再执行插件E-插件F,依次执行信息收集类插件集合中的插件后,采集第一目标主机的基本信息。
本公开实施例中,优先执行运行时间最长的插件,有利于避免在扫描后期只剩下几个运行时间较长的插件,导致系统资源的浪费。并且,优先执行运行时间最长的插件,有利于减少信息收集类插件集合中的插件的整个运行时间,从而提高了采集第一目标主机的基本信息的采集速度。
一种可选的实施方式中,当确定信息收集类插件集合中预估运行时间最长的插件对应的无依赖插件时,可以基于插件运行时间历史记录,确定信息收集类插件集合中各个插件分别对应的预估运行时间,然后,在信息收集类插件集合中,确定预估运行时间最长的插件对应的无依赖插件。
本公开实施例中,每次执行完插件之后,将该插件对应的实际运行时间存储于数据库中,得到该插件对应的一条运行时间历史记录,数据库中包括插件对应的若干条运行时间历史记录,基于插件运行时间历史记录,可以确定信息收集类插件集合中各个插件分别对应的预估运行时间,具体确定方式可以包括如下实施例所述。
一种可选的实施方式中,从信息收集类插件集合中确定目标插件,如果确定目标插件为无依赖插件,则利用公式(1)计算目标插件对应的预估运行时间。
其中,esti为第i个插件的预估运行时间,tij为所选取的最近n条运行时间历史记录中,第i个插件第j次的运行时间,其中,n为正整数,j=1,2,3...n。
举例说明,从信息收集类插件集合中确定目标插件为无依赖插件A,则插件A为第i个插件,esti为插件A的预估运行时间,在数据库中选取插件A对应的最近n条运行时间历史记录,假设n=3,tij为所选取的三条运行时间历史记录中,插件A第j次的运行时间,其中,j=1,2,3,将插件A的三次运行时间求和后,再求其平均值,即得到插件A的预估运行时间。
另一种可选的实施方式中,从信息收集类插件集合中确定目标插件,如果确定目标插件为有依赖插件,则利用公式(2)计算目标插件对应的预估运行时间。
其中,k为插件i依赖的插件个数,α为影响系数,dj为插件i依赖的第j个插件,为插件i依赖的第j个插件对应的平均运行时间,其中,k为正整数,j=1,2,3...k,α∈(1/e,1]。
举例说明,参考图2,插件D依赖于插件B和插件C,且对应的无依赖插件为插件A,从信息收集类插件集合中确定目标插件为有依赖插件D,则插件D为第i个插件,esti为插件D的预估运行时间,k为插件D依赖的插件个数(k=2),dj为插件D依赖的第j个插件,其中,j=1,2,为插件D依赖的第j个插件对应的平均运行时间,将k个被依赖插件的平均运行时间求和后,找到其中的最大值。α为影响系数,则/>表示依赖的插件个数对插件i的影响,将上述得到的最大值乘以插件个数对插件D的影响,最后加上由公式(1)计算得到的无依赖插件A的预估运行时间,即得到插件D的预估运行时间。
本公开实施例中,每次执行完插件之后,将该插件对应的实际运行时间存储于数据库中,并基于公式(1)、公式(2)更新依赖该插件的插件对应的预估运行时间,并存储于数据库中,作为历史扫描经验,有利于提高后续的漏洞扫描速度。
一种可选的实施方式中,在基于上述实施例确定第一目标主机的基本信息之后,可根据如下步骤A1-A3,基于第一目标主机的基本信息,确定第一目标主机上安装的软件的软件标识以及软件的版本号。
步骤A1,基于第一目标主机的基本信息,确定第一目标主机上安装的软件的软件标识。
该步骤中,在基于上述实施例确定的第一目标主机的基本信息包括软件的软件标识,例如,主机一的基本信息包括第一软件、第一软件对应的软件标识(如软件A)等。
步骤A2,从第一目标主机的基本信息中,获取软件标识对应的版本相关字符串。
其中,版本相关字符串为基于版本信息相关的数据包拼接而成。
该步骤中,在每次进行软件版本的探测时,先将探测版本号相关的数据包拼接成版本相关字符串。基于上述实施例确定的第一目标主机的基本信息还包括软件标识对应的版本相关字符串,从第一目标主机的基本信息中,获取该软件标识(如软件A)对应的版本相关字符串。
步骤A3,基于软件标识对应的版本信息概率,从版本相关字符串中确定软件的版本号。
其中,版本信息概率用于表征版本相关字符串中的每行存在版本号的概率,版本信息概率为基于软件的版本号的查找历史记录确定。
该步骤中,在探测出对应的软件版本号之后,将该版本号所在数据包的行以及数据包总行数对应存储于数据库中,得到相关历史记录,在之后的软件版本号匹配过程中,查找相关字符串中的每一行存在版本号的概率,得到该版本号对应的版本信息概率,版本信息概率越大,说明该行可以匹配到版本号的可能性越大,然后,基于软件标识对应的版本信息概率,优先对可能性较大的行进行匹配,从版本相关字符串中确定软件的版本号。其中,利用公式(3)计算版本信息概率。
其中,Pij为行数为i时,第j行存在版本号的概率。
本公开实施例中,基于软件标识对应的版本信息概率,从版本相关字符串中确定软件的版本号,能够提高版本号的获取速度,有利于提高确定第一目标主机上安装的软件的软件标识以及软件的版本号的速度,从而有利于提高整体漏洞扫描的速度。
S102,将第一目标软件版本与预先获取的漏洞结构信息中的软件版本进行匹配。
其中,漏洞结构信息包括按照预设树状存储结构存储的漏洞与软件版本的关联关系,软件版本包括软件标识与版本号的关联关系,漏洞结构信息中包括预设漏洞库中的漏洞。
本公开实施例中,预设漏洞库中包括多个漏洞,相同软件的不同软件版本可能对应不同的漏洞,或者相同软件的不同软件版本可能对应相同的漏洞。参考图3,为本公开实施例提供的一种漏洞结构信息的示意图,其中,软件版本包括软件标识(如软件A)与版本号(如版本a、版本b、版本c)的关联关系,例如,软件A与版本a的关联关系为第一软件版本、软件A与版本b的关联关系为第二软件版本、软件A与版本c的关联关系为第三软件版本等。漏洞结构信息包括漏洞(如漏洞1)与软件版本(如第一软件版本)的关联关系,例如,漏洞1与第一软件版本的关联关系、漏洞3与第二软件版本的关联关系、漏洞5与第三软件版本的关联关系等。
本公开实施例中,将S101中确定的第一目标软件版本与预先获取的漏洞结构信息中的软件版本进行匹配,其中,第一目标软件版本包括软件标识与版本号的关联关系,例如,如果确定的第一目标软件版本为软件A与版本a的关联关系,则在如图3所示的漏洞结构信息中可以与第一软件版本(软件A与版本a的关联关系)匹配成功。
S103,如果确定第一目标软件版本与漏洞结构信息中的任一软件版本匹配成功,则在漏洞结构信息中建立软件版本与第一目标主机之间的关联关系,得到更新后漏洞结构信息。
本公开实施例中,如S102中的举例,确定确定第一目标软件版本与如图3所示的漏洞结构信息中的某一软件版本匹配成功,则在如图3所示的漏洞结构信息中建立软件版本(如版本a)与第一目标主机(如主机一)之间的关联关系,得到更新后漏洞结构信息,如图4所示,为本公开实施例提供的另一种漏洞结构信息的示意图,其中,主机一直接与版本a相连接。
一种可选的实施方式中,如果在S101中未确定出第一目标主机对应的软件标识的版本号,则将第一目标主机的软件标识与漏洞结构信息中的软件标识进行匹配,如果确定第一目标主机的软件标识与漏洞结构信息中的任一软件标识匹配成功,则在漏洞结构信息中建立软件标识与第一目标主机之间的关联关系,得到更新后漏洞结构信息。
本公开实施例中,如果在S101中确定第一目标主机对应的软件标识以及软件标识对应的版本号时,只能确定出第一目标主机对应的软件标识,未确定出第一目标主机对应的软件标识的版本号,例如,确定出第一目标主机(如主机二)对应的软件标识为软件A,未确定出软件A对应的版本号。那么,在如图3所示的漏洞结构信息中建立软件标识(如软件A)与第一目标主机(如主机二)之间的关联关系,得到更新后漏洞结构信息,如图4所示,为本公开实施例提供的另一种漏洞结构信息的示意图,其中,主机二与软件A相连接。
S104,基于更新后漏洞结构信息中与第一目标主机具有关联关系的漏洞,对第一目标主机进行漏洞扫描。
本公开实施例中,由上述S103中得到更新后的漏洞结构信息,基于更新后的漏洞结构信息中与第一目标主机具有关联关系的漏洞,对第一目标主机进行漏洞扫描,例如,参考图4,为更新后的漏洞结构信息,如果第一目标主机为主机一,则确定与主机一具有关联关系的漏洞包括漏洞1、漏洞2、漏洞3等,则可以基于漏洞1、漏洞2、漏洞3等,对主机一进行漏洞扫描。如果发现存在漏洞(如存在漏洞1),则可以针对该漏洞提供修复建议,从而保障用户的信息安全。
一种可选的实施方式中,可根据如下步骤B1-B3,基于更新后漏洞结构信息中与第一目标主机具有关联关系的漏洞,对第一目标主机进行漏洞扫描。
步骤B1,基于更新后漏洞结构信息,确定与第一目标主机具有关联关系的漏洞,作为待扫描漏洞。
该步骤中,基于上述S103中得到的更新后的漏洞结构信息,确定与第一目标主机(如主机一)具有关联关系的漏洞,例如,参考图4,与主机一具有关联关系的漏洞包括漏洞1、漏洞2、漏洞3等,则漏洞1、漏洞2、漏洞3等作为待扫描漏洞。
步骤B2,基于预先确定的漏洞与发现方式评分之间的对应关系,确定待扫描漏洞对应的发现方式。
其中,发现方式评分用于表征对应的发现方式与漏洞的适配程度。
该步骤中,首先,调用漏洞扫描类插件对漏洞进行扫描,其中,漏洞扫描类插件包括多个漏洞扫描插件,一个漏洞可能只需要一个插件成功触发,就可以确定存在该漏洞,还有可能需要成功触发多个插件,才可以确定存在该漏洞。漏洞的发现方式可以包括,例如,发现方式一、当只需要一个插件成功触发,就可以确定存在该漏洞时,可以在确定其中任意一个插件触发成功时,确定存在该漏洞;发现方式二、当需要成功触发多个插件,才可以确定存在该漏洞时,也可以在确定其中一个插件触发失败时,确定不存在该漏洞,即排除该漏洞的存在。
然后,每执行完一次漏洞扫描之后,将确认存在漏洞或者排除漏洞存在所采用的发现方式以及对应的运行时间存储在数据库中,作为历史记录。
进而,基于数据库中存储的发现方式以及对应的运行时间,利用公式(4)计算发现方式对应的发现方式评分,其中,发现方式评分用于表征对应的发现方式与漏洞的适配程度,发现方式评分越高,说明该发现方式与该漏洞的适配程度越高。
其中,c为发现方式成功确认存在漏洞或者成功排除漏洞存在的次数,maxc为漏洞扫描类插件中所有发现方式触发最多的次数,t为发现方式的运行时间,maxt为漏洞扫描类插件中所有发现方式运行最长的时间,β为调节系数,β∈(0,1)。
该步骤中,在确定漏洞对应的各个发现方式评分之后,将各个漏洞对应的发现方式评分按照由高到低的顺序存储在数据库中,得到预先确定的漏洞与发现方式评分之间的对应关系,然后,基于预先确定的漏洞与发现方式评分之间的对应关系,确定待扫描漏洞对应的发现方式。例如,优选该待扫描漏洞对应的发现方式评分较高的发现方式,作为该待扫描漏洞对应的发现方式。
步骤B3,利用待扫描漏洞对应的发现方式,对第一目标主机中的待扫描漏洞进行扫描,确定第一目标主机中是否存在待扫描漏洞。
该步骤中,利用上述步骤B2中确定的待扫描漏洞对应的发现方式,对第一目标主机(如主机一)中的待扫描漏洞(如漏洞1、漏洞2、漏洞3等)进行扫描,例如,利用发现方式一对漏洞1进行扫描,确定存在该漏洞1,利用发现方式二对漏洞2进行扫描,确定不存在该漏洞2,利用发现方式二对漏洞3进行扫描,确定存在该漏洞3,等等,则确定第一目标主机(如主机一)中存在待扫描漏洞中的漏洞1。
本公开实施例中,基于历史记录,确定待扫描漏洞对应的评分较高的发现方式,进而利用该发现方式对第一目标主机中的待扫描漏洞进行扫描,有利于提高确定第一目标主机中是否存在待扫描漏洞的速度。
本公开实施例提供了一种漏洞扫描方法,首先,确定第一目标主机对应的软件标识以及软件标识对应的版本号,并将软件标识与版本号的关联关系确定为第一目标软件版本,然后,将第一目标软件版本与预先获取的漏洞结构信息中的软件版本进行匹配,其中,漏洞结构信息包括按照预设树状存储结构存储的漏洞与软件版本的关联关系,软件版本包括软件标识与版本号的关联关系,漏洞结构信息中包括预设漏洞库中的漏洞。如果确定第一目标软件版本与漏洞结构信息中的任一软件版本匹配成功,则在漏洞结构信息中建立该软件版本与第一目标主机之间的关联关系,得到更新后漏洞结构信息。进而,基于更新后漏洞结构信息中与第一目标主机具有关联关系的漏洞,对第一目标主机进行漏洞扫描。可见,本公开实施例基于漏洞与软件版本的关系,减少与主机具有关联关系的漏洞数量,从而提高漏洞扫描效率。
在上述实施例的基础上,如果需要对第二目标主机进行漏洞扫描,首先,确定第二目标主机对应到的软件标识以及软件标识对应的版本号,并将软件标识和版本号的关联关系确定为第二目标软件版本。具体实施方法如上述S101所述,例如,确定第二目标主机(如主机三)对应的软件标识为软件A,以及软件A对应的版本号为版本c之后,将软件A与版本c的关联关系确定为第二目标软件版本。
然后,将第二目标软件版本与更新后漏洞结构信息中的软件版本进行匹配。例如,将第二目标软件版本(如软件A与版本c的关联关系)与上述S103中得到的更新后的漏洞结构信息(如图4所示)中的软件版本进行匹配,并确定第二目标软件版本可以与如图4所示的漏洞结构信息中的某一软件版本匹配成功。
进而,在更新后漏洞结构信息中建立第二目标软件版本与第二目标主机之间的关联关系。例如,在如图4所示的漏洞结构信息中建立第二目标软件版本(如版本c)与第二目标主机(如主机三)之间的关联关系,得到更新后漏洞结构信息,如图5所示,为本公开实施例提供的另一种漏洞结构信息的示意图,其中,主机三直接与版本c相连接。
本公开实施例中,在对第一目标主机进行漏洞扫描的基础上,当需要对第二目标主机进行漏洞扫描时,能够直接在更新后的漏洞结构信息中建立第二目标软件版本与第二目标主机之间的关联关系,因此,有利于节省存储空间,以及便于安全人员进行维护与分析。
基于上述方法实施例,本公开提供了一种漏洞扫描系统,参考图6,图6为本公开实施例提供的一种漏洞扫描系统结构示意图。其中,该漏洞扫描系统包括系统引擎601、信息收集类插件集合602、版本比对插件603、漏洞扫描插件604。
本公开实施例中,预先建立软件与漏洞之间的关联关系,得到漏洞结构信息,并且将建立的关联关系存储在系统引擎601中。当所述系统引擎601接收到针对目标主机的漏洞扫描指令时,将目标主机划分成n个批次。然后,系统引擎601可以触发信息收集类插件集合602的执行,实现采集目标主机的基本信息的功能。然后,系统引擎601可以触发版本比对插件603的执行,实现将确定的目标软件版本与预先获取的漏洞结构信息中的软件版本进行匹配的功能。如果匹配成功,则建立目标主机与软件之间的关联关系,得到更新后的漏洞结构信息。进而,系统引擎601还可以触发漏洞扫描插件604的执行,实现基于更新后漏洞结构信息中与目标主机具有关联关系的漏洞,对目标主机进行漏洞扫描的功能。每次扫描漏洞完成后,将相关漏洞信息(如确定存在漏洞或者排除漏洞存在)发送给系统引擎601。
此外,在每次扫描漏洞完成后,将相关历史经验记录存储在数据库中,并且能够在执行信息收集类插件集合602、版本比对插件603以及漏洞扫描插件604的功能时,基于存储的历史经验记录提供经验,以便提高对应执行步骤的执行速度,从而提高整体的漏洞扫描的效率。
与上述系统和方法实施方式相对应的,本公开还提供了一种漏洞扫描装置,参考图7,为本公开实施例提供的一种漏洞扫描装置的结构示意图,所述装置包括:
第一确定模块701,用于确定第一目标主机对应的软件标识以及所述软件标识对应的版本号,并将所述软件标识与所述版本号的关联关系确定为第一目标软件版本;
第一匹配模块702,用于将所述第一目标软件版本与预先获取的漏洞结构信息中的软件版本进行匹配;其中,所述漏洞结构信息包括按照预设树状存储结构存储的漏洞与软件版本的关联关系,所述软件版本包括软件标识与版本号的关联关系,所述漏洞结构信息中包括预设漏洞库中的漏洞;
第一更新模块703,用于如果确定所述第一目标软件版本与所述漏洞结构信息中的任一软件版本匹配成功,则在所述漏洞结构信息中建立所述软件版本与所述第一目标主机之间的关联关系,得到更新后漏洞结构信息;
扫描模块704,用于基于所述更新后漏洞结构信息中与所述第一目标主机具有关联关系的漏洞,对所述第一目标主机进行漏洞扫描。
一种可选的实施方式中,所述第一确定模块701,包括:
第一采集子模块,用于基于信息收集类插件集合,采集第一目标主机的基本信息;其中,所述信息收集类插件集合包括具有依赖结构关系的插件;
第一确定子模块,用于基于所述第一目标主机的基本信息,确定所述第一目标主机上安装的软件的软件标识以及所述软件的版本号。
一种可选的实施方式中,所述第一采集子模块,包括:
第二确定子模块,用于确定所述信息收集类插件集合中预估运行时间最长的插件对应的无依赖插件,并基于所述无依赖插件确定所述信息收集类插件集合中的插件的执行顺序;
第二采集子模块,用于基于所述执行顺序,依次执行所述信息收集类插件集合中的插件,采集第一目标主机的基本信息。
一种可选的实施方式中,所述第二确定子模块,包括:
第三确定子模块,用于基于插件运行时间历史记录,确定所述信息收集类插件集合中各个插件分别对应的预估运行时间;
第四确定子模块,用于在所述信息收集类插件集合中,确定所述预估运行时间最长的插件对应的无依赖插件。
一种可选的实施方式中,所述第三确定子模块,包括:
第五确定子模块,用于从所述信息收集类插件集合中确定目标插件;
第一计算子模块,用于如果确定所述目标插件为无依赖插件,则利用公式(1)计算所述目标插件对应的预估运行时间;
其中,esti为第i个插件的预估运行时间,tij为所选取的最近n条运行时间历史记录中,第i个插件第j次的运行时间,其中,n为正整数,j=1,2,3...n;
第二计算子模块,用于如果确定所述目标插件为有依赖插件,则利用公式(2)计算所述目标插件对应的预估运行时间;
其中,k为插件i依赖的插件个数,α为影响系数,dj为插件i依赖的第j个插件,为插件i依赖的第j个插件对应的平均运行时间,其中,k为正整数,j=1,2,3...k,α∈(1/e,1]。
一种可选的实施方式中,所述第一确定子模块,包括:
第六确定子模块,用于基于所述第一目标主机的基本信息,确定所述第一目标主机上安装的软件的软件标识;
获取子模块,用于从所述第一目标主机的基本信息中,获取所述软件标识对应的版本相关字符串;其中,所述版本相关字符串为基于所述版本信息相关的数据包拼接而成;
第七确定子模块,用于基于所述软件标识对应的版本信息概率,从所述版本相关字符串中确定所述软件的版本号;其中,所述版本信息概率用于表征所述版本相关字符串中的每行存在版本号的概率,所述版本信息概率为基于所述软件的版本号的查找历史记录确定。
一种可选的实施方式中,所述装置还包括:
第二匹配模块,用于如果未确定出所述第一目标主机对应的软件标识的版本号,则将所述第一目标主机的软件标识与所述漏洞结构信息中的软件标识进行匹配;
第二更新模块,用于如果确定所述第一目标主机的软件标识与所述漏洞结构信息中的任一软件标识匹配成功,则在所述漏洞结构信息中建立所述软件标识与所述第一目标主机之间的关联关系,得到更新后漏洞结构信息。
一种可选的实施方式中,所述扫描模块704,包括:
第八确定子模块,用于基于所述更新后漏洞结构信息,确定与所述第一目标主机具有关联关系的漏洞,作为待扫描漏洞;
第九确定子模块,用于基于预先确定的漏洞与发现方式评分之间的对应关系,确定所述待扫描漏洞对应的发现方式;其中,所述发现方式评分用于表征对应的发现方式与所述漏洞的适配程度;
第十确定子模块,用于利用所述待扫描漏洞对应的发现方式,对所述第一目标主机中的所述待扫描漏洞进行扫描,确定所述第一目标主机中是否存在所述待扫描漏洞。
一种可选的实施方式中,所述装置还包括:
第二确定模块,用于确定第二目标主机对应到的软件标识以及所述软件标识对应的版本号,并将所述软件标识和所述版本号的关联关系确定为第二目标软件版本;
第三匹配模块,用于将所述第二目标软件版本与所述更新后漏洞结构信息中的软件版本进行匹配;
第三更新模块,用于如果确定所述第二目标软件版本与所述更新后漏洞结构信息中的任一软件版本匹配成功,则在所述更新后漏洞结构信息中建立所述软件版本与所述第二目标主机之间的关联关系。
本公开实施例提供了一种漏洞扫描装置,首先,确定第一目标主机对应的软件标识以及软件标识对应的版本号,并将软件标识与版本号的关联关系确定为第一目标软件版本,然后,将第一目标软件版本与预先获取的漏洞结构信息中的软件版本进行匹配,其中,漏洞结构信息包括按照预设树状存储结构存储的漏洞与软件版本的关联关系,软件版本包括软件标识与版本号的关联关系,漏洞结构信息中包括预设漏洞库中的漏洞。如果确定第一目标软件版本与漏洞结构信息中的任一软件版本匹配成功,则在漏洞结构信息中建立该软件版本与第一目标主机之间的关联关系,得到更新后漏洞结构信息。进而,基于更新后漏洞结构信息中与第一目标主机具有关联关系的漏洞,对第一目标主机进行漏洞扫描。可见,本公开实施例基于漏洞与软件版本的关系,减少与主机具有关联关系的漏洞数量,从而提高漏洞扫描效率。
另外,本公开实施例还提供了一种漏洞扫描设备,参见图8所示,可以包括:
处理器801、存储器802、输入装置803和输出装置804。漏洞扫描设备中的处理器801的数量可以一个或多个,图8中以一个处理器为例。在本发明的一些实施例中,处理器801、存储器802、输入装置803和输出装置804可通过总线或其它方式连接,其中,图8中以通过总线连接为例。
存储器802可用于存储软件程序以及模块,处理器801通过运行存储在存储器802的软件程序以及模块,从而执行漏洞扫描设备的各种功能应用以及数据处理。存储器802可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等。此外,存储器802可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。输入装置803可用于接收输入的数字或字符信息,以及产生与漏洞扫描设备的用户设置以及功能控制有关的信号输入。
具体在本实施例中,处理器801会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器802中,并由处理器801来运行存储在存储器802中的应用程序,从而实现上述漏洞扫描设备的各种功能。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (12)

1.一种漏洞扫描方法,其特征在于,所述方法包括:
确定第一目标主机对应的软件标识以及所述软件标识对应的版本号,并将所述软件标识与所述版本号的关联关系确定为第一目标软件版本;
将所述第一目标软件版本与预先获取的漏洞结构信息中的软件版本进行匹配;其中,所述漏洞结构信息包括按照预设树状存储结构存储的漏洞与软件版本的关联关系,所述软件版本包括软件标识与版本号的关联关系,所述漏洞结构信息中包括预设漏洞库中的漏洞;
如果确定所述第一目标软件版本与所述漏洞结构信息中的任一软件版本匹配成功,则在所述漏洞结构信息中建立所述软件版本与所述第一目标主机之间的关联关系,得到更新后漏洞结构信息;
基于所述更新后漏洞结构信息中与所述第一目标主机具有关联关系的漏洞,对所述第一目标主机进行漏洞扫描;
所述基于所述更新后漏洞结构信息中与所述第一目标主机具有关联关系的漏洞,对所述第一目标主机进行漏洞扫描,包括:
基于所述更新后漏洞结构信息,确定与所述第一目标主机具有关联关系的漏洞,作为待扫描漏洞;
基于预先确定的漏洞与发现方式评分之间的对应关系,确定所述待扫描漏洞对应的发现方式;其中,所述发现方式评分用于表征对应的发现方式与所述漏洞的适配程度;
利用所述待扫描漏洞对应的发现方式,对所述第一目标主机中的所述待扫描漏洞进行扫描,确定所述第一目标主机中是否存在所述待扫描漏洞。
2.根据权利要求1所述的方法,其特征在于,所述确定第一目标主机对应的软件标识以及所述软件标识对应的版本号,包括:
基于信息收集类插件集合,采集第一目标主机的基本信息;其中,所述信息收集类插件集合包括具有依赖结构关系的插件;
基于所述第一目标主机的基本信息,确定所述第一目标主机上安装的软件的软件标识以及所述软件的版本号。
3.根据权利要求2所述的方法,其特征在于,所述基于信息收集类插件集合,采集第一目标主机的基本信息,包括:
确定所述信息收集类插件集合中预估运行时间最长的插件对应的无依赖插件,并基于所述无依赖插件确定所述信息收集类插件集合中的插件的执行顺序;其中,所述无依赖插件位于所述执行顺序的首位;
基于所述执行顺序,依次执行所述信息收集类插件集合中的插件,采集第一目标主机的基本信息。
4.根据权利要求3所述的方法,其特征在于,所述确定所述信息收集类插件集合中预估运行时间最长的插件对应的无依赖插件,包括:
基于插件运行时间历史记录,确定所述信息收集类插件集合中各个插件分别对应的预估运行时间;
在所述信息收集类插件集合中,确定所述预估运行时间最长的插件对应的无依赖插件。
5.根据权利要求4所述的方法,其特征在于,所述基于插件运行时间历史记录,确定所述信息收集类插件集合中各个插件分别对应的预估运行时间,包括:
从所述信息收集类插件集合中确定目标插件;
如果确定所述目标插件为无依赖插件,则利用公式(1)计算所述目标插件对应的预估运行时间;
其中,esti为第i个插件的预估运行时间,tij为所选取的最近n条运行时间历史记录中,第i个插件第j次的运行时间,其中,n为正整数,j=1,2,3...n;
如果确定所述目标插件为有依赖插件,则利用公式(2)计算所述目标插件对应的预估运行时间;
其中,k为第i个插件依赖的插件个数,α为影响系数,dj为插件i依赖的第j个插件,estdj为插件i依赖的第j个插件对应的平均运行时间,其中,k为正整数,j=1,2,3...k,α∈(1/e,1]。
6.根据权利要求2所述的方法,其特征在于,所述基于所述第一目标主机的基本信息,确定所述第一目标主机上安装的软件的软件标识以及所述软件的版本号,包括:
基于所述第一目标主机的基本信息,确定所述第一目标主机上安装的软件的软件标识;
从所述第一目标主机的基本信息中,获取所述软件标识对应的版本相关字符串;其中,所述版本相关字符串为基于所述版本信息相关的数据包拼接而成;
基于所述软件标识对应的版本信息概率,从所述版本相关字符串中确定所述软件的版本号;其中,所述版本信息概率用于表征所述版本相关字符串中的每行存在版本号的概率,所述版本信息概率为基于所述软件的版本号的查找历史记录确定。
7.根据权利要求1所述的方法,其特征在于,所述基于所述更新后漏洞结构信息中与所述第一目标主机具有关联关系的漏洞,对所述第一目标主机进行漏洞扫描之前,还包括:
如果未确定出所述第一目标主机对应的软件标识的版本号,则将所述第一目标主机的软件标识与所述漏洞结构信息中的软件标识进行匹配;
如果确定所述第一目标主机的软件标识与所述漏洞结构信息中的任一软件标识匹配成功,则在所述漏洞结构信息中建立所述软件标识与所述第一目标主机之间的关联关系,得到更新后漏洞结构信息。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定第二目标主机对应到的软件标识以及所述软件标识对应的版本号,并将所述软件标识和所述版本号的关联关系确定为第二目标软件版本;
将所述第二目标软件版本与所述更新后漏洞结构信息中的软件版本进行匹配;
如果确定所述第二目标软件版本与所述更新后漏洞结构信息中的任一软件版本匹配成功,则在所述更新后漏洞结构信息中建立所述软件版本与所述第二目标主机之间的关联关系。
9.一种漏洞扫描装置,其特征在于,所述装置包括:
第一确定模块,用于确定第一目标主机对应的软件标识以及所述软件标识对应的版本号,并将所述软件标识与所述版本号的关联关系确定为第一目标软件版本;
第一匹配模块,用于将所述第一目标软件版本与预先获取的漏洞结构信息中的软件版本进行匹配;其中,所述漏洞结构信息包括按照预设树状存储结构存储的漏洞与软件版本的关联关系,所述软件版本包括软件标识与版本号的关联关系,所述漏洞结构信息中包括预设漏洞库中的漏洞;
第一更新模块,用于如果确定所述第一目标软件版本与所述漏洞结构信息中的任一软件版本匹配成功,则在所述漏洞结构信息中建立所述软件版本与所述第一目标主机之间的关联关系,得到更新后漏洞结构信息;
扫描模块,用于基于所述更新后漏洞结构信息中与所述第一目标主机具有关联关系的漏洞,对所述第一目标主机进行漏洞扫描;
所述扫描模块,包括:
第八确定子模块,用于基于所述更新后漏洞结构信息,确定与所述第一目标主机具有关联关系的漏洞,作为待扫描漏洞;
第九确定子模块,用于基于预先确定的漏洞与发现方式评分之间的对应关系,确定所述待扫描漏洞对应的发现方式;其中,所述发现方式评分用于表征对应的发现方式与所述漏洞的适配程度;
第十确定子模块,用于利用所述待扫描漏洞对应的发现方式,对所述第一目标主机中的所述待扫描漏洞进行扫描,确定所述第一目标主机中是否存在所述待扫描漏洞。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备实现如权利要求1-8任一项所述的方法。
11.一种电子设备,其特征在于,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-8任一项所述的方法。
12.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现如权利要求1-8任一项所述的方法。
CN202110850324.4A 2021-07-27 2021-07-27 一种漏洞扫描方法、装置、设备及存储介质 Active CN113553595B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110850324.4A CN113553595B (zh) 2021-07-27 2021-07-27 一种漏洞扫描方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110850324.4A CN113553595B (zh) 2021-07-27 2021-07-27 一种漏洞扫描方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN113553595A CN113553595A (zh) 2021-10-26
CN113553595B true CN113553595B (zh) 2023-09-26

Family

ID=78133007

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110850324.4A Active CN113553595B (zh) 2021-07-27 2021-07-27 一种漏洞扫描方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113553595B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115134167B (zh) * 2022-08-02 2024-04-12 杭州安恒信息技术股份有限公司 一种漏洞扫描方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473505A (zh) * 2012-06-06 2013-12-25 腾讯科技(深圳)有限公司 一种软件漏洞的扫描提示方法和装置
CN105095769A (zh) * 2015-08-28 2015-11-25 中国航天科工集团第二研究院七〇六所 一种信息服务软件漏洞检测方法
CN107194262A (zh) * 2017-05-19 2017-09-22 北京匡恩网络科技有限责任公司 用于扫描漏洞和生成漏洞信息库的方法及装置
CN110210228A (zh) * 2019-04-26 2019-09-06 国家电网有限公司 一种主机设备漏洞扫描方法及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4775306B2 (ja) * 2007-04-23 2011-09-21 ソニー株式会社 画像処理装置、撮像装置、および画像表示制御方法、並びにコンピュータ・プログラム
JP2011223565A (ja) * 2010-03-26 2011-11-04 Panasonic Corp 撮像装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473505A (zh) * 2012-06-06 2013-12-25 腾讯科技(深圳)有限公司 一种软件漏洞的扫描提示方法和装置
CN105095769A (zh) * 2015-08-28 2015-11-25 中国航天科工集团第二研究院七〇六所 一种信息服务软件漏洞检测方法
CN107194262A (zh) * 2017-05-19 2017-09-22 北京匡恩网络科技有限责任公司 用于扫描漏洞和生成漏洞信息库的方法及装置
CN110210228A (zh) * 2019-04-26 2019-09-06 国家电网有限公司 一种主机设备漏洞扫描方法及系统

Also Published As

Publication number Publication date
CN113553595A (zh) 2021-10-26

Similar Documents

Publication Publication Date Title
RU2536664C2 (ru) Система и способ автоматической модификации антивирусной базы данных
RU2551820C2 (ru) Способ и устройство для проверки файловой системы на наличие вирусов
RU2581560C2 (ru) Способ сканирования файлов, клиентский компьютер и сервер
CN102222192B (zh) 通过自动修正检测规则优化反恶意软件处理
US9111094B2 (en) Malware detection
JP5963008B2 (ja) コンピュータシステムの分析方法および装置
US11099842B2 (en) Source code similarity detection using digital fingerprints
US20150205960A1 (en) Method of detecting a malware based on a white list
RU2523112C1 (ru) Система и способ выбора оптимального типа антивирусной проверки при доступе к файлу
US9679139B1 (en) System and method of performing an antivirus scan of a file on a virtual machine
KR20120071834A (ko) 악성코드 그룹 및 변종 자동 관리 시스템
US20080127043A1 (en) Automatic Extraction of Programming Rules
CN111767547B (zh) 一种基于复杂网络社团的软件漏洞检测方法
CN103207970A (zh) 病毒文件扫描方法及装置
CN113553595B (zh) 一种漏洞扫描方法、装置、设备及存储介质
CN107451152B (zh) 计算设备、数据缓存和查找的方法及装置
KR102318991B1 (ko) 유사도 기반의 악성코드 진단 방법 및 장치
CN107590233B (zh) 一种文件管理方法及装置
CN116150765B (zh) 一种基于api依赖的模糊变异方法及装置
CN111274090A (zh) 作业处理方法、装置、介质及电子设备
CN114531340B (zh) 日志获取方法、装置、电子设备、芯片及存储介质
CN112711531A (zh) 用例构建方法、用例构建装置以及可读存储介质
RU101224U1 (ru) Система выявления и минимизации риска ложных срабатываний
CN109710531B (zh) 应用程序的审计方法、装置、系统、电子设备及存储介质
CN115242614B (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