CSDN话题挑战赛第2期
参赛话题:学习笔记
Scission:Signal Characteristic-Based Sender Identification and Intrusion Detection in Automotive Networks
汽车网络中基于信号特征的发送者识别和入侵检测
许多ECU连接在车载网络CAN总线上,但很有可能被损坏入侵,被恶意攻击者用来入侵车内网,利用的是车内网CAN不能对信息的发送者进行身份识别的问题。文章提出的Scission是一种入侵检测系统IDS。其主要利用从CAN的帧中提取的指纹来识别发送信息的ECU,这种指纹是CAN帧模拟值的物理特性。
所提出的Scission能识别发送信息的ECU(连接在总线上被监控的),还能识别来自未被监控的和其他的设备发送的攻击。
目录
大体背景信息介绍
使用物理特性检测的好处
本文方法特点
CAN网络介绍
总结出一些可以用来提取CAN指纹的信号特征
对前人工作的评判(读过的)
Scission介绍
应用的网络结构
安全目标
来源识别方法
指纹识别来检测入侵
1.对于被损坏或入侵的ECU
2.对于未被监控的ECU(3种情况)
3.对于额外增加的ECU
4.对于了解Scission的攻击者
攻击者通过物理途径入侵ECU,能控制很多关键功能,也能完全无视司机的指令,比如刹车或熄火。有学者研究攻击者能通过蓝牙、蜂窝移动等接口入侵继而操纵汽车。汽车上的CAN总线设计时没考虑过安全性能,就使得每个连接到总线的设备都能发送消息,而接收者无法识别消息的发送者并验证真实性。
一些消息验证的方法很难使用在CAN上,因为其消息格式只有8比特,并且汽车需要逝世传递消息,如果用了额外的消息验证,便需要更多的计算能力,这也造成一些困难。IDS系统是能够通过监控网络流量来检测CAN上的一些变化,比如有攻击信息等。IDS目前被研究出两种模式:signature-和anomaly-based,前者的部署比较困难,后者通过计算预期的消息流量和实际的做对比便有能力检测入侵和偏差。
通过使用物理特性的来进行消息发送者的识别验证好处在于,1.不需要额外的计算,不像比如一些身份校验码还需要去进行对比;2.信号的物理特性是固有的,存在于使用的硬件和总线的拓扑结构中。这样的方式对即使轻量级的计算能力很小的消息通信者也能很适用,硬件级别定义的特性对没有物理访问权限的攻击这来说也很难绕过这样的检测。
比起其他使用物理特性进行身份识别检测的系统,降低了采样率,使用轻量级的算法并且带宽完全够用,除了识别损坏的ECU,还能检测未被监控的ECU和一些其他额外的设备。预处理步骤和鲁棒性设计使得能实现一个高的识别率还降低了假阳的可能性。
一种广播式的汽车总线,主要包括一高一低两条线螺旋在一起,每个都带有120Ω终端电阻,如果两条线都有2.5V电压,就会发出一个隐性1-bit;如果一条高线5V,低线0V电压,会发出一个显性0-bit。5个相同的比特被传输后,为保证同步性会差一个相反位的bit,叫stuff bit。一个帧有8 bytes 的负载量,还包括一个唯一的标识符,有时也可以使用额外的标识符。总线多个参与者可能同时发送消息到总线上,显性主导的bit占优势,会被先裁决发送,其他参与者取消传输,有空闲的时候重新发送。
假设一个大的总体的网络包含一些相互分离的总线,每个总线上都连着一些ECU,所以这些网络结构都不同。独立的总线之间通过网关相互连接,网关能提供一些安全机制。假设Scission是通过添加一个ECU来集成到网络中,ECU连到总线上并被监控着。并假设网络上存在着一些基本的经典的安全机制来保护。也就是还有一定的防御能力。
Scission集成到网络中主要是为了监控网络流量,从而检测受损的、未知的或者附加的ECU发送的未经授权的消息。具体表示为
当然也有能意识到Scission存在的攻击者,本文将其看作是也是尝试误导IDS系统的攻击者。攻击者可能会通过影响其信号来误导IDS系统。而在定义信号的特性中,特别是上升下降沿这种在没有物理上的访问的情况下是很难被影响的。远程的攻击者还可以通过影响供电电压,比如改变ECU的温度或者耗尽电池等方式。
如图就是本文所设计的进行识别发送信息的收发器的工作流程:首先是信号的收集采样,接着进行预处理,预处理帮助我们能独立于收到的数据来评估数据的收发器,在这里接收到的帧都被分成一位一位的并根据信号特征进行排列,之后从这些特征中提取出时间域和频率域的特征来代表真正的指纹。一个系统模型最开始就是这样被训练,之后通过不断的训练就能进行分类预测。
1.采样阶段:在采样阶段帧中的模拟信号都被记录下来,不管是差分信号还是CAN high和low两种信号都可以被单独使用。差分信号虽然需要另外的电路来直接使用,但好在需要的资源更少,如果使用高低线这两种信号还要合并并且容易受到其他变化的影响。以一定的速率每个特征收集40个采样结果。
2.预处理阶段:在这个步骤中,收集到的信息的每一位都被分开处理,就会形成好多包含着模拟信号值的集合。由于ECU振荡器可能会漂移,所以一条消息的边缘部分可能会有偏差,那么为了弥补这一失误也为了较少储存的数据,就只用每一位的一部分。
所以处理过CAN帧的所有bit后,也代表着被测量的电压值被分为了3组如下图。通过单独考虑每一组,也可能使得重要的特征更容易被发现了,因为如果一起考虑的话,一些特征可能会相互抵消相互混淆。
3.特征提取:分了组后就要对每个组提取统计特征了,可以采用一些统计数据分析的方法来评估每个组,比如求均值方差什么的,除了考虑时间域还考虑频率域。本文的工作发现通过独立分组能发现显著的差别,总之通过计算选取最佳的特征用以进行身份识别,最终会产生一个特征向量,这就代表着从CAN信号中收到的指纹。
4.生成模型进行分类
识别接收到的帧是从哪个ECU发送的是一个分类问题,因此可以用一些机器学习的算法,本文用的便是Logistic Regressin逻辑回归来预测帧的发送者。那么要训练一个这样的模型需要一些训练数据,便是从一些已有的CAN的帧中生成指纹,以及有其对应的ECU,这样就能来训练一个分类器,生成一个模型。
5.部署和生命周期
要部署这样一个模型,很重要的是要保证有一个安全的环境,这样能避免一些伪造的帧来扰乱训练阶段,也就是最初的部署阶段,这样的阶段只有被确认的帧才能使用。同时也要考虑信号的特性可能会发生一定的偏移,因为一些部件可能会老化或被腐蚀,因此本文还提出了一个“性能监控”,会持续不断地评估分类器以保证其有一个安全的训练环境。
基于训练的模型,系统就会预测一个收到的帧的发送者的概率,判断属于哪个ECU的概率最大,而如果这个ECU不可能发送带有这种标识符的帧,那这便会被判断是一个攻击。因为系统知道哪些标识符允许被哪些ECU使用。
另外还设置了阈值,有一高一低两个阈值,一个接收到的帧判断其属于ECU的概率吗,如果低于较低的阈值会被认作是可疑的,如果高于较高的阈值但同时其标识符又是不合法的也会被看做是攻击。只有高于阈值且标识符合法才能算属于这个发送ECU。
类似于不受监控的设备,但最大的区别在于添加了额外的设备对总线的拓扑结构产生影响,而总线结构又对ECU的指纹有影响,这种影响可能还比较大,因此计算的概率就不太可能超过阈值,所以会导致之后识别的大多数结果都存在错误。
如果这种攻击者能对所有的ECU的供电压造成一个影响,那就损害整个模型,模型就要去更新以适应新的变化,这期间就容易被入侵攻击。而这种攻击者想要冒充一个ECU,可以改变其温度,也可以改变电池电压,但这种变化既不会直接出现,也不会无规律变化,而是稳定的,一点一点改变,那这种情况下系统就可识别并适应这种变化。而绝对电压的变化也不会影响一个信号的产生,就更难去误导系统了。