CN108366053A - 一种基于朴素贝叶斯的mqtt异常流量检测方法 - Google Patents

一种基于朴素贝叶斯的mqtt异常流量检测方法 Download PDF

Info

Publication number
CN108366053A
CN108366053A CN201810087318.6A CN201810087318A CN108366053A CN 108366053 A CN108366053 A CN 108366053A CN 201810087318 A CN201810087318 A CN 201810087318A CN 108366053 A CN108366053 A CN 108366053A
Authority
CN
China
Prior art keywords
mqtt
data packet
message
characteristic attribute
feature vector
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810087318.6A
Other languages
English (en)
Other versions
CN108366053B (zh
Inventor
郑宏
王斌
辛晓帅
邹见效
何建
徐红兵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN201810087318.6A priority Critical patent/CN108366053B/zh
Publication of CN108366053A publication Critical patent/CN108366053A/zh
Application granted granted Critical
Publication of CN108366053B publication Critical patent/CN108366053B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/30Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/26Special purpose or proprietary protocols or architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Technology Law (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

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

Description

一种基于朴素贝叶斯的MQTT异常流量检测方法
技术领域
本发明属于物联网信息安全技术领域,更为具体地讲,涉及一种基于朴素贝叶斯的MQTT异常流量检测方法。
背景技术
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,是当今物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当作传感器和制动器的通信协议。MQTT协议的安全性对物联网系统非常重要。
然而,MQTT是一种开放协议,它的报文结构和数据格式都是公开的,在没有足够的安全措施下,存在较大的安全隐患,攻击者能够利用符合MQTT协议规则的数据报文实施欺骗性攻击,例如,攻击者能够在MQTT协议报文的传输过程中,利用符合MQTT协议规则的数据包,篡改或者伪造MQTT数据报文,引起系统错误甚至破坏,严重威胁了物联网系统的安全性。若要防范此类欺骗性攻击,需要对MQTT数据内容进行过滤,即对应用层进行深度包过滤。由于欺骗性攻击的数据包是符合MQTT协议规则的,而传统防火墙不能识别,因此无法防范此类攻击。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于朴素贝叶斯的MQTT异常流量检测方法,提取MQTT固定报头中的信息,基于朴素贝叶斯分类器,有效实现MQTT异常流量检测。
为实现上述发明目的,本发明基于朴素贝叶斯的MQTT异常流量检测方法包括以下步骤:
S1:在MQTT通信系统的服务端与客户端之间捕获得到若干组MQTT正常流量和异常流量的数据包,记数据包的数量为N;
S2:对于步骤S1中捕获到的每个数据包,提取MQTT固定报头中控制报文类型记为特征属性x1,提取固定报头中指定控制报文类型的标志位记为特征属性x2,从而得到每个数据包的特征向量Xi=[x1 i,x2 i],其中i=1,2,3,…,N,x1 i和x2 i分别表示第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=[x1 i,x2 i],其中i=1,2,3,…,N,x1 i和x2 i分别表示第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属于类别的概率可以表示为:中,因为分母对于所有的类别均为常数,所以只需要将分子最大化即可,且本发明两个特征属性之间是条件相互独立的,所以有:
根据以上分析,在该分类检测模型中,只需要求出正常流量和异常流量这两个类别中,使值最大的就能划分出该数据包是正常流量或异常流量,将的值称为识别值。也就是说,由于用于分类的两个特征属性之间是相互独立的,所以只要独立地统计在正常和异常流量中两个特征属性出现的频率,就可以计算出待分类的特征属性对正常和异常流量的识别值,识别值最高的即为当前待分类特征属性的所属类别,由此可得到基于朴素贝叶斯分类的异常检测模型。因此接下来需要计算本发明中实现朴素贝叶斯分类器的各项参数:
分别统计N个特征向量中标识Y为1和标识Y为0的特征向量出现的概率,分别记为P(Y=1)和P(Y=0)。
对于标识为1的特征向量,即正常流量对应的特征向量,按照以下公式计算特征属性x1不同取值的条件概率:
其中,j表示特征属性x1的具体取值,j=1,2,3,…,s1,s1表示控制报文类型的数量,目前MQTT协议中定义的控制报文类型数量为16,然而有2个类型为保留类型,因此实际中控制报文类型数量为14。I(·)表示求取布尔值,当括号内表达式为真,则I(·)的值为1,否则为0。
按照以下公式计算特征属性x2不同取值的条件概率:
其中,k表示特征属性x2的具体取值,k=0,1,…,s2-1,s2表示控制报文类型标志位取值的数量,目前MQTT协议中定义的控制报文类型标志位取值的数量为16。
类似地,对于标识为0的特征向量,即异常流量对应的特征向量,按照以下公式计算特征属性x1不同取值的条件概率:
按照以下公式计算特征属性x2不同取值的条件概率:
S205:异常流量检测:
当需要进行异常流量检测时,获取服务端与客户端之间的MQTT数据包,提取出特征向量X′=[x′1,x′2],根据步骤S204得到的朴素贝叶斯分类器的参数,分别计算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协议的通信情况进行仿真,然后使用Linux的netfilter抓取数据包,提取出特征向量。在本次仿真实验中,共获取2000个特征属性向量,其中1143个属于正常流量,857个属于异常流量,计算得到朴素贝叶斯分类器参数。然后提取500个待检测数据包的特征向量,其中273个属于正常流量,剩余为异常流量,采用朴素贝叶斯分类器进行检测。表1是本实施例中500个待检测数据包的检测结果统计表。
准确率 漏报率 误报率
92.40% 3.87% 3.16%
表1
从表1可以看出,无论是从准确率、漏报率还是误报率来评价,本发明都表现出较好的检测效果,具有很高的检测准确率以及较小的漏报和误报率,可见本发明能够有效地检测出异常的MQTT数据流量。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

Claims (1)

1.一种基于朴素贝叶斯的MQTT异常流量检测方法,其特征在于,包括以下步骤:
S1:在MQTT通信系统的服务端与客户端之间捕获得到若干组MQTT正常流量和异常流量的数据包,记数据包的数量为N;
S2:对于步骤S1中捕获到的每个数据包,提取MQTT固定报头中控制报文类型记为特征属性x1,提取固定报头中指定控制报文类型的标志位记为特征属性x2,从而得到每个数据包的特征向量Xi=[x1 i,x2 i],其中i=1,2,3,…,N,x1 i和x2 i分别表示第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表示控制报文类型的数量;
按照以下公式计算特征属性x2不同取值的条件概率:
其中,k表示特征属性x2的具体取值,k=0,1,…,s2-1,s2表示控制报文类型标志位取值的数量;
对于标识为0的特征向量,按照以下公式计算特征属性x1不同取值的条件概率:
按照以下公式计算特征属性x2不同取值的条件概率:
S5:当需要进行异常流量检测时,获取服务端与客户端之间的MQTT数据包,提取出特征向量X′=[x′1,x′2],根据步骤S104得到的朴素贝叶斯分类器的参数,分别计算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),则数据包异常,不允许该数据包通过。
CN201810087318.6A 2018-01-30 2018-01-30 一种基于朴素贝叶斯的mqtt异常流量检测方法 Expired - Fee Related CN108366053B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810087318.6A CN108366053B (zh) 2018-01-30 2018-01-30 一种基于朴素贝叶斯的mqtt异常流量检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810087318.6A CN108366053B (zh) 2018-01-30 2018-01-30 一种基于朴素贝叶斯的mqtt异常流量检测方法

Publications (2)

Publication Number Publication Date
CN108366053A true CN108366053A (zh) 2018-08-03
CN108366053B CN108366053B (zh) 2020-09-18

Family

ID=63007661

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810087318.6A Expired - Fee Related CN108366053B (zh) 2018-01-30 2018-01-30 一种基于朴素贝叶斯的mqtt异常流量检测方法

Country Status (1)

Country Link
CN (1) CN108366053B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110266728A (zh) * 2019-07-17 2019-09-20 杨鲲 基于mqtt消息队列的安全防御及异常检测方法、装置及系统
CN117119022A (zh) * 2023-10-25 2023-11-24 广东百德朗科技有限公司 一种基于mqtt协议的能耗数据处理方法、系统、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546624A (zh) * 2011-12-26 2012-07-04 西北工业大学 一种网络多路入侵检测防御方法及系统
CN103023725A (zh) * 2012-12-20 2013-04-03 北京工业大学 一种基于网络流量分析的异常检测方法
US9129110B1 (en) * 2011-01-14 2015-09-08 The United States Of America As Represented By The Secretary Of The Air Force Classifying computer files as malware or whiteware
CN105376248A (zh) * 2015-11-30 2016-03-02 睿峰网云(北京)科技股份有限公司 一种异常流量的识别方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9129110B1 (en) * 2011-01-14 2015-09-08 The United States Of America As Represented By The Secretary Of The Air Force Classifying computer files as malware or whiteware
CN102546624A (zh) * 2011-12-26 2012-07-04 西北工业大学 一种网络多路入侵检测防御方法及系统
CN103023725A (zh) * 2012-12-20 2013-04-03 北京工业大学 一种基于网络流量分析的异常检测方法
CN105376248A (zh) * 2015-11-30 2016-03-02 睿峰网云(北京)科技股份有限公司 一种异常流量的识别方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110266728A (zh) * 2019-07-17 2019-09-20 杨鲲 基于mqtt消息队列的安全防御及异常检测方法、装置及系统
CN110266728B (zh) * 2019-07-17 2022-03-08 杨鲲 基于mqtt消息队列的安全防御及异常检测方法、装置及系统
CN117119022A (zh) * 2023-10-25 2023-11-24 广东百德朗科技有限公司 一种基于mqtt协议的能耗数据处理方法、系统、设备及介质
CN117119022B (zh) * 2023-10-25 2024-01-30 广东百德朗科技有限公司 一种基于mqtt协议的能耗数据处理方法、系统、设备及介质

Also Published As

Publication number Publication date
CN108366053B (zh) 2020-09-18

Similar Documents

Publication Publication Date Title
Zhang et al. Network intrusion detection: Based on deep hierarchical network and original flow data
CN109547409B (zh) 一种用于对工业网络传输协议进行解析的方法及系统
CN109600363B (zh) 一种物联网终端网络画像及异常网络访问行为检测方法
JP5518872B2 (ja) ネットワーク異常流量分析装置及び方法
Li et al. Using a recurrent neural network and restricted Boltzmann machines for malicious traffic detection
CN102882881B (zh) 针对dns服务的拒绝服务攻击的数据过滤方法
CN109194608B (zh) 一种基于流的DDoS攻击与闪拥事件检测方法
CN113268735B (zh) 分布式拒绝服务攻击检测方法、装置、设备和存储介质
CN102801659A (zh) 一种基于流策略的安全网关实现方法及装置
CN106603326A (zh) 基于异常反馈的NetFlow采样处理方法
CN109768952A (zh) 一种基于可信模型的工控网络异常行为检测方法
CN109462580B (zh) 训练流量检测模型、检测业务流量异常的方法及装置
CN103701814A (zh) 一种基于行为检测实现网络流量识别的方法及装置
CN108366053A (zh) 一种基于朴素贝叶斯的mqtt异常流量检测方法
Chen et al. Sequential message characterization for early classification of encrypted internet traffic
CN108933781A (zh) 用于处理字符串的方法、装置及计算机可读存储介质
CN114091020A (zh) 基于特征分组和多模型融合的对抗攻击防御方法及系统
Xu et al. [Retracted] DDoS Detection Using a Cloud‐Edge Collaboration Method Based on Entropy‐Measuring SOM and KD‐Tree in SDN
CN109728977B (zh) Jap匿名流量检测方法及系统
CN108667804B (zh) 一种基于SDN架构的DDoS攻击检测及防护方法和系统
CN113132391A (zh) 一种用于工控蜜罐的恶意行为识别方法
KR101488271B1 (ko) Ids 오탐 검출 장치 및 방법
Pashamokhtari PhD forum abstract: Dynamic inference on IoT network traffic using programmable telemetry and machine learning
Sivaprasad et al. Machine learning based traffic classification using statistical analysis
Oh et al. Attack Classification Based on Data Mining Technique and Its Application for Reliable Medical Sensor Communication.

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200918

CF01 Termination of patent right due to non-payment of annual fee