APP下载

基于深度包检测及朴素贝叶斯的物联网数据处理系统安全防护系统设计研究

2021-05-07

数字通信世界 2021年4期
关键词:报头贝叶斯报文

(惠州学院网络与信息中心,广东 惠州 516007)

物联网系统多采用MQTT 协议,一旦应用该协议时未进行身份认证,就给攻击者留下通过非法客户端进入MQTT 服务器的漏洞,攻击者可以通过该漏洞获得物联网内部保密数据甚至对其进行篡改,还能够通过编写破坏性控制指令对物联网生产对象和生产器材进行破坏,给物联网带来生产中断、财产损失等威胁。

1 物联网数据处理系统面临的安全问题及应对策略

攻击者通常通过结构符合MQTT 报文规范的伪装报文对物联网局域网络发起攻击,如MQTT 客户端缺乏相应身份认证措施就会被伪装数据包修改协议内容并被攻击者控制。此外,攻击者还可以将入侵主机伪装为客户端及服务器,以此达到修改客户端数据的非法目的。

目前大多数的数据处理服务器只应用了普通防火墙进行简单的系统防护,在面对一般攻击时能够起到一定防护效果,却无法应对较强的攻击。因此在普通防火墙之外为物联网数据处理系统建立更为安全有效的防护系统是非常有必要的。本文设计的物联网数据处理系统安全防护系统包括两个部分:第一部分为基于深度包的数据访问控制子系统,可以专门针对MQTT 协议的应用层实施深度检测;第二部分为基于朴素贝叶斯的异常流量控制子系统,可以针对MQTT 协议下产生的流量进行实时检测。两个子系统同时工作,不但可以防御含有明显异常特征的伪数据包的攻击,还能有效监视隐蔽性较强的、符合MQTT 协议和访问规则的伪数据包。由这两个子系统构成的物联网数据处理系统安全防护体系的架构如图1所示:

图1 由2个子系统组成的物联网数据处理系统安全防护体系

2 基于深度包检测的数据访问控制系统设计

2.1 深度包检测数据访问的模块结构

深度包是对TCP/IP 数据流和应用层协议数据流进行检测的一种控制技术,能够完成对数据流进行读取、分析、对比、归类等操作,在与标准安全对比后判定数据流是否存在异常。该子系统模型如图2所示:

图2 MQTT协议深度包检测模型

在图2中,深度包检测子系统连接了MQTT 的客户端和服务器,实现了对协议完整性、控制报文及其标志位的检测、访问控制策略的制定。其中,协议完整性检测的作用是查验数据控制报文是否与协议相符,形成对数据流是否异常的初步检验。报文及其标志位检测的作用是提取报头信息并对其进行深入分析,为接下来其合法性的判断打好基础。最后通过将控制报文与安全规则进行比对来判断该报文是否符合预定规则。至此,一次完整的MQTT 服务器深度包检测过程结束。

2.2 协议完整性检测

为防止黑客利用伪装客户端与MQTT 服务器连接并发送伪造控制报文,需要查验MQTT 客户端与服务器之间的通信数据是否完整,同时检测报文结构与内容的合法性。该检测包括3个对象:

其一,端口号:IBM 已经将MQTT 服务器目的端口规范为1883号,非此号的报文即具有异常性质。

其二,固定报头:MQTT 报头包括固定报头、可变报头和有效载荷报头。前两者并不是报文中必有的内容,而固定报头必须出现在第1-2字节位置。因此如遇到该字节位置不是固定报头内容的就可以该报文存在异常。

其三,报文长度:第2字节位置的固定报头指定了该报文剩余内容的容量,如两者不相符则可判断该报文存在异常。

2.3 控制报文类型及标志位检测

完整性检测的对象为报文结构,但无法保障报文类型是否正确,因此要通过报文类型及标志位检测对其进行深度判断。MQTT报文类型由位于第1字节的报头控制,取值1-15,如表1所示:

表1 MQTT报文类型及涵义

上表中,数值为1、8、10、12、14的为客户端向服务端传输的报头;2、9、11、13为服务端向客户端传输的报头;3-7位双向报头。每个报头的值都起到控制报文类型的作用。通过报文类型与标志位的对比能够对深度包进行报文检测。

2.4 MQTT 协议深度包检测访问控制

本文采用白名单策略,这样只有完全符合安全规则的数据包才能通过检测并进入数据处理系统内部。该系统包括TCP/IP 数据包的源/目IP 地址检测、目的端口检测、控制报文类型检测和报文类型标志位检测。这些检测项目共同构成了基于MQTT 协议深度包的安全规则流程,可以表示为:

2.5 模块测试

本研究的模块测试包括模块功能验证与模块性能验证两个部分。

首先,对模块功能进行验证。验证方式为先发送正确数据包,通过检测后再发送定向修改数据包,如深度宝检测防火墙能够检测出修改报文的异常,说明模块具备检测异常数据包的功能。检测结果如表2所示:

表2 深度包模块测试结果

而后对模块的性能进行验证。在未添加深度包检测时,防护模块相应平均时间为0.00056s,平均吞吐量为0.198Mb/s;添加深度包检测模块后,防护模块相应平均时间为0.00059s,平均吞吐量为0.190Mb/s。增加深度包模块使系统平均相应时间增加了5.36%,平均吞吐量降低了4.04%,对网络性能影响较小。

3 基于朴素贝叶斯的异常流量控制系统设计

3.1 朴素贝叶斯算法下的异常流量控制原理

贝叶斯定理是朴素贝叶斯算法的原理,该定理是利用条件发生的概率推算分类项目归属不同类别的概率。其原理包括准备、分类器训练和应用这3个步骤。在准备阶段:依照系统要求及工作目的来抽取分类项的特征属性并将这些属性进行分类。此时有一些特征属性较易划分到不同类别中,则可作为训练样本,负责对分类器进行前期训练;而不易被分类的特征属性则将被分类器划分到不同类别中。在分类器训练阶段:通过对训练样本中各类别出现的概率对每个类别的条件概率进行区分。在应用阶段:将上阶段的区分做为基础,对分类学进行分类的预测,该步骤的主要内容是对条件概率计算。

朴素贝叶斯算法包括三个步骤,因此建立在该算法基础上的异常流量监测也分为三个步骤:

(1)准备步骤:将流量分为异常流量和异常流量两类,根据通信协议特征抽取正常/异常流量特征属性。

(2)训练阶段:将大量的通信流量作为训练样本,分别计算正常及异常流量出现的概率,以及每个协议特征属性在正常/异常流量中出现的条件概率。

(3)将陌生数据包中的特征属性作为待测分类项并输入到步骤(2)中的训练器中进行检测。

3.2 MQTT 协议特征属性选择及数据预处理

3.2.1 提取报文特征属性

有效提取MQTT 协议下报文的特征属性是实现朴素贝叶斯算法下的异常流量控制最关键的步骤。首先按照时间顺序每60s 提取一次MQTT 通信流量,尽可能获取更多的正常/异常流量作为训练样本(大小以N代表)。将每个MQTT 数据包中固定报头的控制报文类型及控制其标志位分别记为x1、x2,由此得到该数据包的特征属性向量(i为数据包数量)。

3.2.2 训练样本的预处理

②异常特征属性向量的特征属性包括P(Y=0)对应的x1及x2对应的条件概率:

3.3 朴素贝叶斯算法下的MQTT 协议异常流量检测模型

对于某个待测MQTT 数据包来说,将其固定报头的x1及x2共同作为待分类项X,则有X=[x1,x2]。这个数据包中正常/异常流量出现的概率分别为。根据上文推算的条件概率公式可知:

检测模型可以用图3表示:

图3 基于朴素贝叶斯理论的MQTT异常流量检测流程

3.4 模块测试

选择538个MQTT 控制报文样本,将其中256个报文设置为异常后制作训练器,再对420个未知数据包进行分类。与对控制报文类型及标志位进行检测的方法进行对比,采用基于朴素贝叶斯理论的异常流量检测的结果如表3所示:

表3 不同检测方式对比

通过表3可以看出,利用朴素贝叶斯理论同时检测控制报文类型及控制报文类型标志位,检测正确率可高达92.14%,高于单独检测一项内容;而误报率和漏报率都低于单独检测一项。说明采用该方法能够有效的提升对数据流量的防护效果。

4 结束语

本研究通过基于白名单的深度包检测深度解析MQTT 协议,实现对控制报文完整性、准确性的检测,防止与规则不符的数据包进入物联网数据处理系统;通过基于朴素贝叶斯原理的异常流量检测模块对通信流量进行监控。两种方式共同构建起对物联网数据处理系统的安全防护系统,有效提供全面、稳定的安全防护功能。

猜你喜欢

报头贝叶斯报文
基于J1939 协议多包报文的时序研究及应用
基于贝叶斯定理的证据推理研究
基于贝叶斯解释回应被告人讲述的故事
低轨星座短报文通信中的扩频信号二维快捕优化与实现
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
报业文化中的一道独特风景
租赁房地产的多主体贝叶斯博弈研究
租赁房地产的多主体贝叶斯博弈研究
基于互信息的贝叶斯网络结构学习