- 1 -
中国科技论文在线
基于预测模型的云漏洞扫描调度算法
贾梦琦,王玉龙**
作者简介:贾梦琦(1989-),女,硕士研究生,主要研究方向:下一代网络、云安全
通信联系人:王玉龙(1977-),男,副教授,主要研究方向:下一代网络、网络攻防、云安全
(北京邮电大学 网络与交换技术国家重点实验室,北京 100876)
5 摘要:企业和个人用户对于自身系统的安全性检测愈加重视,基于云平台提供安全漏洞扫描
服务可以降低用户使用门槛,可扩展的云资源可以更快地响应用户的检测需求。任务调度是
漏洞扫描服务应用于云平台的关键技术。基于云计算的漏洞扫描系统要求调度算法能区别不
同类型用户的扫描请求,按照不同的优先级提供服务。本文使用网络流量预测模型,对扫描
任务进行建模预测,并通过定义评测算子,对扫描任务进行有效调度。保证系统任务吞吐量10
的同时,提供差异化的安全漏扫服务。
关键词:计算机软件;漏洞扫描;预测模型;任务调度
中图分类号:TP311
Cloud network security vulnerability scanning schedule 15
algorithm based on prediction model
Jia Mengqi, Wang Yulong
(University of Posts and Telecommunications, Beijing 100876)
Abstract: The system security scanning has become more and more important to both industrial
and personal users. The security vulnerability scanning service, which is based on cloud platform, 20
can make the service easier to be used and quicker to response, with the help of extensible
resources on the cloud. Task scheduling is the key part of security scanning system deployment on
cloud platform. The schedule algorithm should take users’ different requirements into
consideration. This thesis uses the network traffic prediction model to predict the coming scanning
tasks. To schedule the tasks, we define a valuation factor. This schedule algorithm can support 25
differentiation service, with the throughput capacity guaranteed.
Key words: Computer software; Vulnerability scanning; Prediction model; Task schedule
0 引言
网络安全越来越被重视,而统计数据表明,绝大部分网络安全事件的发生,都是由已被30
业界发现的漏洞所导致的[1]。云漏洞扫描服务可以根据用户指定的 IP 对目标主机进行扫描
检测,判断是否存在已经被发现的安全漏洞。目前传统安全漏洞扫描软件(如 Nessus、
OpenVAS 等)专业性强[2],运维成本高,对大范围网络设备的安全漏洞扫描速度慢。通过
云计算技术,利用云的资源支持漏洞扫描任务的执行,向用户提供漏洞扫描服务可以降低系
统的使用难度。 35
- 2 -
中国科技论文在线
1 云漏洞扫描器的系统结构
图 1 扫描器架构
Fig. 1 Scanner architecture
云漏洞扫描器的系统结构如图 1 所示,包括 Web 交互界面、扫描管理器、扫描器集群40
和漏洞扫描数据库[3]。用户通过 Web 交互界面向扫描管理器下达扫描任务,扫描器对扫描
任务进行类型区分和拆分、缓存,由调度算法计算出调度策略,进而生成扫描执行命令,发
送给扫描器集群执行。扫描器集群将探测结果发送给扫描管理器,并生成扫描报告,展示给
用户。过程中,涉及的漏洞扫描信息将持久化在漏洞扫描数据库中。值得一提的是,作为云
服务的安全漏洞扫描服务需要区分用户类型为时间敏感型或价格敏感型,进而将任务区分为45
优先任务和普通任务。对于时间敏感型用户的优先任务,需要优先分配资源,从而保证系统
的商业价值。
2 任务调度算法
问题描述
对于给定的含有目标 IP 地址和扫描插件的漏洞扫描任务,将该扫描任务合理的分配到50
扫描器集群中的空闲扫描器上[4],并区分任务类型为优先任务或普通任务,充分考虑未来时
间可能到达的优先任务且兼顾公平性,从而最优化地利用扫描器资源,所以使用合适的预测
算法来预测未来时间将要到达的优先任务的数量显得至关重要。
任务流量预测模型
主流预测算法 55
按预测方法的性质,大致上可分为定性预测法、回归预测法和时间序列预测法[5]三类:
定性预测法主要是结合各个因素对事物的发展前景做出判断,并把判断定量化。普遍适用于
对缺乏历史统计资料的事件进行预测。回归预测法要求变量与自变量的线性关系比较强,是
研究变量与变量之间相互关系的一种数理统计方法。时间序列预测法是一种考虑变量随时间
发展变化规律并用该变量以往的统计资料建立数学模型的预测方法。 60
本文需要根据历史任务到达情况,来预测将来短时间内的任务到达数量,属于短时预测
- 3 -
中国科技论文在线
范畴,所以选择时间序列预测法中的指数平滑法[6]对数据进行处理。
指数平滑法预测优先任务流量
把任务到达按照按一定时间粒度进行划分统计,
i
y 代表第 i 个周期任务到达的数量,
1
ˆ
i
y 为第 i+1 周期优先任务流量的预测值,利用指数平滑预测模型,
1
ˆ
i
y 可以表示为: 65
1
(1 )ˆ ˆ
i i i
y y y (1)
可以看出,第 i+1 周期的预测值是 i 期的实际值与 i 期的预测值的加权平均,其中 为修
正常数,一般时间序列越平稳,μ 取值越小;时间序列波动越大,如呈现阶梯式上升或下降,
μ 取值越大,使预测值能够敏感地跟踪实际值的变化[7]。
对(1)式展开递推,即 70
2
1 1 2
(1 ) ... ...(1 ) (1 )ˆ
n
i i i i i n
y y y y y (2)
由于 0< <1,所以 n 很大时,后面的项趋近于 0,所以下一周期的预测值就可以认为是
前面有限期的数值的加权平均,时间数列各项数值越往过去推移,对预测值的影响就越小。
对于任务的指数平滑预测,需要确定最合适的修正参数μ,比如已知 1-100 周期的任务
数量,取 1-50 周期的实际任务数量来进行预测,依次预测第 51-100 周期的任务数,然后把75
预测值和实际值求标准差,使得预测结果和实际结果的方差最小的 μ,就是最合适的修正参
数,标准差的计算公式如下:
2
_
deviation
deviation count
(3)
得到修正系数 μ 之后,就可以通过公式(2)对优先任务流量进行预测,预测过程的流程80
图如图 2 所示:
- 4 -
中国科技论文在线
图 2 预测流程图
Fig. 2 Prediction process diagram
任务调度算法描述及实现 85
任务调度算法的输入有:扫描器负载信息列表、普通任务和优先任务等待队列以及优先
任务流量预测结果。任务调度算法根据输入进行调度,输出调度方案[8]。
扫描器负载检测模块
扫描器负载检测模块的功能是采集扫描器集群上的各个节点的可用资源情况,包括
CPU、内存和网络带宽数据等。基于实验统计数据,得出当前扫描器集群可以运行的任务单90
元个数,即单 IP、单扫描插件的扫描任务的个数。用 M 表示当前时刻可以分配的单位元个
数。
等待队列模块
等待队列模块会接收用户下达的任务命令,将其按照用户类型,时间敏感型用户或价格
敏感型用户,对任务进行分类为优先任务和普通任务。然后按照单 IP 、单扫描插件划分为95
任务单元,分别追加到优先任务队列 _VIP Queue和普通任务队列 _Normal Queue 进行排队缓
存。用 _VIP Len表示优先任务队列 _VIP Queue 的长度,用 _Normal Len表示普通任务队列
_Normal Queue 的长度。任务单元在时间 T 的等待时间用 ( )Wait T 表示,等待时间为当前时
- 5 -
中国科技论文在线
间与任务进入队列的时间 _Arrival Time之差,即 ( ) _ Wait T T Arrival Time 。
服务流量预测模块 100
服务流量预测模块将根据上一节中描述的指数平滑预测算法对优先任务的到达进行预
测。预测的时间窗 _Time Window ,由最近 N 次调度的时间差
it 的平均值确定,即
1_
N
i
iTime Window
N
t
。当调度次数不足 N 次时,则使用全部调度的时间间隔
it 求算术平均
作为时间窗大小,进行预测使用。用 _Pre Len 表示预测下一个时间窗将到达系统的优先任
务单元个数。 105
评测算子
为了判定系统的任务负荷,定义评测算子 来对系统的普通任务及优先任务的等待情况
进行评估。一个合理的调度算法应在提供基于任务类型的差别服务的同时保证调度的公平
性 , 即 不 应 造 成 一 类 任 务 的 饥 饿 。 本 系 统 对 评 测 的 定 义 为
_ _
_1 1( _ _ )
( ) ( )
( )
_ _
VIP Len Normal Len
i i
Normal Leni iVIP Len Pre Len
Wait T Wait T
T
VIP Len Normal Len
,常值参数 1 。评110
测算子实际上是优先任务队列的任务平均等待时间
_
1
( )
_
VIP Len
i
i
Wait T
VIP Len
和普通任务队列的平均等
待时间
_
1
( )
_
Normal Len
i
i
Wait T
Normal Len
的加权值。其中,优先队列的权重为 ( _ _ ) VIP Len Pre Len ,它将随优先
队列的长度增加或预测下一个时间窗将到达的优先任务个数的增加而指数型增长。同理,普
通队列的权重 _ Normal Len 也会随其队列长度的增加而指数型增长。这样做的意义在于,不会
让任何一个队列过分饥饿,当其等待队列过长时,权重将迅速增加。同时,将来可能到达的115
优先任务会提高优先任务被执行的可能。
调度算法描述
基于以上资源调度算法策略,本调度算法的伪代码描述如下:
MAIN_LOOP
扫描器负载检测模块采集判断当前可以执行 M 个扫描任务单元。
如果 M > 0
从等待队列模块获取当前的优先任务等待队列 _VIP Queue 和普通任务队列
_Normal Queue 信息。
若两者均为空队列,则继续主循环逻辑。
若仅有一个队列为空,则顺次分配 M 个扫描单元到扫描器节点上执行。
若两个队列均不为空则需要计算评测算子进行权衡。
WHILE M > 0
用 Next 表示下一个时间窗结束的时间, _ Next Now Time Window。
( ) vNext 表示此刻运行优先队列队首任务则在下一个时间窗结束时的系统
- 6 -
中国科技论文在线
任务平均等待时间,
_ _
_2 1( _ 1 _ )
( )
( ) ( )
_ 1 _
v
VIP Len Normal Len
i i
Normal Leni iVIP Len Pre Len
Next
Wait Next Wait Next
VIP Len Normal Len
类似,可以用 ( ) nNext 表示运行普通任务队列队首任务单元则在下一个时
间窗结束时的评测算子,
_ _
( _ 1)1 2( _ _ )
( )
( ) ( )
_ _ 1
n
VIP Len Normal Len
i i
Normal Leni iVIP Len Pre Len
Next
Wait Next Wait Next
VIP Len Normal Len
比较 ( ) vNext 与 ( ) nNext 的值,取较小的策略作为下一个任务进行分配。
可用资源 M 自减一。
WHILE 循环结束
判断分支结束
MAIN_LOOP 结束
3 实验数据结果 120
为了验证本文提出的基于预测的云漏洞扫描任务调度算法的有效性,作者分别实现了基
于预测模型调度和 FIFO 调度的漏扫系统,通过实验证明本算法的可行性和优势。
实验条件如表 1 所示:
表 1 实验条件表
Tab. 1 Experiment conditions 125
基于预测模型调度 FIFO 调度
服务器部署情况 虚拟机 3 台,每台运行一个扫描器
虚拟机配置 VMware Workstation,内存 1G,CPU 2GHz
优先任务流量比率 设定优先任务流量占总任务流量的比率依次为 0,20%,40%,
60%,80%,100%
扫描任务单元数 设定扫描目标 IP 数为 50,插件数为 2,因此扫描插件任务单
元数为 100
测评算子 的常值参数
实验结果如图 3 所示:
- 7 -
中国科技论文在线
图 3 实验结果对比图
Fig. 3 Experiment results diagram
图 3 中,横坐标表示优先任务流量比率,纵坐标表示评测算子 的平均值,可以看出当130
优先任务流量为 0 或者为 100%时,两种系统实现的评测算子 取值相同,而当优先任务流
量取 0-100%之间的中间值时,基于预测模型调度优于 FIFO 调度。且两者的任务执行总时
间大致相同,说明基于预测模型调度在不牺牲任务执行吞吐率的情况下,进行了任务的差别
服务,有效提升了系统的商用价值。
4 结术语 135
基于预测的云漏洞扫描调度算法,能够实现任务扫描的差别服务,符合云计算按需服务
的要求。通过负载监控能够充分利用空闲资源;预测模块可以预测时间敏感型用户的任务到
达,提高其执行的优先级;合理的设置评测算子,在考虑提升优先任务执行优先级的同时,
兼顾优先任务和普通任务执行的公平性。综上,本调度算法在提高商用价值的同时,未降低
资源的利用率和任务执行的吞吐率。 140
[参考文献] (References)
[1] 王锋锋. 基于云平台的系统漏洞扫描系统的设计与实现[D]. 北京:北京邮电大学,2011.
[2] 徐漫江. 一种主机与网络相结合的漏洞扫描工具的设计与实现[J]. 雷达与对抗,2002(2):65-68.
[3] 陈铁明,蔡家楣,蒋融融. 基于插件的安全漏洞扫描系统设计[J]. 计算机工程与设计,2004,25(2):
194-196. 145
[4] 洪宏,张玉清,胡予濮. 网络安全扫描技术研究[J]. 计算机工程,2004,30(10):54-56.
[5] 王伟. 计算机网络流量模拟与预测模型研究[D]. 天津:南开大学,2004.
[6] AbdelnaserAdas. Traffic models in broadband networks[J]. IEEE Communications Magazine, 1997, 35(7):
82-89.
[7] 高玉潼,潘成胜. 一种网络流量预测算法的研究与实现[D]. 沈阳:沈阳理工大学,2007. 150
[8] 董西成. Hadoop 技术内幕:深入解析 YARN 架构设计与实现原理[M]. 北京:机械工业出版社,2013.