物联网设备的异常流量检测方法、系统及存储介质

文档序号:25033397发布日期:2021-05-11 17:04阅读:175来源:国知局
物联网设备的异常流量检测方法、系统及存储介质

本发明涉及网络安全技术领域,特别是一种物联网设备的异常流量检测方法、系统及存储介质。



背景技术:

随着互联网的普及,联网设备的规模一直处于快速增长的状态,小到智能穿戴、家居设备,大到整个工业系统,物联网已经涉及多个领域,以提供高效的协同工作。

然而,由于弱密钥的使用,与互联网/局域网的通讯没有加密,设计存在安全缺陷所导致的安全问题,以及用户的安全意识薄弱等原因,物联网设备容易受到不法分子的恶意入侵。

目前主流的物联网设备流量异常检测方式主要分成2种,一种是针对单个数据包的正常/异常二分类,但这种方法需要提取的特征较多,同时需要对每个包进行检测,成本较高;另一种是针对一段时间内数据流的检测,但大都采用统计特征进行区分,仅存在少量的异常流量时这些特征变化并不明显不足以用来区分。目前主流的基于流量的入侵检测技术难以适用于物联网设备巨大异构性的特点,检测手段缺乏迁移性,且在应对层出不穷的针对物联网设备的新型攻击时无能为力。

异常检测依赖于应用层特定字段的变化量,而现如今越来越多的物联网设备为保护隐私选择采用加密传输,是无法提取到应用层有效负载的特征字段的;其次,从业务分析角度判断异常,需要建立在其业务能够运行且收集到的情况下,若物联网设备受到攻击无法正常工作/发送正常的业务数据流时是无法进行感知和监测的。



技术实现要素:

本发明所要解决的技术问题是,针对现有技术不足,提供一种用范围广且准确率高的物联网设备的异常流量检测方法、系统及存储介质。

为解决上述技术问题,本发明所采用的技术方案是:一种物联网设备的异常流量检测方法,其包括以下步骤:

s1、收集物联网设备的流量数据;

s2、利用步骤s1获取的流量数据,绘制网络流量的信息熵值随物联网设备向远程服务器所发送的数据包序列长度增大的变化曲线;

s3、从所述变化曲线中确定当信息熵值不发生明显变化(即当连续25个信息熵值的前后变化幅度小于原取值的5%时,认为不发生明显变化。原取值是指变化前的值,例如,当取值a到取值b的变化幅度|a-b|<a*0.05时,认为取值b不发生明显变化)时所对应的最小数据包序列长度,记录在当前序列长度下数据包的分布,从而得到当前流量所属的特定设备的流量模式基线;

s4、计算同属于所述特定设备的待测流量的数据包序列与作为该特定设备流量模式基线的数据包序列的dtw距离;

s5、判断所述dtw距离与所设定的距离阈值之间的大小关系,从而实现对物联网设备异常流量的检测。

本发明仅利用数据包长度这一个特征,可以面向加密流量,无需挖掘有效载荷中的特征字段,特征提取成本低;其次,由于dtw的特性,序列中即便只存在少量的异常值,也会导致dtw距离和基线有较大的偏离,即本发明方法检测精确度高,还可以识别未知异常;另外,dtw可以解决对序列长度不相等的时序数据的距离计算,这是由于待测流量与基线的序列长度通常是不相等的,符合物联网设备流量的实际环境。

步骤s2中,所述信息熵值的计算公式为:

其中,p(xi)为随机变量x的取值为xi的概率;n为随机变量x不同取值的个数。计算信息熵的目的在于确定基线,需要保证所提取的特征在作为每种设备的基线时其特征取值(分布)是相对稳定的,而信息熵则是描述特征取值分布的衡量指标,因此本发明需要通过信息熵的计算来确定所提取的序列能否作为基线用于异常检测。

步骤s4中,计算两个数据包序列a和b任意两两分量的距离,所有的距离值构建成大小为m*n的矩阵,dtw距离d(i,j)的计算公式为:

d(i,j)=d(ai,bj)+min{d(i-1,j-1),d(i-1,j),d(i,j-1)};

其中,d(i,j)表示待测流量的数据包序列a的前i个分量和序列b的前j个分量的累加距离;d(ai,bj)为待测流量的数据包序列a的第i个分量和序列b的第j个分量的距离;d(i,j-1)、d(i-1,j)以及d(i-1,j-1)分别表示上一个累加距离是来自相邻的横向、纵向、对角三个方向的累加距离,min表示取三者中的最小值;最终序列a和序列b的dtw距离为d(m,n),m表示序列a的长度,n表示序列b的长度;d(m,n)是d(i,j)的最后一个元素,1≤i≤m,1≤j≤n。

例如,若a=(3,6,6),b=(3,5,6),则距离矩阵为d(3,3)=1,斜对角的距离之和是最短的,该计算公式用于寻找从左上角到右下角最短的距离之和作为两个序列的dtw距离(即d(m,n))。

本发明通过dtw距离计算和阈值判断的方式,解决了有监督机器学习算法无法识别未知异常的问题。在针对两个序列进行距离计算时,解决了当序列长度不同情况下如何进行距离计算的问题。

步骤s5中,若所述dtw距离大于设定的距离阈值γ,则判定存在异常流量。距离阈值γ取值为1.0~5.0。阈值设置过大会造成漏判,设置过小会设置成误判,有时需要根据实际情况进行调整。本发明阈值设定的优势在于只要不符合基线的流量都判定为异常,包括未知的异常,因此可以极大地提高异常流量检测的精度。本发明还提供了一种物联网设备的异常流量检测系统,其包括计算机设备;所述计算机设备被配置或编程为用于执行上述方法的步骤。

本发明还提供了一种计算机可读存储介质,其存储有程序;所述程序被配置为用于执行上述方法的步骤。

与现有技术相比,本发明所具有的有益效果为:本发明将流量数据作为时间序列数据进行处理,巧妙运用时序数据中的相似函数dtw(动态时间归整,dynamictimewarping)来计算异常流量时序数据与正常流量时序数据的偏差,由于dtw的特性,序列中即便只存在少量的异常值,也会导致dtw距离和基线有较大的偏离,即精确度高;同时dtw可以解决对序列长度不相等的时序数据的距离计算,从而实现了物联网设备的异常流量精确检测;本发明方法适用范围广且精确度高,即便存在少量的异常流量也能够进行准确判断,同时还能对未知的流量攻击进行检测。本发明仅利用数据包大小这一个特征,可以面向加密流量,因此无需挖掘载荷中的特征字段,特征提取成本低;另外,无论设备是否可以正常工作,只要设备向外发送数据包,本发明就可以利用这些向外发送的数据流的报头特征进行异常检测。

附图说明

图1为本发明方法的方法流程示意图;

图2为本发明方法一个实施例的信息熵值随数据包序列长度的变化曲线示意图;

图3为triby智能音箱分组序列信息熵随序列长度的变化图;

图4为xiaomi台灯分组序列信息熵随序列长度的变化图;

图5为withings智能体重秤分组序列信息熵随序列长度的变化图;

图6为samsung网关分组序列信息熵随序列长度的变化图。

具体实施方式

如图1所示为本发明方法的方法流程示意图:本发明提供的这种针对物联网设备的异常流量检测方法,包括如下步骤:

s1.收集物联网设备的流量数据;具体为使用tcpdump收集通过安全网关的物联网设备与远程服务器通信的流量数据;

s2.将步骤s1获取的流量数据,绘制网络流量的信息熵值随数据包序列长度增大的变化曲线;具体为每次递增计算信息熵所需的流量的数据包序列长度,将数据包序列的一组特征作为随机变量,并计算该随机变量的信息熵值;

步骤s2所述的绘制网络流量的信息熵值随数据包序列长度增大的变化曲线,具体为每次递增计算信息熵所需的流量的数据包序列长度,将数据包序列的一组特征作为随机变量,并计算该随机变量的信息熵值。

具体实施时,采用如下算式计算信息熵值h(x):

式中p(xi)为随机变量x的取值为xi的概率;n为随机变量x不同取值的个数;计算信息熵值所选择的特征为数据包的大小;通过逐渐延长设备流量的捕获时间,为每个设备所捕获到的流量计算得到随数据包序列长度增大的描述时序数据分布情况的信息熵值序列,绘制自变量为数据包序列长度,因变量为序列信息熵值的变化曲线。

s3.获得设备的流量模式基线;具体为从步骤s2得到的信息熵值随数据包序列长度增大的变化曲线中确定当信息熵值不发生明显变化时所对应的最小数据包序列长度,将该序列长度下数据包的分布作为该设备的流量模式基线。

s4.计算待测流量的数据包序列与步骤s3得到的作为设备流量模式基线的数据包序列的dtw距离;

具体实施时,采用如下算式计算dtw距离d(i,j):

d(i,j)=d(ai,bj)+min{d(i-1,j-1),d(i-1,j),d(i,j-1)}

式中d(ai,bj)为序列a的第i个分量与序列b的第j个分量的距离。

s5.根据步骤s4得到的dtw距离,判断dtw距离与设定的距离阈值之间的大小关系,从而实现物联网设备的异常流量检测;具体为若dtw距离超过设定的距离阈值,则判定存在异常的物联网流量。

以下结合一个实施例,对本发明方法进行进一步说明:

首先,异常检测模型部署在每一个本地的安全网关上,通过在安全网关上运行tcpdump命令捕获设备向远程服务器发送的流量。

然后,对于xiaomi智能台灯设备发出的单向流,每次从流量的数据包序列中按照序列长度递增的规律从序列头部开始取一段子序列,将子序列的一组特征作为随机变量,按照如下计算该随机变量的信息熵然后输出一组随数据包序列长度递增的信息熵值序列并绘制其变化曲线。

接下来,根据所绘制的变化曲线,确定当信息熵值不发生明显变化时所对应的最小数据包序列长度。记录在当前数据包序列长度下数据包的分布,从而得到当前流量所属的特定设备的流量模式基线。

再然后,按照如下计算同属于该设备的待测流量的数据包序列与作为该设备流量模式基线的数据包序列的dtw距离d(i,j)=d(ai,bj)+min{d(i-1,j-1),d(i-1,j),d(i,j-1)},然后得到两个序列间的最短距离d(m,n),m和n分别表示两个序列的长度。

最后,若得到的两个序列间的最短距离d(m,n)大于所设定的距离阈值γ则判定存在异常流量。

本发明实施例选取了四种不同类型、来自不同国家的品牌较有代表性的物联网设备,包括triby智能音箱、xiaomi台灯、withings智能体重秤和samsung网关。本发明绘制网络流量的信息熵值随数据包序列长度增大的变化曲线,计算信息熵值所选择的特征为数据包的大小。然后按照当连续25个信息熵值的前后变化幅度小于原取值的5%的标准确定满足其要求的最小时序数据长度。结果图如图3~图6所示。

triby智能音箱的基线时序数据长度=130;xiaomi台灯的基线时序数据长度=186;withings智能体重秤的基线时序数据长度=361;samsung网关的基线时序数据长度=109。

将上一步所确定的时序数据长度下的数据包分布作为每个设备的分布基线,计算属于同一设备的待测流量的数据包序列与作为该设备流量模式基线的数据包序列的dtw距离,判断dtw距离与所设定的距离阈值之间的大小关系来检测异常。

距离阈值需要提前设定,这里分别为:triby智能音箱的距离阈值=1.5;xiaomi台灯的距离阈值=1.5;withings智能体重秤的距离阈值=2.0;samsung网关的距离阈值=2.0。

本发明测试了上述四种设备在内的496个测试样例,最终的识别准确率达到96.58%,其中误报率约为6.5%,漏报率为0.4%。

作为对比,本发明考虑了目前较为主流的用一段时序数据的统计属性作为特征的异常流量检测方案,为体现出dtw方法的优越性,且能够识别未知的异常流量,本发明保持其他可控因素不变,因此同样仅选择包长这一字段计算其统计属性:最大值、最小值、均值、中位数、方差和标准差6种作为区分正常流量和异常流量的特征,并使用kmeans无监督聚类算法以保证可以识别未知异常,结果显示识别的准确率约为90.15%,其中误报率达到了15.2%。

通过上述对比可知,dtw和kmeans在都能识别未知异常的情况下,dtw比其他检测方法对异常的区分度更高,相比之下异常检测率提高了6%,具有更好的检测性能。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1