CN108366053A - 一种基于朴素贝叶斯的mqtt异常流量检测方法 - Google Patents
一种基于朴素贝叶斯的mqtt异常流量检测方法 Download PDFInfo
- 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
- abnormal
- feature vector
- characteristic attribute
- 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
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 29
- 230000002547 anomalous effect Effects 0.000 title abstract 2
- 230000002159 abnormal effect Effects 0.000 claims abstract description 42
- 239000013598 vector Substances 0.000 claims abstract description 23
- 239000000284 extract Substances 0.000 claims abstract description 17
- 238000004891 communication Methods 0.000 claims abstract description 8
- 238000000034 method Methods 0.000 claims description 5
- 238000013398 bayesian method Methods 0.000 claims description 2
- 230000001568 sexual effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013145 classification model Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/30—Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/26—Special 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(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),则数据包异常,不允许该数据包通过。
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)
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)
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 | 睿峰网云(北京)科技股份有限公司 | 一种异常流量的识别方法及装置 |
-
2018
- 2018-01-30 CN CN201810087318.6A patent/CN108366053B/zh not_active Expired - Fee Related
Patent Citations (4)
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)
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 |
---|---|---|
CN110597734B (zh) | 一种适用于工控私有协议的模糊测试用例生成方法 | |
CN101895521B (zh) | 一种网络蠕虫检测与特征自动提取方法及其系统 | |
US8483056B2 (en) | Analysis apparatus and method for abnormal network traffic | |
CN104519031B (zh) | 一种用于恶意网络行为检测的方法和装置 | |
CN103577835B (zh) | 采用多维特征向量检测ip id隐信道的方法 | |
Jongsuebsuk et al. | Real-time intrusion detection with fuzzy genetic algorithm | |
CN110505179A (zh) | 一种网络异常流量的检测方法及系统 | |
CN109768981B (zh) | 一种在sdn架构下基于机器学习的网络攻击防御方法和系统 | |
CN112600792B (zh) | 一种物联网设备的异常行为检测方法及系统 | |
CN108055228B (zh) | 一种智能电网入侵检测系统及方法 | |
CN111107077B (zh) | 一种基于svm的攻击流量分类方法 | |
CN110768946A (zh) | 一种基于布隆过滤器的工控网络入侵检测系统及方法 | |
CN107172058B (zh) | 一种基于流数据分析的Web攻击实时在线检测系统 | |
CN108600003A (zh) | 一种面向视频监控网络的入侵检测方法、装置及系统 | |
CN115396204A (zh) | 一种基于序列预测的工控网络流量异常检测方法及装置 | |
CN110351291A (zh) | 基于多尺度卷积神经网络的DDoS攻击检测方法及装置 | |
US20230156034A1 (en) | Real-time threat detection for encrypted communications | |
CN109462580B (zh) | 训练流量检测模型、检测业务流量异常的方法及装置 | |
CN110798463A (zh) | 基于信息熵的网络隐蔽信道的检测方法及装置 | |
CN108847983B (zh) | 基于mqtt协议的入侵检测方法 | |
CN108366053B (zh) | 一种基于朴素贝叶斯的mqtt异常流量检测方法 | |
CN111327592B (zh) | 网络监测方法及相关装置 | |
CN108833430A (zh) | 一种软件定义网络的拓扑保护方法 | |
CN110289992B (zh) | 一种报文处理方法及装置 | |
CN109257384B (zh) | 基于访问节奏矩阵的应用层DDoS攻击识别方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200918 |