赵研
(数字广东网络建设有限公司,广东 广州 510030)
随着智慧城市的快速发展,物联网的作用日渐凸显,从智能电网、智能楼宇、智能家居到车联网、智慧医疗无不如此。为了进一步提升物联网的适用性,很多厂商从接入设备多样性和物联网技术高适应性的角度出发,构建了物联网异构融合、互联互通的复杂网络结构[1]。这种复杂的网络结构需要解决一系列挑战:海量的节点数量在数据接入和请求过程中极容易产生拥塞;作为一个更加开放的网络,节点之间的组网方式极容易遭受网络攻击[2-4];作为一种感知网络,其传输层包含大量的感知信息和用户隐私信息,常常成为被攻击的对象[5]。为了解决上述问题,许多研究者从物联网防护的角度出发,对威胁物联网安全的攻击行为进行多方面的研究,包括:采用模式识别方法识别恶意节点制造拒绝服务攻击行为[6-7];为了提升物联网节点的安全,采用密码技术和节点信任评价机制,提升物联网系统的抗攻击能力[8];除了对节点本身进行评价外,研究者们综合信息安全防护技术[9]、数据传输加密技术[10]、深度包检测的数据处理技术[11]、入侵检测技术[12-14]等机制,搭建网络安全检测模型。上述研究均需要用到大量的经验数据,以及采用人工定义规则和分类的标准,而当物联网出现新的攻击手段,那么基于人工定义和大量经验数据的安全检测知识无法自动更新,因此也就无法动态适应物联网复杂多变的环境。基于该问题,本文从流量异常检测的角度出发,针对深度包检测模式较为简单固定的缺点,提出基于流量指纹的网络安全威胁轻量级检测方法。该方法在采集多设备流量数据的基础上,采用数据重构的方法获得整个物联网网络的流量时空数据;然后,采用深度学习的方法获取流量数据的指纹——流量数据时空特征;最后,采用蚁群算法优化的BP神经网络对流量数据时空特征进行识别,进而实现流量异常检测。本文采用卷积神经网络算法来获取流量数据的指纹信息实现轻量级的安全威胁检测,不需要额外增加监听节点,不需要复杂的入侵检测评估模型,能够保证整个物联网的正常工作。
著名科技博客IoT Agenda将物联网安全定义为“关注物联网(IoT)中保护连接设备和网络的技术领域”,物联网安全包括数据安全、网络安全以及节点安全,重点保护终端传输数据的安全性、私密性和准确度[15]。因此,基于IoT Agenda对物联网安全的定义,可将物联网安全归集为数据安全威胁、网络安全威胁以及节点安全威胁。
也有学者从物联网攻击目标特征、效果特征、攻击方法维度和攻击层等各维度列举物联网的安全威胁[16]。例如,从目标特征维度可将物联网安全威胁分为:用户接口平台安全威胁、传感器安全威胁、网络服务安全威胁、云服务安全威胁、其他IoT系统安全威胁。从效果特征维度可将物联网安全威胁分为:身份攻击安全威胁、授权攻击安全威胁、完整性攻击安全威胁、可访问性攻击安全威胁、隐私攻击安全威胁。从攻击方法维度可将物联网安全威胁分为:主动攻击安全威胁、被动攻击安全威胁。从攻击层维度可将物联网安全威胁分为:感知层攻击安全威胁、网络层攻击安全威胁和应用层攻击安全威胁。事实上,由于物联网安全威胁是重叠交错的,并不存在明显的强制界限。比如在对感知层进行攻击的时候,也存在完整性攻击威胁、可访问性攻击威胁。因此,本文借鉴IoT Agenda对物联网安全的定义,将物联网安全威胁分为3类:数据安全威胁、网络安全威胁以及节点安全威胁。考虑到节点安全性在网络安全中具有举足轻重的地位,本文将侧重于设备(网络节点)方面的安全威胁检测,通过检测传输层数据流量的时空特征,实现对物联网安全威胁的轻量级检测。
本文的流量指纹构建是基于被动式的流量检测。其假设是,不同设备与网关相互通信的流量数据具有周期性、差异性。当一个设备与网关通信时,网关会记录设备在每个检测周期内的通信数据包的平均流量,这就是本文获取流量指纹的来源。式(1)展现了流量指纹的时间维度。
fn表示某个设备在第n个检测周期内通信数据包的平均流量。
传统的对数据包的数据信息进行统计的方式,对网络开销会造成很大的挑战。考虑到设备的流量特征具有时间周期性和空间相关性的特征,本文采用滑动窗口法对各设备的流量数据进行截取,构建出体现流量时空数据的矩阵。
其中ft,n表示物联网所有设备n在第t个周期(周期设为T,T=1小时)所截取的流量数据,每当有新的数据包产生时,滑动窗口就会更新数据。对物联网所有设备截取的流量数据进行合并,构建出一个能够反映物联网各设备流量时空数据的矩阵,该矩阵刻画了流量随着时间的变化,以及各设备的流量数据在空间上的动态变化,这是后续时空特征提取的数据基础。
当设备请求接入物联网时,通常采用白名单机制限制含有高危漏洞的设备接入到物联网中,即使一些未定向或定向攻击的设备侥幸接入到物联网,安全检测系统也会对设备的流量进行持续的监控,以此来部署安全管理措施。通常来说,基于流量监控的设备接入控制的流程如图1所示。
图1 基于网络安全性的设备接入控制流程
基于网络安全性的设备接入控制流程为:联合白名单和流量持续检测机制,将安全威胁挡在设备入口,设备接入控制采用流量包捕获、特征提取、特征融合、流量特征检测模型、流量异常控制等一系列的步骤实现设备接入的控制。
正常节点流量的随机性、突发性等特点对异常流量检测的准确率带来一定的干扰,为了应对这个问题,基于流量特征的检测模型采用多个分类器组成的集成学习分类器来有效检测网络流量的异常。集成学习分类器之所以能够较为准确检测网络流量异常,是因为它继承了多个分类器的分类结构,采用投票的方式对检测的样本结果进行综合评定,因此较单一的分类法具有更好的检测精准度和泛化性。基于流量特征的检测模型算法流程如图2所示。
图2 基于集成学习分类器的检测算法
图2展示了基于集成学习分类器的检测算法思路:为了训练某一类设备的流量特征在一个时间周期内的指纹,采用监督学习的方法,在原始流量特征数据集的基础上,通过随机采样的方式获取该时间周期的流量特征数据;利用传统的单一分类器随机选取特征子集,并采用投票的方式对特征子集进行汇总,实现高维流量特征数据的处理。集成学习分类器的各子分类器具有相互独立、训练速度快的特点,适用于处理高维流量数据。
上述的检测模型有几个问题:(1)需要采集大量的训练数据才能保证检测精度;(2)对特定的设备需要额外增加监听节点以获取特定周期的流量特征样本,实现实时的训练,以保证检测模型具有可用性,在一定程度上增加了网络的额外开销;(3)没有考虑到流量在设备之间所体现的空间特征,割裂了流量时空特征的联系。基于上述问题,本文提出一种基于流量指纹的网络安全威胁轻量级检测方法,该方法充分利用人工智能算法提取流量在各设备之间的时空特征,从而构造流量数据的指纹特征,采用蚁群算法优化的BP神经网络对流量指纹特征进行识别,进而能够快速实现异常流量的检测。
卷积神经网络是采用初始化的卷积核在反向传播过程中对特征向量集一次又一次的更新,去无限拟合这么一个非常逼近的特征向量集,从而实现特征的有效提取。由于流量时空数据矩阵数据集太大,如果直接使用卷积神经网络的卷积核进行流量特征提取,那么会产生很大的计算量,为了实现轻量级的网络流量特征提取,本文采用16×16的滑动窗口对流量时空数据矩阵进行数据截取,并将截取的数据作为卷积神经网络的输入,提取流量时空特征。基于卷积神经网络的流量时空特征提取流程如图3所示。
图3 基于卷积神经网络的流量时空特征提取流程
图3展示基于卷积神经网络的流量时空特征提取过程:输入是一个采用滑动窗口截取的大小为16×16的流量时空数据矩阵,分别采用2个卷积核(第一个卷积核大小为3×3,第二个卷积核大小为2×2)和2个2×2的池化层对流量的时空特征进行提取,最终对特征图进行平铺,得到一个9维的时空特征向量。
BP神经网络用于多层神经网络的参数计算,以解决非线性分类和学习的问题。它利用误差的反向传播原理,改变了传统的网络结构,引入了新的分层和逻辑,解决了非线性分类出现的难题。基于蚁群算法优化的BP神经网络流量异常检测模型包括输入层、隐含层和输出层。输入层的节点数为9,输入的数据是流量时空特征,隐含层的节点数为5,输出层的节点数为1;激活函数采用Sigmond函数,学习率为0.01,迭代次数为100。为了增强算法的鲁棒性和全局的寻优,采用蚁群算法优化神经网络网络节点之间的初始权值、阈值,然后将其代入神经网络训练以便使得网络快速收敛,获得训练后的权值和阈值,并实现流量的分类。基于蚁群算法优化的BP神经网络流量检测流程如图4所示。
图4 基于蚁群算法优化的BP神经网络流量检测流程
图4展示蚁群算法优化的BP神经网络流量检测过程。首先是定义蚁群算法参数,包括种群初始权值、阈值矩阵、种群个体数量、最大迭代次数、误差以及初始化信息素矩阵,并结合神经网络输入层、隐含层和输出层的节点数量确定初始化权值和阈值的数量;然后,将流量时空特征输入到已经构建的三层BP神经网络中(输入层9,隐含层5,输出层1),计算每一个个体的适应度,并将适应度进行降序处理,记录t时刻的个体适应度;接着,根据个体的适应度更新信息素向量矩阵,通过信息素向量矩阵获取转移概率化解矩阵,推动群体向最优路径移动,更新t+1时刻的阈值和权值矩阵,优化种群;最后,判定终止条件,如果某个最优个体迭代次数大于设定的迭代次数,或者最优个体输出的误差小于设定误差,那么停止迭代,输出最优个体的一组权值、阈值,并将其代入到神经网络中进行样本的训练,输出流量异常的概率值,实现流量异常的分类,否则,返回第三步。
对基于物联网流量指纹的安全威胁轻量级检测方法进行实验验证。采用某个区域的LoRa物联网作为试验网,其覆盖半径1.25公里,在此区域内随机部署了200个信息采集节点,本次实验为期2周,使用真实的僵尸网络恶意软件样本mirai来感染若干个设备,并模拟发起ack,scan,syn,udp的网络攻击。本次实验一共收集攻击流量数据集3241条,正常流量数据集7835条。对上述的数据经过数据重构、流量时空特征提取后,获得336个样本数据,其中攻击样本数据为102个,正常样本数据为234,为了实现样本的平衡性,本文将攻击样本数据进行复制,最终攻击样本数据为204个,正常样本数据为234。随机抽取训练数据集和测试数据集,两者比例为3:7。
从图5可以看出,当迭代次数接近100时,检测精度达到99.5%;增加模型的迭代次数,检测精度将逐渐收敛,在迭代次数达到160的时候,模型的检测精度慢慢收敛到98.1%。
图5 迭代次数对应检测精度的变化
在确定最佳迭代次数后(160次),进一步探索本文算法与传统BP神经网络算法在分类方面的准确率。本文算法的样本数据是流量数据的时空特征,传统BP神经网络的样本数据为人工提取流量数据特征。采用随机抽取的方式获取训练数据集和测试数据集,将训练集和测试集划分为3:7,分别形成10个训练集和10个测试集;在此基础上,采用本文的方法和传统BP神经网络方法分别对10个训练集进行模型训练,各自得到10个训练模型;最后把10个测试集分别输入到训练模型中,得到共20个测试集,其准确率如图6所示。
图6 本文算法和传统神经网络训练对比
如图6所示,本文提出的算法在测试数据集上的精确率比传统BP神经网络算法高,这归因于本文的算法除了采用卷积神经网络提取流量的时空特征,还采用蚁群算法优化的方法实现权值和阈值快速寻优,避免检测模型陷入局部最优,从而显著提升了异常流量识别的精度;而传统BP神经网络仅仅采用人工检测的方法进行特征提取,这种方法往往带有人的主观性,其特征无法真实反映设备特征在空间上的关联,因而在训练分类模型的时候,采用随机选取初始权值进行模型拟合,容易陷入局部最优,因此其检测精度不如本文提出的算法。
本文针对传统物联网深度包流量检测效率过低问题,提出一种基于物联网流量指纹的安全威胁轻量级检测方法。该模型在重构流量数据的基础上,结合物联网设备流量数据在时间上和空间上的相关关系,采用轻量级的卷积神经网络提取流量数据的时空特征,降低了流量数据特征提取的计算成本,然后采用蚁群算法优化的BP神经网络实现异常流量的快速检测。实验证明,本文所提出的流量指纹获取方法能够实现轻量级的安全危险检测,在保证检测精度的同时,能够降低对传统经验的依赖,实现更加智能化的安全检测。