0
本文作者: Song | 2016-07-04 17:36 |
雷鋒網(wǎng)按:本文為雷鋒網(wǎng)獨(dú)家首發(fā)文章,作者song,西雅圖Newsky Security公司聯(lián)合創(chuàng)始人兼CTO,業(yè)內(nèi)知名防病毒專家,黑客,雷鋒網(wǎng)專欄特約作者。
這次特斯拉的自動(dòng)駕駛事故導(dǎo)致駕駛員死亡。事件已經(jīng)過(guò)去近兩個(gè)月了,但是在媒體上大規(guī)模發(fā)布是這幾天的事情。按照官方分析,事件發(fā)生的原因是自動(dòng)駕駛傳感器將底盤很高的大貨車誤判為橋梁等建筑物。我們可以看出,計(jì)算機(jī)的錯(cuò)誤,已經(jīng)不再局限于虛擬世界,而是可以導(dǎo)致人類生命的損失。作為計(jì)算機(jī)安全研究人員,我們不僅要問(wèn),車載計(jì)算機(jī)可能會(huì)有哪些情況會(huì)被攻擊,導(dǎo)致嚴(yán)重的事故呢?
我們先從美國(guó)的車載診斷系統(tǒng)OBD II說(shuō)起。OBD II是On-Board Diagnositics Version II的意思,正巧今年是OBD II在美國(guó)實(shí)施20周年。美國(guó)規(guī)定,從1996款開(kāi)始,在美國(guó)銷售的汽車必須有OBD II系統(tǒng)。OBD II是連接汽車控制器網(wǎng)絡(luò)的接口,一般在司機(jī)左膝蓋前方。
比如特斯拉Model S的OBD II接口長(zhǎng)這樣:
(圖1:特斯拉Model S的OBD II接口)
大多數(shù)美國(guó)跑的車子,不管是美國(guó)造的、日本造的還是歐洲造的,都是用這樣的接口。
連上這個(gè)接口,就能連上車的控制機(jī)網(wǎng)絡(luò)總線CAN Bus,然后和車?yán)锩娴母鞣N計(jì)算機(jī)聊天,比如讓引擎控制器告訴你今天喝了幾壺啊,問(wèn)問(wèn)機(jī)油是不是太燙啊,告訴剎車ABS控制器該放手了啊之類的。
問(wèn)題來(lái)了。當(dāng)年在建立OBD II標(biāo)準(zhǔn)的時(shí)候,車子上面還沒(méi)有什么無(wú)線的接口。需要指出的是,有線網(wǎng)絡(luò)和無(wú)線網(wǎng)絡(luò)完全是不一樣的安全玩法。因?yàn)橛芯€網(wǎng)絡(luò)的信號(hào)連接,通過(guò)線纜構(gòu)建了一個(gè)隱含的信任架構(gòu)。只有被信任的計(jì)算機(jī)才能連接到網(wǎng)絡(luò)中。這就像一群在重點(diǎn)學(xué)校長(zhǎng)大的孩子,大家彼此都規(guī)規(guī)矩矩,客客氣氣,完全不知道外面世界的險(xiǎn)惡。
而無(wú)線網(wǎng)絡(luò),則是一片叢林,誰(shuí)都可以偷聽(tīng),誰(shuí)都可以說(shuō)話,誰(shuí)都可以模仿別人。把有線網(wǎng)絡(luò)里的設(shè)備接入無(wú)線網(wǎng)絡(luò),就等于把一群乖孩子直接扔到菜市場(chǎng),被騙走幾個(gè)是肯定的。不信?你不妨靜心聽(tīng)一下2.4G赫茲的頻段,那里有藍(lán)牙,BLE和Zigbee的淺吟,有WiFi的低唱,有無(wú)線鼠標(biāo)的咕噥,有遙控玩具的喧鬧,有無(wú)繩電話的碎碎念,忽然大家都安靜下來(lái)了,耳邊只有微波爐的咆哮。
而車載的那些計(jì)算機(jī),在20年以后,發(fā)現(xiàn)身邊的各種器件都能通過(guò)無(wú)線接口,不論是車載電話,還是車載WiFi或者藍(lán)牙,連到CAN bus上面,告訴那個(gè)引擎控制器該休息了,或者ABS控制器該放手了。而黑客們也能通過(guò)這些無(wú)線接口,和一輛正在行駛的車上面的控制器聊天,細(xì)思極恐。
對(duì)于這種可能有嚴(yán)重后果的攻擊方式,我們還是有分寸的,這里就講一個(gè)不那么嚴(yán)重的例子。
前一段國(guó)內(nèi)創(chuàng)新熱潮里面,有不少人搞車聯(lián)網(wǎng)。所謂車聯(lián)網(wǎng),很多方案其實(shí)就是買個(gè)這種小盒子插到車的OBD II接口上,然后用手機(jī)和小盒子里面的藍(lán)牙配對(duì),手機(jī)上的APP就可以通過(guò)OBD II的接口讀取CAN bus上面的各種信息,包括耗氧量,發(fā)動(dòng)機(jī)轉(zhuǎn)速等等。
OBD II plug
問(wèn)題是,無(wú)論是這個(gè)小盒子還是CAN bus,都沒(méi)有足夠的防范措施來(lái)阻擋黑客的攻擊。我們做的第一個(gè)攻擊,就是開(kāi)著車子在路上跑,用手機(jī)來(lái)掃描這種小盒子的無(wú)線信號(hào)。一旦發(fā)現(xiàn),就破解去配對(duì)(《疑犯追蹤》里面宅總上身,強(qiáng)制配對(duì)的既視感)。然后就可以讀取車的某些敏感信息了。我們其實(shí)也不拿別的什么敏感信息,就是找ECU問(wèn)問(wèn)車的VIN號(hào)(相當(dāng)于車的身份證)啊,問(wèn)問(wèn)車子熱不熱啊之類的。這些都可以在等紅燈的半分鐘里面,從旁邊的車子里面問(wèn)來(lái)。還有一次是在開(kāi)車的過(guò)程中讓旁邊的車告訴我們它的車速是多少。
在讓OBD II和車載控制機(jī)隔離方面,特斯拉其實(shí)是做的很不錯(cuò)的。特斯拉的OBD II接口只是按照法律規(guī)定,提供了電壓和接地,但是并沒(méi)有和車載控制器有數(shù)據(jù)連接。相反,特斯拉的控制計(jì)算機(jī)是有wifi和以太網(wǎng)接口的。這些接口,也能成為黑客攻擊的界面。
前面講了傳統(tǒng)車載控制器可以被黑客攻擊的方法。在自動(dòng)駕駛方面,汽車又增加了傳統(tǒng)汽車所沒(méi)有的新的傳感器和計(jì)算機(jī)。比如計(jì)算機(jī)視覺(jué)用的攝像頭,用來(lái)檢測(cè)是否在車道內(nèi)部以及周圍的物體;比如以前不和駕駛控制器連接的GPS現(xiàn)在也作為數(shù)據(jù)輸入連入了駕駛控制網(wǎng)絡(luò);還有激光雷達(dá)等。所有這些新的傳感器,都會(huì)將數(shù)據(jù)源源不斷的輸入控制計(jì)算機(jī)。當(dāng)輸入數(shù)據(jù)被干擾,就有可能擾亂駕駛控制網(wǎng)絡(luò)中的計(jì)算機(jī)正常工作,造成事故。
第三種會(huì)造成車載系統(tǒng)故障的是第三方程序。大家或許還記得,在iPhone快發(fā)布的時(shí)候,喬布斯仍然不希望有App Store。原因其實(shí)很簡(jiǎn)單,一個(gè)開(kāi)放式計(jì)算機(jī)系統(tǒng)中,大約有四分之三以上的系統(tǒng)崩潰來(lái)自第三方程序。我讀書(shū)時(shí)候有位教授曾經(jīng)給我們看過(guò)一篇paper,統(tǒng)計(jì)表明微軟的Windows系統(tǒng)中,第三方的驅(qū)動(dòng)程序造成了80%左右的系統(tǒng)崩潰。喬布斯對(duì)第三方程序的威脅也是領(lǐng)會(huì)的非常清楚?,F(xiàn)在,很多車載系統(tǒng)需要第三方程序來(lái)進(jìn)行娛樂(lè)操作,比如播放網(wǎng)絡(luò)音樂(lè),展示目的地天氣等等,這些第三方程序往往不能保證和系統(tǒng)的其他部分一樣安全。
作為國(guó)際Web標(biāo)準(zhǔn)化組織W3C車聯(lián)網(wǎng)工作組的特邀安全專家,我在車聯(lián)網(wǎng)工作組的會(huì)議中也對(duì)第三方程序的安全性提出了一些建議,并得到了重視。參與標(biāo)準(zhǔn)建立的業(yè)界人士,對(duì)車載系統(tǒng)的安全性還是相當(dāng)重視的,我們會(huì)有專門的安全會(huì)議來(lái)探討車載系統(tǒng)的安全性。
雷鋒網(wǎng)注:轉(zhuǎn)載請(qǐng)聯(lián)系雷鋒網(wǎng)授權(quán),并保留出處和作者,不得刪減內(nèi)容。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。