一种基于神经网络的物联网设备漏洞挖掘方法技术

技术编号:39400289 阅读:19 留言:0更新日期:2023-11-19 15:53
本发明专利技术公开了一种基于神经网络的物联网设备漏洞挖掘方法,涉及物联网设备漏洞检测技术领域,包括以下步骤:步骤1、收集物联网设备消息序列并进行预处理及标注;步骤2、从所有待变异的消息序列中确定一条进行变异操作的消息;步骤3、确定待变异消息的可变异片段,并执行多种变异策略;步骤4、利用变异片段对物联网设备进行模糊测试,通过对物联网设备的响应进行分类,得到给模糊测试模块的反馈信息。本发明专利技术通过基于注意力机制的变异序列选择可以产生更有效的变异序列,以及基于改进聚类算法的设备响应分类可以减少变异次数,在挖掘漏洞数量、发现程序覆盖路径数量上相较于现有的几种流行的黑盒测试工具都有提升。流行的黑盒测试工具都有提升。流行的黑盒测试工具都有提升。

【技术实现步骤摘要】
一种基于神经网络的物联网设备漏洞挖掘方法


[0001]本专利技术涉及物联网设备漏洞检测
,尤其涉及一种基于神经网络的物联网设备漏洞挖掘方法。

技术介绍

[0002]物联网允许便宜的物联网设备来构建整个网络,但也意味着物联网设备往往缺乏安全性。物联网设备安全是一个独特的挑战,因为设备和系统在性质和能力上存在差异,并且目前对于已部署的物联网代码还没有充分审查,这对整体物联网安全构成了重要风险。同时,物联网设备没有统一规范,厂商之间对于协议也未有统一,没有一个统一的规范将导致漏洞审查的难以进行。
[0003]物联网设备上存在的漏洞由多方面原因引起。物联网设备的固件通常使用C或C++编写程序,这意味着需要特别注意安全问题,包括内存管理、输入验证、缓冲区溢出等。物联网固件通常具有高权限,这使得它们能够控制硬件的运行。如果特定固件的漏洞被攻击者利用,可能会产生严重后果。由于功耗和组件大小的限制,物联网设备往往缺少被认为是非必需的功能或安全防护机制,因此容易受到攻击者的攻击。
[0004]当前针对物联网设备的漏洞检测方法,主要分为静态分析、动态分析以及模糊测试。静态分析和动态分析都需要获取固件源码,才能在此基础上进行漏洞挖掘工作。然而,由于物联网厂商通常不会开源产品的固件代码,这使得基于代码分析的各种动静态分析方法变得困难,效果也不理想。因此,不需要源码的模糊测试已成为物联网设备固件漏洞挖掘的主流方法。而传统的黑盒测试方法缺乏对网络协议和格式的检查,这导致其往往无法探索到物联网设备中足够多的程序执行路径。r/>[0005]此外,模糊测试过程中需要随机地对消息序列进行变化,这会导致产生过多无效的测试案例,需要一种有针对性地变异算法来提升变异序列的有效性,同时覆盖更多物联网设备的程序执行路径。并且,模糊测试产生的新的变异信息应该覆盖更多的测试方向,避免在已经测试过的执行路径上重复测试,重复的变异信息会影响模糊测试的效率和结果。
[0006]因此,本领域的技术人员致力于开发一种基于神经网络的物联网设备漏洞挖掘方法,能够对网络协议和格式进行检查,能够产生更有效的变异序列,可以减少变异次数,提高黑盒测试效率。

技术实现思路

[0007]有鉴于现有技术的上述缺陷,本专利技术所要解决的技术问题是如何探索到物联网设备中足够多的程序执行路径,如何提升变异序列的有效性,并且避免在已经测试过的执行路径上重复测试。
[0008]为实现上述目的,本专利技术提供了一种基于神经网络的物联网设备漏洞挖掘方法,所述方法包括以下步骤:
[0009]步骤1、收集物联网设备消息序列并进行预处理及标注;
[0010]步骤2、从所有待变异的消息序列中确定一条进行变异操作的消息;
[0011]步骤3、确定待变异消息的可变异片段,并执行多种变异策略;
[0012]步骤4、利用变异片段对物联网设备进行模糊测试,通过对物联网设备的响应进行分类,得到给模糊测试模块的反馈信息。
[0013]进一步地,所述步骤1还包括:
[0014]步骤1.1、通过物联网厂商开源API、第三方库和通信数据抓包获取物联网设备通信消息序列;
[0015]步骤1.2、从开源API与第三方库中收集到的消息序列,直接获取其协议与格式;对通过通信数据抓包获取的通信数据的协议和数据格式进行识别,通过第三方工具解析通信数据网络协议,并提取相对应的语义特征;如果无法识别协议类型时,将协议标记为未知协议,使用标准库完成JSON和XML格式识别,无法识别的部分使用启发式编码识别器识别编码格式,并对其进行解码;
[0016]步骤1.3、将所述步骤1.2获取的消息序列标注为合法的输入样本,对合法的输入样本进行逐字节变异,变异的消息序列被输入到物联网设备,如果物联网设备响应“error”或没有响应,将其标注为非法的输入样本。
[0017]进一步地,所述步骤2还包括:
[0018]步骤2.1、使用双元模型测量输入字节序列之间的差异,假设一段输入则由输入引发的结果的概率p(x),p(x)等效于在输入序列池中x出现的次数c(x),最小概率公式如下所示:
[0019][0020]步骤2.2、根据双元模型的计算结果,概率最小即score
min
最小的为下一个变异的序列。
[0021]进一步地,所述步骤3还包括:
[0022]步骤3.1、将选择的待变异消息序列输入神经网络模型,输出消息序列中各字节的相关性分数和分类结果;
[0023]步骤3.2、根据神经网络模型得到消息序列与其相关性分数,通过滑动窗口查找片段中相关性分数相近的相邻字节,将他们视为一个连续的片段并进行记录,如果此片段的平均相关性分数为低相关性分数,则将其从消息序列中删掉后重新进行变异片段的查找,返回所有记录的片段以进行变异;
[0024]步骤3.3、在确定变异的片段后,通过置空、字节复制、数据边界、特殊字符和字符替换方式进行片段变异。
[0025]进一步地,所述神经网络模型由一个LSTM网络与一个全连接网络连接而成;LSTM网络在提取输入序列的特征的同时,通过注意力机制计算输出序列中各字节的相关性分数;全连接网络输出分类结果。
[0026]进一步地,所述注意力机制的计算公式如下所示:
[0027][0028][0029]式中,函数g为LSTM网络,函数f为全连接网络,δ为训练过程中确定的参数;为了约束损失函数计算中使用Softmax函数作为函数g的激活函数;在LSTM网络中,使用形状为(70,128,0)的输入,随后通过一层输入维度为128,隐含层中隐含节点的个数为128,LSTM层数为1,单向传播的LSTM网络;将LSTM网络的输出通过Softmax函数得到注意力机制对应的相关性分数后,将相关性分数与输入向量的乘积之和通过节点个数分别为128与32的全连接层,全连接层中包含Droupout层防止模型过拟合。
[0030]进一步地,所述分类结果为变异后消息序列是否通过设备格式检查,如果不通过设备格式检查则丢弃该条消息,不执行后续的程序。
[0031]进一步地,所述步骤4还包括步骤:
[0032]步骤4.1、将变异后的片段发送到物联网设备中,获取物联网设备响应,判断是否触发潜在漏洞;
[0033]步骤4.2、将响应矢量化为自相似性分数、响应总长度、符号数量、成对出现符号数量、单词数量和数字数量,使用改进的层次聚类算法将收到的物联网设备响应同响应池中的所有响应进行分类,判别该响应是否是一个新的响应类型;
[0034]步骤4.3、如果该响应为新类,则继续在该序列上进行模糊测试;如果不为新类,则反馈给模糊测试模块不再对该消息继续进行模糊测试;
[0035]步骤4.4、输出本次模糊测试结果。
[0036]进一步地,所述改进的层次聚类算法具体为:每个数据点被分配给一个单独的集群,每个集群只包含一个数据点,计算每个集群的质心,在每层迭代中找出最小平均连接距离的两个本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于神经网络的物联网设备漏洞挖掘方法,其特征在于,所述方法包括以下步骤:步骤1、收集物联网设备消息序列并进行预处理及标注;步骤2、从所有待变异的消息序列中确定一条进行变异操作的消息;步骤3、确定待变异消息的可变异片段,并执行多种变异策略;步骤4、利用变异片段对物联网设备进行模糊测试,通过对物联网设备的响应进行分类,得到给模糊测试模块的反馈信息。2.如权利要求1所述的基于神经网络的物联网设备漏洞挖掘方法,其特征在于,所述步骤1还包括:步骤1.1、通过物联网厂商开源API、第三方库和通信数据抓包获取物联网设备通信消息序列;步骤1.2、从开源API与第三方库中收集到的消息序列,直接获取其协议与格式;对通过通信数据抓包获取的通信数据的协议和数据格式进行识别,通过第三方工具解析通信数据网络协议,并提取相对应的语义特征;如果无法识别协议类型时,将协议标记为未知协议,使用标准库完成JSON和XML格式识别,无法识别的部分使用启发式编码识别器识别编码格式,并对其进行解码;步骤1.3、将所述步骤1.2获取的消息序列标注为合法样本,对合法样本进行逐字节变异,变异的消息序列被输入到物联网设备,如果物联网设备响应“error”或没有响应,将其标注为非法样本。3.如权利要求2所述的基于神经网络的物联网设备漏洞挖掘方法,其特征在于,所述步骤2还包括:步骤2.1、使用双元模型测量输入字节序列之间的差异,假设一段输入则由输入引发的结果的概率p(x),p(x)等效于在输入序列池中x出现的次数c(x),最小概率公式如下所示:步骤2.2、根据双元模型的计算结果,概率p(x)最小即score
min
最小的为下一个变异的序列。4.如权利要求3所述的基于神经网络的物联网设备漏洞挖掘方法,其特征在于,所述步骤3还包括:步骤3.1、将选择的待变异消息序列输入神经网络模型,输出消息序列中各字节的相关性分数和分类结果;步骤3.2、根据神经网络模型得到消息序列与其相关性分数,通过滑动窗口查找片段中相关性分数相近的相邻字节,将他们视为一个连续的片段并进行记录,如果此片段的平均相关性分数为低相关性分数,则将其从消息序列中删掉后重新进行变异片段的查找,返回所有记录的片段以进行变异;步骤3.3、在确定变异的片段后,通过置空、字节复制、数据边界、特殊字符和字符替换方式进行片段变异。
5.如权利要求4所述的基...

【专利技术属性】
技术研发人员:邹福泰胡钺琳郑天铭黄弘骏吴越
申请(专利权)人:上海交通大学
类型:发明
国别省市:

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

1