本文系原创翻译,转载请说明出处
原论文:USENIX2021 :Automated Discovery of Denial-of-Service Vulnerabilities in Connected VehicleProtocols
标题:自动地挖掘联网车辆协议中的拒绝服务漏洞
摘要:智能网联汽车(CV)的兴起带来了更多的网络攻击面,这可能导致道路安全隐患,这就非常需要系统地了解CV网络协议栈以及CV应用程序的设计缺陷。本文设计了CVAnalyzer,这是一个用于发现 CV 网络堆栈可用性违规的设计级缺陷,并量化相应的安全风险程度的系统。
该工具结合了通用模型检查器的攻击发现能力和概率模型检查器的定量威胁评估能力。CVAnalyzer成功发掘出最新CV网络协议的4个新DoS(拒绝服务)漏洞和两个CV排管理协议的14个新DoS漏洞。该实验的量化结果表明,这些攻击的成功率高达99%,在最坏的情况下,数据包处理的延迟至少会增加一倍,无法达到CV通信中的延迟要求。
论文工作内容:
- 史上第一次通过模型检查技术对最新版本的IEEE1609协议族和排管理协议(PMP,platoon management protocols,注:排管理协议使用集中式排协调方法,其中所有通信都由排长协调。 追随者接受命令并向排长发送请求)进行安全分析并发现了DOS攻击。
- 使用CVAnalyzer发现了点对点证书分发(P2PCD,Peer to Peer Certificate Distribution)的4个新的DOS漏洞,这玩意可以组织应用层处理即将到来的数据包。
- 发现了PMP协议的15个新漏洞,这些漏洞可以阻止车队(原文是platoon members,查阅多个国内文献资料,基本上都是翻译成车队)之间的通讯。
- 将发现的协议漏洞应用到现实场景中并成功验证了他们的正确性——对P2PCD的攻击会导致交通事故,对PMP的攻击会影响受害者车辆的速度。
- 对于已识别的漏洞,我们讨论产生这些漏洞的根本原因并提出有效的缓解与解决方案,包括避免使用截断的哈希值、强制验证 P2PCD 学习响应以及要求广播 P2PCD 学习请求。
目录
一、技术背景
1.1 网联汽车(CV)技术及网络栈
CV网络为移动设备和车载固定的CV应用之间的连接提供支持,为用户提供对事件、潜在威胁和迫在眉睫的危险的更好的态势感知,目标是提高日常交通的安全性、移动性和便利性。在 CV 网络中,有两种基本类型的设备:
(1)漫游车辆中的车载单元(OBU)
(2)道路沿线的固定路侧单元(RSU)
通常,CV 网络的通信模式是在没有响应的情况下广播的单个消息。IEEE 802.11p及其扩展 IEEE 1609.4共同定义了 CV 网络堆栈的基础,其中 :
1、IEEE 802.11p 在 MAC 层禁用身份验证、关联和数据机密性服务,以最大限度地减少消息延迟。
2、IEEE 1609.3 定义了 WAVE 短消息协议 (WSMP),该协议经过优化以最小化通信开销。
3、SAE J2735 中定义的基本安全消息(BSM,又名信标消息)被各种应用程序使用,例如前方碰撞警告 (FCW)、协作自适应巡航控制 (CACC),以交换有关车辆状态的安全数据(例如,位置和速度)。BSM 的传输速率通常设置为每秒 10 次。
4、IEEE 1609.2 定义了协议的安全性,引入数字证书以启动数字签名。
注:IEEE 802.11p和IEEE 1609协议族的关系:
IEEE 802.11p(又称WAVE,Wireless Access in the Vehicular Environment)是一个由IEEE 802.11标准扩展的通信协议。这个通信协议主要用在车用电子的无线通信上。它设置上是从IEEE 802.11来扩展延伸,来符合智能运输系统(Intelligent Transportation Systems,ITS)的相关应用。应用的层面包括高速率的车辆之间以及车辆与5.9千兆赫(5.85-5.925千兆赫)波段的标准ITS路边基础设施之间的资料数据交换。IEEE 1609标准则是以IEEE 802.11p通信协议为基础的高层标准
微信关注信安科研人:输入1609 获取IEEE1609协议族标准文档
1.2 PMP(Platoon Management Protocol)协议
CV 以最小的跟随距离形成一个排,以提高交通密度并减少能源的消耗量(说白了就是提高能源使用效率)。PMP 是排应用控制排机动的基本组件。
具体内容
一般来说,排中的车辆通过定期广播信标消息来交换速度、位置、排 ID、排深度。 排长(zhang第四声)的深度为0,并且随着车辆行驶的更远而增加。领导者充当协调者并控制排决策,例如加入/合并、拆分、离开和解散。
(1)加入/合并
在同一车道行驶的两个排可以发起合并操作以形成更大的排。
- 如果后方排长通过检查来自前方车辆的信标消息,观察到组合后的排大小不大于最佳排大小,则将向前方排长发送 MERGE_REQ。
- 从前排领队收到 MERGE_ACCEPT 后,后排排长将加速以减少前排间距。
- 然后,后排长发送 CHANGE_PL 通知其随从将排长更换为前排长。
- 同时,后方排长在向前方排长发送 MERGE_DONE 后切换到跟随者角色。
(2)拆分机动
为了将排分成两个较小的排,排长可以在特定位置主动发起该机动,或者当排规模超过最佳排规模时被动触发该机动。
- 排长首先将 SPLIT_REQ 发送到应该发生分裂的分裂车辆。
- 收到 SPLIT_ACCEPT 后,排长发送 CHANGE_PL 使分裂车辆成为潜在的领导者。
- 此外,如果有的话,排长需要通知分裂车辆后面的跟随者,将他们的领导更换为分裂车辆。
- 之后,排长向分裂车辆发送 SPLIT_DONE,然后车辆切换到领导角色。
(3)离开机动
当接近目的地时,一个排的成员可以发起一个离开机动。如果领袖离开,领袖将向所有追随者发送投票领袖,投票选出新的排长。
- 新当选的排长需要向当前排长发送一名当选的排长。
- 然后,领队在当选领队的位置上通过启动分裂策略进行分裂,从而将领导权移交给当选领队。
- 对于跟随者离开,跟随者将向领队发送离开请求,并等待离开接受。
- 领队需要在跟随者的后续车辆(如果有)和跟随者之间进行分离,使其成为一个自由人,定义为一辆车排。
- 此时,跟随者可以减速。一旦有足够的空间让跟随者改变车道,它将向老领导发送一个创建的间隙,并最终离开排。
(4)解散机动
此机动仅由排长发起,排长向所有跟随者广播解散,收到所有ACK消息后,所有排成员作为自由代理,可以自由离开。
二、威胁模型
1、CV通信能力
本文假设攻击者可以在他自己的车辆或他人的车辆上破坏 OBU。之前有工作已经表明,车载系统可以受到物理或远程损害。在这种情况下,攻击者可以通过受感染的 CV 设备向其他车辆发送恶意数据包,所有恶意数据包都应符合协议规范,攻击者也可以向特定车辆单播恶意数据包。
2、被动监测
攻击者可以在无线适配器的混杂模式下被动窃听和捕获其无线通信范围内的所有网络流量。
3、密码学攻击
我们假设 CV 协议中使用的加密操作(例如签名、验证和散列)是安全的。因此,攻击者无法伪造用于数据包身份验证的数字签名,但可以使用安装在受感染车辆中的有效证书来签署传出数据包。但是,攻击者仍然可以通过嗅探 CV 网络流量被动收集有效证书构建未由受信任锚签名的本地证书。
三、分析方案
3.1 威胁模型建立
对一个event进行建模肯定是需要一些预备条件的,这篇文章的威胁建模如下:
- 攻击者完全控制 CV 设备并拥有有效证书
- 密码操作过程:安全
- 汽车的通信模式:单播/广播
- 攻击者攻击手法:被动窃听
3.2 工具框架概览
图一 CVAnalyzer的框架
攻击者控制的通信环境的条件设定:
1、取回/检索:攻击者从众多数据包或时间事件中取出其一
2、处理:协议状态机处理一个事件
3、后处理:协议状态机处理完一个给定事件后,协议状态机要么发送一个新的数据包,添加一个新的定时器,取消一个现有的定时器,要么什么都不做。环境需要更新其内部状态并跟踪新添加的事件。
4、攻击:攻击者能够监控环境中的所有数据包。攻击者可以将任意数据包注入通信环境,这允许协议状态机处理所有可能的数据包事件。
重点!!核心!!:该工具的核心就是构建协议状态机
首先什么是协议状态机:
这张图是SMTP协议的状态机,也就是说,这篇论文就是构建一个车联网协议的(PMP以及IEEE1609协议族)的协议状态机,然后通过加入种种黑客攻击事件来构建一个包含攻击事件与攻击后状态的协议状态机,并精简状态机,从而对车联网协议进行漏洞挖掘。
3.3 模型检测和结果评估
主要用到了通用模型检查器(MC)TLC,以及概率模型检查器 (PMC)PRISM,这个大家可以网上查
实验示例
介绍实验前首先介绍一下车联网协议的学习:
简而言之就是汽车通过学习的方式记录一个未知的证书。
如果攻击者在学习过程中注入学习请求或者响应信息,就是说,如果网联汽车设备观察到对同一个未知证书的学习请求,它将丢弃自己的请求。
该实验主要将攻击分为两类:
上图是第一类,攻击发送各类恶意学习响应包以造成攻击。
上图是第二类,通过发送恶意的学习请求以构造攻击。
解决措施
- 强制验证所有学习响应
- 增加证书中颁发者字段和 SPDU 中学习请求字段的截断哈希大小
- 禁止单播学习请求
- 将发件人身份与简历证书绑定
- 在本地或远程跟踪排配置数据
- 设计并集成错误恢复机制