于刘
(上海航空工业(集团)有限公司,上海 201206)
物联网[1]大力发展的同时,也在承受着来自非法访问带来的安全威胁,因此极易出现信息泄露的问题。非法访问者围绕脆弱点构建隐蔽缓存信道,窃取用户终端中存储的敏感信息[2]以及往来机密信息,包括智能手机、电脑、电动汽车等,对用户信息安全造成了极大的威胁。面对这种情况,准确识别出物联网终端信道连续数据流脆弱点,对加强网络防护,预防非法入侵和访问具有重要的现实意义。
数据流脆弱点识别本质上属于入侵检测的一种,即根据采集到的数据,挖掘数据特征,针对特征进行分类识别,判断终端节点是否为脆弱点。在数据流脆弱点识别过程中,相关学者提出了支持向量机识别方法[3]、神经网络识别方法[4]以及聚类分析识别方法[5]等。受到算法本身的限制,上述方法虽然能够实现脆弱点识别,但是由于物联网终端信号数据流数据量大,识别速度很难跟上数据流产生速度,存在一定的延迟。为此,提出物联网终端信道连续数据流脆弱点快速识别方法,以期为保证用户信息安全提供可参考的防护方法,提高物联网的安全性能。
将数据流看作是物联网终端状态的一种隐性表征,根据数据流可以判断物联网终端节点当下所处的状态,以此识别是否存在异常。在脆弱点快速识别中,第一步是通过两个子步骤获取物联网终端信道连续数据流,子步骤一是选择要识别的物联网区域[6],然后明确物联网拓扑结构和节点分布情况,在此基础上构建物联网终端节点之间通信传输信道模型;子步骤二是使用SNMP 协议来实现数据流捕捉。具体捕捉过程如下:
步骤一:初始化参数。
步骤二:定期采集开始。
步骤三:判断是否到达定时采集时间,若没有,继续采集;否则,进行下一步。
步骤四:设置要采集的物联网终端设备IP 地址和访问团体名。
步骤五:设置物联网终端设备相应接口当前要读取的MIB 变量的OID 值。
步骤六:构造请求报文并发送。
步骤七:使用SNMP 协议取得当前设备相应接口某个MIB 的测量值。
步骤八:判断是否完成物联网终端信道连续数据流捕捉,若完成,存入数据库;否则回到步骤五。
基于上述过程完成物联网终端信道连续数据流捕捉。
采用SNMP 协议捕捉到的物联网终端信道连续数据流属性具有很强的连续性,降低了后续分析的时空效率。面对这种情况,需要对物联网终端信道连续数据流进行离散化处理[7-8],在不改变数据相对大小的条件下压缩数据大小,具体流程如图1 所示。
图1 连续数据流离散化处理流程
经过图1 离散化处理过程,对物联网终端信道连续数据流的离散化[9-10],能够有效降低数据流时间和空间的复杂度,方便后期的处理和运算,从而提高脆弱点识别速度。
特征提取是脆弱点识别前最关键的一步。提取到的特征是对物联网终端信道数据流的一种描述,一种特征只能描述一个方面,因此其包含的信息量有限。为保证脆弱点识别的准确性,所提方法选取四类特征作为特征,分别为属性信息熵、流入流出比、平均流长及单边连接密度。
1)属性信息熵
物联网终端信道数据流中包括的属性信息有很多,所提方法选择源IP 地址、目的IP 地址、源端口和目的端口四种属性计算其信息熵。通过信息熵可以了解到物联网终端信道数据流的分布情况。该特征提取公式如下:
式中,H(ai) 为第i个特征属性的信息熵[11-12];ai(t)为一段时间内第i个特征属性出现的频率;A(t)为一段时间内第i个特征属性出现的频率和;n为特征属性量;T为时间长度。
2)流入流出比
流入流出比是指一段时间内流入和流出某终端信道的数据流数量之比,公式如下:
3)平均流长
平均流长是指数据流中包含的报文个数的平均值,提取公式如下:
式中,Cj(t)为一段时间内终端信道j数据流的平均流长;cj(t)、分别为一段时间内数据流流入、流出终端信道j的总报文数。
4)单边连接密度
单边连接密度是指物联网中没有建立正常通信连接的数据包数目mj(t)占总数据包数目Mj(t)的百分比。计算公式如下:
式中,Dj(t)为单边连接密度。
不同特征之间的量纲不同[13-14],无法进行统一运算,因此需要进行归一化处理,记为Y={H1,H2,H3,H4,B,C,D}。
基于上述的研究成果,以提取到的特征为输入,结合支持向量(Support Vector Machine,SVM)和人工神经网络(Artificial Neural Network,ANN)[15]两种算法识别物联网终端脆弱点。利用前一种算法的二分类确定物联网终端节点是否为脆弱点,利用后一种进一步识别,确定节点的脆弱程度。
无论是SVM 还是ANN 都需要通过训练样本进行训练,训练后得到的第i种类别概率为:
式中,H()为点积运算;xi为特征值,bi为期望输出;vi为引入拉格朗日乘子。
由于SVM 是二分类[16],因此通过两类所占概率值(Q1,Q2)描述,Q1和Q2分别代表非脆弱点概率值(1,0)、脆弱点概率值(0,1),即哪个类别概率越接近1,SVM 就认为所属哪个类别。
在确定物联网终端节点是否为脆弱点的基础上,利用ANN 确定该点的脆弱程度。模型如下:
式中,wi代表连接权值;xi代表特征信息;r代表连接阈值。
由于脆弱性是一个状态描述,同理上述,通过概率值量化结果如下:较脆弱(0,0,1),明显脆弱(0,1,0),严重脆弱(1,0,0)。同上述,哪个类别概率越接近1,脆弱点就认为所属哪个脆弱等级。
以某一物联网区域为例,该区域中共有225 个终端节点,已知其中152 个为非脆弱点,其余73 个为脆弱点。73 个脆弱点中有35 个较脆弱点、23 个明显脆弱点、15 个严重脆弱点。运行10 min 后,利用SNMP 协议捕捉225 个终端节点信道连续数据流并进行离散化,组成数据流样本。
提取225 个终端节点信道连续数据流的四个属性信息熵、流入流出比、平均流长及单边连接密度并进行归一化处理。以其中10 个节点作为提取示例,结果如表1 所示。
表1 数据流特征及其归一化结果示例
以识别质量指数作为方法性能的评价指标,识别质量指数通过识别结果的混淆矩阵计算得出,计算公式如下:
式中,J为识别质量指数;s为方法识别结果;s′为实际结果;IoU(s,s′)为s、s′的交并比;TP、FP、FN分别为真阳性、假阳性、假阴性。
另一个指标是时间复杂度,时间复杂度越小,方法识别速度越快。
利用所提方法以及三种对比方法(支持向量机识别方法、神经网络识别方法以及聚类分析识别方法)进行脆弱点识别。根据识别结果和识别过程计算识别质量指数和统计时间复杂度,结果如图2、3所示。
图2 识别质量指数对比图
从图2 和图3 中可以看出,所提方法的识别质量指数要大于、时间复杂度要小于支持向量机识别方法、神经网络识别方法以及聚类分析识别方法的应用结果,由此说明所提方法的识别准确性更高,速度更快。
图3 时间复杂度对比图
受物联网终端本身以及通信环境的限制,很多终端节点是脆弱点,很容易被攻击,成为入侵的切入口。在该背景下,提出物联网终端信道连续数据流脆弱点快速识别方法。通过对数据流的分析提取其特征,利用综合算法识别连续数据流脆弱点。对所提方法进行验证,通过计算识别结果的识别质量指数和时间复杂度验证了方法的有效性,证明了所提方法具有较高的脆弱点识别性能。