汽车Cyber Security入门之DoS 攻防

作者 | 一骥绝尘

出品 |焉知

知圈 | 进“计算平台群”请加微yanzhi-6,备注计算

DoS攻击历史及原理

网络世界有很多种黑客攻击手段和与之抗衡的防御手段,矛盾之战从未停息。在这些恶意攻击手段中,DoS攻击算得上是最简单粗暴又难以完全防御的一种。如果票选一个十大恶意攻击排行榜,相信DoS攻击会排在前列。

在进一步讨论DoS之前,先普及一下,我国《刑法》是有破坏计算机信息系统罪的,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,后果严重的,处五年以下有期徒刑或者拘役;后果特别严重的,处五年以上有期徒刑。同时针对智能网联汽车网络信息安全的法律法规也在不断发布。希望大家在探讨汽车信息安全知识的同时,不要迷失方向或者出于好奇心做出类似“用舌头舔冰栏杆”的事情。

DoS是Denial of Service的缩写,即拒绝服务。DoS攻击是一种用于拒绝合法用户访问某种资源的攻击,例如访问网站、网络、电子邮件等,或使其速度极慢。这种类型的攻击通常是通过在同一时间向目标资源(如网络服务器)发出过多的请求来实现的。这将导致服务器无法响应所有的请求,使服务器崩溃或使其速度减慢。

类比一个例子:银行是提供金融和现金服务的服务器,大家也都知道银行柜台资源是有限的,平时进去都要取号和排队。但如果有一个流氓,他就是进去银行然后不断的存取现金零钱,影响其他人排队的速度和心情,更过分的话甚至会挤爆小网点的柜台资源,让网点无法给其他合法用户提供现金和金融服务。这个流氓的恶意行为就是现实版DoS攻击。

汽车Cyber Security入门之DoS 攻防

图1:DoS攻击概念图

DoS与DDoS

DDoS是Distributed Denial of Service的缩写,即分布式拒绝服务。DDoS实际上是一种特殊的DoS。它是一种分布的、协同的大规模攻击方式,它一般先通过隐藏病毒感染很多主机,让这些主机成为攻击的傀儡,同时向服务器请求服务,让网络充斥的大量数据包压垮服务器,让其不能正常提供服务。这些傀儡主机也称为“肉鸡”或者“僵尸主机”。同样以上文银行服务为例,DDoS攻击就像是这个流氓先群发了好多诈骗短信,谎称某银行存取现金有礼品送,然后导致大量的市民到银行取号排队,挤爆银行。

展开全文

汽车Cyber Security入门之DoS 攻防

图2:DDoS攻击示意图

汽车被DoS攻击的例子

最早的DoS攻击可以追溯到1974年,一个13岁的美国学生通过系统命令编程,让31台终端同时被锁,不能提供服务,必须重启。这些年来,DoS攻击一直时有发生。随着汽车智能网联化的发展,作为互联网络中的重要节点,汽车也被DoS攻击过。

2016年日产聆风(Nissan Leaf)配套的 NissanConnect 应用被曝存在安全隐患,黑客能够在车辆静止时控制该车的风扇设置,导致汽车电池耗尽。这就是对汽车的DoS攻击。

汽车Cyber Security入门之DoS 攻防

图3:NissanConnect App截图

NissanConnect可以显示驾驶习惯、充电水平等,而且它允许用户在充电时远程控制车辆的某些行为,例如提前打开空调和风扇。但是App通过http发起操作请求时,车辆端并没有进行权限鉴定,而是通过请求指令中包含的VIN号(车辆唯一识别号)来作简单的匹配。这就意味着攻击者只需要一个VIN号就能匿名访问车端服务API。而VIN号并不是什么“秘密”。一般汽车VIN号的前几个字符指的是品牌、型号和原产国,所以只有最后几个数字可以将每辆车区分开来。这个VIN号一般就在前挡风玻璃下方就可以找到。

汽车Cyber Security入门之DoS 攻防

图4:汽车VIN号示意图

虽然这个漏洞只在车辆静止时存在,不会影响行车安全。但如果恶意攻击者通过狂开空调耗尽电池,让正常用户准备出门时却发现车辆没电,那也是很让人窝火的。漏洞披露之后,日产公司就停止了全球的NissanConnect服务,直到软件得以更新。

汽车可被DoS攻击的漏洞

对于无线连接,TBox一般是汽车与车外网络的第一接入点。当前主流电子电气架构下TBox一般与车载网关连接,由网关负责车内网络与车外网络的隔离。而对于有线连接,像OBD、USB、充电接口等都是通讯的接入点。而有接入的地方,都可能受到DoS攻击。下图是汽车容易被攻击的接入点的示意图。

汽车Cyber Security入门之DoS 攻防

图5:汽车易受攻击的接入点示意图

随着RoboTaxi和共享汽车的发展,汽车除了可能会被远程攻击,近距离的本地攻击也有了更多的可能性。例如以前的网络安全威胁分析可能会认为驾驶员不会对自己的车辆发起攻击,但这在共享汽车上却不一定。上一个共享汽车的用户可能通过本地USB或者蓝牙接口发起攻击,威胁下一个使用共享汽车的用户。接下来我们看几个使用最广泛而又有可能遭受DoS攻击的车载通讯协议。

1.TCP

TCP作为可靠的传输层协议,在车载以太网上应用广泛。它的可靠性很大程度上来源其通过“三次握手”建立连接,通过“四次挥手”断开连接。但这种可靠性的“来来回回”也给DoS攻击留了可乘之机。如下图所示,TCP SYN泛洪攻击是一种常见的DoS攻击。

汽车Cyber Security入门之DoS 攻防

图6:TCP正常三次握手与SYN泛洪攻击对比图

它利用了TCP握手的可靠性要求,先发起建立连接的“SYN”请求。当服务器打开端口,回复“SYN-ACK”时,攻击者却不再继续,让服务器继续等着,端口资源也就那样耗着。这样的请求再多来若干次,服务器的资源就容易被耗尽,导致正常的客户端请求被拒绝。这种攻击的恶心程度就与下图的例子类似。

汽车Cyber Security入门之DoS 攻防

图7:TCP正常三次握手与SYN泛洪攻击的示例图

2.CAN

如果说TCP/IP是先在互联网流行再传到汽车上,那么CAN通讯就是汽车行业根正苗红的教父了。但也因为CAN原生就是针对汽车设计,早些时候的汽车没有联网,也不会共享,相对于安全和稳定性需求,其信息安全需求是被忽视的。CAN总线有两个重要特点很容易被DoS攻击:无身份验证接入和竞争仲裁。

(1)无身份接入

CAN是典型的总线结构,总线上可以随意增加节点而不必验证节点的身份。增加节点也可以自由在总线上读写。当然这为测试和调试汽车CAN总线提供了很大便利,物理上改装一下线束,甩出一个DB9的接头连接一个Vector盒子和笔记本电脑就能实现节点的收发。当然,出于OBD排放法规和诊断的考虑,普通用户也可以通过量产车上OBD接口接入车载CAN网络。

(2)竞争仲裁

CAN总线上是基于竞争仲裁机制的,也就是谁的报文优先级高,谁就能往总线上发数据,其他节点就得先等等。而谁的报文ID小,谁的优先级就高。这种方式保证了车上ECU之间通讯的高效和可靠。但如果有恶意接入点,例如车载中央网关被劫持,那么只要往总线上发高优先级的报文,就可以堵住其他ECU的嘴,让它们发不出报文,提供不了服务,实现DoS攻击。其实早在2010年就有相关论文发表,详细分析了CAN总线技术的信息安全脆弱点。鼎鼎大名的克莱斯勒吉普被黑事件中,攻击者也是远程获得了CAN权限后,利用CAN总线漏洞开展了例如高速上关掉发动机等操作。

汽车Cyber Security入门之DoS 攻防

图8:论文中CAN攻击实验的设置环境

3.SOME/IP-TP

近年来火热地谈论下一代EE架构和SOA的时候,总离不开SOME/IP这个进程间通讯协议。在许多应用场景中,需要通过UDP传输大型的SOME/IP有效载荷。鉴于在以太网上传输数据包的大小限制,SOME/IP-TP是针对有效载荷分段的协议,它将一个大型的消息分割成若干小段发送,然后在接收端再组装起来。

2019年Argus研究小组就在AUTOSAR CP 4.3(包括4.4)中发现了一个设计缺陷。对在SOME/IP-TP上使用SecOC对完整的载荷信息进行认证时,会产生一个漏洞,如果被利用,将导致接收信息的ECU丢掉载荷信息,也就是DoS攻击,示意图如下。

汽车Cyber Security入门之DoS 攻防

图9:一种SOME/IP TP DoS攻击示意图

防御DoS攻击的手段

这个世界上有矛的地方就会有盾,DoS攻击(尤其是DDoS攻击)到目前为止也没有完全彻底的防御办法,但这当然并不意味着躺倒了。事实上,尽管不能100%彻底防御,但网络信息安全界还是有不少防御神器,可以与DoS攻击抗衡。下面我们就来看看几种常见于智能网联汽车上的手段:

(1)防火墙

像上文微信聊天例子中的攻击者,你是不是会把他拉黑?没错,这就相当于防火墙技术。设置防火墙规则,例如只有白名单上的IP地址才能访问服务器,就是IP防火墙。又或者只有白名单上的应用进程才能访问某个服务,就是应用防火墙。AUTOSAR AP中的IAM模块结合EM模块就可以实现应用防火墙。

防火墙本质就是设置过滤规则,简单的静态过滤规则可以通过软件实现,但是复杂的动态规则如果只靠软件,容易造成系统或者主机自身资源的浪费和不可控。因此可以针对过滤规则特性设计专门的硬件来实现防火墙,也就是“硬件防火墙”。它把“软件防火墙”嵌入在硬件中,把“防火墙程序”加入到芯片里面,由硬件执行这些功能,从而减少主机或服务器的CPU负担。例如用来防御TCP SYN泛洪攻击的状态检测机制就常常通过硬件防火墙在网络接入点实现。当然硬件防火墙在IT行业比较常见,笔者尚未见到汽车行业的专用硬件防火墙。但是相信随着汽车智能网联化的发展,也会催生出相应的硬件防火墙芯片。

汽车Cyber Security入门之DoS 攻防

图10:硬件防火墙

(2)SecOC (Secure Onboard Communication)

SecOC是AUTOSAR针对CAN总线等信息安全能力薄弱的情况所推出的安全校验机制。它简单来说就是发送方在报文结尾加上一个消息验证码,而接收方在使用报文之前先校验验证码。消息验证码采用对称加密,用于车内ECU之间的通讯鉴权,密钥也是在汽车出厂前先预置好的。通过校验消息验证码,可以让接收端ECU过滤掉一些非法节点的报文,防御恶意中间人攻击导致的服务失效(DoS攻击)。SecOC可以用于CAN通讯,也可以用于FlexRay或者以太网。但如上文提到,当应用在SOME/IP-TP时,仍然有被DoS攻击的脆弱性。

(3)IDPS (Intrusion Detection & Prevention System)

IDPS的核心思路其实包括IDS和IPS。在各个通讯节点内部的安全环境下部署一个模块,用来监视、检测、记录和上报异常数据,这就是IDS。而IPS则是发现异常之后,通过远程升级(OTA)等手段针对性地更新软件,进行防御。例如下图是AUTOSAR中的分布式IDS方案。

汽车Cyber Security入门之DoS 攻防

图11:车端的分布式IDS架构

车端各个ECU内部署IDS模块,最终通过无线通讯单元把数据上传给云端作分析判断。云端部分可以更多地融合IT界的方案,可以做更复杂的运算以作最终判断。当然车端ECU也要作适当的初步判断和筛选,否则车云通讯的带宽不支持。以之前提到的银行的例子来说,IDPS就相当于大堂保安,如果看到人太多,就作出限流措施,如果看到流氓,就把他抓住。

写在最后

DoS在多年来的攻防战中没有被消灭,并始终活跃在大众视野,这就很值得我们重视和学习。在汽车“新四化”的背景下,智能汽车的网络信息安全需求得到了前所未有的重视,DoS也是其中需要重点防御的网络攻击。希望本文介绍的DoS历史和攻防信息能对各位同仁有所帮助。

参考来源:

1.https://www.guru99.com/ultimate-guide-to-dos-attacks.html

2.https://insidetrade.co/okex-bitfinex-experience-ddos-attacks/dos-attack/

3.https://www.troyhunt.com/controlling-vehicle-features-of-nissan/

4.https://www.microcontrollertips.com/safety-and-cyber-security-for-the-connected-car-faq/

5.Argus Research Report: Design flaw in AUTOSAR exposes vehicles to DoS attack

发表评论