文献阅读:基于电压规避的汽车CAN入侵检测(二)

news/2024/9/22 19:41:50/

论文名称:Evading Voltage-Based Intrusion Detection on Automotive CAN

目录

论文背景和要点

CAN协议

总线通信

CAN消息框架

总线仲裁

错误处理

汽车的CAN总线上脆弱的ECU

基于电压的入侵检测系统


论文背景和要点

CAN协议

对于车内网CAN协议来说,车内的软件程序只能改变消息报文的ID和数据内容及有效负载。大多数的CAN功能都是硬件中处理的,包括帧的框架仲裁错误处理以及物理层总线的通信

总线通信

在CAN总线上,位1和位0分别称为隐性位显性位。CAN是双绞线,有CAN高(CAN-H)和CAN低(CAN-L)两条线,那么隐性1和显性0可分别用在CAN-H和CAN-L之间的,0V和2V的差电压表示出来。如果ECU的CAN收发器是“开放”状态,就表示要传输隐性位的是实际电压值(0V),反之,如果是“闭合状态”就要传输诱导的电压值(2V)。那么如果总线上的多个ECU并发传输其比特,那么得到的电压对应ECU所诱导电压的叠加,得到的比特等于传输比特的逻辑与。收发器是硬件,其显示电压的特征是属于硬件特性,是攻击者所不能更改的,VIDS可利用这些特征进行指纹识别。

CAN消息框架

如上图2,是CAN消息的标准或扩展帧格式。标准格式的帧由11位ID-A,扩展格式的帧可加上18位的ID-B,共29位ID。两种帧都可以传输0-8比特的数据。所以ECU可以在同一总线传输不同格式的消息。

总线仲裁

CAN在ECU之间采用简单的仲裁过程来阻止任意两个ECU可能同时向总线上传输消息的可能,每个ECU都是通过帧开始(SOF)字段同步在总线上传输,对ID字段,ECU向总线发送ID位,然后从总线读取它,如果ECU在传输隐性位的同时读取了显性位,则会在仲裁中输掉,并停止传输;否则可以继续传输。攻击者便可以冒充受害者ID,利用这个仲裁过程,让自己的消息的数据字段和受害者的消息的数据字段故意重叠。

错误处理

CAN上的通信可能会被许多硬件或软件上因素,或者是附近设备的电磁干扰给破坏掉。在仲裁字段以外的任何传输过程中,当传输位不等于总线上的结果位时,就会发生误码(也叫比特错误)。针对这种错误,ECU分为三种状态:错误主动、错误被动和总线关闭(error-active、error-passive和bus-off)。正常情况是active状态,遇到一定数量的错误会转到passive状态,然后是bus-off状态。那么ECU在这种总线关闭的状态下会停止通信,必须之后重置到acitve状态才能重启通信。那么攻击者在受害者消息中造成误码,就可以迫使受害者进行状态转换。

需要注意的是,passive状态的ECU相较于active状态有两个重要区别:

  1. 传输两个连续消息时,passiveECU需要有11位扩展的IFS,多出了8位的暂停传输字段
  2. 遇到误码,passiveECU会等到总线变为空闲状态,传输一个14个隐性位组成的错误帧

汽车的CAN总线上脆弱的ECU

汽车上的ECU主要会受到攻击者的威胁包括:

  1. 通过USB、蓝牙、WIFI或移动数据等远程信息处理控制单元入侵
  2. 通过用于路边援助和碰撞报告的远程通信单元入侵
  3. 通过用于实现无钥匙进入和胎压监测的短程通信单元入侵
  4. 通过损坏的物理或空中媒体的无线电或娱乐单元入侵
  5. 通过第三方设备连接到车载诊断OBD-II端口入侵
  6. 通过电池控制模块在充电站的有线连接入侵 

并非所有汽车上的ECU都可以被直接破坏,所以攻击者可以首先攻击容易被破坏的ECU,然后再发起各种攻击,包括伪装攻击。 本文就是基于攻击者的能力来破坏至少两个易受攻击的ECU来发起DUET攻击。

基于电压的入侵检测系统

VIDS是来检测CAN上受损的、未监控的和新添加的ECU。它从每个CAN消息的测量电压特征中提取电压指纹(包括均值和方差等特征),然后用消息ID来推断发送源ECU,这样构建一个学习监督模型。在VIDS工作时,如果检测到CAN消息指纹和其源ECU不匹配,则会发出警告。这就是VIDS对ECU伪装攻击的应对原理。

但是消息的电压特性和指纹是会随着时间、环境、工作量、硬件更新等因素发生变化的。因此VIDS模型必须通过在线的、增量的或周期性的学习进行更新。但如此频繁的模型再训练又会使得所有现有的VIDS遭受到训练集中毒攻击。因此VIDS需要在安全模式下进行更新,并需要有对抗这种训练集中毒攻击的对策,比如使用MAC消息验证码等方式。


http://www.ppmy.cn/news/38681.html

相关文章

【探花交友】day02—完善个人信息

目录 1、完善用户信息 1.1、阿里云OSS 1.2、百度人脸识别 1.3、保存用户信息 1.4、上传用户头像 2、用户信息管理 2.1、查询用户资料 2.2、更新用户资料 3、统一token处理 3.1、代码存在的问题 3.2、解决方案 3.3、代码实现 4、统一异常处理 4.1、解决方案 4.2、…

蓝桥杯最后一战

目录 分巧克力_二分 题目描述 输入格式 输出格式 输入输出样例 说明/提示 代码: 巧克力 - 优先队列 题目描述 输入格式 输出格式 输入输出样例 说明/提示 代码: 思路分析: 秘密行动_dp 蓝桥杯算法提高-秘密行动 题目描述 …

如何使用Python自动化测试工具Selenium进行网页自动化?

引言 Selenium是一个流行的Web自动化测试框架,它支持多种编程语言和浏览器,并提供了丰富的API和工具来模拟用户在浏览器中的行为。Selenium可以通过代码驱动浏览器自动化测试流程,包括页面导航、元素查找、数据填充、点击操作等。 与PyAuto…

【竞赛题】6362. 最长平衡子字符串

题目: 给你一个仅由 0 和 1 组成的二进制字符串 s 。 如果子字符串中 所有的 0 都在 1 之前 且其中 0 的数量等于 1 的数量,则认为 s 的这个子字符串是平衡子字符串。请注意,空子字符串也视作平衡子字符串。 返回 s 中最长的平衡子字符串长…

淘宝十年资深架构师吐血总结淘宝的数据库架构设计和采用的技术手段。

淘宝十年资深架构师吐血总结淘宝的数据库架构设计和采用的技术手段。 文章目录淘宝十年资深架构师吐血总结淘宝的数据库架构设计和采用的技术手段。本文导读1.分库分表2.数据冗余3.异步复制4.读写分离总结本文导读 淘宝的数据库架构设计采用了分布式数据库技术,通过…

天下苦广告久矣!分享五款免费且无广告的开源软件

在日常的使用中,我们需要使用各种软件来提高我们的工作效率或者进行创意的表达。然而,商业软件价格昂贵,某些国产软件又充斥着广告。因此,开源软件成为了一个不错的选择,以下是我推荐的五款优秀的开源软件。 1.办公套…

spring cloud中实现接口广播请求到服务提供者

一、背景 假如现在有一台服务A,两台服务B,可以简化为如下图模型: 需求:一次请求服务A需要同时将请求广播打到两台服务B上。 二、实现方案 2.1 需要应用到两个类: 2.1.1:LoadBalancerClient package org…

龙智被SmartBear评为2022年“最具动力营销团队”

近日,全球领先的软件开发和可视化工具提供商SmartBear进行了首届合作伙伴评选,并向全球不同地区的9个合作伙伴颁发了首个年度合作伙伴奖。DevSecOps解决方案提供商龙智是唯一一家来自中国的获奖合作伙伴,获得 “最具动力营销团队”称号。 Sm…