APP下载

面向时延优化的级联漏洞扫描引擎部署策略

2023-03-16谷允捷吴长禾吕天航宋晓斌闫吉宇

计算机工程 2023年3期
关键词:局域级联引擎

谷允捷,吴长禾,吴 庆,张 伟,吕天航,胡 琪,宋晓斌,闫吉宇

(1.中共人民解放军61660 部队,北京 100084;2.国家数字交换系统工程技术研究中心,郑州 450002)

0 概述

网络技术的迅猛发展加快了工商业信息化速度,但也导致了愈演愈烈的网络安全问题。CVE Details[1]发布的数据显示,自2017 年以来安全漏洞发布数量每年呈明显增长趋势,2021 年首次突破20 000,达到20 141 个,其中5.8%的漏洞CVSS 评分超过了9.0,给计算机系统及互联网用户安全带来极大威胁。由于用户或管理员疏于及时保持软件系统的维护与更新,导致安全隐患直接暴露给攻击者,对数据隐私、系统安全构成严重威胁[2]。漏洞扫描(简称漏扫)技术[3-4]是一种通过远程探测目标终端发现系统缺陷与安全隐患的安防手段,为用户及时发现并处置系统漏洞提供了有效保障。随着网络规模和漏洞种类的不断增加,集中式漏扫引擎控制节点的性能成为信息处理瓶颈[5],由于无法在复杂网络规模下实现有效扩展,导致部分失去安全评估的终端成为易受攻击的目标。为解决上述问题,业界相继采用逻辑上集中、物理上分布的级联漏扫引擎部署方案。级联漏扫引擎不仅具备覆盖网络节点范围更广、可伸缩性更强的特点,而且极大节省了网络带宽资源[6],在应对复杂网络结构下的网络安全问题上发挥了巨大作用。

尽管级联漏扫方案解决了复杂网络规模下漏扫引擎的可扩展性问题,但在实际网络环境中,网络时延降低了级联漏扫任务的执行效率[3,7]。在执行远程漏扫的过程中,局域扫描引擎需要向其管辖的目标终端发送大量探测报文,并通过响应报文确定漏扫结果,因此局域扫描引擎与目标终端通信时延将直接影响扫描效率;同时,因为局域漏扫引擎需要在中心控制引擎领取漏扫任务,并将扫描结果回传至中心控制引擎数据库中,所以控制引擎与漏扫引擎之间的时延也应予以兼顾。

级联漏扫引擎部署问题是网络安全研究领域的重要话题,近年来国内外相关研究保持着持续的热度。文献[8]提出一种分布式入侵检测与阻断系统(Intrusion Detection System,IDS)[9-10]部署算法,综合考虑流量、路由策略以及各类资源约束,通过线性规划计算每个分布式节点的任务以实现系统负载均衡,文献[11]设计一种基于智能调度算法实现负载均衡的分布式漏洞扫描系统,能够依据扫描引擎消耗的系统资源进行任务调度,但是相对于IDS 而言,漏扫引擎不需对大量的镜像流量进行分析,因此负载均衡并不是影响扫描效率的重要影响因素[12-13]。文献[14]在大规模网络环境下基于贪婪算法提出一种引擎部署算法,对减少引擎数量以及链路带宽占用率有较好效果,但没有考虑链路时延对探测报文的影响。文献[15-17]注重网络中局域控制节点与目标终端之间的平均时延或累计时延,提出两种面向时延优化的部署算法,但算法缺乏对中心控制引擎与局域扫描引擎之间时延开销的考虑。

现有的引擎部署策略能够实现局域扫描引擎的负载均衡,但随着计算机处理性能与并发能力的提升,通用服务器已经能够满足分布式漏扫的负载[18-20],部分文献考虑了通信时延对分布式漏扫引擎工作效率的影响,但没有考虑中心控制引擎、局域扫描引擎以及目标终端三者之间的级联特性,算法容易陷入局部最优。

针对上述研究中存在的问题,本文提出一种面向时延优化的级联漏洞扫描引擎部署策略,通过建立级联引擎部署数学模型,将真实网络环境抽象为承载终端设备或漏扫引擎的底层网络拓扑,综合考虑“中心控制引擎”“局域漏扫引擎”“目标终端”在底层网络中受到节点承载能力、链接归属关系等条件的约束,将级联漏扫引擎系统的网络时延归纳为扫描时延与回传时延两个部分,提出级联漏扫引擎部署时延优化目标。此外,将级联漏扫系统时延优化问题转化为求解系统自由能函数最小值问题,并基于确定性退火算法求解。

1 模型建立

级联漏扫方案的工作原理如图1 所示。本节对级联漏洞扫描引擎系统各元素进行定义与阐述,建立数学模型,确定面向时延的优化目标。

图1 级联漏扫引擎及其部署Fig.1 Cascade vulnerability scanning engine and its deployment

1.1 系统模型

1.1.1 底层网络

1.1.2 部署关系

1.1.3 网络时延

在级联漏扫引擎环境下,局域扫描引擎的扫描范围需要覆盖所辖范围内全部目标终端设备,根据底层网络以及级联漏扫引擎与终端之间的部署关系,局部扫描引擎与目标终端之间的时延α可表示为式(1)所示:

所有局部扫描引擎均从中心控制引擎获取扫描任务并将扫描数据进行回传,因此中心控制引擎与局部扫描引擎之间的时延β可表示如下:

1.2 优化目标

综合考虑中心控制引擎、局部扫描引擎与目标终端之间的通信时延对漏扫效率的影响,面向时延的优化目标可表示为,其中参数γ>0 用于衡量α与β两种时延之间的重要程度,N=Card(N)用于权衡底层网络规模影响,同时应满足式(4)~式(9)的约束关系。

其中:式(4)表示任意目标终端有且仅有一个局域漏扫引擎对应管辖;式(5)表示建模过程中节点m,n之间的时延等价于两者之间的欧氏距离;式(6)表示有且仅有一个中心控制引擎;式(7)表示局域扫描引擎数量不多于能承载扫描引擎的节点集合基数,且不多于局域漏扫引擎数量上限;式(8)约束了一个目标终端只能位于一个节点,一个扫描引擎仅能部署在一个节点上;式(9)=1 表示所有局域漏扫引擎均与中心控制引擎链接且受其管辖。

2 算法设计

分布式漏扫引擎部署过程与基于软件定义网络的控制器部署过程类似。在级联漏扫探针系统中,局域漏扫引擎需要覆盖所有目标终端。同样地,在SDN 环境下,多个控制器需要与网络拓扑中所有交换机建立映射关系。此类多域规划问题可归约为典型的设施选址问题[22],是运筹学中经典的问题之一。随着问题规模N的增加,无法在多项式的时间复杂度O(Nk)内寻求最优的控制器数量以及部署位置[16]。由于级联漏扫引擎部署问题包含局域漏扫引擎部署问题,同样可规约为设施选址问题,因此也是NP 难问题(NP-hard problem)。为降低问题求解复杂度,确保任意目标终端均有漏扫引擎管辖,同时降低级联漏扫引擎通信时延以提升全网漏扫效率,本文在级联引擎部署数学模型的基础上,设计了一种启发式级联协同部署算法(Cascade Coordinate Deployment Algorithm,CCDA)。首先构造合适的级联系统能量函数,将面向时延优化的级联引擎部署问题转化为级联系统自由能函数最小值问题,在此基础上,基于确定性退火思想设计的级联协同部署算法进行求解,避免求解过程陷入局部极小值,实现级联引擎部署策略全局快速寻优。

2.1 级联系统能量函数的构建

确定性退火算法利用统计物理的退火过程,将求解优化问题的最优解转化为求一系列随温度变化而变化的物理系统自由能函数的最小值问题[23]。对于级联引擎系统,可以基于上述退火过程将求解面向时延优化的引擎部署问题视为级联系统能量期望函数最小值问题。设=1,∀n∈N,即底层网络任意一点至少具备承载目标终端的能力。定义级联系统能量期望函数如下所示:

根据式(9)可知所有局域漏扫引擎均与中心控制引擎链接,因此级联系统能量期望可表示为:

结合式(13),可得式(3)与如下式(14)等价。

2.2 级联协同部署算法

依据自由能减小定律,温度不变的封闭系统状态总是朝着自由能减小的方向转换,当自由能最小时达到系统平衡态。当级联系统能量期望函数确定时,需要定义级联系统的自由能函数F(δ,T)。为确保级联协同部署算法的收敛性,F(δ,T)至少需要满足确定性退火技术的两项条件:当系统温度T→∞时,F(δ,T)关于δ的全局极小值易求出;当T=0 时,F(δ,T)=E(δ)。参考文献[24],系统自由能函数可定义为:

其中H为级联系统的系统熵,可表示为式(16)所示:

将式(19)代入式(18)即可求解υm及υm*。

结合确定性退火算法进行迭代寻优,级联协同部署算法可总结为算法1。

算法1级联协同部署算法

2.3 算法复杂度分析

级联协同部署算法的复杂度取决于4 个因素:

1)终端节点分布χn以及漏扫引擎分布υm,其中n∈{1,2,…,N},m∈{1,2,…,c};

2)中心控制节点与局域控制节点之间的欧式距离计算;

3)针对联合概率p(υm|χn)的求解过程;

4)确定性退火算法迭代次数τ。

综上可得级联协同部署算法的复杂度为O(NCτ)+O(C2τ)+O((N+C)τ),由于C<,且有⊆N,则当网络具有一定规模时,算法复杂度为O(NCτ)。

3 仿真分析

本文在实验中首先分析级联协同部署算法的有效性,然后分析各项指标对级联协同部署算法的影响,最后与Greedy 算法[25]、K-means 算法[26]进行对比分析。仿真实验平台为Inter Core i7-9750,2.6 GHz CPU,16 GB 内存,Linux 系统个人电脑,采用python语言搭建仿真环境并对实验结果进行对比分析。实验使用两种网络拓扑结构数据集,分别是服从高斯分布的随机网络拓扑、来自Pajek[27]与Stanford 大学[28]的网络拓扑数据集。其中随机网络拓扑的规模为N,高斯集群数量为K。

3.1 级联协同部署算法的有效性验证

本实验主要验证级联协同部署算法的有效性,实验使用服从高斯混合分布的随机网络拓扑,该拓朴使用python 脚本生成,网络规模N=80,代表可承载目标终端和漏扫引擎的底层网络节点,集群数量K=4,且γ=0.1,用于协调时延α与时延β。当==1,∀n∈N时,任意节点具备部署目标终端以及探针引擎的能力。依据级联协同部署算法,首先构建满足收敛条件的自由能函数F,并由υm0=初始化局域漏扫探针初始分布,然后进入确定性退火算法循环过程,通过贝叶斯分布求解联合概率p(υm|χn),并结合式(17)和式(18)对局域漏扫分布结果进行迭代寻优,同时以系数ω降低系统当前温度T。当系统温度小于初始设定的最小温度Tmin时停止迭代,输出漏扫引擎分布结果υm。

图2 展示了不同迭代次数下局域漏扫引擎与中心控制引擎对应的部署位置,以及局域漏扫引擎覆盖的目标终端集群。可见随着迭代次数的增加,局域漏扫引擎的数量,部署位置,以及管辖目标终端集群均在不断变化。当迭代15 次时,局域漏扫引擎的部署数量为3,而当迭代32 次时,局域漏扫引擎的部署数量为6,局域漏扫引擎与目标终端之间的映射关系变化较大,中心控制引擎的部署位置也随局域漏扫引擎的部署变化而发生改变。产生这一现象的原因是当前系统温度处于较高水平,部署状态变化较为剧烈,该特性有效避免了求解过程陷入局部最优。中心控制引擎的部署位置也在变化,但总体位于多个局域漏扫引擎之间,且数量始终为一。当迭代55 次以上时,局域漏扫引擎的部署位置及其管辖终端范围逐渐趋于稳定。受参数γ取值的影响,局域漏扫引擎位于目标终端集群中较靠近中心控制引擎的一侧。

图2 退火过程中部署策略的变化Fig.2 Change of deployment strategy during annealing

3.2 各参数对级联协同部署算法的影响

本实验分别改变网络规模N、参数γ的值来对比求解效果,从而分析各项指标对级联协同部署算法的影响。首先分析当网络规模N确定的情况下,改变衡量时延权重的参数γ对算法求解的影响。实验使用规模N=2 000,集群数量K=5 的高斯混合分布网络,γ分别取值0.05,0.10,0.15,0.40 进行求解,实验过程中改变了网络规模、集群数量以及参数γ的取值,其余求解步骤与实验1 相同,效果如图3 所示。可见随着γ的变化,局域漏扫引擎的部署将会受到直接影响,当γ逐渐增加时,局域漏扫引擎逐渐向中心控制引擎靠拢,且局域漏扫引擎的管辖范围逐渐呈现向中心控制引擎扩张的趋势。造成这一现象的原因是随着γ的增加,局域漏扫引擎与中心控制引擎之间的通信时延在优化目标中的权重占比增加,为了减小全局时延优化目标,级联协同部署算法将尽可能减少中心控制引擎与局域漏扫引擎之间的距离,从而降低扫描结果回传的通信时延。由图3(d)可知,当γ取值较大时,将会以减少局域漏扫引擎数量的方式降低引擎之间的通信时延。

图3 参数γ 对算法求解的影响Fig.3 Influence of parameter γ on algorithm solution

分析网络规模N发生改变时对算法求解产生的影响。实验使用来自Pajek 与Stanford 大学的网络拓扑数据集,N取值分别为124,234,311,451,581。在γ取不同值的情况下分别采用级联协同部署算法进行求解,可得级联系统自由能(代表时延优化目标)随网络规模N以及参数γ的变化效果,结果如图4所示。

图4 级联系统自由能的变化Fig.4 Change of free energy of cascade system

由图4 可知,随着γ的增加,级联系统自由能函数趋于平稳,代表时延优化效果趋于平稳。原因在于γ增加会导致局域漏扫引擎部署时向中心控制引擎靠拢,当距离较近时级联引擎之间的通信时延已经不再是影响优化目标的主要因素。同时可以观察到随着网络规模的增加,自由能函数趋于平稳时对应的γ是逐渐后移的,导致该现象的原因是当网络规模较大时,级联引擎具备更宽裕的距离分布调整空间。

3.3 CDA 算法的级联引擎部署时延优化性能验证

为验证CCDA 算法的级联引擎部署时延优化性能,将K-means 部署算法[26]及Greedy 算法[25]与本文算法进行对比分析。其中K-means 算法依据平均距离原则对目标终端进行聚类,将聚类中心作为漏扫引擎节点;Greedy 算法基于分级处理思想,首先以局部扫描引擎与目标终端之间的时延为优化目标,决策局域漏扫引擎的部署,然后以级联引擎之间的时延为优化目标决策中心控制引擎的部署。实验使用网络规模为100~1 000、集群数量K=6 的高斯混合分布网络,γ取值0.05,实验结果如图5 所示。由图5可知,随着网络规模的增加,3 种算法的级联系统自由能(代表时延)均会增加,相同网络规模下,使用K-means 部署算法所得的时延最大,这是因为该算法在规划过程中仅依据目标终端平均距离原则进行聚类,对局域漏扫引擎所管辖的目标终端数量缺乏规划。Greedy 算法在网络规模较小的情况与K-means部署算法相比存在优势,但随着网络规模增长,时延优化效果与CCDA 算法差距逐渐增大。这是因为Greedy 算法将两部分时延优化目标分离并逐步寻求最优,导致局域漏扫引擎的部署策略仅取决于目标终端,算法容易陷入局部最优,因此当网络规模增大时,级联引擎之间的通信时延难以得到优化。相比之下,基于CCDA 算法的时延开销相对Greedy 与K-means 部署算法平均降低16.2%与33.7%。

图5 不同算法的时延优化性能对比Fig.5 Performance comparison of delay optimization of different algorithms

4 结束语

本文针对现有级联漏扫引擎部署研究中未考虑通信时延,导致扫描效率有待提高的问题,提出一种面向时延优化的级联漏扫引擎部署策略。通过构造级联系统能量函数,将面向时延优化的级联引擎部署问题转化为系统自由能函数最小值问题,并设计算法实现部署策略快速寻优。实验结果表明,该算法有效降低了级联引擎的通信时延,验证了其在处理复杂网络环境下级联漏扫引擎部署的有效性与优越性。由于大规模复杂网络环境下存在大量防火墙[29]、入侵检测等网络安全设备,导致网络通联情况受到访问控制的限制,影响局域漏扫引擎的部署,因此下一步将考虑访问控制的因素,研究在访问策略影响下的级联漏扫引擎部署问题。

猜你喜欢

局域级联引擎
蓝谷: “涉蓝”新引擎
级联LDPC码的STBC-OFDM系统
基于级联MUSIC的面阵中的二维DOA估计算法
PET成像的高分辨率快速局域重建算法的建立
无形的引擎
尼日利亚局域光伏发电的经济性研究
基于局域波法和LSSVM的短期负荷预测
基于Cocos2d引擎的PuzzleGame开发
基于非正交变换的局域波束空时自适应处理
LCL滤波器在6kV级联STATCOM中的应用