隱藏在手機中的第二個作業系統

jobbole發表於2013-11-20

  每一部智慧手機或其它擁有3G、LTE通迅能力的裝置實際上都執行著兩個作業系統,這是個眾所周知但又很少被提起的話題。除了那個我們能看的見的系統(Android、iOs、PalmOS),裝置上還執行著一個專門處理無線訊號的系統。由於這部分任務是高度依賴時效的,必需有一個實時系統來處理它們。

  這個系統固化在韌體中並執行在基頻晶片上。據我所知,此類基頻晶片上執行的系統都完全是廠商私有的。例如,內建於高通的基頻晶片(MSM6280)中的實時作業系統叫做AMSS,它是基於其私有的REX核心開發的,共包含69個並行的任務,用來處理從USB到GPS的所有事務。它執行在一個ARMv5的處理器上。

  現在我們的問題很清楚了:人們很難了解這些基頻晶片和內建的閉源軟體,也沒有一個相應的機構來檢查它們。這個現象很奇怪,要知道這個小小的晶片上處理的任務對於一部移動裝置是多麼的重要。你也許會假設這部分實時系統是安全和受到保護的,但實際並非如此。你的裝置上可能有這個世界上最安全的主系統,但你仍有另一個系統是你不瞭解、也沒有文件並且是廠商私有的;你所能做的僅僅是去找那些高通、英飛凌或其它家的支援人員。

  基頻軟體的安全問題不是由於某些失誤引起的,從設計之初它就是這樣的。基頻晶片和無線電的標準是在80年代制定的,90年代完成了根據標準開發的程式——很自然,這些程式反映的是90年代人們對安全的認知。例如,那時很少有什麼漏洞攻擊,所以今天人們可以針對漏洞進行肆意的攻擊。更糟糕的是基頻晶片對基站來的訊號(例如手機訊號塔)是100%信任的。沒有認證,所有內容都自動是可信的。最後,基頻晶片通常是主處理器,而執行著應用系統的處理器是從處理器。

  所以,我們有一個完備的作業系統,它執行於ARM處理器上,該系統上沒有或只有很少的漏洞,它完全相信從所連基站上傳來的每一條指令、每一段程式碼和資料。這樣的情況會導致什麼?

  有了以上的認知,盧森堡大學安全領域的研究員Ralf-Philipp Weinmann對高通和英飛凌的基頻晶片軟體進行了反向工程,他很容易的找到了一大堆的漏洞,這些漏洞涉及各個模組,每一個都能被加以利用——例如使系統崩潰,甚至讓攻擊者遠端執行程式碼。不要忘了這:這些都是通過無線訊號過來的攻擊。其中一個漏洞僅僅只需要從遠端傳送一個73位元組的訊息就可以執行遠端程式碼。

  這意味著一些瘋狂的事情都可以基於這些漏洞實現了。例如,你可以使用Hayes指令集開啟自動應答。這是一種在1981年為調變解調器開發的命令式的語言,然而它在今天智慧手機的基頻晶片上卻還在使用!自動應答可以是靜音並且使用者不可見的。

  當然,我們也許可以認為那些電信巨頭們的手機訊號塔中的基站是安全的,然而事實是基站正在變得越來越廉價,並且eBay上就能買到——現在甚至連基於開源的基站軟體都有了。這種基站可以用來對付手機,放一個在鬧市區、金融區或其它機密的地方,你就可以遠端開啟手機、攝像頭、安裝木馬、給昂貴的國際長途號碼打電話/發簡訊。相信我,死鎖住目標手機也是可以的。

  這是一個非常嚴重的問題,但你卻從未聽說過。這些軟體是如此的底層和複雜,我相信世界上沒幾個人能真正反裡面的每一處都搞懂。

  複雜性導致寫一個自己的基站軟體很困難。僅僅是GSM裡面囊括的標準就夠讓人頭大的了,這還不包括其它的。現在你必須加上UMTS、HSDPA等等。每一個標準都涵蓋了一堆荒謬而複雜的專利。為了確保完成所有這一切,通迅主管部門要求基頻軟體必需通過認證。

  面對如此這麼多的阻力,我們不難明白為什麼手機廠商們只是優化並延用那些過時的基頻晶片和軟體。為了確保相容性,每一個特性手機上都有相應的處理軟體,但這些處理軟體實際上是一個黑盒。任何時候有人真正的研究裡面的程式碼,就會發現一堆的問題和臭蟲,也就使人不得不思考這種荒唐的情況什麼時候才能好轉。

  希望本文能使大家有一個清醒的認識,無論是已開發國家還是發展中國家,移動通迅裝置都是現代社會的基石,可它們的樞軸軟體卻是質量可疑的、不被人瞭解的、完全私有的並從未在設計上考慮過安全。

  原文連結: Thom Holwerda   翻譯: 伯樂線上 - NULL_文龍

相關文章