一种基于融合间隔和历史测量的传感器攻击检测方法与流程

文档序号:15852367发布日期:2018-11-07 10:16阅读:277来源:国知局
一种基于融合间隔和历史测量的传感器攻击检测方法与流程

本发明涉及一种传感器攻击检测方法,尤其涉及一种基于融合间隔和历史测量的传感器攻击检测方法,属于cps系统安全领域,主要应用于具有多个传感器测量相同物理变量的cps系统。



背景技术:

随着信息物理系统(cyber-physicalsystems,cps)的广泛使用,越来越多的人开始关注cps的安全问题。信息技术与物理世界之间的相互作用使得cps容易受到各种恶意攻击的破坏,从而破坏了它的安全性。例如,恶意攻击者可以通过传感器欺骗、拒绝服务(denialofservice,dos)攻击和分布式拒绝服务(distributeddenialofservice,ddos)攻击等手段来延迟或扭曲控制命令。这些传感器攻击手段可能导致cps系统无法及时执行任务,从而导致灾难性后果。

由于现代cps通常具有测量相同物理变量(例如,编码器,超声波,gps和imu可以提供速度测量)的多个传感器,因此系统可以使用冗余信息来防御恶意攻击。虽然每个传感器的精度可能不同,融合多个传感器的测量不仅可以产生比任何单个传感器更精确的估计,而且还增加了系统对外部干扰的鲁棒性。目前很多cps系统都是通过多个测量相同物理变量的传感器实现对cps的精确控制,因此有必要确保各种传感器的输出真实可靠。

在过去已经进行了许多关于传感器故障检测和隔离的工作,其中绝大多数关注于概率传感器的情况,例如在该领域中的关键工作,卡尔曼滤波器--传感器精度的假设与已知的系统动力学模型相结合,以产生实际状态的最佳线性估计量。还有文献提出通过测量数据协方差矩阵中元素的变化来检测和识别不良数据。但是,当系统出现瞬态故障时,这些方法容易产生残留污染和残余淹没,导致误报或无法检测到攻击。此外,目前大多数有关传感器攻击检测的方法没有考虑瞬态故障,它们以相同的方式处理攻击和故障,从而忽略了传感器有时可能由于暂时干扰而提供错误测量的事实。例如,gps常常暂时失去与隧道中卫星的连接。这种瞬态故障可能发生在系统的正常操作期间,并在不久之后消失,由于其持续时间短,瞬态故障不应该被视为系统的安全威胁。此外,尽管最近的一些模型被设计用于在存在瞬态故障时传感器的攻击检测,它们是保守的。当专业攻击者在一段时间内非常轻微或不经常地操作传感器输出时它们几乎无法检测到攻击,例如隐形攻击。



技术实现要素:

由于目前大多数传感器攻击检测方法在存在瞬态故障时,其攻击检测和识别性能有所降低,并且容易出现误报的情况。此外,当攻击者具有无限的计算能力和全系统知识,包括传感器/设计规范和采用的传感器融合算法等知识时,他为了保持不被检测到,可以设计更为隐秘的攻击。这时现有的方法很难检测到这种攻击。本发明的目的是针对这些问题提出了一种基于融合间隔和历史测量的传感器攻击检测和识别方法,大大提高了攻击检测和识别的性能,尤其是对于隐身攻击。

本发明一种基于融合间隔和历史测量的传感器攻击检测和识别方法,具体包括如下步骤:

步骤一、为系统增加一个虚拟传感器

为了使用融合间隔和历史测量,本发明为系统增加一个虚拟传感器。虚拟传感器是一个虚设的传感器,在系统中是不存在的。在传感器攻击检测中,把融合间隔或者历史测量作为虚拟传感器的测量。虚拟传感器的使用如下:

(1)当使用历史测量来判断攻击的时候,如果历史测量和当前的测量是来自同一个传感器i,此时历史测量(t时刻i的测量)就作为虚拟传感器的一个测量值。在使用时,虚拟传感器实际上就作为一个真实的传感器和其它传感器的测量进行比较。

(2)当使用融合间隔来判断攻击的时候,融合间隔就作为虚拟传感器的测量。是t时刻还是t+1时刻的融合间隔,根据具体的检测算法需要来确定。

步骤二、传感器的攻击检测

(一)弱不一致检测

(1)融合过去和当前的测量。

首先把t时刻的测量值通过系统动力学模型映射到t+1时刻,这样在t+1时刻就有2n(一共有n个传感器)个测量,然后让这2n个测量进行两两比较。如果两个测量是来自同一个传感器不同时刻的测量,并且这两个测量不相交,那么该传感器和虚拟传感器之间是弱不一致关系。其中,表示传感器i从t时刻映射到t+1时刻的测量,sl,u(i,t+1)表示传感器i在t+1时刻的观测值。

如果两个测量是来自不同传感器不同时刻的测量,并且这两个测量不相交,那么这两个传感器之间是弱不一致关系。

(2)单个传感器和融合间隔的比较。

首先计算t时刻的融合间隔,并把t时刻的融合间隔作为虚拟传感器的一个测量值映射到t+1时刻,这时t+1时刻就有n+1个传感器,由于融合间隔包含真实值,因此在t+1时刻融合算法的输入f是不变的。然后计算t+1时刻的融合间隔。最后把t+1时刻的融合间隔和t+1时刻所有传感器的测量值进行比较(不包括虚拟传感器)。由于融合间隔包含真实值,因此不与融合间隔相交的测量是故障的,则该传感器和虚拟传感器之间是弱不一致关系。

其中是t+1时刻的融合间隔。

(二)强不一致检测

两个传感器之间的强不一致关系的判断方法如下:在给定的窗口w中,如果两个传感器频繁地发生弱不一致关系并且弱不一致的数量超过瞬态故障模型的阈值,则它们之间的关系变为强不一致关系:

给定传感器i、j和时间t,

通过上述提到的强不一致概念,来展示本发明的攻击检测方法。此处的攻击检测方法仅涉及检测系统中是否存在攻击,将在以下的传感器攻击识别部分解决哪个传感器被攻击的问题。

(三)判断攻击是否存在

累积两个传感器之间的强不一致信息;在一段时间内,如果任意两个传感器i和j之间存在强不一致关系,那么系统中存在攻击。

步骤三、传感器的攻击识别

为了识别哪个传感器被攻击,假设系统中至多有s(s<n-1)个传感器被攻击。本发明累加系统的强不一致信息,在t时刻,如果强不一致对中传感器i出现的次数超过s,则称传感器i被攻击了:

给定传感器i和时间t,让degree(si,t)表示传感器i在t时刻的度,

本发明一种基于融合间隔和历史测量的传感器攻击检测方法,其优点及功效在于:能够及时高效地检测到各种恶意攻击,特别是当专业攻击者为了保持未被检测到,在一段时间内非常轻微或不频繁地操纵传感器输出时(即,隐身攻击),本发明也能很好地检测和识别攻击。已有的方法,对这类隐身攻击几乎是无法检测和识别的。

附图说明

图1所示为本发明实施例系统模型框图。

图2所示为本发明方法流程图。

具体实施方式

下面结合附图和实施例,对本发明的技术方案做进一步的说明。

(一)硬件装置:

本发明从ev3机器人平台上获取大量的实验数据来测试攻击检测方法的性能。ev3上装有超声波和左右两个电机(内嵌角度传感器)用来测量ev3的速度值。实验中,让ev3以1m/s的速度匀速直线运动40分钟,每个传感器收集400个测量值。

本发明实施例的系统模型如图1所示。从物理环境中获取传感器的测量值,然后将其通过网络传送给控制器,在传输过程中传感器的测量值被攻击者恶意篡改,导致控制器可能收到错误的测量。本发明在控制器这里添加一个攻击检测方法,当控制器收到传感器的测量值以后,首先通过攻击检测算法判断哪些测量是正确的,哪些测量是错误的。然后控制器再根据检测的结果把决策发送给执行器,执行器再将决策反馈给物理环境(例如:ev3)。

(二)方法:

攻击模型:

传感器i的瞬态故障模型是一个三元组(δi,fi,wi),其中δi是误差界限,(fi,wi)是瞬态阈值,其指定在任何大小为wi的窗口中,传感器i可以提供至多fi个错误的测量。瞬态阈值用于定义瞬态故障和非瞬态故障之间的边界。如果传感器i违反其瞬态阈值,则称为非瞬态故障,由谓词ntf(si,t)表示

本发明考虑3种攻击类型:

(1)偏差攻击。为被攻击的传感器添加一个偏差值a,其中a一般取精度最大的传感器的误差边界值,即2δmax。

其中,si(t)是传感器i在时间t的实际值。是传感器i被篡改后的测量值。

(2)随机攻击。为被攻击的传感器添加一个0~2δmax的随机数。这种攻击比偏差攻击更难检测。当添加的数比较小时,一般的攻击检测方法很难检测到。

(3)隐身攻击。这种攻击是指攻击者有足够的能力,知道系统的模型、使用的融合算法、传感器的精度以及攻击检测方法等知识,攻击者为了保持不被检测到,就会根据已知的信息,最大化融合间隔,并尽可能地是两个传感器之间的间隔相交以达到隐身的目的。

传感器攻击检测和识别方法:

首先简单介绍本方法需要用到的几个概念。

由于系统的真实值通常是不知道的,这样就很难判断哪个传感器提供了错误的测量。本发明增加一个虚拟传感器,通过两个传感器的测量之间的不一致关系来检测攻击。两个传感器之间的不一致关系有两种:弱不一致和强不一致关系。当两个传感器中至少有一个提供有错误的测量时,则称这两个传感器之间是弱不一致关系,由谓词wi(si,sj,t)表示。

wi(si,sj,t)≡f(si,t)∨f(sj,t)

其中f(si,t)表示传感器i在t时刻存在故障。

如果两个传感器中至少有一个是非瞬态故障,那么这两个传感器之间是强不一致的,由谓词si(si,sj,t)表示。

si(si,sj,t)≡ntf(si,t)∨ntf(sj,t)

其中fi是指在大小为wi的窗口中,传感器i提供故障测量的数量。

本发明主要实现对传感器的攻击检测和识别两个功能模块。本发明的攻击检测和识别的流程如图2所示。具体过程如下所示:

步骤一、为系统增加一个虚拟传感器

为了使用融合间隔和历史测量,本发明为系统增加一个虚拟传感器。虚拟传感器是一个虚设的传感器,在系统中是不存在的。在传感器攻击检测中,把融合间隔或者历史测量作为虚拟传感器的测量。虚拟传感器的使用如下:

(1)当使用历史测量来判断攻击的时候,如果历史测量和当前的测量是来自同一个传感器i,此时历史测量(t时刻i的测量)就作为虚拟传感器的一个测量值。在使用时,虚拟传感器实际上就作为一个真实的传感器和其它传感器的测量进行比较。

(2)当使用融合间隔来判断攻击的时候,融合间隔就作为虚拟传感器的测量。是t时刻还是t+1时刻的融合间隔,根据具体的检测算法需要来确定。

步骤二、传感器的攻击检测

(一)弱不一致检测

(1)融合过去和当前的测量。

假设cps系统由一个离散时间线性时不变系统组成,形式如下:

xt+1=axt+ω

其中是系统状态向量,转换矩阵,是系统干扰(即,噪声)。

首先,把t时刻的测量值通过系统动力学模型映射到t+1时刻(m(s(t))=as(t)+ω),这样在t+1时刻就有2n(一共有n个传感器)个测量,然后让这2n个测量进行两两比较。如果两个测量是来自同一个传感器不同时刻的测量,并且这两个测量不相交,那么该传感器和虚拟传感器之间是弱不一致关系。其中,表示传感器i从t时刻映射到t+1时刻的测量,sl,u(i,t+1)表示传感器i在t+1时刻的观测值。

如果两个测量是来自不同传感器不同时刻的测量,并且这两个测量不相交,那么这两个传感器之间是弱不一致关系。

(2)单个传感器和融合间隔的比较。

首先计算t时刻的融合间隔,并把t时刻的融合间隔作为虚拟传感器的一个测量值映射到t+1时刻,这时t+1时刻就有n+1个传感器,由于融合间隔包含真实值,因此在t+1时刻融合算法的输入f是不变的。

然后计算t+1时刻的融合间隔。

最后把融合间隔和t+1时刻所有传感器的测量值进行比较(不包括虚拟传感器)。由于融合间隔包含真实值,因此不与融合间隔相交的测量是故障的,则该传感器和虚拟传感器之间是弱不一致关系。

其中,融合间隔的计算过程如下:

首先对所有传感器的左端点(下界)和右端点(上界)分别进行升序和降序排序,结果分别存储在strstart和strend数组中。然后,通过数组下标从小到大来扫描strstart数组,直到融合间隔的左端点有n-f(f是指当前时刻最多发生故障的传感器的数量)个交点为止,其中数组下标从零开始。最后,以相同的方式扫描strend数组,从而获得融合间隔的右端点。

(二)强不一致检测

本发明累加传感器之间的不一致信息,如果在一段时间内传感器i和j之间存在强不一致关系,则系统中存在攻击。强不一致的判断方法如下:在给定的窗口w中,如果两个传感器频繁地发生弱不一致关系并且弱不一致的数量超过瞬态故障模型的阈值,则它们之间的关系变为强不一致关系。

lemma1:给定传感器i、j和时间t,

证明:根据弱不一致的定义,如果两个传感器i和j在t′时刻是弱不一致关系,则在t′处至少有一个传感器提供了故障的测量。在大小为min(wi,wj)的窗口中,如果弱不一致的数量大于fi+fj(即阈值)。这意味着这两个测量中必须至少有一个是非瞬态故障,即(fi′>i)∪(fj′>fj),其中fi′表示在窗口w中传感器i提供故障测量的总数;fj′表示在窗口w中传感器j提供故障测量的总数。

步骤三、传感器的攻击识别

通过上面的攻击检测方法仅能判断出系统中是否存在攻击,并不知道是哪个传感器被攻击。为了识别哪个传感器被攻击,假设系统中至多有s(s<n-1)个传感器被攻击。本发明累加系统的强不一致信息,在t时刻,如果强不一致对中传感器i出现的次数超过s,则称传感器i被攻击了。

lemma2:给定传感器i和时间t,让degree(si,t)表示传感器i在t时刻的度。

证明:

与传感器i具有强不一致关系的传感器共有n(n>s)个,由j表示。由于i和j是强不一致关系,如果i没有被攻击,那么j必须被攻击。此时共n个传感器受到攻击。这与最多有s个传感器被攻击的假设相矛盾。因此结论成立。

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