一种基于朴素贝叶斯的MQTT异常流量检测方法技术

技术编号:18599852 阅读:36 留言:0更新日期:2018-08-04 21:05
本发明专利技术公开了一种基于朴素贝叶斯的MQTT异常流量检测方法,首先在MQTT通信系统的服务端与客户端之间捕获得到若干组MQTT正常流量和异常流量的数据包,提取出每个数据包中MQTT固定报头中控制报文类型和指定控制报文类型的标志位构成特征向量,然后计算得到朴素贝叶斯分类器的各项参数,当需要进行异常流量检测时,获取服务端与客户端之间的MQTT数据包,提取出特征向量,根据朴素贝叶斯分类器的参数计算得到该数据包属于正常流量和异常流量的识别值,取较大值对应的类型作为检测结果。本发明专利技术提取MQTT固定报头中控制报文类型和指定控制报文类型的标志位构成特征向量,利用朴素贝叶斯分类器构建异常流量检测模型,具有良好的检测性能,可以有效防范欺骗性攻击。

An anomaly traffic detection method based on Naive Bayes for MQTT

The invention discloses a MQTT anomaly traffic detection method based on Naive Bayes. First, it captures a number of packets of MQTT normal traffic and abnormal traffic between the server side and the client of the MQTT communication system, and extracts the standard of the control message type and the specified control message type in the MQTT fixed header in each packet. The feature vector is formed, and then the parameters of the simple Bias classifier are obtained. When the abnormal flow detection is needed, the MQTT packets between the server and the client are obtained. The feature vectors are extracted. According to the parameters of the simple Bias classifier, the packet belongs to the normal flow and abnormal flow. The corresponding value of the recognition value is taken as the detection result. The invention extracts the feature vectors of the MQTT fixed header to control the message type and the type of the control message, and constructs the abnormal traffic detection model using the simple Bias classifier. It has good detection performance and can effectively prevent deception attack.

【技术实现步骤摘要】
一种基于朴素贝叶斯的MQTT异常流量检测方法
本专利技术属于物联网信息安全
,更为具体地讲,涉及一种基于朴素贝叶斯的MQTT异常流量检测方法。
技术介绍
MQTT(MessageQueuingTelemetryTransport,消息队列遥测传输)是IBM开发的一个即时通讯协议,是当今物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当作传感器和制动器的通信协议。MQTT协议的安全性对物联网系统非常重要。然而,MQTT是一种开放协议,它的报文结构和数据格式都是公开的,在没有足够的安全措施下,存在较大的安全隐患,攻击者能够利用符合MQTT协议规则的数据报文实施欺骗性攻击,例如,攻击者能够在MQTT协议报文的传输过程中,利用符合MQTT协议规则的数据包,篡改或者伪造MQTT数据报文,引起系统错误甚至破坏,严重威胁了物联网系统的安全性。若要防范此类欺骗性攻击,需要对MQTT数据内容进行过滤,即对应用层进行深度包过滤。由于欺骗性攻击的数据包是符合MQTT协议规则的,而传统防火墙不能识别,因此无法防范此类攻击。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供一种基于朴素贝叶斯的MQTT异常流量检测方法,提取MQTT固定报头中的信息,基于朴素贝叶斯分类器,有效实现MQTT异常流量检测。为实现上述专利技术目的,本专利技术基于朴素贝叶斯的MQTT异常流量检测方法包括以下步骤:S1:在MQTT通信系统的服务端与客户端之间捕获得到若干组MQTT正常流量和异常流量的数据包,记数据包的数量为N;S2:对于步骤S1中捕获到的每个数据包,提取MQTT固定报头中控制报文类型记为特征属性x1,提取固定报头中指定控制报文类型的标志位记为特征属性x2,从而得到每个数据包的特征向量Xi=[x1i,x2i],其中i=1,2,3,…,N,x1i和x2i分别表示第i个数据包的特征属性x1和x2的取值;S3:对于每个特征向量Xi,如果对应数据包属于正常流量,令其标识Yi=1,如果对应数据包属于异常流量,令其标识Yi=0;S4:采用以下方法计算得到朴素贝叶斯分类器的各项参数:分别统计N个特征向量中标识Y为1和标识Y为0的特征向量出现的概率,分别记为P(Y=1)和P(Y=0);对于标识为1的特征向量,按照以下公式计算特征属性x1不同取值的条件概率:其中,j表示特征属性x1的具体取值,j=1,2,3,…,s1,s1表示控制报文类型的数量;I(·)表示求取布尔值,当括号内表达式为真,则I(·)的值为1,否则为0;按照以下公式计算特征属性x2不同取值的条件概率:其中,k表示特征属性x2的具体取值,k=0,1,…,s2-1,s2表示控制报文类型标志位取值的数量;对于标识为0的特征向量,按照以下公式计算特征属性x1不同取值的条件概率:按照以下公式计算特征属性x2不同取值的条件概率:S5:当需要进行异常流量检测时,获取服务端与客户端之间的MQTT数据包,提取出特征向量X′=[x′1,x′2],根据步骤S4得到的朴素贝叶斯分类器的参数,分别计算P(h)=P(x′1|Y=1)P(x′2|Y=1)P(Y=1)和P(s)=P(x′1|Y=0)P(x′2|Y=0)P(Y=0),然后比较P(h)和P(s)的大小,如果P(h)≥P(s),则数据包正常,允许该数据包通过;若P(h)<P(s),则数据包异常,不允许该数据包通过。本专利技术基于朴素贝叶斯的MQTT异常流量检测方法,首先在MQTT通信系统的服务端与客户端之间捕获得到若干组MQTT正常流量和异常流量的数据包,提取出每个数据包中MQTT固定报头中控制报文类型和指定控制报文类型的标志位构成特征向量,然后计算得到朴素贝叶斯分类器的各项参数,当需要进行异常流量检测时,获取服务端与客户端之间的MQTT数据包,提取出特征向量,根据朴素贝叶斯分类器的参数计算得到该数据包属于正常流量和异常流量的识别值,取较大值对应的类型作为检测结果。本专利技术具有以下技术效果:1)本专利技术直接应用于MQTT客户端与服务端之间,且无需改变物联网系统网络拓扑结构,实现对客户端与服务端之间的异常流量检测;2)本专利技术提取MQTT固定报头中控制报文类型和指定控制报文类型的标志位构成特征向量,利用朴素贝叶斯分类器构建异常流量检测模型,具有良好的检测性能,可以有效防范欺骗性攻击。附图说明图1是MQTT协议的固定报头结构图;图2是本专利技术基于朴素贝叶斯的MQTT异常流量检测方法的具体实施方式流程图。具体实施方式下面结合附图对本专利技术的具体实施方式进行描述,以便本领域的技术人员更好地理解本专利技术。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本专利技术的主要内容时,这些描述在这里将被忽略。实施例为了更好地说明本专利技术的技术方案,首先对MQTT协议进行简要说明。图1是MQTT协议的固定报头结构图。如图1所示,MQTT协议的固定报头由两个字节组成(第1个字节byte1和和第2个字节byte2),其中第1个字节byte1的二进制位7-4表示控制报文类型,二进制位3-0表示用来指定控制报文类型的标志位;第2个字节byte2表示当前报文剩余部分的字节数。MQTT通信系统通常包含一个服务端和多个客户端,本专利技术就是在服务端和客户端之间捕获数据包,提取出其中的控制报文类型和指定控制报文类型的标志位,基于朴素贝叶斯分类模型,实现MQTT异常流量检测。图2是本专利技术基于朴素贝叶斯的MQTT异常流量检测方法的具体实施方式流程图。如图2所示,本专利技术基于朴素贝叶斯的MQTT异常流量检测方法的具体步骤包括:S201:捕获数据包:在MQTT通信系统的服务端与客户端之间捕获得到若干组MQTT正常流量和异常流量的数据包,记数据包的数量为N。本实施例中利用Linux的Netfilter在1883端口进行抓取。S202:提取数据包特征向量:对于步骤S201中捕获到的每个数据包,提取MQTT固定报头中控制报文类型(即第1个字节中第7到第4二进制位的值)记为特征属性x1,提取固定报头中指定控制报文类型的标志位(即第1个字节中二进制位3-0的值)记为特征属性x2,从而得到每个数据包的特征向量Xi=[x1i,x2i],其中i=1,2,3,…,N,x1i和x2i分别表示第i个数据包的特征属性x1和x2的取值。S203:标记特征向量的标签:对于每个特征向量Xi,如果对应数据包属于正常流量,令其标识Yi=1,如果对应数据包属于异常流量,令其标识Yi=0。S204:计算朴素贝叶斯分类器参数:对于本专利技术而言,检测模型可以定义为:已知集合X={x1,x2},其中,Y为类别集合,它的每一个元素是一个类别,本专利技术中有两种类别,即表示异常流量类别,表示正常流量类别;X为待检测项,本专利技术中X中的每一项为一个特征参量,即从MQTT数据包中提取的x1、x2两个特征属性。有映射规则Y=f(X),对于任意xi∈X有且仅有一个使得成立。f称为分类器,创建检测模型的任务就是构造分类器f。本专利技术中采用朴素贝叶斯分类器,需要计算得到各项参数。根据朴素贝叶斯算法,待分类项X属于类别的概率可以表示为:在中,因为分母对于所有的类别均为常数,所以只需要将分子最大化即可,且本专利技术两个特征属性之间是条件相互独本文档来自技高网...

【技术保护点】
1.一种基于朴素贝叶斯的MQTT异常流量检测方法,其特征在于,包括以下步骤:S1:在MQTT通信系统的服务端与客户端之间捕获得到若干组MQTT正常流量和异常流量的数据包,记数据包的数量为N;S2:对于步骤S1中捕获到的每个数据包,提取MQTT固定报头中控制报文类型记为特征属性x1,提取固定报头中指定控制报文类型的标志位记为特征属性x2,从而得到每个数据包的特征向量Xi=[x1i,x2i],其中i=1,2,3,…,N,x1i和x2i分别表示第i个数据包的特征属性x1和x2的取值;S3:对于每个特征向量Xi,如果对应数据包属于正常流量,令其标识Yi=1,如果对应数据包属于异常流量,令其标识Yi=0;S4:采用以下方法计算得到朴素贝叶斯分类器的各项参数:分别统计N个特征向量中标识Y为1和标识Y为0的特征向量出现的概率,分别记为P(Y=1)和P(Y=0);对于标识为1的特征向量,按照以下公式计算特征属性x1不同取值的条件概率:

【技术特征摘要】
1.一种基于朴素贝叶斯的MQTT异常流量检测方法,其特征在于,包括以下步骤:S1:在MQTT通信系统的服务端与客户端之间捕获得到若干组MQTT正常流量和异常流量的数据包,记数据包的数量为N;S2:对于步骤S1中捕获到的每个数据包,提取MQTT固定报头中控制报文类型记为特征属性x1,提取固定报头中指定控制报文类型的标志位记为特征属性x2,从而得到每个数据包的特征向量Xi=[x1i,x2i],其中i=1,2,3,…,N,x1i和x2i分别表示第i个数据包的特征属性x1和x2的取值;S3:对于每个特征向量Xi,如果对应数据包属于正常流量,令其标识Yi=1,如果对应数据包属于异常流量,令其标识Yi=0;S4:采用以下方法计算得到朴素贝叶斯分类器的各项参数:分别统计N个特征向量中标识Y为1和标识Y为0的特征向量出现的概率,分别记为P(Y=1)和P(Y=0);对于标识为1的特征向量,按照以下公式计算特征属性x1不同...

【专利技术属性】
技术研发人员:郑宏王斌辛晓帅邹见效何建徐红兵
申请(专利权)人:电子科技大学
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1