當前針對智能手機主流的攻擊集中在應用處理器上運行的軟件,今天要介紹的這種攻擊方式是打破手機的基帶處理器,在基帶堆棧中致使遠程執行代碼的攻擊。這是一個全新的領域,但國內在這方面的研究幾乎沒有,發到Freebuf居然都沒審覈經過。(須要基本通訊技術GSM、OpenBTS等基礎)安全
起於德國安全公司Comsecuris公司總經理Ralf-Phillip Weinmann研究員在上週透露,MIAMI-A之前未公開的基帶漏洞影響了華爲智能手機,筆記本電腦WWAN模塊和IoT組件,可攻擊數百萬部華爲手機。在一種攻擊方案中,攻擊者能夠利用此漏洞對空中受攻擊的設備執行內存破壞攻擊。網絡
原文連接:https://threatpost.com/baseband-zero-day-exposes-millions-of-mobile-phones-to-attack/124833/?from=timeline函數
1、基帶是什麼,有什麼用?工具
根據百科解釋,「基帶是Baseband 信源(信息源,也稱發射端)發出的沒有通過調製(進行頻譜搬移和變換)的原始電信號所固有的頻帶(頻率帶寬),稱爲基本頻帶,簡稱基帶。」post
基帶本質上是手機中的一塊電路,負責完成移動網絡中無線信號的解調、解擾、解擴和解碼工做,並將最終解碼完成的數字信號傳遞給基站等上層處理系統進行處理,基帶即爲俗稱的BB,能夠理解爲通訊模塊。編碼
基帶芯片的組成大體能夠分爲五個模塊,分別是CPU處理器、信道編碼器、數字信號處理器、調制解調器和接口模塊。核心部分最主要是兩個部分:射頻部分和基帶部分。射頻部分是將電信號調製成電磁波發送出去或是對接收電磁波進行解調,而且實現基帶調製信號的上變頻和下變頻。基帶部分通常是對信號處理,通常由固定功能的DSP提供強大的處理能力,在現代通訊設備中,DSP通常被用做語音信號處理、信道編解碼、圖像處理等等。spa
目前手機網絡有分GSM、CDMA、CDMA-2000、WCDMA、TD-SCDMA、FDD-LTE和TD-LTE等多種制式。手機支持什麼制式網絡及頻段,通話質量的好壞、網速的快慢、信號的強弱都由這塊基帶芯片決定。3d
生產手機基帶芯片的廠家主要有:高通、德州儀器(TI)、意法半導體(ST)、博通、愛立信EMP、飛思卡爾半導體、Philips、Agere、Infineon、聯發科(MTK)、展訊通訊、ADI、NXP、華爲海思、威盛凌陽互芯集成等等。指針
以高通驍龍835爲例,在整個SoC芯片上,集成了CPU、GPU、DSP、ISP、安全模塊以及X16 LTE Modem:對象
2、基帶是如何工做的?
很簡單,當咱們用手機打電話、上網時,電信號首先要通過基帶處理,而後在手機和基站間創建邏輯信道,語音、網絡數據就經過邏輯信道發送給基站,實現信息的互聯和通訊。基帶的重要性顯而易見。
一個通過簡化的數字通訊系統模型以下所示:
3、攻擊手段
Ralf-Phillip Weinmann早在2010年就發表了針對基帶的數種攻擊:
連接:https://www.usenix.org/system/files/conference/woot12/woot12-final24.pdf
對基帶漏洞的挖掘一樣經過對固件的逆向分析,幾乎全部的基帶處理器都是ARM處理器,所以獲得了IDA Pro拆解器的良好支持,結合Google BinDiff工具能夠從新識別二進制文件中的已知功能。經過計算功能的流程圖上的多個度量,得到功能「指紋」,從幾個標準編譯器庫和具備符號的RTOS二進制文件中的符號來識別諸如memcpy(),memmove()和bcopy()和RTOS系統函數的函數。這使咱們可以識別使用可變長度存儲器副本的功能,使咱們可以快速查看其中哪些對於複製的數據使用了不足的長度檢查。
可利用的內存損壞類型總結有如下幾種:
1、長度檢查不足
這類漏洞一般致使堆上或堆疊上的數據被覆蓋,攻擊者能夠利用這些數據來利用一般的方法來控制執行流程。利用這些嵌入式系統中的堆棧破壞漏洞比現有的桌面平臺更容易實現。
2、對象/結構生命週期問題
因爲在GSM中大量使用狀態機,所以在生命週期問題中可能會致使內存損壞。這些能夠是無償使用的錯誤(例如,已經釋放的結構的懸掛指針)或未初始化的變量(在堆棧中最有用)。狀態機的常見示例是用於處理傳入的SMS和小區廣播的狀態機。
3、內存信息泄漏
這類漏洞不是內存損壞問題,但內存信息泄漏對於更好地利用內存損壞來講很是有用。一般,它們在上述生命週期問題的上下文中出現,至少在基帶堆棧中。其中沒有任何格式字符串問題,由於sprintf()函數的大多數使用都在診斷代碼中,而且不容許傳遞任意格式的字符串。
4、漏洞利用及危害
簡而言之,觸發漏洞只需使用GSM移動設備的AT命令集中定義的自動功能,找到AT命令處理程序來設置S0寄存器。對於堆棧緩衝區溢出或其餘漏洞,則直接對程序計數器進行控制,而後將值1加載到寄存器R0中,並重定向執行流入此功能。
在GSM基帶軟件堆棧中成功利用內存損壞,攻擊者能夠訪問電話與隱私相關的硬件,控制電話基帶側的攻擊者能夠徹底透明地監視用戶,而無需從應用程序CPU側入手。另外一個問題就是圍繞着圍繞計費問題:一旦攻擊者控制了基帶,他能夠撥打電話,發送高級短信或致使手機擁有者不瞭解的大量數據傳輸。這顯然可能對運營商和終端用戶形成困擾。
5、總結
從以上咱們知道,基帶固件的內存損壞存在並能夠被實際利用。對這些安全問題的實際利用徹底損害被攻擊手機的完整性。僅僅進入惡意基站的附近就足以接管任何易受攻擊的手機,而不須要用戶交互。開發成本低到足以使這些攻擊成爲現實:對於中檔筆記本電腦的價格爲1500美圓 ,攻擊者能夠購買硬件來操做帶有OpenBTS的惡意GSM手機。