杨喜敏,胡明明,唐 菀
(中南民族大学 计算机科学学院,武汉 430074)
从云到雾再到边缘计算,未来万物互联的世界里,爆炸性增长的流量、层出不穷的未知协议和加密技术,都会导致流量模式的动态性和不确定性[1].软件定义网络(SDN)[2]逻辑上统一、集中的自动化管理和全局视角等特性,为从全局视角防止、检测和应对威胁,以及基于流量统计特征的网络流量模式学习提供了新的思路和途径.
网络流量分析与预测能及时有效地发现网络流量的变化并能辨别出可能异常的流量,对网络安全管理有十分重要的作用[3].非增量的人工神经网络算法在动态适应性和扩展性等方面尚显不足,无监督学习在准确性上还有待进一步提高[4].本文基于增长型自组织映射(GSOM),提出了一种对SDN网络流量进行无监督增量学习的算法.该算法能够持续学习网络流量特征,并在学习过程中实现对GSOM神经网络模型的持续更新.通过向模型中加入新的流量知识以保证其对网络流量动态的自适应性,以使GSOM模型对异常流量和未知流量保持有较高的敏感度,进而能够对网络流量进行分类识别以维护网络的安全.
王晓瑞等[5]提出了一种基于BP神经网络的SDN网络DDoS攻击检测方法,通过分析OpenFlow交换机流表相关特征值的变化,采用分类流量模式来检测DDoS攻击.马俊青[6]基于K-means和支持向量机(SVM)算法,设计了SDN网络流量分析与标识的算法,并实验验证了该算法对流表信息进行学习的可行性.宁凡强[7]优化了基于网络流量特征异常的DDoS攻击检测方法.Phan[8]结合SVM和SOM的工作机制来处理SDN网络中的DDoS攻击.Silva[9]提出一种将利用信息论来计算信息表熵中的偏差与机器学习算法相结合的流量分类方法.Huang[10]基于有监督的机器学习算法,通过获取SDN网络数据流的标签来分类DNS响应数据流.Georgi[11]通过收集SDN流量统计信息,采用Bagged Trees聚类方法实现了基于轻量级流的周期性入侵检测系统.
Kohonen于1981年提出的自组织映射(SOM)[12]是人工神经网络之一.如图1所示,SOM通过竞争层神经元对输入样本的“竞争学习”来对样本集进行聚类学习.但是,SOM需要预先定义好竞争层神经元的个数,并且在学习过程中一直保持不变,即SOM网络结构是固定的.此外,竞争层中的一些神经元会由于始终不能在竞争中获胜而处于“假死”状态.这些都限制了SOM对动态、增量样本集学习的适应能力.
GSOM不再强调网络结构的预定性,而是在竞争训练过程,依据神经元的活跃度(在竞争中的获胜频数)分裂最强的神经元,适时调整神经元网络的拓扑结构,来渐进和动态地生成学习网络.GSOM一定程度上使SOM网络的结构更加灵活、自适应能力也更强.相对于计算机网络流量的动态性,GSOM较SOM更有助于学习网络流量和构造流量模型[13].本文基于GSOM,提出一种增量式、无监督的SDN交换机流表信息学习算法,目的是提升网络异常流量识别的动态自适应能力.
图1 自组织映射(SOM)神经网络Fig.1 Self-organizing map neural network
流量模式的增量学习首先需要将采集的网络流量,即OpenFlow交换机流表统计信息,转换成可学习的样本,然后经GSOM学习后,集成新模式到已学习到的模式集中.
OpenFlow 1.3的流表项结构如图2所示,其中匹配域、计数器域和指令域等记录了转发数据包的特征和流量统计信息.
图2 OpenFlow1.3的流表项结构Fig.2 OpenFlow1.3 flow entity structure
基于流表项的内容和统计信息,本文在文献[14]的基础上,重定义流量样本向量为:s=
表1 特征量含义及计算方式Tab.1 Meaning and calculation of eigenvectors
除流表项匹配域源地址和源端口的分布熵外,其它特征项仅对服务器端计算,不考虑连接客户机端.
基于GSOM的SDN网络流量学习重点是样本间的差异性度量、获胜神经元的选择策略和竞争层神经元的权值调整模式.
样本间的差异性依据:
(1)
所示的余弦相似性来度量,其中,xi为样本特征值、wi为神经元权值.
获胜函数如:
mindist= min(1-f(x,w)),
(2)
所示,取与样本距离最小的神经元为获胜神经元.
此外,引入安全阈值θ和扩展阈值τ,并定义两个样本间的距离d≤θ时,认为它们是相同的;当d>τ时,认为它们不相同;否则,认为它们是相近而不相同的.
竞争层采用“胜者为王”的策略,输入样本距离最小的神经元会在竞争学习中获取胜利,并依据:
wi(t+1)=wi,j(t)+η(t)·(x-wi,j(t)),
(3)
调整获胜神经元与领域神经元的权值.其中,i=1,2,…,n,n是样本属性个数,t是迭代次数,η(t)是当前学习率,j∈Nj*(t),Nj*(t)是当前的邻域函数.
只有在对确认安全的SDN流量进行学习的过程中,竞争层的神经元才会增长.即mindist>τ且输入流量为安全流量时,增加新神经元.而此时流量的安全与否的判断的方法是将此网络流量转发至异常检测判断该网络流量是否为安全.
正常流量下神经元安全阈值的调整幅度如:
(4)
所示.
当θ 当θ (5) 缩小神经元的安全阈值. 初始化学习率η(0)为1,学习率参数lp为1000,学习率调整公式为: (6) 初始化优胜邻域Nj*(0)为2,邻域参数Np为1000/log(Nj*(0)),邻域调整采用: (7) 初始GSOM神经网络模型为空或仅包含一个初始神经元,也可以是一个已学得的网络模型,增量式SDN流量学习算法描述如下: 输入:SDN流表统计信息 输出:增量式GSOM神经网络模型 Step1按表1计算方式将SDN流表统计信息转换为待学习的样本; Step2迭代学习: a)从样本集中第一条输入样本开始,根据式(2)计算mindist与获胜神经元; b) 对mindist作判断: i)mindist∈(τ,1],若此样本代表的网络流量经异常检测为安全则增加新神经元;否则不作处理. ii)mindist∈(θ,τ],将该网络流量进行异常判断,若为正常,则更新胜者的获胜频数并按式(4)扩大神经元的安全阈值,同时按式(3)调整获胜神经元和领域神经元的权值;否则按式(5)缩小神经元的安全阈值. iii)mindist∈(0.1,θ],更新胜者的获胜频数并公式(2.4)缩小神经元的安全阈值,同时调整获胜神经元及其领域神经元权值. iv)mindist∈[0,0.1],更新胜者的获胜频数同时调整获胜神经元及其领域神经元权值. c)分别按式(6)与式(7)更新学习率与邻域大小. Step3若达到迭代次数或学习率小于0.001,算法结束. 增量学习算法能够根据样本与神经元之间相似度的不同识别出网络中正常与疑似异常的流量,但增量学习算法无法确认该疑似异常流量是否确为异常流量.此时需与异常检测结合,并根据异常检测对网络流量的判断结果调整神经元的安全阈值,进而实现GSOM网络架构的动态调整. 本文采用VMware Workstation、Ubuntu14.04、mininet等软件搭建了拓扑结构如图3所示的实验网络,控制器用的是FloodLight 1.2.Host4用作服务器,其它的用作客户机. 实验采用DARPA99第一周周一至周五中针对目的地址为196.37.75.158的流量作为正常流量数据集.其中对于源地址在172.16.0.0/16网段和192.168.0.0/16网段的数据流将其源地址改写为10.0.0.1~10.0.0.3,目的地址改为10.0.0.4并由客户机发往服务器.异常流量则是采用端口扫描所产生的流量.在本实验中将正常流量与异常流量采用将100组异常流量等距离插入正常流量集的后半段的方式混合.实验中,使用tcpreplay以0.01Mbps的速度重放流量数据集,每隔5秒采集交换机的流表项信息整合后进行流量学习,并输出GSOM神经网络模型.初始神经元的安全阈值θ和扩展阈值τ分别为0.1和0.7,初始学习率为1.0. 图3 实验拓扑图Fig.3 Experimental network topology 根据增量学习算法,将采集到的10,100条包含正常流量和异常流量的流表信息转化为待学习的输入样本并输入到GSOM神经网络中进行增量学习,结合异常检测方法,最终输出GSOM网络模型. 在增量学习过程中,迭代次数与扩展阈值决定着神经元的动态增长.不同迭代次数与扩展阈值对增量学习算法的影响在图4与图5中给出. 图4 不同迭代次数下神经元个数与训练时间图Fig.4 Neurons number and training time in different iterations 由图4可知,神经元个数随迭代次数增加虽整体呈上升趋势,但最终趋于平稳,具有收敛性.因为神经元的权值经过多次迭代已经能与输入样本非常匹配,尽管迭代次数不断增加,神经元的调整已经趋于平缓.因此,本文在实验中将迭代次数设置为100. 图5(a)表示增量学习过程中,随着扩展阈值的增大,生成的神经元个数渐少.图5(b)表示随着扩展阈值的增大,最终生成的神经元个数总体趋势减小.因为扩展阈值越大,满足扩展阈值条件的神经元越少,增加的神经元也越少,增量学习结束后得到的神经元也越少.图5(c)表示随着扩展阈值的增大,训练时间渐短.原因是扩展阈值越大,满足扩展阈值条件的神经元越少,需要增加的神经元也越少,直接导致了网络运行速度的加快,使得整个训练过程时间的减小. 综合以上结果可知,扩展阈值越大,增量学习得到的神经元个数越少,训练时间越短.本文设定扩展阈值为0.7,原因是扩展阈值为0.7时,神经元个数较多且训练时间也较短. 图5 同扩展阈值下神经元个数与训练时间图Fig.5 The number of neurons and the training time of different extended threshold 从输出的GSOM模型中可以得到的神经元的个数、安全阈值、获胜频数随训练时间变化趋势、输入样本的最大相似度,分别在图6~9中给出. 图6 神经元个数随输入样本的变化Fig.6 Changes in the number of neurons with sample inputting 由图6可以看到:(1)随着GSOM网络的运行,GSOM网络中神经元的个数不断增加;(2)随着不同样本的输入于训练,神经元个数的增长速度不同. 因为初始时GSOM网络中只有1个神经元,随着对不同网络流量的采集与训练,神经网络中现有的神经元已经不能匹配新的输入样本.这时GSOM网络会针对这些确认为安全的网络流量产生一个新的神经元与之匹配.尽管在GSOM网络运行中神经元的权值随着样本的输入得到不同程度的调整以匹配更多的神经元,但由于网络中网络流量的多样性,总有得不到匹配的安全网络流量使GSOM网络产生新的神经元.也正是因为网络流量的多样性与其在网络中出现的不确定性使得GSOM网络中神经元个数的增长速度不同. 图7 神经元安全距离Fig.7 safe distance of neurons 由图7可以看到:(1)各神经元的安全阈值在预设范围内变化;(2)各神经的安全阈值范围不同,其中神经元3的安全阈值变化最大,神经元1次之,神经元4的安全阈值变化最小. 因为不同神经元匹配不同类型的、不同数量的网络流量,随着输入样本的输入与GSOM网络的运行,神经元的安全阈值根据不同输入样本的最小距离与安全阈值的关系增加或减小,同时在其与神经元匹配数量的不同的共同作用下,使得神经元安全阈值出现不同幅度的变化(图8). 图8 神经元获胜频数随样本输入的变化Fig.8 The change of neuron′swinning frequency with sample inputting 由图8可以看出各神经元的获胜频数不同,其中神经元1和3在样本训练过程中成为获胜神经元的次数较多,而神经元4则较少.神经元1从始至终都对样本有响应,具有长相关性.神经元2和神经元3初始时响应的频数较多,随着样本的输入出现的频数渐少且具有一定的周期性(表现为获胜频数的增幅几近相同).而神经元4、5、6尽管对输入样本的响应次数较少但其响应仍具有一定的周期性. 图7与图8结合可以看出神经元1与神经元3获胜频数较大,其安全阈值变化较大.神经元4获胜频数较小,其安全阈值变化较小.因为神经元获胜频数越大,其安全阈值调整次数越多,安全阈值变化幅度越大. 由图9可以看出样本序号为5152、7498、9487、8620的样本最大相似度有明显易于其他样本的变化.经异常检测其为异常流量.可知GSOM网络架构能够根据这些变化识别出这些输入样本中的异常流量.表示GSOM网络对异常流量有一定的敏感度.本文算法对流量识别率达到99%以上,且对正常流量的误检率为0.38%. 图9 输入样本的最大相似度Fig.9 The maximum similarity of the input samples 本文根据SDN网络中交换机流表信息对网络流量的体现,设计了基于GSOM网络的SDN交换机流表统计信息的持续学习算法.该算法包含以下内容:提取交换机流表信息并组合成特征值;GSOM网络在线学习网络流量特征值并对GSOM神经网络模型持续更新.根据GSOM网络模型对网络流量的自学习与对神经元安全阈值的动态调整,表明该模型在含有异常流量的网络流量场景中,能够识别出网络中的正常流量与异常流量,并且对异常流量尤其是未知流量模式有较好的敏感度. 参 考 文 献 [1] Sun Q R, Liu H, and Harada T. Online growing neural gas for anomaly detection in changing surveillance scenes[J]. Pattern Recognition, 2016(64):187-201. [2] Scott-Hayward S,Natarajan S, and Sezer S. A survey of security in software defined networks[J]. IEEE Communications Surveys & Tutorials, 2016, 18(1):623-654. [3] Shu Z, Wan J, Lin J, et al. Traffic engineering in software-defined networking: measurement and management[J]. IEEE Access, 2017(4): 3246-3256. [4] Chen P J and Chen Y W. Implementation of SDN based network intrusion detection and prevention system [C]//IEEE.International Carnahan Conference on Security Technology (ICCST). Taipei, China: IEEE, 2016:141-146. [5] 王晓瑞, 庄 雷, 胡 颖, 等. SDN环境下基于BP神经网络的DDoS攻击检测方法[J/OL], 2018-02-02.http://www.arocmag.com/article/02-2018-03-033.html. [6] 马俊青. 面向软件定义网络的流量分析与识别技术研究[D]. 南京:南京邮电大学, 2015. [7] 宁凡强. 面向SDN网络的DDoS攻击检测方法研究[D]. 哈尔滨:哈尔滨工程大学, 2015. [8] Phan T V, Bao N K, and Park M. A novel hybrid flow-based handler with DDoSattacks in software-defined networking[C]// IEEE. Ubiquitous Intelligence & Computing, Advancedand Trusted Computing, Scalable Computing and Communications, Cloud and Big Data Computing, Internet of People, and Smart World Congress. Toulouse: IEEE, 2017:350-357. [9] Silva A S D,Wickboldt J A, Granville L Z, et al. ATLANTIC: A framework for anomaly traffic detection, classification, and mitigation in SDN[C]//IEEE. Network Operationsand Management Symposium. Istanbul: IEEE, 2016:27-35. [10] Huang N F, Li CC, Li C H, et al. Application identification system for SDN QoS based on machine learning and DNS responses[C]// IEEE. Asia-Pacific Network Operations and Management Symposium (APNOMS). Seoul :IEEE, 2017:407-410. [11] Georgi A A,Nareg A,Imad H. E, etal.Flow-based intrusion detection system for SDN[C]// IEEE. Computers and Communications (ISCC). Heraklion: IEEE,2017: 787-793. [12] Haviluddin,Arda Y,Awang H K, et al. Modelling of network traffic usage using self-organizing maps techniques [C]// IEEE. Science in Information Technology(ICSITech). Balikpapan: IEEE, 2016: 334-338. [13] Huang S Y and Huang Y N. Network traffic anomaly detection based on growing hierarchicalSOM[C]//IEEE. International Conference on Dependable Systems and Networks. Budapest: IEEE, 2013:1-2. [14] 李鹤飞,黄新力,郑正奇. 基于软件定义网络的DDoS攻击检测方法及其应用[J]. 计算机工程,2016,42(2):118-123.3 实验结果与分析
3.1 实验方案
3.2 性能分析
4 结语