2. 湖南工业大学 计算机学院, 株洲 412007;
3. 河北省眼科医院 信息科, 邢台 054000;
4. 广西民族大学 信息科学与工程学院, 南宁 530006
2. College of Computer, Hunan University of Technology, Zhuzhou 412007, China;
3. Information Section, Hebei Eye Hospital, Xingtai 054000, China;
4. College of Information Science and Engineering, Guangxi University for Nationalities, Nanning 530006, China
网络系统面临不断变化的蠕虫病毒、DDOS、数据库注入、挂马等常规风险, 传统的网络安全设备, 如网络防火墙、应用网关、IDS、IPS等设备, 具有相应的防护及保护能力, 在获取到有危险的攻击时, 需要进行多层处理, 从而导致众多不确定性且存在误报率和漏报率. 据国家互联网应急中心发布的CNCERT互联网安全威胁报告(2016年10月)显示, 当月境内感染网络病毒的终端数量为194万余个, 境内被篡改的网站数量为4524个, 国家信息安全漏洞共享平台(CNVD)收集整理信息系统安全漏洞1284个[1]. 网络安全态势评估技术能综合各方面的因素, 从全局分析并响应网络安全状况, 为网络安全提供可靠的参照依据. 近年来, 针对网络安全态势有大量研究人员进行了详细的实证研究, 设计并实现了大量网络安全态势评估模型或系统.
文献[2]提出一种基于时空维度分析的网络安全态势预测方法, 从攻击方、防护方和网络环境3方面提取网络安全态势评估要素, 从时间维度和空间维度进行网络安全态势预测, 通过对公用数据集网络的测评分析, 该方法符合实际应用环境, 提高了安全态势感知的准确性. 文献[3]提出基于神经网络的网络安全态势感知方法, 设计了一种基于BP神经网络的网络安全态势评估方法, 为了解决要素与结果之间的不确定性及模糊性问题, 提出了基于RBF神经网络的网络安全态势预测方法, 并采用自适应遗传算法对网络参数进行优化. 通过真实网络环境验证了方法的可行性和有效性. 文献[4]提出了集对分析的可信网络安全态势评估与预测方法, 采用基于特征库的方法审计网络连接信息、系统管理信息、系统监控信息和应用服务信息, 结合改进的熵权法和层次分析法提取安全态势指标权重, 并利用集对分析方法对安全态势指标进行评估, 进而绘制网络安全态势图. 仿真实验结果表明, 该方法能够准确有效地反映当前及未来的网络安全态势.
另外, 文献[5]提出了一种基于D-S证据理论的网络安全态势预测方法, 文献[6]提出了一种基于Elman神经网络的网络安全态势预测方法, 文献[7]提出了一种基于Markov博弈模型的网络安全态势感知方法, 文献[8]提出了基于信息融合的网络安全态势评估模型, 文献[9]提出了一种基于知识发现的网络安全态势建模与生成框架, 文献[10]提出了一种实时的网络安全态势预测方法等.
针对小型网络内节点数据的特征, 本文提出基于支持向量机及自适应权重的网络安全态势预测模型, 结合先验知识方法提高分类的准确性, 通过在网络中采集各节点网络数据中的特征量作为样本进行实验与分析, 以验证模型的有效性.
1 支持向量机原理支持向量机(SVM)是一种可训练的机器学习方法, 在解决小样本、非线性和高维模式识别方面具有优势. Vapnik等人在研究统计学理论基础上对线性分类器提出一种设计最佳准则, 从线性可分扩展到线性不可分的情况, 其主要思想有二点[11]:
(1)它采用非线性映射, 将低维空间转换到高维空间从而实现线性可分, 采用核函数方法实现升维.
(2)在特征空间中构建最优分割超平面, 得到全局最优的学习器.
通过非线性映射, 将低维样本特征空间映射到高维特征空间, 这一过程可能会出现维数灾难, SVM利用核函数来解决这一问题, 通常使用的核函数有:
线性核函数:
$Y(a,b) = a \cdot b$ | (1) |
RBF径向基:
$Y(a,b) = \exp (\frac{{ - {{\left| {a - b} \right|}^2}}}{{{d^2}}})$ | (2) |
多项式核函数:
$Y(a,b) = \left[ {\left( {a \cdot b} \right) + 1} \right] \cdot d$ | (3) |
Sigmoid函数:
$Y(a,b) = \tanh (x \cdot (a \cdot b) + y)$ | (4) |
LibSVM由台湾大学林智仁等开发设计的一个SVM模式识别与回归的软件包, 它能通过简单的配置完成分类问题, 拥有Java、Matlab、Ruby、Perl、Python、C、LabView等数十种语言版本[12], 本文将采用LibSVM进行样本特征量值进行训练, 在小型网络中采集网络数据核心数据并进行归整, 获取分类模型并进行验证.
2 基于支持向量机及自适应权重的网络安全态势评估模型 2.1 态势评估等级划分由于网络及其附属设备具有复杂性, 网络中存在大量不确定性的因素, 根据其危害程度可将网络安全评估等级分为四级, 具体级别、安全指数及相关说明如表1所示.
表1中各级别都对应有网络的脆弱性、可控性、可恢复性、容灾等特性等, 这里不再展开阐述.
2.2 样本特征选取 2.2.1 数据项选取
数据项的选取直接影响到实验与分析的效果, 在实验过程中将采用基于Snort的入侵检测系统、防火墙和X-Scan漏洞扫描相结合的环境, 数据项的选取直接从上述三者中获取.
(1) Snort数据项
Snort是一种基于libpcap的多平台、实时的流量分析工具, 能有效记录IP数据包. 其重要的字段有: 动作、协议、源和目标地址、源和目标端口、告警产生时间、告警等级等.
(2) 防火墙数据项
防火墙可以记录内外网络之间的网络通信, 有效保护内部网络不受侵害. 可以获取的重要字段有: 产生时间、源和目的地址、源和目的端口、协议类型、持续时间、发送字节、接收字节、操作行为等.
(3) X-Scan数据项
X-Scan主要进行漏洞风险扫描并进行等级评估. 通过在内部进行指定IP范围的扫描可以获取以下信息: 操作系统类型与版本、端口状态、端口BANNER、CGI漏洞、IIS漏洞、RPC漏洞及各类服务器弱口令等.
2.2.2 指标项网络数据复杂多样, 不同的指标项对实验结果将产生一些偏差, 本文在数据项选取的基础上再增加以下指标:
(1) 连续告警时间: 设t时刻网络设备捕捉到告警信息, 并在未来t+n时刻内连续告警时间, 连续告警时间IP_n为:
$IP\_n = \sum\limits_{i = 1}^n {D_i^s \cup D_i^f \cup } D_i^x$ | (5) |
其中, n为连续的时间间隔,
(2) 端口危险程度: 设在固定时间段s内, 各项监测数据中捕捉到的危险项端口序列为D={D1, D2, D3,…, Dn}, 在s内端口序列中各端口受功击的值为P={P1, P2, P3,…, Pn}.
${P_n} = \sum\limits_{i = 1}^m {{D_n}\left| {{W_i}} \right.} $ | (6) |
其中, m为捕捉到的网络数据量, Wi为当前网络数据中Dn端口危险级别为非安全.
(3) 漏洞危险识别指数: 设在固定时间段s内, 各项监测数据中捕捉的对漏洞序列L={L1, L2, L3,…, Ln}, 在s内漏洞序列中各漏洞受功击的值为T={T1, T2, T3,…, Tn}.
${T_n} = \sum\limits_{i = 1}^m {{L_n}\left| {{W_i}} \right.} $ | (7) |
其中, m为捕捉到的网络数据量, Wi为当前网络数据中Ln漏洞危险级别为非安全.
2.2.3 数据归一化为了使数据项和指标值符合支持向量机的参数要求, 通过统一的方式进行数据归一化, 使其范围在[0, 1]范围内, 根据本文实际需要, 数据项和指标值的归一化公式如下:
$F(i) = \left\{ {\begin{array}{*{20}{c}}{\displaystyle\frac{{{D_i}}}{{100}}}\\1\end{array}\begin{array}{*{20}{c}},\\,\end{array}\begin{array}{*{20}{c}}{{D_i} < 100}\\{{D_i} \ge 100}\end{array}} \right.$ | (8) |
其中, F(i)为归一化后的指标值, Di为当前指标值.
2.3 自适应权重策略支持向量机较好的支持两类问题的分类, 本文通过将数据项和指标值输入预测模型, 得到的结果为安全和危险, 还不能较好深入区分当前网络的安全态势. 在安全和危险的结果之上, 根据表1设计自适应权重策略方法进行深入的安全态势细分.
根据表1的安全态势等级划分, 将安全指数0.0–0.2之间归为相对安全, 0.2–0.5为轻度危险, 0.5–0.8为中度危险, 0.8–1.0为高度危险, 利用IP_n、Pn、Tn的归一值按不同权重策略进行划分, 初始权重分配依次为: 40%、30%、30%. 权重策略计算结果D=IP_n*0.4+Pn*0.3+Tn*0.3.
在实验过程中通过手动截取的数据, 根据实际网络数据不断优化权重值, 使态势评估结果与实际结果接近. 最终的网络安全态势评估结果判定如表2所示.
2.4 模型工作流程
模型工作流程图如图1所示.
3 实验与分析 3.1 实验环境
根据本文提出的网络安全态势评估模型, 搭建的实验环境如图2所示.
通过在网络内部署监测工具, 同时通过以下攻击方式使监测工具能获取到相应的网络数据:
(1) PC1上传带有病毒的文件到FTP Server.
(2) PC1对Web Server进行数据库注入攻击.
(3) PC2对PC5发送大容量数据包.
(4) PC2嗅探服务器上的漏洞.
(5) PC1扫描内网中存在的弱口令.
(6) PC2扫描内网Server和PC3、PC4、PC5上开放的端口.
通过在真实的网络环境中采集2.2节中所涉及的数据项和指标值, 为网络安全态势评估提供可靠的数据源.
3.2 预测模型获取预测模型是将获取的已知分类数据进行训练, 获取相应的预测模型文件. 通过前期的网络数据采集, 共采集到样本数据2200条, 将其以Libsvm支持的格式进行存储, 部分样本数据如图3所示.
图4中的数据是进行了归一化后的采集到的网络数据值, 通过Libsvm提供的Svmtrain进行训练, 获取预测模型文件.
3.3 实验预测利用获取的预测模型文件和当前获取的数据项和指标项进行网络安全态势预测, 结合 自适应权重策略进行深入分类, 在固定时间1 min内采集到的网络数据开展预测. 选取参与预测的10条记录, 其评估结果如表3所示.
经过与人工验证样本数据的结果对比, 上述10条记录中有2条与结果存在出入, 在调整权重值为42%、25%、33%之后, 记录中有1条与结果存在出入.
根据测试数据的实际预测值和期望值进行对比, 如图4所示.
实验结果表明, 利用支持向量机和自适应权重策略的网络安全态势评估模型在小型局域网内对网络安全的预测能进行有效的预测, 期望值与预测值结果比较接近, 能实时对小型局域网络安全进行有效评估与监控.
4 结论本文构建了一个基于支持向量机和自适应权重策略的网络安全态势评估模型, 通过设计网络数据特征项和指标值, 利用Libsvm和自适应权重策略对采集的样本进行训练, 并采集了部分网络数据进行预测分析.
网络态势评估模型设计过程中需要人工干预、分析、整理相关网络数据开展模型训练, 然后实时采集网络中的数据并提取相应的指标值进行评估, 给出评估结果, 为网络管理人员提供了网络安全管理参考. 本实验由于受样本数据量和网络环境的限制, 互联网中存在的网络攻击方式层出不穷, 未来还需要对攻击方式、指标项、预测方法进行深入的分析, 改进计算算法, 实现对网络安全态势更有效的评估.
[1] |
国家互联网应急中心. CNCERT互联网安全威胁报告(2016年10月). http://www.cert.org.cn/publish/main/upload/File/2016monthly10.pdf. [2016-10/2016-12-26].
|
[2] |
刘玉岭, 冯登国, 连一峰, 等. 基于时空维度分析的网络安全态势预测方法. 计算机研究与发展, 2014, 51(8): 1681-1694. DOI:10.7544/issn1000-1239.2014.20121050 |
[3] |
谢丽霞, 王亚超, 于巾博. 基于神经网络的网络安全态势感知. 清华大学学报(自然科学版), 2013, 53(12): 1750-1760. |
[4] |
吴琨, 白中英. 集对分析的可信网络安全态势评估与预测. 哈尔滨工业大学学报, 2012, 44(3): 112-118. DOI:10.11918/j.issn.0367-6234.2012.03.022 |
[5] |
石波, 谢小权. 基于D-S证据理论的网络安全态势预测方法研究. 计算机工程与设计, 2013, 34(3): 821-825. |
[6] |
尤马彦, 凌捷, 郝彦军. 基于Elman神经网络的网络安全态势预测方法. 计算机科学, 2012, 39(6): 61-63, 76. |
[7] |
张勇, 谭小彬, 崔孝林, 等. 基于Markov博弈模型的网络安全态势感知方法. 软件学报, 2011, 22(3): 495-508. |
[8] |
韦勇, 连一峰, 冯登国. 基于信息融合的网络安全态势评估模型. 计算机研究与发展, 2009, 46(3): 353-362. |
[9] |
王春雷, 方兰, 王东霞, 等. 基于知识发现的网络安全态势感知系统. 计算机科学, 2012, 39(7): 11-17, 24. |
[10] |
黄同庆, 庄毅. 一种实时网络安全态势预测方法. 小型微型计算机系统, 2014, 35(2): 303-306. |
[11] |
胡柳. 基于SVM的不良图片过滤研究与系统实现[硕士学位论文]. 株洲: 湖南工业大学, 2013.
|
[12] |
Chang CC, Lin CJ. LIBSVM-a library for support vector machines. http://www.csie.ntu.edu.tw/~cjlin/libsvm. [2016-12-22/2017-01-03].
|