當前針對智能手機主流的攻擊集中在應用處理器上運行的軟件,今天要介紹的這種攻擊方式是打破手機的基帶處理器,在基帶堆棧中導致遠程執行代碼的攻擊。這是一個全新的領域,但國內在這方面的研究幾乎沒有,發到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
一、基帶是什么,有什么用?
根據百科解釋,“基帶是Baseband 信源(信息源,也稱發射端)發出的沒有經過調制(進行頻譜搬移和變換)的原始電信號所固有的頻帶(頻率帶寬),稱為基本頻帶,簡稱基帶。”
基帶本質上是手機中的一塊電路,負責完成移動網絡中無線信號的解調、解擾、解擴和解碼工作,並將最終解碼完成的數字信號傳遞給基站等上層處理系統進行處理,基帶即為俗稱的BB,可以理解為通信模塊。
基帶芯片的組成大致可以分為五個模塊,分別是CPU處理器、信道編碼器、數字信號處理器、調制解調器和接口模塊。核心部分最主要是兩個部分:射頻部分和基帶部分。射頻部分是將電信號調制成電磁波發送出去或是對接收電磁波進行解調,並且實現基帶調制信號的上變頻和下變頻。基帶部分一般是對信號處理,一般由固定功能的DSP提供強大的處理能力,在現代通信設備中,DSP一般被用作語音信號處理、信道編解碼、圖像處理等等。
目前手機網絡有分GSM、CDMA、CDMA-2000、WCDMA、TD-SCDMA、FDD-LTE和TD-LTE等多種制式。手機支持什么制式網絡及頻段,通話質量的好壞、網速的快慢、信號的強弱都由這塊基帶芯片決定。
生產手機基帶芯片的廠家主要有:高通、德州儀器(TI)、意法半導體(ST)、博通、愛立信EMP、飛思卡爾半導體、Philips、Agere、Infineon、聯發科(MTK)、展訊通信、ADI、NXP、華為海思、威盛凌陽互芯集成等等。
以高通驍龍835為例,在整個SoC芯片上,集成了CPU、GPU、DSP、ISP、安全模塊以及X16 LTE Modem:
二、基帶是如何工作的?
很簡單,當我們用手機打電話、上網時,電信號首先要經過基帶處理,然后在手機和基站間建立邏輯信道,語音、網絡數據就通過邏輯信道發送給基站,實現信息的互聯和通信。基帶的重要性顯而易見。
一個經過簡化的數字通信系統模型如下所示:
三、攻擊手段
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()函數的大多數使用都在診斷代碼中,並且不允許傳遞任意格式的字符串。
四、漏洞利用及危害
簡而言之,觸發漏洞只需使用GSM移動設備的AT命令集中定義的自動功能,找到AT命令處理程序來設置S0寄存器。對於堆棧緩沖區溢出或其他漏洞,則直接對程序計數器進行控制,然后將值1加載到寄存器R0中,並重定向執行流入此功能。
在GSM基帶軟件堆棧中成功利用內存損壞,攻擊者可以訪問電話與隱私相關的硬件,控制電話基帶側的攻擊者可以完全透明地監視用戶,而無需從應用程序CPU側入手。另一個問題就是圍繞着圍繞計費問題:一旦攻擊者控制了基帶,他可以撥打電話,發送高級短信或導致手機擁有者不了解的大量數據傳輸。這顯然可能對運營商和終端用戶造成困擾。
五、總結
從以上我們知道,基帶固件的內存損壞存在並可以被實際利用。對這些安全問題的實際利用完全損害被攻擊手機的完整性。僅僅進入惡意基站的附近就足以接管任何易受攻擊的手機,而不需要用戶交互。開發成本低到足以使這些攻擊成為現實:對於中檔筆記本電腦的價格為1500美元 ,攻擊者可以購買硬件來操作帶有OpenBTS的惡意GSM手機。