汽車被黑客破解已經有不少案例,包括特斯拉、奔馳等豪車都難逃“黑手”。不過經過工具掃描出來的漏洞只是理論上的,黑客破解所得利益與所花時間和成本之間的比例究竟如何還不得而知,而且漏洞的根源到底在哪也是車云菌好奇之處。
最近,360破解團隊向車云菌重現了破解汽車通訊協議的場景。當問到破解所耗時間,360的安全工程師老聞停頓了一下,“不到1周吧?!?/p>
“什么?”,車云菌難掩吃驚的表情,“1周就攻破了?”
“嗯,鑒于我們之前有攻破Tesla的經驗,所以后面就比較快”,老聞手里把玩著車鑰匙,“而且有些車底層用的是傳統的CAN總線,從云端下來的指令是不經驗證直接執行的,所以理論上什么操作都可以,比Tesla的以太網總線輕松不少?!?/p>
對于我們最為關心的“所得利益與所花時間和成本”的問題,360給出了一個驚人的答案。

黑客一任性,后果很嚴重
“那破解了之后,我能對這輛車做些什么?”
“鑰匙和合法遙控手機都不用,OBD接口空著,我只需要一臺筆記本,來實現尋車、解鎖、著車?!?/p>
“這么高權限?”,車云菌心中閃過一絲狐疑,“你是拆過原廠鑰匙,取過ID(身份識別碼)?還是把合法手機越獄了導出了密匙文件?”
老聞哈哈大笑,“那也太low了,跟OBD一樣沒技術含量。這么說吧,你只要跟我用過同一個WiFi,或者點擊過我發的微信釣魚鏈接,我就能開走你的車,咱倆不必認識,完全可以素昧平生。最關鍵的是,哪怕我開走了,這車所處的云平臺也不會對你發出任何警告信息?!?/p>
跟著老聞,車云菌走進地庫,仔細檢查這臺海藍色車,包括外觀、乘員艙、發動機艙、后備廂、充電口、加油口,確認無誤后,沒收了老聞手里的合法鑰匙,以及裝有該車云服務app的安卓手機,然后請老聞實施攻擊。
老聞的一名同事熟練的掏出一臺Macbook,執行了一段python代碼,敲下回車,大概1秒鐘,車子鳴笛并雙閃,尋車指令成功執行。
然后是解鎖,同樣一段python代碼,執行參數改一下,大燈點亮,車門隨意開。

通過電腦破解車輛,大燈點亮,車門解鎖
“咳”,老聞清了清嗓子,“這無非就損失點兒財物,危害性并不大,而且這款車的手機app也支持這倆功能。這么著,我們來點兒好玩的,你先把車鎖上?!?/p>
車云菌按下手中的遙控鑰匙,車子應聲上鎖。同事小伙子接著執行代碼,全車燈光再次亮起,隨著清脆的一響,發動機開始運轉。車云菌大為震驚,想拉開車門看看儀表盤有無“非法運行”等提示,無奈車門還是鎖閉狀態,而儀表盤上所有信息貌似一切正常,車云菌立即按下快門,記錄了當時的狀態。

遠程破解著車,儀表盤上正常顯示車輛狀態
“這還不算什么,無非是車子被盜,手機在你身上,被盜車輛的位置還是可以查到的”,老聞不急不躁的接著侃,“我進去先開車”,隨后給同事使了個眼色。老聞上車后掛了倒檔,稍帶剎車,車子緩緩倒車;然后老聞舉起雙手,示意他不再操作車輛,此時車外的同事再次執行尋車代碼,喇叭也再次鳴響,雙閃點亮!

車輛倒車中,遠程代碼執行尋車成功,后視鏡上燈亮并鳴笛
老聞熄火下車后,向呆若木雞的車云菌解釋,“你看,云端下發的指令可以越權于車內操作,假設我正行駛在高速上,這兄弟把尋車指令換成其他操作,我想不需要我過多解釋了吧?”
滿腹狐疑的車云菌心想,這么遜咖的軟件bug應該不會被汽車品牌的手機app測試團隊漏掉吧。老聞解釋說,車輛運行時,如果是從手機app上點擊尋車,App會提示車輛正在運行,從而不會發出指令。而不幸的是,這道關卡只設置在手機上,而有些汽車品牌的云服務端是不做二次檢查的,360安全團隊直連了該車的云端服務器(并未通過手機),因此指令輕松自在的被車輛接收。更加不可思議的是,車子的firmware也沒有檢查自己的狀態就執行了尋車指令——最后一關也形同虛設……哦,對不起,最后一關干脆就不存在。
最后,老聞請同事用代碼開一下后備廂。車云菌表示不必了,既然整車都能解鎖,區區后備廂還有什么意義。同事自顧自地執行了代碼,后備廂自動彈開,老聞按下后備廂,但鎖頭已經“神奇的”失效,無論怎么按下廂蓋都無法鎖閉;車云菌只好整車解鎖再上鎖,后備廂才正常鎖閉,這一幕讓人多少有些無語。最為關鍵的是,單獨解鎖后備廂這個功能,在手機App上并沒有開放。
“今兒先到這”,老聞撓撓頭,“我們上樓聊吧”。
如何為信息設防?
坐定之后,車云菌向老聞咨詢了汽車手機應用與云端交互過程是否明文通信(有否加密)。老聞直言不諱的告訴車云菌,加密是有的,一方面是業界通用的加密算法,另一方面也有一部分品牌自己設計的加密手段,但問題是,算法依然太薄弱,破解不要太輕松。這還不算什么,指令是否合法只在手機app上校驗,云端和車端都是簡單的轉發和執行,這一點則更加危險。
然而離譜的是,從3G/4G民用網絡接收并翻譯出的CAN指令幾乎無條件的在車身CAN總線上執行,一無物理隔離,二無權限管理,這一點讓360安全團隊的同事們大開眼界,“花上一點時間,對這輛車做什么都可以,等于完全不設防”。
所以,如果總結一下,汽車被破解存在的問題有三:
1.手機App的加密較為薄弱,執行操作時,缺少如短信驗證的驗證手段,破防更加輕松;
2.權限的優先級設定不明確,繞開手機App之后,云端指令可直接下達,干擾駕駛員對車輛的操控過程;
3.云端開啟的權限過多,雖然手機App上進行了屏蔽處理,但同樣只要繞開移動端,就相當于大開方便之門。
當被問及車輛聯網如何才能做到更安全時,老聞簡潔明了地說了兩點:
其一,從基礎設計上下功夫。采用物理隔離,或者像Tesla一樣升級車身總線,從車輛底層拋棄無鑒權、無校驗的30年高齡之CAN總線;如此這般,破解難度會成倍提高,甚至不得不物理侵入車輛。
其二,傳統的遙控鑰匙破解需要射頻設備,且只針對一臺車;而升級到云服務,攻擊工具只需要一臺電腦,目標可以是同平臺的所有上路車輛(全國/全球)。所謂“術業有專攻”,整車廠造車水準一流,但對IT行業的安全攻防則毫無積累——要做對事,應當先找對人。