基于增量集成学习的动态自适应SDN入侵检测

来源 :计算技术与自动化 | 被引量 : 0次 | 上传用户:adamas522
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:随着SDN网络应用的推广,SDN网络的安全也越来越受到重视,基于模式识别的网络入侵检测由于无法一次性收集完备的训练数据集,使得对未知的入侵行为识别率不高。为提高入侵检测系统的自适应性,提出了增量集成学习算法,并用该算法解决SDN入侵检测问题。该算法利用滑动窗口法获得数据块,对新的数据块进行训练获得子分类器,然后依据在历史数据块和当前数据块的分类结果筛选子分类器进行集成,使得分类模型不断完善从而能够自适应的识别未知攻击行为。通过在NSL-KDD数据集上的实验结果可以看到,该算法可以提高未知攻击的识别率。
  关键词:增量学习;集成学习;入侵检测;软件定义网络
  Abstract:With the popularization of SDN network application, the security of SDN network has been paid more and more attention. Because the network intrusion detection method based on pattern recognition cannot collect complete training dataset at one time, the recognition rate of intrusion detection model for unknown intrusion behavior is not high. In order to improve the adaptability of intrusion detection system, this paper proposes an incremental ensemble learning algorithm and uses it to solve the problem of SDN intrusion detection. The proposed algorithm uses sliding window method to obtain data blocks and trains data blocks to obtain sub classifiers. Then it selects sub-classifiers according to the classification results of historical data blocks and current data blocks for integration, so that the classification model is constantly improved and can identify unknown attack behavior adaptively. The experimental results on the NSL-KDD dataset show that the algorithm can improve the recognition rate of unknown attacks.
  Key words:incremental learning; ensemble learning; intrusion detection; software defined network
  软件定义网络( Software Defined Network,SDN)是一种新兴的网络架构,已逐渐成为云计算环境所依赖的重要技术之一[1],但SDN 架构自身的安全问题也受到国内外专家学者的关注。入侵检测作为网络安全的重要技术之一,也是网络安全领域的研究热点[1-6],把机器学习、模式识别用于网络入侵检测是该领域的研究热点之一,也就是把网络入侵检测问题转化为分类问题。
  常见的机器学习算法均有学者尝试用于解决网络入侵检测问题,例如支持向量机[2-3]、深度学习[4-6]、决策树[7]、集成学习[8-10]等分类算法,这些方法都是对已知的训练数据集进行训练,获得分类模型,然后对未知的数据进行预测,因此训练数据集对算法的影响较大,决定了最终构建模型的分类性能,而在实际的网络入侵检测中,新的网络入侵方法不断涌现,也就导致无法一次性的收集到完备的数据集进行模型训练,为解决这样的问题,许多专家学者探讨采用增量学习[2,6]、在线学习[11-16]解决网络入侵检测问题,文献[17]给出了针对SDN网络的入侵检测模型,并对模型进行了详细的介绍。
  集成学习算法由于算法自身的优势备受关注[8-11],通过某种方法改变训练数据集的分布从而获得多个训练子集,训练后获得多个子分类器,在预测阶段依据多个子分类器测试结果进行投票,来确定最终的预测结果,Boosting和Bagging是两类最具代表性的集成学习算法,Zhou[11]证明了选择部分基分类器进行集成要不所有基分类器参与集成,获得的集成分类器的泛化性能更优,选择集成算法的关键是按照一定的方法选择部分好的基分类器进行集成,问题就转化为如何判断基分类器的好坏。随后有许多学者对Boosting和Bagging算法进行改进,用于解决增量学习和在线学习问题[12-16],基本是对后续达到的数据流构建训练数据子集,然后训练获得对应子分类器,当子分类器达到指定阈值且新的数据流到达的时候,从已有的基分类器选择性能差的基分类器进行替换,因此该算法本质是集成学习算法和选择集成学习算法的改进,使之适用于增量学习或在线学习。这些算法在选择基分类器的时候依据对当前数据块的分类性能差的基分类器进行替换,认为已有基分类器缺少对新数据的识别能力,但在实际应用中,会有突变的数据流(噪声数据),这样会导致该替换方法不够准确,因此本文采用结合历史数据和当前数据的准确率来选择基分类器进行替换。
  基于以上分析,从三方面对集成增量学习算法(Improved Incremental Integrated Learning Algorithm, IIILA)進行改进:(1)为避免噪声数据的影响,对基分类器的评价依据历史数据和当前数据上的平均结果;(2)传统集成方法依据准确率进行基分类器筛选,没有考虑基分类器之间的差异度,本文采用泛化误差对基分类器进行筛选;(3)对基分类器权重的计算不是简单依据当前数据库的泛化误差,而是所有数据的泛化误差。然后把改进的算法应用到SDN的网络入侵检测中,通过在NSL-KDD数据集上的仿真实验可以看到,该算法在各项指标上的性能要优于决策树算法C4.5,各项性能逼近AdaBoost算法。   1 SDN网络入侵检测模型
  针对SDN网络入侵检测的研究相对较少,主要集中在入侵检测模型设计上面[17,19-20],由算法的设计过程可以看到,该算法支持并行处理,也就可以进行分布式處理,因此基于增量集成学习算法的SDN网络入侵检测模型设计如图1所示,该模型分为网络节点检测和本地检测,两者之间可以相互协同。
  在本地检测模块中,通过多个检测代理收集网络数据流,根据OpenFlow协议[18],每个流表由多个流表项组成,原始的流表项由多个功能部分组成, 并不是所有的部分都可以用于入侵检测,因此需要对数据流进行相应的预处理,包括数据统计、特征选择、归一化等操作,然后对网络行为用检测模型进行预测,确定是否存在网络攻击行为,响应模型对网络攻击行为进行响应处理,然后用新的数据去修正检测模型(这里假定预测的结果都是正确的,对于无法确定预测结果是否正确,可以通过直推式学习来解决)。对于网络检测是指多个本地检测模块之间可以协同工作,可以依据网络各节点共同的预测结果来判断最终的预测结果,也可以之用本地检测模块实现入侵检测。
  2 增量集成学习算法
  2.1 基分类器性能评价
  为了保证集成后分类器的性能,对基分类器进行筛选,文献[13]中证明了集成分类器的性能与基分类器的准确率和基分类器之间的差异度有关,集成分类器的泛化误差可表示为公式(1):
  2.2 算法过程
  在网络入侵检测、医疗诊断等等实际应用中,由于无法一次性收集完备的数据集,导致无法一次性获得完美的分类模型,因此需要边收集数据边完善分类模型,即增量学习或者在线学习,较多算法的增量学习算法都被应用到网络入侵检测中,例如增量支持向量机算法[2-3]。集成学习算法由于自身的特点和优势,Oza[17]等提出了增量学习版的Boosting和Bagging算法,随后有许多学者对算法进行了相应的改进,这些算法多是针对流数据的在线学习,而本文算法主要是依据块的增量学习算法。
  集成学习的增量学习算法主要是把每个数据块看作一个数据子集,然后在数据子集上构建子分类器(基分类器),然后用已获得的子分类器对当前数据子集进行预测,并计算预测准确率,如果子分类器数目小于超过阈值,则直接加入到子分类器集合中,否则,从当前子分类器集合中选择对当前数据预测性能最差的子分类器进行替换。可以看到,子分类器的选择是依据对当前数据块的分类性能进行选择,也就需要把最新数据中所包含的信息学习到分类器中,但是该方法过度依赖对当前数据的分类性能,也就容易受到噪声数据的影响,这是因为算法只考虑对当前数据的分类性能,而没有考虑对整体数据的分类性能,因此本文算法总和考虑历史数据块和当前数据块上的分类性能,然后对基分类器进行选择,算法流程如图2所示,详细的算法过程描述如下:
  3 实验及数据分析
  3.1 实验数据集
  NSL-KDD数据集消除了KDD99数据集中数据冗余、重复数据记录等问题,使得分类器的检测率更加准确,因此在研究入侵检测问题的时候,NSL-KDD训练集和测试集的设置是合理的,不同研究工作的评估结果将是一致的和可比的,因此在做网络入侵检测研究中较多的人在NSL-KDD数据集上进行仿真实验,本文的实验中也将采用NSL-KDD数据集。
  NSL-KDD数据集的20%的训练集包括正常数据记录13448,攻击数据记录数为11744,NSL-KDD数据集的测试集中包括正常数据记录2152,攻击数据记录数为9698,本文算法是面向数字格式文件的,NSL-KDD数据集中有数值属性和字符属性两类,因此先把数据集进行数字化,本文采用简单的替代法,另外,本文算法主要针对二类分类问题,把数据集都转换为二类的数据集,正常数据类别号为0,攻击数据的类别号为1。
  实验从NSL-KDD数据集20%的训练集中随机选择1100条数据作为训练数据集进行仿真实验,用NSL-KDD数据集的测试集进行测试,详细的实验数据集见表1,可以看到在测试集中出现了12中新的攻击类型和2587条训练集中没有出现过的攻击数据。
  3.2 实验结果
  在实际应用中,尤其是是网络入侵检测中,网络入侵方法不断涌现出新的入侵方法,也就无法一次性收集到完备的训练数据集,各种机器学习算法的增量算法是解决该问题的重要途径之一,该部分实验采用模拟数据流的方式进行实验,对以选取的数据集采用滑动窗口动态取数据集中的部分数据增加的学习模型中,并用前面所提算法中的方法对新生成基分类器与已有基分类进行替换,从而不断的更新模型。由于该算法是基于决策树的集成增量学习算法,因此,该部分主要是对本文所提算法与Online Bagging(OBG)算法、C4.5和AdaBoost算法进行算法性能的对比,详细的实验结果见表2和表3及图3,其中C4.5和AdaBoost算法的实验结果是采用全部的1100条训练数据进行训练,然后对测试集进行测试的实验结果,而IILA和OBG采用的是增量学习的方法逐渐进行增量学习,然后对测试集进行测试的实验结果。
  从表2、表3的实验结果可以看到,本文算法的性能要优于C4.5决策树算法的实验结果,这是因为,本文算法是采用集成学习算法的思想,前面的描述中可以看到集成学习算法有不错的分类性能。从表2、表3和图3可以看到,算法性能与Online Bagging算法性能接近,但本文算法可以大大减少算法的时间,尤其是选择较大的窗口的情况下。另外实验结果接近AdaBoost算法的实验结果,甚至在召回率上优于AdaBoost算法,由于AdaBoost算法是对所有训练数据进行训练,而本文算法是采用的增量学习思想,在训练的过程中会依据对当前数据块上的分类性能对基分类器进行替代,其本质就是丢弃哪些分类性能差的基分类器,但在丢弃基分类器的过程中,实际就是丢弃部分数据块所包含的信息,对当前数据块的分类性能差表明该基分类器所包含的信息量不足,但在丢弃的过程中仍然会丢弃部分信息,因此造成最终集成分类器的性能不如采用所有数据集进行训练的AdaBoost算法的性能。   窗口大小对算法性能的影响,为了验证窗口大小对算法性能的影响,分别采用窗口大小为10、20、30、40、50、100、150进行实验,详细的实验结果如表4所示。从表3中可以看到,窗口大小为30的时候,各项指标较好,窗口大小为50的时候各项指标最差,可以看到窗口大小对分类算法的性能有影响,但是从表3中看不到有什么规律。
  另外参数m对算法的性能也有一定的影响,为了验证m对算法的影响,分别取数据块的10%、20%、30%、40%、50%、60%、70%、80%、90%个基分类器进行集成,详细的实验结果见表4。在实际应用中,数据块数是无法确定的,因此选择比例也就无法确定,该部分实验目的是验证选择参与集成的基分类器的数量是否影响集成分类器的性能,在实际应用中随着数量不断的到达,即数据块数量的增加,可以采用动态调整该值,动态适应需求。
  从表5可以看到,随着选择比例的增加,集成分类器的性能也有所提高,在选择40%基分类器的时候达到最优,然后继续增加选取比例时,集成分类器的性能则是下降,各项评价指标在不同选择比例下详细的变化情况见图4所示。
  由上面实验数据可以看到,采用AdaBoost算法、C4.5算法、OBG算法及本文所提算法的实验结果都比较差,尤其是准确率较低。从表1实验数据集分布情况可以看到,训练数据集中的正常行为数据要要多于异常行为数据,样本数量比约为2:1,而在测试集中,有少量的正常行为数据和大量的异常行为数据,样本比例约为1:4.5,可以看到训练数据集和测试数据的分布存在较大差异,这是导致四种算法分类性能下降的原因,为了验证在相同分布的数据集上四种方法的性能,训练集不变,然后从20%训练集中随机抽取3000作为测试数据,则得到的ROC曲线如图5所示,其中AdaBoost和C4.5算法对全部的训练进行训练,让阿辉对3000条测试数据进行测试的结果,而IILA和OBG算法则是用100条作为初始数据,对剩余1000进行增量学习的实验结果。可以看到四种算法的分类性能都比较好,AdaBoost和C4.5算法有较好的性能,IILA的实验性能要优于OBG算法,并且本文算法用时要远远小于OBG算法。
  4 结 论
  针对在SND入侵检测中,新的入侵方法层出不穷,导致检测系统无法识别新的入侵行为的问题,提出了增量集成学习算法,并把该算法应用到网络入侵检测中,通过算法的实验结果对比可以看到,在面对动态收集数据的情况下,算法有不错的分类性能。该算法是基于块的增量学习,如何实现基于数据流的在线学习,并应用到SDN检测中将是下阶段的主要工作。
  参考文献
  [1] 张朝昆,崔勇,唐翯翯,等.软件定义网络(SDN)研究进展[J].软件学报,2015,26(1):62-81.
  [2] 张燕.基于协同增量支持向量机的网络入侵检测[J].河南科学,2018,36(1):11-16.
  [3] LI Y, XIA J, ZHANG S, et al. An efficient intrusion detection system based on support vector machines and gradually features removal method[J]. Expert Systems with Applications, 2012, 39(1):424-430
  [4] BOHARA B, BHUYAN J, WU F,et al. A survey on the use of data clustering for intrusion detection system in cyber security[J]. International Journal of Network Security
其他文献
摘 要:为了避免智能变电站过程层网络通信出现异常变动的现象,需要准确检测智能变电站过程层网络异常流量,为此提出新型的检测方法。设计了基于网络演算的变电站通信网络流量计算模型,将根节点全部设成信源,通过流量路由实现周围输入与输出端口的联系,获取智能变电站过程层网络中全部设备端口输入与输出流量。还应用优化支持向量模型进行异常流量检测,将网络异常流量与正常流量分类,实现智能变电站过程层网络异常流量检测。
无约束场景下,低质量的人脸图像不仅浪费计算资源而且降低系统识别率。针对此问题,提出一种基于人脸识别的人脸质量评估方法对人脸图像进行预评估。以人脸识别系统特征提取网络为基础网络在COX数据集上进行微调,并使用微调后网络对COX数据集进行质量分数标定。最后,结合基础网络及质量预测网络并以相应损失函数在标定数据上进行回归学习以获取质量评估模型。实验结果表明,该方法能够有效区分不同质量的人脸图像并提升人脸
孔探是检测发动机内部损伤最重要的手段之一。为了解决发动机孔探检查中孔探人员主要依靠经验对损伤进行界定的问题,研究了基于DenseNet和ResNet融合的新型单通道网络结构,实现对发动机部件的分类,为后期孔探缺陷自动识别建立基础。通过对某大修厂孔探数据和自建数据进行处理,完成了孔探图像分类数据集的构建;训练新型的49层网络模型,在自建数据集测试集上测试的准确率和平均召回率分别为96.0%和95.9
文章针对江苏省典型砖混结构提出了3种低干预子结构加固方案,利用PKPM和ABAQUS软件考察了附加子结构布置刚度、布置楼层、布置位置和布置方向等因素对加固结构抗震性能的影响,基于分析结果提出了附加子结构布局设计建议.
特钢工业厂房办公楼由2栋长90.6 m、宽34.2 m、高36.5 m的塔楼组成,两个塔楼之间2层设置钢平台,一端铰接,一端滑移.通过方案比选,两塔楼均采用钢框架(局部设支撑)结构体系,标准轴网为8.4 m×9.0m,结构布置基本对称,相邻处端部一跨存在斜柱.针对斜柱对结构的不利影响,对结构进行了 pushover分析,并采取了相应的措施;2层的钢平台跨度较大,进而做了舒适度分析,结果表明,满足规范的要求.
苏州平江历史街区有2500多年历史,直至今天,平江路历史街区并未凝冻固化,生活生产等职能仍在延续,成为中华优秀传统建筑文化绵延生长的活态见证.针对历史街区的具体特征,有必要对其进行长效保护与活化利用的研究和实践探索.平江历史街区针灸式点状更新的实践适应了活态的社会现状,具有普适性的示范价值和意义.
摘 要:目前我国大多数煤矿企业仍然是设备类型多样,多种网络协议控制共存的情况,难以实现集中及远程监管,系统的运行和维护管理仍是传统人工操作,发现问题、诊断分析、及故障处理效率比较低。基于WINCC软件,综合运用以太网技术和OPC等多种接口互联技术对某煤矿企业生产系统进行改造,将多种不同系统集中在以太网平台上,通过Web Navigator提供的网络发布功能,实现了企业远程监控诊断与智能运维,通过实
钢轨受行车载荷及自然因素的作用发生膨胀从而产生纵向位移,影响机车行车安全,因此研发高性能钢轨纵向位移检测装置意义重大。针对钢轨位移检测装置因人工检测方法导致耗时、耗力的问题,在MATLAB仿真研究基础上,设计了基于图像处理的钢轨纵向位移检测系统的实现算法,论述了对样本采集图像进行预处理、二值化、Canny边缘检测、Hough变换以及纵向位移计算等算法的实现过程。实验结果表明,所设计的系统具有较高精
随着城市化进程的加快,城市中本应得到保护的古宅庭院,却在现代化建设的浪潮中遭到破坏,这种不可逆的破坏对城市记忆与文脉传承都造成了极大的损失,因此合理地修复和利用好这些历史文化遗产具有重要的现实意义.文章以柴园为例,以苏州古典园林造园理法为依据、空间逆构为策略,分析研究柴园空间的修缮成效,为江南地区传统宅院修复更新中的空间营造提供设计创作的借鉴.
摘 要:为了解决输电线路无人机巡检作业易受恶劣天气影响、远距离遥控不及时、通信稳定性差等问题,提出了一种输电线路无人机自主巡检方法。首先,利用卡尔曼滤波算滤除原始线路中的轨迹噪点,采用垂距法对轨迹冗余点进行过滤,优化巡检航线;其次,提出基于巡检对象差异特性的动态优化定位方法提升无人机巡检质量。以某220 kV输电线路杆塔进行测试,测试结果表明,提出的方法解决了航线采集以及定位优化问题,贯穿航线学习