一种基于区块链技术的分布式协同物联网异常检测方法与流程

文档序号:17694460发布日期:2019-05-17 21:21阅读:842来源:国知局
一种基于区块链技术的分布式协同物联网异常检测方法与流程

本发明涉及互联网底层技术领域,尤其涉及一种基于区块链技术的分布式协同物联网异常检测方法。



背景技术:

物联网(iot)设备已成为日常生活的核心,但是往往有许多漏洞可以被攻击者利用。无监督技术(例如异常检测)虽然可以帮助我们保护物联网设备,但必须长时间训练异常检测模型以捕获所有良性行为。而且这种方法容易受到对抗性攻击,因为在训练异常检测模型时,所有观察都被认为是良性的。如果异常检测模型仅针对少数设备的观察进行训练,则可能会出现误报。如发明专利申请cn201711032284.2“基于one-hot编码机制的无监督异常访问检测方法及装置”存在上述问题。

基于上述背景,提出了一个轻量级、可拓展的框架,基于区块链技术再资源有限的物联网设备上执行分布式和协作异常检测方法。所有相同类型的物联网设备同时开始基于他们自己的本地观察到的行为来训练他们自己的异常检测模型。



技术实现要素:

本发明针对现有技术存在的问题,提出了一种基于区块链技术的分布式协同物联网异常检测方法,使用区块链协议在相同类型的设备之间协作,通过将本地训练的模型合并为单个全局模型来创建可信异常检测模型。数据块是来自不同设备的一组本地训练的模型,每个设备通过合并模型和执行自我证明来验证正在进行的数据块的完整性。

本发明是通过以下技术方案得以实现的:

本发明一种基于区块链技术的分布式协同物联网异常检测方法,包括:

创建模型:物联网设备创建本地异常检测模型ml;

收集情报:物联网设备收集本地应用程序并利用本地异常检测模型ml检测本地应用程序是否有异常,若本地异常检测模型ml未发出警报,则更新本地异常检测模型;

发送情报:物联网设备向链的部分区块添加ml,将添加ml的链发送到区块链网络,以广播方式广播给区块链网络的其他物联网设备;

接收情报:其他物联网设备在验证添加ml的链符合接收条件时,则其他物联网设备的链中的块被发送来添加ml的链的块全部替换,否则其他物联网设备的链中的块被发送来添加ml的链的部分块局部替换;

共享情报:物联网设备将更新的本地链的报告以广播方式广播给区块链网络的其他物联网设备。

作为优选,所述收集情报步骤还包括:检测本地异常检测模型ml是否为从链中下载的组合模型,若是则执行本地异常检测模型ml,否则对本地异常检测模型ml进行训练,在训练一定时间后执行本地异常检测模型ml。

作为优选,所述发送情报步骤中广播由物联网设备的私钥签名后广播给其他物联网设备;所述接收情报步骤通过公钥解密接收的情报。

作为优选,所述接收情报步骤具体包括:

其他物联网设备接收到链时,检查接收到的链是否长于本地链,并且是否包含有效签名,若上述接收条件均符合是,则本地链的块被接收到的链的块替换,并且最后完成的块用于形成替换本地异常检测模型ml的组合模型,否则,本地链的块被接收到的链的部分块替换。

作为优选,所述接收情报步骤还包括:如果本地链的部分块具有完成报告,则将此作为已完成的块关闭;物联网设备将替换本地异常检测模型ml为最新闭合块中包含的组合模型。

作为优选,方法还包括:本地异常检测模型ml跟踪本地应用程序的常规内存跳转序列,检测mij小于pth时,本地应用程序发生异常,否则异步递增nij;mij为在任何给定时间t从状态i转换为状态j的概率,pth为用户定义的概率,nij为从状态i到状态j发生的转变数量,等待发生控制流事件。

作为优选,应用程序的控制流由硬件计数器异步捕获。

本发明具有以下有益效果:

本发明一种基于区块链技术的分布式协同物联网异常检测方法,基于区块链技术在资源有限的物联网设备上执行分布式和协作异常检测。所有相同类型的物联网设备同时开始基于他们自己的本地观察到的行为来训练他们自己的异常检测模型。

附图说明

图1为本发明一种基于区块链技术的分布式系统物联网异常检测方法的流程图;

图2为代理应用程序协调异步处理示意图。

具体实施方式

以下是本发明的具体实施例并结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。

如图1,本发明一种基于区块链技术的分布式协同物联网异常检测方法,包括创建模型、收集情报、发送情报、接收情报、共享情报。

所述创建模型步骤包括:物联网设备创建本地异常检测模型ml。每个物联网设备都有一个代理,该代理维护一个本地异常检测模型ml,用于检测特定应用程序中的恶意行为。本地异常检测模型ml可利用现有的异常检测算法构建,如首先用正态分布拟合数据集(当数据集的数据来自计算机的监控数据,则其包括延迟和吞吐量两个特征),数据集包括3个key:x,xval,yval;x是训练数据;xval是验证集;yval中的数据均为01,对应xval中的数据是否异常,异常为1,正常为0。当拟合后的数据集符合正态分布,不用进行其他处理。之后,计算样本的联合概率密度,即得到延迟和吞吐量两个特征的概率密度。接着,找到合适的阈值,通过验证集得到。最后,通过阈值进行异常检测。

所述收集情报步骤包括:物联网设备收集本地应用程序并利用本地异常检测模型ml检测本地应用程序是否有异常,若本地异常检测模型ml未发出警报,则更新本地异常检测模型。例如,物联网设备收集英特尔(intel)本地应用程序,并使用本地异常检测模型ml持续检测英特尔中的一场,如果ml未发出警报,则设备会更新ml以支持新的intel。考虑到本地异常检测模型ml存在多种可能,包括本地异常检测模型ml为从链中下载的组合模型或不是从链中下载的组合模型而是一个新模型。此种情况下,所述收集情报步骤还包括:检测本地异常检测模型ml是否为从链中下载的组合模型,若是则执行本地异常检测模型ml,否则对本地异常检测模型ml进行训练,在训练一定时间后执行本地异常检测模型ml。在这种情况下,ml将无条件地从所有英特尔进行短暂的培训。如果被感染,这个短暂的时期不会影响其他代理商,因为只有经过大多数代理商的物联网设备验证才能接受广播信息。

所述发送情报步骤包括:物联网设备向链的部分区块添加ml,将添加ml的链发送到区块链网络,以广播方式广播给区块链网络的其他物联网设备。所述发送情报步骤中广播由物联网设备的私钥签名后广播给其他物联网设备。后续,所述接收情报步骤通过公钥解密接收的情报。

所述接收情报步骤包括:其他物联网设备在验证添加ml的链符合接收条件时,则其他物联网设备的链中的块被发送来添加ml的链的块全部替换,否则其他物联网设备的链中的块被发送来添加ml的链的部分块局部替换。具体地,其他物联网设备接收到链时,检查接收到的链是否长于本地链,并且是否包含有效签名,若上述接收条件均符合是,则本地链的块被接收到的链的块替换,并且最后完成的块用于形成替换本地异常检测模型ml的组合模型,否则,本地链的块被接收到的链的部分块替换。例如,当本地代理a(本地物联网设备)从代理b(其他物联网设备)接收链cb时,a检查cb是否长于ca并且包含有效签名。如果这些条件成立,则ca中的块被cb中的块替换,并且最后完成的块用于形成替换ml的组合模型。如果不成立,则使用来自cb的部分块更新ca。在验证过程中,一方面需要验证链的长度,另一方面需要验证签名,该签名通过公钥解密后验证。为了确保广播确实来自特定的代理人,记录广播信息由私钥签名并用相应公钥进行验证。另外,所述接收情报步骤还包括:如果本地链的部分块具有完成报告,则将此作为已完成的块关闭;物联网设备将替换本地异常检测模型ml为最新闭合块中包含的组合模型。

所述共享情报步骤包括:物联网设备将更新的本地链的报告以广播方式广播给区块链网络的其他物联网设备。代理每隔t时间过去一次,代理在本地存储链的部分块中更新其报告。然后,代理将整个本地存储的链广播到所有相邻代理。

如图2,本发明方法还包括:本地异常检测模型ml跟踪本地应用程序的常规内存跳转序列,检测mij小于pth时,本地应用程序发生异常,否则异步递增nij;mij为在任何给定时间t从状态i转换为状态j的概率,pth为用户定义的概率,nij为从状态i到状态j发生的转换次数,等待发生控制流事件。

异常检测模型跟踪程序的常规内存跳转序列,可以逐步更新并与其他模型合并。异常检测模型是无记忆过程,即在时间t的转变概率仅取决于时间t的状态而不是导致该状态的任何状态的过程。通常,mc被表示为相邻矩阵m,使得mij存储在任何给定时间t从状态i转换到状态j的概率。mc使用硬件计数器异步捕获应用程序的控制流。为了限制mc的大小,mc的状态是应用程序存储器中的区域(地址范围)。最后,转换是程序从区域i跳到区域j的概率。

本领域的技术人员应理解,上述描述及附图中所示的本发明的实施例只作为举例而并不限制本发明。本发明的目的已经完整有效地实现。本发明的功能及结构原理已在实施例中展示和说明,在没有背离所述原理下,本发明的实施方式可以有任何变形或修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1