Jeep如何被黑客攻擊的 破解報(bào)告獨(dú)家揭秘
2015年8月全球最大的黑客大會(huì)DEFCON掀起了汽車攻擊的一次高潮,兩萬(wàn)多名黑客和安全從事人員在美國(guó)拉斯維加斯目睹了一次又一次的汽車破解演示。正是像他們這樣的攻擊者過(guò)去2年內(nèi)在汽車安全領(lǐng)域的專注和貢獻(xiàn),讓保守的美國(guó)車廠將之前只有內(nèi)部知道的汽車安全隱患不得不逐漸讓公眾了解,直到今年7月克萊斯勒公司在美國(guó)大規(guī)模召回140萬(wàn)輛Jeep。
作為國(guó)內(nèi)最早一批投身車聯(lián)網(wǎng)安全的研究人員,我欣慰地看到了汽車安全是如何從一個(gè)偏門(mén)的研究領(lǐng)域到現(xiàn)在被人們重視,而且這群“人們”里面包括了車廠和相關(guān)的車聯(lián)網(wǎng)廠商。所以,我大膽且堅(jiān)定地認(rèn)為,2015年是汽車安全的元年。
黑客雙雄:Charlie Miller和Chris Valasek
Jeep破解事件的黑客是來(lái)自美國(guó)的Charlie Miller和Chris Valasek,他們分別在IOActive 和Twitter就職。但是,黑客工作只是他們自己的興趣愛(ài)好,與其所在公司沒(méi)有太多關(guān)系。他們倆目前在汽車黑客界應(yīng)該是最火的,這就難怪由他們?cè)诘暮诳痛髸?huì)會(huì)場(chǎng)水泄不通、甚至連站的地方都沒(méi)有了。
我與Charlie Miller和Chris Valasek會(huì)過(guò)兩次面,并與他們就汽車防護(hù)工作進(jìn)行過(guò)討論:2013年DEFCON會(huì)議上他們關(guān)于汽車攻擊的演示很大程度上掀起了車聯(lián)網(wǎng)安全的研究熱情;2015年4月舉行的Automobile Cyber Security Summit底特律汽車安全高峰會(huì)議他們倒沒(méi)有什么新的東西(現(xiàn)在想來(lái),估計(jì)是在為8月的JEEP漏洞發(fā)布蓄勢(shì))。
Jeep破解報(bào)告
我寫(xiě)這篇文章前讀過(guò)了Charlie 和Chris關(guān)于Jeep的91頁(yè)英文破解報(bào)告——Remote Exploitation of an Unaltered Passenger Vehicle。
8月10日,我就在等這篇報(bào)告出爐,但是等到半夜沒(méi)見(jiàn)作者如期放出來(lái)。好在第二天上午首先在illmatics.com網(wǎng)上看到了PDF版本,91頁(yè)足夠多了。
我不可能把報(bào)告的細(xì)節(jié)一一描述,只根據(jù)我了解的背景知識(shí)和兩位黑客之前做的一些工作,來(lái)向大家介紹他們最近的研究工作和之前有什么不同、實(shí)現(xiàn)思路和用什么方式來(lái)進(jìn)行防護(hù)類似黑客的攻擊。我會(huì)根據(jù)自己的理解寫(xiě)我的感受,不一定按照?qǐng)?bào)告里的內(nèi)容翻譯。
“unaltered”這個(gè)詞,意思是不加改變的,不包括插上OBD盒子、對(duì)汽車內(nèi)部做手腳、接入WIFI熱點(diǎn)等等。這個(gè)詞背后的意思就是叫板,我不做手腳照樣搞掂你。
報(bào)告的前幾頁(yè)介紹了他們的汽車安全研究工作,以及破解Jeep的初心:09年以來(lái)汽車攻擊大多是以物理接觸攻擊為主,這次他們想從遠(yuǎn)程攻擊入手,實(shí)現(xiàn)大規(guī)??蓮?fù)制性的汽車攻 擊,這恰恰是病毒攻擊的特點(diǎn),也是車廠最擔(dān)心的;另外一個(gè)原因,物理攻擊的局限性是車廠反饋的集中點(diǎn)。OBD入口攻擊、車?yán)锓湃朐O(shè)備(例如攻擊 OnStar的Ownstar設(shè)備)都是因?yàn)檫@個(gè)理由而遭車廠選擇性忽視。所以,這次遠(yuǎn)程攻擊是研究者的一次亮劍,看看車廠到底還有什么 理由來(lái)回避。
選Jeep不是偶然
我從FCA汽車相關(guān)人員處了解,他們不是沒(méi)有自己的cybersecurity安全團(tuán)隊(duì),只是目前規(guī)模比較小。但Jeep還是躺著中槍了兩次!去年世界黑客大會(huì)上,Charlie 和Chris發(fā)表了對(duì)不同汽車的一項(xiàng)調(diào)研成果:在眾多的汽車中,Jeep由于潛在的風(fēng)險(xiǎn)被認(rèn)為是容易受攻擊的一種車輛。而今年,Jeep就真的不幸成為候選車輛。所以如果你也了解這 段歷史,當(dāng)你第一次知道Jeep曝出漏洞的時(shí)候,你會(huì)和我一樣有這樣的念頭,“怎么又是Jeep?!”
破解思路:為什么選擇從娛樂(lè)系統(tǒng)入手?
誰(shuí)讓你把娛樂(lè)系統(tǒng)直接連到CAN總線上?攻破了娛樂(lè)系統(tǒng)就可以把CAN指令寫(xiě)入到CAN總線里,之前兩位黑客積累的私有協(xié)議CAN指令就有用武之地了,嘿嘿。
報(bào)告的第9-19頁(yè)介紹了2014款Jeep的一些輔助功能和對(duì)應(yīng)的潛在攻擊點(diǎn),不是特別重要。值得一提的是Wifi熱點(diǎn),作者就是通過(guò)這個(gè)攻入了汽車。
之后的幾頁(yè)介紹了Jeep的Uconnect、操作系統(tǒng)、文件系統(tǒng)等等,其中的IFS越獄會(huì)在報(bào)告稍后部分介紹。
第25頁(yè)是很重要的,因?yàn)檫@次破解工作的出發(fā)點(diǎn):Jeep的WPA2密碼設(shè)置很弱:按照固定的時(shí)間加上車機(jī)啟動(dòng)的秒數(shù),生成一個(gè)密碼。這樣,只需要試不超過(guò)幾十次,密碼就可以攻破了!原本想按照車機(jī)開(kāi)啟時(shí)間加上車機(jī)啟動(dòng)時(shí)間,但是車機(jī)無(wú)法知道何時(shí)啟動(dòng)的,所以在函數(shù)start()就硬編碼了一個(gè)固定的時(shí)間:2013年1月1日零時(shí), oops!
然后,在28頁(yè)擴(kuò)大戰(zhàn)果,通過(guò)端口掃描發(fā)現(xiàn)了一系列開(kāi)放的端口,包括6667 D-Bus,一種IPC、RPC的進(jìn)程通信機(jī)制。由于D-BUS允許匿名登入,兩位破解者做了一系列的嘗試(P29)。
最后,通過(guò)對(duì)D-BUS服務(wù)的分析,發(fā)現(xiàn)有幾種可直接進(jìn)行操作,比如調(diào)節(jié)車機(jī)音量大小和獲取PPS數(shù)據(jù)(P31頁(yè))。
又一個(gè)發(fā)現(xiàn):移動(dòng)供應(yīng)商內(nèi)部網(wǎng)絡(luò)
由于Uconnect可以連接到移動(dòng)運(yùn)營(yíng)商Sprint,后者提供telematics服務(wù),使用高通3G基帶芯片。雖然車機(jī)里面的TI OMAP系統(tǒng)不能直接連接CAN總線,但是兩位破解者發(fā)現(xiàn)了另一個(gè)絕對(duì)需要保護(hù)的地方,就是我們俗稱的CAN控制器。這里的控制器是Renesas(有人習(xí)慣稱為NEC)V850 MCU,這是一個(gè)比較常用的處理器,連反調(diào)試神奇IDA Pro都有相應(yīng)調(diào)試模塊(P33)。 接下來(lái)就是如何越獄Uconnect,但他們指出這不是必要的,純碎是興趣所在,所以眾位看官可以跳過(guò)這一部分,如果你不是一個(gè)Geek。
第40頁(yè)開(kāi)始再次回到攻擊的正路上:利用Uconnect發(fā)出控制娛樂(lè)系統(tǒng)音量、空調(diào)風(fēng)扇、收音機(jī),甚至關(guān)閉屏幕、更改開(kāi)機(jī)圖片等指令。
前面提到的D-Bus再次給攻擊者提供了新的攻擊點(diǎn)GPS,通過(guò)端口6667可以跟蹤任何一輛運(yùn)行Uconnect的汽車,這為進(jìn)行大規(guī)模、任意性攻擊提供了必要條件。[!--empirenews.page--]
到此為止,報(bào)告我講解了一半了,但是一個(gè)非常大的挑戰(zhàn)是:還不能完全滿足遠(yuǎn)程攻擊和不進(jìn)行修改(unaltered)汽車的目的。第一,很多車主不購(gòu)買(mǎi) wifi熱點(diǎn)服務(wù),所以這些車輛無(wú)法攻擊到 ,Wifi信號(hào)還是近場(chǎng)攻擊。所以,下面我要介紹如何利用Sprint運(yùn)營(yíng)商的內(nèi)網(wǎng)進(jìn)行遠(yuǎn)程攻擊。
P43-4 8,作者發(fā)現(xiàn)了2個(gè)A類IP地址段是用來(lái)分配給汽車的,汽車每次啟動(dòng)的時(shí)候都會(huì)自動(dòng)分配一個(gè)IP地址。又是D-BUS被用來(lái)和運(yùn)營(yíng)商網(wǎng)絡(luò)進(jìn)行通信。作者在 Ebay上買(mǎi)了叫Sprint Airave的設(shè)備,并利用了這個(gè)設(shè)備公開(kāi)的一個(gè)漏洞,通過(guò)TELNET進(jìn)入!這就意味著我們?cè)谝惠v車上嘗試成功的攻擊手段可以通過(guò)運(yùn)營(yíng)商網(wǎng)絡(luò)傳播到所有的Uconnect車輛上!這里面有一個(gè)Sprint通信的特點(diǎn),可以允許不同的設(shè)備(包括汽車)通過(guò)通信塔自由通信,這就是攻擊的傳播通道。(漏洞爆出后,Sprint迅速修改了這個(gè)機(jī)制。)
P46,如何利用通信網(wǎng)絡(luò)掃描所有車輛并且定位。掃描結(jié)果發(fā)現(xiàn)不僅僅是Jeep車型,其他一系列車型都是受害者。兩位黑客估計(jì)了一下,大概有29-47萬(wàn)輛車被波及。實(shí)際結(jié)果是,車廠召回了140萬(wàn)!
下一個(gè)倒霉蛋-V850
V850本來(lái)沒(méi)有向CAN總線寫(xiě)指令的功能,但我們可以通過(guò)改寫(xiě)V850固件、插入惡意代碼進(jìn)行控制汽車CAN總線。這是通過(guò)OMAP芯片做到的。 P48-68是刷寫(xiě)固件的具體方法。在利用SPI機(jī)制刷寫(xiě)時(shí),兩位黑客發(fā)現(xiàn)V850固件更新沒(méi)有采用簽名機(jī)制保護(hù)固件更新。
P70頁(yè)描述了如何通過(guò)V850發(fā)出CAN指令。P71頁(yè)對(duì)發(fā)現(xiàn)的漏洞進(jìn)行了總結(jié)。后面介紹的是如何通過(guò)汽車診斷工具逆向CAN協(xié)議。
P86頁(yè),向車廠通知和車廠反應(yīng)的進(jìn)度表,包含了很多有意思的信息。
如何進(jìn)行防范?
今年的DEFCON黑客大會(huì)將汽車攻擊帶入了高潮,車廠和相關(guān)供應(yīng)商不得不思考汽車安全的問(wèn)題。但是汽車安全目前在中美兩地基本是空白。Chris他們?nèi)ツ曜隽艘粋€(gè)基于OBD接口的CAN流量異常檢測(cè)硬件設(shè)備,我和他在拉斯維加斯交流的時(shí)候,他也承認(rèn)不能進(jìn)行實(shí)時(shí)防護(hù),只能做線下異常檢測(cè),而且異常檢測(cè)的缺點(diǎn)是誤報(bào)率較高。
傳統(tǒng)汽車行業(yè)缺少安全方面的人才儲(chǔ)備,而互聯(lián)網(wǎng)公司和傳統(tǒng)安全公司對(duì)汽車又不是很熟悉,而且傳統(tǒng)安全防護(hù)解決方案不能輕易地移植到車內(nèi),這給了專門(mén)從事安全防護(hù)的公司很大的發(fā)展空間和機(jī)遇。一些很大規(guī)模的公司(甚至國(guó)外政府部門(mén)和飛機(jī)制造廠商)找到我們?cè)儐?wèn)汽車安全解決方案就證明了這點(diǎn)。很多做傳統(tǒng)安全的公司其實(shí)自己都不怎么理解汽車,更不用提汽車安全了。
由于缺少規(guī)范的安全監(jiān)管標(biāo)準(zhǔn)和流程,許多廠商不能對(duì)其硬件或者應(yīng)用軟件執(zhí)行必要的安全性測(cè)試,結(jié)果就會(huì)導(dǎo)致汽車的遠(yuǎn)程攻擊成為普遍現(xiàn)象。我希望更多的傳統(tǒng)安全人士投身到汽車安全研究中,隨著智能車的發(fā)展和應(yīng)用,汽車安全注定是一個(gè)無(wú)法繞過(guò)的議題。