郑忠斌,黎 聪,王朝栋
(1.工业互联网创新中心(上海)有限公司,上海 201303;2.同济大学,上海 200092)
随着互联网基础设施的飞速发展和新应用的不断涌现,网络在规模和拓扑上都日趋扩大化、复杂化,各种层出不穷、更新换代的网络攻击给安全管理者带来了巨大的挑战。在诸多网络攻击手段中,拒绝服务攻击作为历史最为久远、造成资产损失最为严重的攻击手段之一,始终是政企以及军方网络安全管理人员重点防范的对象。自1999年第一次分布式拒绝服务攻击(Distributed Denial of Service,DDoS)出现以来,DDoS攻击经历了探索期、组织攻击期、国家网络战期几个阶段,直至今天已成为高度普及化、成熟化、组织化的攻击方式。从2008年至今,智能联网终端设备的全面普及产生的大量的僵尸网络更是为不法分子开展DDoS攻击提供了便利。2018年3月出现的MemcacheUDP以TB级的带宽攻击了Github,引发了网络安全从业者的警惕,意味着目前的DDoS攻击制造出TB乃至PB级的攻击已不是难事。鉴于目前的服务器的带宽压力承载量大多不足以应对此种级别的攻击,一次精心预谋的DDoS攻击将不仅会造成网络资产损失,也会造成企业乃至国家政府机构的职能瘫痪,产生的后果难以估量。
另一方面,日益臃肿的网络架构催生了新型网络结构“软件定义网络” (Software Defined Network,SDN)的广泛应用。SDN将发包过程和路由过程分隔在数据层(Data Plane)和控制层(Control Plane),并通过南北向接口为开发者提供了良好的可编程性。其目的是为了简化日益复杂的网络软硬件结构模式,并降低传统网络的控制与全局部署的难度,从而解决传统网络的拓扑复杂、去中心化和难以定位故障的缺陷。
然而这并不意味着SDN与传统的TCP五层模型相比就具有更好的安全性,由于转发机制的不同,许多应用于传统网络架构的较为成熟的安全管理手段并不能直接套用于SDN网络。在目前SDN大规模商业部署的背景下,针对SDN网络安全管理技术的研究意义重大。SDN的安全管理者需要运用有效的安全管理手段,对安全威胁和发生的攻击做出及时、精确、有效的响应与决策。从现有的安全管理手段上看,脆弱性检测技术、恶意代码检测技术、入侵检测技术都试图从不同的角度发现、理解并向管理员报告网络中可能存在的安全问题。尽管这些方法各有所长,但是从实时全面地应对威胁的角度上看,均不能充分地满足系统管理员全方位、直观化的需求。
相较上述的几种安全管理技术,网络安全态势感知技术独特的优势使之能同时有效地用于传统网络或SDN网络:相较于单传感器和单数据源的IDS,一个合格的网络态势感知系统能将不同安全传感器(如IDS、交换机日志、系统日志、原始流量数据收集器等)中收集到的异质信息进行融合,网络中的安全要素知识进行综合的分析,以合理的指标评估网络安全状况或者对未来的状况做出预测,并以可视化的方式将网络全局的安全状况展现给管理人员,使其能够采取有效的应对措施对安全问题进行及时响应[1-3]。因此本文选择了网络安全态势感知技术作为SDN网络中拒绝服务攻击的解决方案。
本文研究了应用于网络安全态势感知相关算法,实现了一个基于JDL数据融合的网络安全态势感知模型,并应用于SDN网络中对拒绝服务攻击(Denial of Service, DoS)的感知和评估。
(1) 研究了几种网络安全态势感知系统的功能模型与算法,比较了其中的数据融合与态势评估算法、态势预测算法的理论适用场景。
(2) 基于(1),针对态势感知模型中的核心模块数据融合和态势评估部分,选择了SVM向量机作为主要训练算法,贝叶斯方法作为融合方法,层次化量化评估作为评估方法,基于SDN网络中的模拟攻击场景设计并实现了一个基于多传感器融合的网络安全态势感知模型。实验结果显示与单纯使用IDS的方法相比融合决策的性能有所提升,且输出的态势值具有一定的准确度,较吻合安全管理人员直观评估的结果。
本文首先介绍了相关工作已有的研究成果;然后阐述了与本文设计方法直接相关的背景知识;接着详细描述了具体的SDN受到DDoS攻击这一场景下产生训练数据集,实现数据融合与态势评估的实验设计思路,具体配置与实验流程以及结果分析;最后阐述了实验设计的结论。
盖伟麟[4]等对态势感知中的数据融合和决策方法作了综述,给出用于态势感知的算法分类和决策方式分类。赵耀南[5]介绍了针对网络流量数据优化的自离散化算法与常见的连续值离散化算法。刘效武等[6-7]提出了“融合引擎”的概念并使用支持向量机作为融合引擎,引入了态势评估符合度的指标来表征评估的态势值与实际态势值的符合程度。李志东[8]针对多源数据融合存储开销较高的问题,提出了基于统计空间映射的多源告警融合决策模型。Wang Huiqiang[9]等使用了一个多层前馈神经网络,对Snort和NetFlow收集到的真实流量数据进行融合。在特征约简方面使用了较为简单快速的方法。在态势评估采用了权值因子分布的预警聚合算法来计算态势值。
诸葛建伟等[10]详述了D-S证据理论应用于网络异常检查的方法,并主要针对DDoS攻击在保证较低误报率的前提下,达到了较高的检测率。陈秀真等[11]基于IDS的报警信息,结合主机的重要性和网络的组织结构,对服务和主机的重要性进行加权和计算,建立了层次化安全威胁态势量化评估模型。吴建台等[12]基于决策级的威胁等级观测值,在态势评估上使用隐马尔可夫模型(Hidden Markov Model,HMM)通过状态估计实现。周长建[13]在网络安全态势感知建模中将深度神经网络和BP神经网络作了比较,在态势评估方面使用了RBM的期望作为态势值。其实验结果表明深度学习相较BP神经网络有较大的优越性。
张勇[14]指出了在SDN网络中基于流表特征的DDoS特征的攻击检测技术的不足,采用主成分分析压缩特征。张玉杰[15]指出SDN网络的核心机制,设计了结合自相似现象和OpenFlow协议的流量异常检测模型。李传煌[16]等针对SDN安全中的DDoS攻击问题进行研究,提出了基于深度学习混合模型的检测方法。李可[17]针对SDN网络脆弱性扩散和抑制策略的问题,使用了基于Bio-PEPA的形式化模型。
网络安全态势感知(Network Security Situational Awareness,NSSA)技术最早来自于军事对抗中对信息融合领域的研究。进入21世纪之后,态势感知从理论到应用的速率进一步加快,在不到20年的时间内NSSA系统已经被广泛用于工控系统、政企系统、军事系统等各个方面。而2006年后神经网络算法等机器学习算法研究的突破更是推动了更多对NSSA算法的研究,极大地提高了NSSA系统的性能与实用性。作为一个方兴未艾的安全领域,网络安全态势感知有着巨大的潜力和光明的应用前景。
网络安全态势感知模型一般包括:假设与推理RPD模型、循环对抗OODA模型和数据融合JDL模型等。目前基于JDL模型多源数据融合的层次选择是较为成熟的方式,也是本文在第2节中选择的模型,如图1所示。
图1 JDL基本模型
JDL(Joint Directors of Laboratories)模型是信息融合系统中的一种信息处理方式,由美国数据融合联合指挥实验室提出。JDL模型将来自不同数据源的数据和信息进行综合分析,根据它们之间的相互关系,进行目标识别、身份估计、态势评估和威胁评估,融合过程会通过不断地精炼评估结果来提高评估的准确性。在网络安全态势感知中,面对来自内外部大量的安全数据,通过JDL模型进行数据的融合分析,能够实现对分析目标的感知、理解与影响评估,为后续的预测提供重要的分析基础和支撑。
2.2.1 SDN简介
面对层出不穷的新网络需求导致的传统网络体系结构臃肿,而网络管理者需要具备更多可编程能力的网络的问题,2006年斯坦福大学的The McKeown Group团队提出了SDN。SDN是一种逻辑集中控制的新网络架构,其关键属性包括:数据平面和控制平面分离;控制平面和数据平面之间有统一的开放接口OpenFlow等。
2.2.2 OpenFlow协议
OpenFlow协议的核心是将数据平面的数据转发抽象成为流表信息,作为和通过南向接口通信的标准。2012年,SDN的三层结构正式成为技术标准。OVS是支持OpenFlow协议的交换机,在远程控制器的管控下工作,并将网络信息通过南向接口反馈给控制器,如图2所示。
2.2.3 SDN安全
SDN网络所固有的安全性是多层次多方面的,主要集中于控制层和应用层,主要安全性问题如表1所示。
表1 SDN安全问题
DoS通常指攻击者通过某种手段,有意地造成计算机或网络不能正常运转,从而不能向合法用户提供所需服务或者使服务质量降低。而如果处于不同位置的多个攻击者同时向一个或多个目标发起拒绝服务攻击,或者一个或多个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施DoS,这种DoS则成为了更为常见、危害更大的DDoS,又称带宽攻击或风暴型DoS攻击。
图2 Openflow协议
DDoS可分为直接风暴型和间接风暴型两种。本文实验中采取的DoS攻击方式是直接型的[19]。
如前所述,多传感器数据融合是针对一个系统中使用多个(同质)以及多种传感器这一而提出的处理方法,目的是基于各个独立传感器的观测数据,运用数据融合算法导出更为精准的有效信息,获得最佳的协同效果,并一定程度上消除单传感器的局限性与不可靠性。基于相关工作和模拟环境的综合考量,在实验中选择的传感器为处于HIDS模式的Snort、OVS交换机流表信息以及通用流量监控工具sFlow-rt以实现基于多源融合的态势感知。选用的数据融合模型为JDL模型,由于态势感知工程较为庞大,在实验中选择性地实现了决策层数据融合与态势评估两个核心模块。
2.4.1 数据预处理
选择了Snort-IDS、OVS流表信息和sFlow-rt作为多源传感器融合中的传感器。
(1)Snort-IDS
Snort是一个开源的入侵检测系统,可进行实时的流量分析和数据包捕获与日志记录;一般地,部署IDS有基于主机(Host-based IDS)与基于交换机两种方式,本实验中使用Snort的IDS模式。
(2)OVS流表信息
流表在SDN架构中类似于现今传统网络路由器中的路由表,由控制层中的控制器下发给转发层中的物理设备如交换机等。OpenFlow流表包括了包头域(Header)、计数器(Counter)、动作(Action)。通常提取OVS流表信息有两种方法:调用SDN控制器(OpenDayLight,Ryu等)提供的北向API获取流表信息,或用ovsctl命令在控制台中显示出即时流表信息并重定向到文件中。
(3)sFlow-rt
sFlow-rt是基于sFlow协议开发的可视化网络流量检测应用。sFlow监控工具sFlow-rt由sFlow Agent和sFlow Collector两部分组成。Agent作为客户端,一般内嵌于网络转发设备(如交换机、路由器),通过获取本设备上的接口统计信息和数据信息,将信息封装成sFlow报文,当sFlow报文缓冲区满或是在sFlow报文缓存时间超时后,Agent将sFlow报文发送到指定的Collector。Collector作为远端服务器,负责对sFlow报文分析、汇总、生成流量报告。
2.4.2 融合过程
如图3所示,经过数据采集和预处理后存在原始数据库的数据分为Snort、OVS和sFlow三个部分。经过对机器算力和决策精度的综合考量,数据融合算法选择了决策层融合,由于OVS与sFlow得到的特征属于多分类问题,而标准的SVM算法适用于二分类问题,此处选择了一对多法多分类SVM作为这传感器特征数据的训练模型。
图3 实验模型设计图
在特征约简方面采用了刘效武等[6]的迭代训练约简法,即将设原始特征向量维度为n,则每次去除特征ci(1≤i≤n) 使用n-1个向量输入SVM进行训练。若此轮训练中的精度A小于人为设定的阈值ε,则将特征ci加入约简集Selection_set中。进行n轮训练后得到最终的向量集合Selection_set。
最终,由Snort数据的特征部分、OVS、sFlow的特征经过特征选择训练得出的决策,与SnortIDS得出的决策再进行决策层融合,采用贝叶斯方法,得到综合的决策值。
2.4.3 评估过程
综合得出的决策其输入层次化量化评估模型,分别得到网络级、主机级、服务级的态势评估值V1、V2、V3。规定每一级态势符合度SFi以及平均态势符合度SFaverage满足
SFi=PFi/AFi,i=1,2,3
(1)
SFaverage=(SF1+ SF2+ SF3)/3
(2)
其中PFi是通过决策得出的分类结果计算出某一级的态势值,AFi是由已知样本计算出的真实态势值。
实验软硬件配置如表2所示,网络拓扑配置如图4所示。
表2 实验软硬件配置表
图4 网络拓扑图
3.2.1 数据集获取方式
目前能获取到的公开数据集最大的缺陷在于其都是基于传统网络中交换机,路由器产生的数据与基于SDN网络与SDN控制器、交换机的数据有所不同。所以,本文采取了通过在Mininet网络中用网络工具模拟攻击,自主生成训练数据集的方式。
3.2.2 模拟攻击过程
在24 h的时间内,h1 Server始终开启服务,用网络工具hping3、LOIC(低轨道离子炮)模拟DoS/DDoS攻击的过程。同时,内网client通过wget等命令在随机的时间点访问h1 server产生内网背景流量,整个内网通过nat服务连接因特网产生外网背景流量。
由于运行mininet的性能限制,发送过多的包将导致机器崩溃,每次DDoS的时长与真实攻击相比均较短,同时也对发包数量进行了限制。攻击时段表如表3所示。
表3 攻击时段表
在去除了无效的数据之后,得到可供训练的样本数统计如表4所示。
表4 样本统计
3.2.3 Snort的决策层数据
事实上Snort的目前分析可疑数据包的协议范围有一定的局限性,限于TCP、UDP、ICMP、IP四种,没有ARP等协议的记录。但对于本研究中的DoS攻击类别四种来说已经足够。Snort的event表中的签名字段和时间戳字段标识了Snort决策得到的当前报警信息。将在其后的步骤中输入决策层融合模块。
3.2.4 特征训练
Snort的特征数据、OVS流表数据、sFlow提取后将相应字段和数据存入数据库。从Snort-HIDS中取得的数据和从ODL、sFlow的RESTful API中得到的数据存在冗余或无用数据,如果将原始数据直接导入作为输入特征值将影响训练的精度,一些与网络层数据无关的特征在最终的数据集选择中去除了之后,剩余的特征约简后得到输入向量中的关键特征集Selection_set共10个向量,如表5所示。
表5 用于训练的特征
使用贝叶斯方法对Snort和多分类支持向量机的决策进行融合,融合决策结果如表6~8所示。
表6 二分类融合决策结果
表7 二分类统计
表8 多分类融合决策结果
由表6可观察到融合决策二分类的F1-score达到了0.90,从实际应用的角度来说属于可以接受的范畴。由表7可观察到精确率比准确率高。由表8可观察到,除了对TCP SYN的分类性能存在误差容许范围内的下降之外,在使用同样的Snort规则集的情况下,与Snort单源决策相比,加入了OVS流表和sFlow-rt信息的SVM训练决策结果的总决策效果对不同种类的DoS攻击判断都有明显的改善。
3.2.5 态势评估与效果检验
根据评估公式可得到24 h的态势评估值。选取了从h4发动的攻击从7:07开始,7:16结束。从中取7:00~7:30之间的内绘制出如图5所示的网段10.0.10.0/24的态势曲线图。可见其基本符合直观预期。同时图6中显示了24 h内以1 h为采样时长计算的平均态势符合程度SFaverage亦符合预期。
图5 7:00~7:30时段内态势评估折线图
图6 24 h内的平均态势符合度SFaverage曲线
由于使用的网络数据集、网络拓扑结构以及选择的评估量化指标不同,本文的分类结果严格说来与文献中的结果不具有横向的可比性,故此处不列出。另一方面从实用意义上来说融合模型低于90%的分类准确率仍有较大的提升空间。但作为研究与实现的验证性模型来说,本实验目的已经达到。
(1)选择的训练算法中SVM多分类向量机还应该进行参数优化;
(2)对最为常见的TCP SYN Flood攻击的分类精度较低,应改进特征选择算法;
(3)设置的数据集、攻击方式和网络拓扑过于简单粗糙;
(4)限于时间,未实现态势预测算法和实时性可视化模块。
本文研究了应用于网络安全态势感知的相关算法,实验验证了在受到DoS的情况下,基于JDL的多源传感器融合的网络安全态势感知模型做出的决策总体上优于单源传感器决策,且能较为准确地对当前网络、主机、服务的态势做出评估。实现了一个基于JDL多传感器数据融合的网络安全态势感知模型,并将其应用于SDN网络中对DoS的感知和评估。实验结果显示与单纯使用IDS的方法相比,融合决策的误报率和漏报率均有所下降,且输出的态势值具有一定的准确度,符合系统安全管理人员直观评估的结果。