程 滨,曹祖红
(华东师范大学,上海200062)
计算机软件技术与物联网技术的不断发展,为人们的工作、学习和生活带来了巨大便利,与此同时,物联网软件的恶意攻击行为也随之诞生,这给物联网的安全运行带来了巨大的威胁,同时也严重影响了人们的学习、工作[1]。因而,如何采取有效的措施来抵抗物联网软件中存在的恶意攻击行为,成为亟待解决的问题[2]。
近年来,国内外诸多学者对如何防御来自物联网软件攻击行为,进行了大量的研究。如刘世文等人基于网络安全态势感知的主动防御技术研究[3]、张云等人基于SDN跨层回环攻击的检测与防御的研究[4]。这些研究在防御物联网软件攻击方面,取得了可人的成绩,在一定程度上对物联网软件中存在的攻击行为进行了有效防御,缩短了系统运行的时间,提高了网络运行的安全性[5,6],但是,其对攻击行为的误判率较高、在进行软件攻击自动防御后无法快速恢复网络的平稳运行[7]。
深度学习作为一种人工智能技术,其在无监督模式下的优秀特征学习能力给物联网软件攻击防御提供了崭新途径,为此本文提出基于人工智能的物联网软件攻击自动防御方法,在防御物联网软件攻击行为时,能够快速区分物联网软件的正常与异常数据,对软件攻击行为的误判率更低,防御后恢复网络平稳运行时间更快,更能满足实际工作需求。
2.1.1 基于深度学习的DDoS攻击自动防御架构图
本文通过人工智能深度学习防护模块与物联网进行并联的方式,实现物联网软件攻击的自动防御。物联网中软件攻击自动防御架构图如图1。
图1 软件攻击自动防御架构图
具体的攻击防御流程为:
1)通过数据输入模块将网络数据流量同时传输给人工智能深度学习模块与物联网Openflow网络协议模块。
2)物联网的Openflow网络协议对传输过来的数据流量进行正常处理,人工智能深度学习模块对网络数据流量中是否存在攻击流量进行检测。
3)利用Openflow网络协议流表下发模块将检测出的物联网软件攻击行为转换成Openflow网络协议流表[8,9]。
4)将转换的网络协议流表发送给Openflow网络协议交换机,完成软件攻击自动防御,输出安全数据[10]。
2.1.2 人工智能深度学习模块软件攻击检测处理流程
在人工智能深度学习模块中,对物联网软件中数据流量攻击的检测处理流程可以归结如下:
1)通过数据包处理模块对输入的网络数据进行特征提取,并生成新的数据格式、构建新的网络数据维度。
2)在深度学习DDoS攻击监测模块,通过SMNA-CUSUM算法对经过数据包处理模块处理过的网络数据进行异常检测。
3)在Openflow网络协议流表下发模块中,提取物联网软件中存在的异常数据特征,根据提取的异常数据特征产生Openflow异常数据网络协议流表,并将其发送给交换机,完成后续攻击自动防御过程[11,12]。
本文应用基于滑动窗口的多维度自适应阈值非参数累积和(SMNA-CUSUM)算法对物联网软件中网络数据流量进行数据异常检测,寻找恶意攻击数据,为防御物联网软件攻击提供可靠依据[13,14]。其算法流程如图2。
图2 SMNA-CUSUM算法流程图
SMNA-CUSUM算法在本文进行物联网软件网络数据异常数据检测的过程如下:
用L代表滑动窗口的长度,在长度为L的滑动窗口中,提取若干个特征序列,将其数量表示为K,相应的维度为k的特征中的第i个样本点便可标记为{Xik},如果将{Xik}的均值用μk代表,μk用公式可以表示为
(1)
用σk代表特征序列的方差,则有
(2)
用Uik、Lik代表特征序列中样本点累积和的上下限,有
(3)
(4)
在i=L的条件下,若将当前窗口特征序列的最终上限与下限用公式表示为Uk、Lk,那么对于特征序列k的判决函数,用公式可将其表述为
(5)
式中,特征序列k的阈值用Nk代表:
Nk=h*σk
(6)
式中,自适应阈值与方差的线性系数用h表示。在k个判决函数中,代入各个Uk、Lk,可得到判决向量D,D满足D=(d1,d2,…,dk)。用r(D)表示最终得到的判决函数,满足
(7)
在式(7)中代入判决向量D,如果数据流量异常,式(7)结果显示为1,反之显示为0。对每一个滑动窗口重复以上操作,便可完成对物联网软件异常数据的检测[15]。
本文以某大型物流公司的物联网软件为实验对象,使用matlab软件仿真该物流公司软件攻击自动防御过程,验证本文方法的应用效果。
表1是应用本文方法与文献[3]基于网络安全态势感知的主动防御方法、文献[4]基于SDN跨层回环攻击的检测与防御方法得到的网络运行时间为200s时的自动防御攻击软件数量。
表1 自动防御攻击软件样本数量(个)
从表1可以看出应用本文方法可以实现软件攻击的自动防御,并且对比其它两种方法,本文方法在相同的时间内能够防护的恶意软件的数量更多。说明应用本文方法可以更有效防御软件攻击,满足实际物联网软件攻击防御需求。
图3是仿真得到的应用本文方法进行软件攻击防御的归一化混淆矩阵示意图。
图3 归一化混淆矩阵图
从图3可以看出,在当前的网络环境下,应用本文方法后可以清晰地从混淆矩阵看到该物流公司的物联网软件中是否存在攻击行为,验证了本文方法的可行性。
受试者工作特征曲线可以用来反映分类性能的好坏。曲线包围面积的大小与分类性能呈正相关。图4是应用本文方法仿真得到的不同网络流量下的受试者工作特征曲线。
图4 受试者工作特征曲线
从图4可以看出,随着物联网软件中数据流量的增加,受试者工作特征曲线无大幅度波动,波动趋势基本一致,曲线包围面积也基本相同。说明,应用本文方法即使在数据流量较大的情况下,也能很好地区分网络数据流量中的正常与异常数据,更好实现对网络数据中数据流量异常状况的监测,为物联网软件攻击自动防御提供可靠依据,能更好满足实际工作中对软件攻击的自动防御需求。
CPU占有率是衡量网络软件运算复杂度的一个重要指标,图5是不同攻击流速下应用本文方法进行软件攻击自动防御的CPU占有率情况。
图5 不同攻击流速CPU占有率
从图5可以看出,随着攻击流速的不断增加,CPU占有率也随之增加,但是增加幅度不大,随着攻击流量从80p/s增加到380p/s,CPU占有率仅增加了约5%。说明应用本文方法,可以降低进行物联网软件攻击自动防御时的运算复杂度,提高软件攻击自动防御的效率。
图6是本文方法应用前后物联网软件的网络数据流量状态变化情况。
图6 网络流量特征变化
从图6可以看出,应用本文方法的各网络数据流量特征变化曲线比较平稳,波动的幅度较小,而未用本文方法得到的网络数据流量特征变化曲线波动较大。说明应用本文方法进行物联网软件攻击自动防御时,很快就能使网络恢复平稳运行的状态,验证了本文方法的有效性。
本文方法在不同攻击流量下,不同滑动窗口构造对判决时间影响的对比图见图7。
图7 不同滑动窗口判决时间
从图7可以看出,随着累计分布函数数值的增加,对物联网内数据流量的判决时间大部分都在5s以内,只有一少部分的数据判决时间超过5s,并且随着攻击流量的增加,数据判决时间也没有呈现较大幅度增加,三条曲线的变化趋势基本一致。说明,应用本文方法即使在攻击流量较大时,也能用较短的时间对网络数据进行判别,可有效提高物联网软件攻击自动防御的效率。
图8是在滑动窗口为10时,不同自适应阈值和方差系数h对本文方法的物联网软件攻击检测结果的影响。图中小正方形代表检测到异常。
图8 不同h值检测结果
从图8可以看出,在相同的时间点范围内,当h取值为1时,监测到两个异常点,当h取值为2时,监测到一个异常点,而当h取值为3时,并未监测到异常点。说明,在进行异常数据检测时,随着h值的增大,出现了漏发网络数据异常警报的状况,在进行软件攻击自动防御过程中,h的取值越小越好,可有效防止漏发警报状况的发生,增强软件攻击自动防御的效果。
图9是本文方法应用过程中网关防火墙输入、输出包速率变化情况。
图9 防火墙输入/输出包速率
从图9可以看出,本文方法应用过程中,无论在低数据量还是高数据量情况下,都可以在很短时间内将物联网软件中的攻击流量过滤掉。在仿真时间约为100~200s时,虽然两种数据流量情况下都继续存在一些攻击流量,但是经过短暂的时间后,这些攻击流量又被过滤掉,网络呈现稳定运行状况,说明此时本文提出的物联网软件攻击自动防御方案发挥了作用,有效防御了物联网中恶意的软件攻击行为。
图10为分别应用本文方法与文献[3]方法、文献[4]方法进行攻击防御时得到的不同软件集群连接数下的物理网吞吐量对比图。
图10 吞吐量对比图
从图10可以看出,在软件集群连接数为10~103时,三种方法应用后的网络吞吐量基本完全一致,没有差别,但在连接数达到103以后,随着连接数的增加,本文方法的攻击防御下网络吞吐量随之增加。说明应用本文方法在进行物联网软件攻击自动防御时,运算性能更为良好,物联网网络运行更加稳定,更有利于对软件攻击进行自动防御。
图11显示的是受恶意攻击情况下,本文方法应用后网络接入层软件攻击检测图。
图11 网络接入层软件攻击检测
从图11可以看出在相同时间内,网络实际转发的数据包数量明显少于网路收到的数据包数量。说明,在恶意攻击情况下,物联网软件对恶意软件的攻击采取了自动防御措施,将存在恶意的流量数据阻挡在了网络之外,验证了本文方法的有效性。
本文提出的基于人工智能的物联网软件攻击自动防御方法,提高了软件攻击自动防御过程中对异常数据的监测效率,并降低了监测过程中的误报率,在防御物联网软件攻击方面防御性能较好。但是,由于在实际的软件攻击自动防御过程中,由于受多种因素影响,可能还有很多比较隐秘的软件攻击网络数据未被发现,从而影响整个物联网软件攻击自动防御的效果,下一阶段将在对各特征值进行合理有效分析的基础上,研究如何防御物联网软件中隐秘软件攻击的角度进行相关研究。