端口扫描方法、装置、计算机设备及可读存储介质转让专利

申请号 : CN202211186792.7

文献号 : CN115296928B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 熊方成城李季赵远杰胡维梁露露陈幼雷韩冰李可

申请人 : 北京源堡科技有限公司

摘要 :

本发明实施例提供了一种端口扫描方法、装置、计算机设备及可读存储介质,涉及互联网技术领域,其中,该方法包括:按照多个理论风险水平输出值,将每个待扫描资产的端口划分为多个扫描任务,顺序在前的扫描任务对应的理论风险水平输出值大于顺序在后的扫描任务对应的理论风险水平输出值;将每个待扫描资产的多个扫描任务分别存入多个队列中;针对当前队列,在完成当前队列中当前的待扫描资产的扫描任务时,当扫描结果的风险水平小于预设风险水平阈值,则触发执行下一个队列中当前的待扫描资产的扫描任务,并执行当前队列中下一个待扫描资产的扫描任务。该方案可在较短的时间内发现更多暴露的攻击面信息,有利于避免错过关键的端口开放信息。

权利要求 :

1.一种端口扫描方法,其特征在于,包括:

按照多个理论风险水平输出值,将每个待扫描资产的端口划分为多个扫描任务,其中,每个扫描任务包括的端口为满足该扫描任务对应的理论风险水平输出值所需扫描的端口,顺序在前的扫描任务对应的理论风险水平输出值大于顺序在后的扫描任务对应的理论风险水平输出值;

将每个待扫描资产的多个扫描任务分别存入多个队列中;

针对当前队列,在完成当前队列中当前的待扫描资产的扫描任务时,当扫描结果的风险水平小于预设风险水平阈值,则触发执行下一个队列中当前的待扫描资产的扫描任务,并执行当前队列中下一个待扫描资产的扫描任务;

按照多个理论风险水平输出值,将每个待扫描资产的端口划分为多个扫描任务,包括:根据端口的开放端口对应服务的概率分布和服务攻击面信息量化值,确定开放端口风险水平;

根据端口的端口开放概率和所述开放端口风险水平,确定出达到每个理论风险水平输出值所需扫描的端口的最小集合,将该端口的最小集合划分为一个扫描任务;

通过以下公式实现确定出达到每个理论风险水平输出值所需扫描的端口的最小集合:其中, 为未扫描的端口的集合, 为第 个扫描任务中包含的端口的集合, 为第 个扫描任务对应的理论风险水平输出值, 为开放端口风险水平, 为端口开放概率。

2.如权利要求1所述的端口扫描方法,其特征在于,所述开放端口风险水平是根据端口对应服务的概率分布与服务攻击面信息量化值确定,其中,服务攻击面信息量化值是根据服务蕴含价值、包含的漏洞及服务利用难度确定的。

3.如权利要求1所述的端口扫描方法,其特征在于,通过以下公式根据端口对应服务的概率分布与服务攻击面信息量化值确定所述开放端口风险水平:其中, 为开放端口风险水平, 为开放端口对应服务的概率分布, 为服务攻击面信息量化值, 为基于 的、以对应 为随机变量的概率分布的期望。

4.如权利要求1至3中任一项所述的端口扫描方法,其特征在于,还包括:在完成当前队列中当前的待扫描资产的扫描任务时,当扫描结果的风险水平大于预设风险水平阈值,则将当前的待扫描资产的未扫描的扫描任务移至指定队列中,其中,所述指定队列是多个队列之外的队列;

在未触发防火墙或未达到时间限制前,执行所述指定队列中当前的待扫描资产的扫描任务。

5.如权利要求1至3中任一项所述的端口扫描方法,其特征在于,还包括:不同队列中的扫描任务由不同的扫描设备并行执行。

6.一种端口扫描装置,其特征在于,包括:

任务划分模块,用于按照多个理论风险水平输出值,将每个待扫描资产的端口划分为多个扫描任务,其中,每个扫描任务包括的端口为满足该扫描任务对应的理论风险水平输出值所需扫描的端口;

队列处理模块,用于将各个待扫描资产的多个扫描任务分别存入多个队列中;

扫描模块,用于针对每个队列,在完成该队列中当前的待扫描资产的扫描任务时,当扫描结果的风险水平小于预设风险水平阈值,则触发执行下一个队列中当前的待扫描资产的扫描任务,并执行该队列中下一个待扫描资产的扫描任务;

所述任务划分模块,包括:

风险水平确定单元,用于根据端口的开放端口对应服务的概率分布和服务攻击面信息量化值,确定开放端口风险水平;

任务划分单元,用于根据端口的端口开放概率和所述开放端口风险水平,确定出达到每个理论风险水平输出值所需扫描的端口的最小集合,将该端口的最小集合划分为一个扫描任务;

所述任务划分单元通过以下公式实现确定出达到每个理论风险水平输出值所需扫描的端口的最小集合:其中, 为未扫描的端口的集合, 为第 个扫描任务中包含的端口的集合, 为第 个扫描任务对应的理论风险水平输出值, 为开放端口风险水平, 为端口开放概率。

7.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述的端口扫描方法。

8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至5中任一项所述的端口扫描方法的计算机程序。

说明书 :

端口扫描方法、装置、计算机设备及可读存储介质

技术领域

[0001] 本发明涉及互联网技术领域,特别涉及一种端口扫描方法、装置、计算机设备及可读存储介质。

背景技术

[0002] 开放端口是网络资产与互联网的接口,为明确端口暴露情况,防范黑客攻击,资产安全评估中需要进行端口全量扫描。目前,端口全量扫描并无特定的扫描方法,基本按照顺序从1至65535号端口进行遍历。由于此类扫描方法需要向目标设备(资产)发送大量数据包,可能对目标设备的运营造成影响,或触发目标设备的防火墙策略,导致后续扫描无法完成,使得扫描方法无法在早期扫描过程中尽可能多地发现开放端口,导致可能错过关键的开放端口信息。

发明内容

[0003] 有鉴于此,本发明实施例提供了一种端口扫描方法,以解决现有技术中在有限时间内无法尽可能多地发现开放端口的技术问题。该方法包括:
[0004] 按照多个理论风险水平输出值,将每个待扫描资产的端口划分为多个扫描任务,其中,每个扫描任务包括的端口为满足该扫描任务对应的理论风险水平输出值所需扫描的端口,顺序在前的扫描任务对应的理论风险水平输出值大于顺序在后的扫描任务对应的理论风险水平输出值;
[0005] 将每个待扫描资产的多个扫描任务分别存入多个队列中;
[0006] 针对当前队列,在完成当前队列中当前的待扫描资产的扫描任务时,当扫描结果的风险水平小于预设风险水平阈值,则触发执行下一个队列中当前的待扫描资产的扫描任务,并执行当前队列中下一个待扫描资产的扫描任务。
[0007] 本发明实施例还提供了一种端口扫描装置,以解决现有技术中在有限时间内无法尽可能多地发现开放端口的技术问题。该装置包括:
[0008] 任务划分模块,用于按照多个理论风险水平输出值,将每个待扫描资产的端口划分为多个扫描任务,其中,每个扫描任务包括的端口为满足该扫描任务对应的理论风险水平输出值所需扫描的端口;
[0009] 队列处理模块,用于将各个待扫描资产的多个扫描任务分别存入多个队列中;
[0010] 扫描模块,用于针对每个队列,在完成该队列中当前的待扫描资产的扫描任务时,当扫描结果的风险水平小于预设风险水平阈值,则触发执行下一个队列中当前的待扫描资产的扫描任务,并执行该队列中下一个待扫描资产的扫描任务。
[0011] 本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意的端口扫描方法,以解决现有技术中在有限时间内无法尽可能多地发现开放端口的技术问题。
[0012] 本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述任意的端口扫描方法的计算机程序,以解决现有技术中在有限时间内无法尽可能多地发现开放端口的技术问题。
[0013] 与现有技术相比,本说明书实施例采用的上述至少一个技术方案能够达到的有益效果至少包括:通过按照多个理论风险水平输出值,将每个待扫描资产的端口划分为多个扫描任务,顺序在前的扫描任务对应的理论风险水平输出值大于顺序在后的扫描任务对应的理论风险水平输出值,进而将每个待扫描资产的多个扫描任务分别存入多个队列中,最后,分别执行各个队列中的扫描任务即可,针对每个队列,在完成该队列中当前的待扫描资产的扫描任务时,当扫描结果的风险水平小于预设风险水平阈值,则触发执行下一个队列中当前的待扫描资产的扫描任务,并执行该队列中下一个待扫描资产的扫描任务,这样对于同一待扫描资产的多个扫描任务,每个扫描任务扫描结束后均能达到对应的理论风险水平输出值,顺序在前的扫描任务对应的理论风险水平输出值较大,使得理论风险水平更高的端口扫描任务集中在早期扫描阶段,可在较短的时间内发现更多暴露的攻击面信息;同时,在完成当前队列中当前的待扫描资产的扫描任务时,当扫描结果的风险水平小于预设风险水平阈值,则触发执行下一个队列中当前的待扫描资产的扫描任务,与此同时执行当前队列中下一个待扫描资产的扫描任务,使得多个待扫描资产的扫描任务并行执行,进一步有利于在受到防火墙限制或到达时间限制前(即不对目标业务造成较大影响),尽可能多地发现资产暴露的攻击面,因此,无论对于单资产扫描或多资产扫描任务,上述端口扫描方法均可在不对目标业务造成较大影响的前提下,尽可能多地发现资产暴露的攻击面,进而有利于避免错过关键的端口开放信息。

附图说明

[0014] 为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0015] 图1是本发明实施例提供的一种端口扫描方法的流程图;
[0016] 图2是本发明实施例提供的一种实施上述端口扫描方法的流程图;
[0017] 图3是本发明实施例提供的一种不同队列执行扫描任务的时序示意图;
[0018] 图4是本发明实施例提供的一种计算机设备的结构框图;
[0019] 图5是本发明实施例提供的一种端口扫描装置的结构框图。

具体实施方式

[0020] 下面结合附图对本申请实施例进行详细描述。
[0021] 以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0022] 在本发明实施例中,提供了一种端口扫描方法,如图1所示,该方法包括:
[0023] 步骤S101:按照多个理论风险水平输出值,将每个待扫描资产的端口划分为多个扫描任务,其中,每个扫描任务包括的端口为满足该扫描任务对应的理论风险水平输出值所需扫描的端口,顺序在前的扫描任务对应的理论风险水平输出值大于顺序在后的扫描任务对应的理论风险水平输出值;
[0024] 步骤S102:将每个待扫描资产的多个扫描任务分别存入多个队列中;
[0025] 步骤S103:针对当前队列,在完成当前队列中当前的待扫描资产的扫描任务时,当扫描结果的风险水平小于预设风险水平阈值,则触发执行下一个队列中当前的待扫描资产的扫描任务,并执行当前队列中下一个待扫描资产的扫描任务。
[0026] 由图1所示的流程可知,在本发明实施例中,通过按照多个理论风险水平输出值,将每个待扫描资产的端口划分为多个扫描任务,顺序在前的扫描任务对应的理论风险水平输出值大于顺序在后的扫描任务对应的理论风险水平输出值,进而将每个待扫描资产的多个扫描任务分别存入多个队列中,最后,分别执行各个队列中的扫描任务即可,针对每个队列,在完成该队列中当前的待扫描资产的扫描任务时,当扫描结果的风险水平小于预设风险水平阈值,则触发执行下一个队列中当前的待扫描资产的扫描任务,并执行该队列中下一个待扫描资产的扫描任务,这样对于同一待扫描资产的多个扫描任务,每个扫描任务扫描结束后均能达到对应的理论风险水平输出值,顺序在前的扫描任务对应的理论风险水平输出值较大,使得理论风险水平更高的端口扫描任务集中在早期扫描阶段,可在较短的时间内发现更多暴露的攻击面信息;同时,在完成当前队列中当前的待扫描资产的扫描任务时,当扫描结果的风险水平小于预设风险水平阈值,则触发执行下一个队列中当前的待扫描资产的扫描任务,与此同时执行当前队列中下一个待扫描资产的扫描任务,使得多个待扫描资产的扫描任务并行执行,进一步有利于在受到防火墙限制或到达时间限制前(即不对目标业务造成较大影响),尽可能多地发现资产暴露的攻击面,因此,无论对于单资产扫描或多资产扫描任务,上述端口扫描方法均可在不对目标业务造成较大影响的前提下,尽可能多地发现资产暴露的攻击面,进而有利于避免错过关键的端口开放信息。
[0027] 具体实施时,在端口扫描过程中,考虑到扫出的资产风险水平满足要求时,需要扫描时间尽可能短,可将描述任务进行量化,例如,预计已获得 (%)的资产风险水平输出时消耗的时间为 ,由于时间 与已扫描的端口数量 正相关,因此,可通过扫描端口数量进行评估, 定义 (%)输出问题为:预计已获得 (%)的风险水平输出时扫描的端口数量 ,至此只需确定出 (%)的风险水平输出时扫描的端口数量 的最小值即可。为了实现可以按照理论风险水平输出值,将待扫描资产的端口划分为不同的扫描任务,在本实施例中,提出了通过以下方式按照多个理论风险水平输出值,将每个待扫描资产的端口划分为多个扫描任务,例如,根据端口的开放端口对应服务的概率分布和服务攻击面信息量化值,确定开放端口风险水平;
[0028] 根据端口的端口开放概率和开放端口风险水平,确定出达到每个理论风险水平输出值所需扫描的端口的最小集合,将该端口的最小集合划分为一个扫描任务。
[0029] 具体实施时,在确定出达到每个理论风险水平输出值所需扫描的端口的最小集合的过程中,不妨设端口全量扫描过程中的某一时刻,已扫描的端口数量为 ,已消耗的时间为 ,已扫出开放端口集合为 ,未扫描的端口集合为,已发现的资产攻击面风险水平 可表达为:
[0030]
[0031] 其中, 为开放端口风险水平。
[0032] 则可将 (%)风险水平输出问题表达为:
[0033]
[0034] 即,在端口扫描顺序一定时,要求已扫出的资产风险水平占所有端口风险水平总和的比例超过 ,至少需要扫描的端口数量。其中 为端口开放概率, 越小,则获得(%)风险水平的输出所需要的端口数量越少,意味着扫描方法越高效。
[0035] 因此,为将扫描任务细化,以便在受到防火墙限制或到达时间限制时,提供有效的端口信息输出,需要将划分端口扫描任务,进而将扫描任务存入各个队列实现队列设计,以实现优化的扫描流程控制。
[0036] 例如,以 (%)预设风险水平输出问题为基准,假设某一待扫描资产的端口需要分为多个扫描任务,将每个扫描任务存入一个队列,进而形成多个队列,即设计队列集:
[0037]
[0038] 其中,第 个队列用于存储第 个扫描任务,即第 个扫描任务应当满足:完成第 个扫描任务中的端口扫描时的理论风险水平输出占全部剩余理论风险水平的 (%),因此,第个扫描任务包括的端口集合 应为满足以下条件的最小集合:
[0039]
[0040] 其中, 为未扫描的端口的集合, 为第 个扫描任务中包含的端口的集合, 为第 个扫描任务对应的理论风险水平输出值,即完成第 个扫描任务时应当覆盖的理论风险水平占比, 为开放端口风险水平。
[0041] 具体实施时,端口开放概率 是指特定端口开放的概率,各个端口互相独立。由于服务监听的端口存在默认配置,同时不同服务暴露于互联网的可能性存在明显规律,因此,该端口开放概率 的值可以根据端口开放频率统计数据推测确定。
[0042] 具体实施时,开放端口风险水平 是根据端口对应服务的概率分布 与服务攻击面信息量化值 确定的,例如,
[0043]
[0044] 其中,服务攻击面信息量化值 是根据服务蕴含价值、包含的漏洞及服务利用难度确定的,为基于 的、以对应 为随机变量的概率分布的期望。
[0045] 具体实施时,由于服务监听的端口存在默认配置,同时不同服务暴露于互联网的可能性存在明显规律,因此,端口对应服务的概率分布 的开放端口值可以根据服务检测统计数据进行推测确定。
[0046] 具体实施时,针对服务攻击面信息量化值 ,可进行分类,例如,数据库类服务、远程连接类服务、HTTP类服务等,不同类型的服务,蕴含价值不同。因此,可以由服务蕴含价值、包含的漏洞及服务利用难度等网络安全知识确定服务攻击面信息量化值 。具体的,可以对不同类型的服务进行服务蕴含价值、包含的漏洞及服务利用难度等数据的统计,根据统计数据推测出不同服务攻击面信息量化值 与服务蕴含价值、包含的漏洞及服务利用难度的对应关系,在实际应用中,根据该对应关系确定服务攻击面信息量化值 即可。
[0047] 具体实施时,将每个待扫描资产的端口划分为多个扫描任务的过程中,可以按照端口顺序依次将端口划分为多个扫描任务所包括的端口集合,因此,扫描任务的顺序与端口顺序一致,即包括排序在前的端口的扫描任务的排序也在前,包括排序在后的端口的扫描任务的排序也在后。
[0048] 具体实施时,上述扫描任务对应的理论风险水平输出值可以是该扫描任务扫描结束时输出的风险水平与同一待扫描资产的所有端口的风险水平的比值,为了实现在受到防火墙限制或到达时间限制前(即不对目标业务造成较大影响),较短的时间内尽可能多地发现资产暴露的攻击面,设置顺序在前的扫描任务对应的理论风险水平输出值大于顺序在后的扫描任务对应的理论风险水平输出值。
[0049] 具体实施时,为了进一步实现在受到防火墙限制或到达时间限制前(即不对目标业务造成较大影响),尽可能多地发现资产暴露的攻击面,在本实施例中,在上述多个队列之外设置一个指定队列,在执行多个队列中的扫描任务的过程中,在完成当前队列中当前的待扫描资产的扫描任务时,当扫描结果的风险水平大于预设风险水平阈值,则将当前的待扫描资产的未扫描的扫描任务移至指定队列中,其中,所述指定队列是多个队列之外的队列;在未触发防火墙或未达到时间限制前,继续执行所述指定队列中当前的待扫描资产的扫描任务。
[0050] 例如,设置的队列为:
[0051]
[0052] 其中, 代表第一个队列中的扫描任务将覆盖 (%)的理论风险水平输出值, 代表第二个队列将覆盖 (%)的剩余理论风险水平, 代表第三个队列将覆盖 (%)的剩余理论风险水平,以此类推。特别地, 指定队列用于存储所有完成任意非扫描队列后资产风险水平超过预设风险水平阈值 的扫描任务。
[0053] 具体实施时,针对某个待扫描资产的端口可以设置队列如下,例如,[0054]
[0055] 其中, 队列中针对该某个待扫描资产的扫描任务包含约100个端口,可覆盖90%的理论风险水平; 队列中针对该某个待扫描资产的扫描任务包含约1000个端口,可覆盖8%的理论风险水平; 队列中针对该某个待扫描资产的扫描任务包含约5000个端口,可覆盖1.6%的理论风险水平; 指定队列包含该某个待扫描资产进入该队列时尚未扫描的所有端口,在未触发防火墙或未达到时间限制前, 指定队列执行剩余端口的全量扫描任务。
[0056] 具体实施时,为了进一步提高扫描效率,在本实施例中,不同队列中的扫描任务由不同的扫描设备并行执行,即每个队列中的扫描任务由一个扫描设备执行,有几个队列就有几个扫描设备,以实现不同队列中的扫描任务并行执行。
[0057] 具体实施时,上述端口扫描方法适用于最少知识条件下的多资产单次扫描场景,能够在仅知晓目标资产IP地址的条件下,在受到防火墙限制或到达时间限制前(即不对目标业务造成较大影响), 尽可能多地发现资产暴露的攻击面。
[0058] 具体实施时,以下详细描述实施上述端口扫描方法的过程,以多个资产扫描为例,为设置4个队列为例,将每个资产的端口划分为3个扫描任务,如图2所示,该过程如下:
[0059] 1.输出资产IP地址并对队列 中资产1的扫描任务包括的端口集合进行扫描,扫描结果保存至数据库,如图3所示,此时只有队列 在执行资产1的扫描任务,其他队列并未执行扫描;
[0060] 2.判断扫描结果的风险水平是否超过预设风险水平阈值 ,若是,则将资产1尚未扫描的扫描任务移至队列 中并执行第6步,并开始对队列 中资产2的扫描任务包括的端口集合进行扫描;若否,则执行下一步操作,并开始对队列 中资产2的扫描任务包括的端口集合进行扫描;
[0061] 3.对队列 中资产1的扫描任务包括的端口集合进行扫描,扫描结果保存至数据库,如图3所示,此时队列 在执行资产2的扫描任务,同时,队列 在执行资产1的扫描任务;
[0062] 4.判断扫描结果风险水平是否超过预设风险水平阈值 , 若是,则将资产1尚未扫描的扫描任务移至队列 中并执行第6步,并开始对队列 中资产2的扫描任务包括的端口集合进行扫描;若否,则执行下一步操作,并开始对队列 中资产2的扫描任务包括的端口集合进行扫描;
[0063] 5.对队列 中资产1的扫描任务包括的端口集合进行扫描,扫描结果保存至数据库,如图3所示,此时队列 在执行资产3的扫描任务,同时,队列 在执行资产2的扫描任务,队列 在执行资产1的扫描任务;
[0064] 6.对队列 中各资产尚未扫描的端口集合进行扫描,扫描结果保存至数据库;
[0065] 7.全量端口扫描完成。
[0066] 在上述流程中,结合图2、图3,若采取现有技术中的顺序资产扫描模式, 1次端口全量扫描任务的时间内共完成4个资产的全部扫描任务(等于执行任务的设备数量),而优化的上述端口扫描方法的资产扫描模式,将在相同时间内完成大量队列的扫描任务,即覆盖这些任务90%的理论风险水平。若任意队列扫描任务结束时发现已触发目标防火墙策略或达到时间限制,导致扫描任务中断,相较于顺序扫描,上述端口扫描方法的扫描结果数据库更有可能保存较多的开放端口信息。
[0067] 在本实施例中,提供了一种计算机设备,如图4所示,包括存储器401、处理器402及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意的端口扫描方法。
[0068] 具体的,该计算机设备可以是计算机终端、服务器或者类似的运算装置。
[0069] 在本实施例中,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述任意的端口扫描方法的计算机程序。
[0070] 具体的,计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机可读存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD‑ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读存储介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0071] 基于同一发明构思,本发明实施例中还提供了一种端口扫描装置,如下面的实施例所述。由于端口扫描装置解决问题的原理与端口扫描方法相似,因此端口扫描装置的实施可以参见端口扫描方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0072] 图5是本发明实施例的端口扫描装置的一种结构框图,如图5所示,该装置包括:
[0073] 任务划分模块501,用于按照多个理论风险水平输出值,将每个待扫描资产的端口划分为多个扫描任务,其中,每个扫描任务包括的端口为满足该扫描任务对应的理论风险水平输出值所需扫描的端口;
[0074] 队列处理模块502,用于将各个待扫描资产的多个扫描任务分别存入多个队列中;
[0075] 扫描模块503,用于针对每个队列,在完成该队列中当前的待扫描资产的扫描任务时,当扫描结果的风险水平小于预设风险水平阈值,则触发执行下一个队列中当前的待扫描资产的扫描任务,并执行该队列中下一个待扫描资产的扫描任务。
[0076] 在一个实施例中,任务划分模块,包括:
[0077] 风险水平确定单元,用于根据端口的开放端口对应服务的概率分布和服务攻击面信息量化值,确定开放端口风险水平;
[0078] 任务划分单元,用于根据端口的端口开放概率和所述开放端口风险水平,确定出达到每个理论风险水平输出值所需扫描的端口的最小集合,将该端口的最小集合划分为一个扫描任务。
[0079] 在一个实施例中,任务划分单元通过以下公式实现确定出达到每个理论风险水平输出值所需扫描的端口的最小集合:
[0080]
[0081] 其中, 为未扫描的端口的集合, 为第 个扫描任务中包含的端口的集合, 为第 个扫描任务对应的理论风险水平输出值, 为开放端口风险水平, 为端口开放概率。
[0082] 在一个实施例中,所述开放端口风险水平是根据端口对应服务的概率分布与服务攻击面信息量化值确定,其中,服务攻击面信息量化值是根据服务蕴含价值、包含的漏洞及服务利用难度确定的。
[0083] 在一个实施例中,通过以下公式根据端口对应服务的概率分布与服务攻击面信息量化值确定所述开放端口风险水平:
[0084]
[0085] 其中, 为开放端口风险水平, 为开放端口对应服务的概率分布, 为服务攻击面信息量化值,为基于 的、以对应 为随机变量的概率分布的期望。
[0086] 在一个实施例中,上述装置还包括:
[0087] 任务处理模块,用于在完成当前队列中当前的待扫描资产的扫描任务时,当扫描结果的风险水平大于预设风险水平阈值,则将当前的待扫描资产的未扫描的扫描任务移至指定队列中,其中,所述指定队列是多个队列之外的队列;
[0088] 扫描模块,还用于在未触发防火墙或未达到时间限制前,执行所述指定队列中当前的待扫描资产的扫描任务。
[0089] 在一个实施例中,扫描模块,还用于将不同队列中的扫描任务由不同的扫描设备并行执行。
[0090] 本发明实施例实现了如下技术效果:通过按照多个理论风险水平输出值,将每个待扫描资产的端口划分为多个扫描任务,顺序在前的扫描任务对应的理论风险水平输出值大于顺序在后的扫描任务对应的理论风险水平输出值,进而将每个待扫描资产的多个扫描任务分别存入多个队列中,最后,分别执行各个队列中的扫描任务即可,针对每个队列,在完成该队列中当前的待扫描资产的扫描任务时,当扫描结果的风险水平小于预设风险水平阈值,则触发执行下一个队列中当前的待扫描资产的扫描任务,并执行该队列中下一个待扫描资产的扫描任务,这样对于同一待扫描资产的多个扫描任务,每个扫描任务扫描结束后均能达到对应的理论风险水平输出值,顺序在前的扫描任务对应的理论风险水平输出值较大,使得理论风险水平更高的端口扫描任务集中在早期扫描阶段,可在较短的时间内发现更多暴露的攻击面信息;同时,在完成当前队列中当前的待扫描资产的扫描任务时,当扫描结果的风险水平小于预设风险水平阈值,则触发执行下一个队列中当前的待扫描资产的扫描任务,与此同时执行当前队列中下一个待扫描资产的扫描任务,使得多个待扫描资产的扫描任务并行执行,进一步有利于在受到防火墙限制或到达时间限制前(即不对目标业务造成较大影响),尽可能多地发现资产暴露的攻击面,因此,无论对于单资产扫描或多资产扫描任务,上述端口扫描方法均可在不对目标业务造成较大影响的前提下,尽可能多地发现资产暴露的攻击面,进而有利于避免错过关键的端口开放信息。
[0091] 显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
[0092] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。