今年10月,在美國丹佛市舉辦的ACM CCS 2015會議上(http://www.sigsac.org/ccs/CCS2015/ ),來自韓國科學技術院(KAIST)的研究者們,發表了他們在VoLTE安全方面的一些研究成果。這篇論文可以在這里下載到:http://dl.acm.org/citation.cfm?id=2813718
什么是VoLTE?
VoLTE是Voice over LTE的縮寫,意思是在LTE網絡(也就是我們常說的4G網絡)上“打電話”。目前全世界大部分的,已經開通了4G網絡的移動運營商,都還沒有支持VoLTE業務。根據論文中的數據,到2015年4月,有7個國家的16個運營商支持VoLTE,還有47個國家的90個運營商正在準備部署VoLTE。另外,目前支持VoLTE的終端也比較少。這篇論文總共測試了2個美國運營商和3個韓國運營商。
介紹這個背景的目的是想說明,第一,目前VoLTE還是個新生事物,不成熟,容易暴露問題;第二,因為很多運營商不支持,所以影響面不大。
對中國有影響嗎?
香港地區支持。中國大陸地區現在還不支持VoLTE,目前語音通話是使用3G和2G網絡,
漏洞利用會危害誰的利益?
對于運營商來說,可以發起的攻擊是:1)繞過運營商的計費系統,免費通話或者免費上網;2)拒絕服務攻擊,使運營商的SIP服務器癱瘓。
對用戶的危害是:1)可以偽造主叫號碼,撥打欺詐電話;2)可以惡意產生巨額話單。
======== 分割線 ========
下面解讀一下具體的攻擊方法。這個研究團隊在VoLTE這個攻擊面上上做了很多的研究工作,發現的漏洞也很多。
首先說明一下,這個研究的前提是:
攻擊者沒有接觸到運營商核心網。
攻擊者對自己的手機有完全的控制權,也就是有root權限。
因為安卓系統的開放性,所以利用安卓系統進行實驗是比較方便的。請注意,手機在這里主要是一個攻擊工具,因為漏洞主要存在于運營商的VoLTE系統中。
繞過計費系統
因為VoLTE本質上是一個SIP通話的過程。SIP是基于IP數據傳輸的。運營商對VoLTE的計費,沿襲了傳統的語音通話按時間長短計費的原則,按照SIP通話的時間長度來計費。而且僅當被叫方發出“接聽”這個消息之后,才開始計費。但是,在SIP session建立之前,主叫和被叫雙方就已經建立的IP連接(因為SIP是在IP層之上的嘛)。所以攻擊者可以讓這個SIP session始終不能成功建立,但是IP連接卻可以保持,攻擊者可以利用這個IP連接免費傳輸數據。
更糟糕的是,研究者們發現,有些運營商的系統中,兩個互相知道IP地址的終端,可以通過P-GW直接傳遞SIP消息,而不需要經過計費系統所在的IMS。這就使得兩個手機可以免費享用這個連接,只要把自己所有的數據包裝成SIP的數據包就可以了。
拒絕服務攻擊
因為在安卓系統上,可以深度控制SIP客戶端,所以可以發送大量的SIP請求,使SIP server癱瘓。根據論文中做過的測試,5個運營商中只有一個運營商對SIP session的數量做了限制。
鑒權不嚴格
SIP客戶端可以任意修改SIP消息的端口,內容等等,當然也可以修改主叫號碼。5個運營商中有2個,可以修改主叫號碼。類似的問題在普通的VoIP應用中也存在。目前有大量的網絡電話服務商,這些IP電話應用程序被破解之后,就可以用于偽造主叫號碼,可以以10086或者110這樣的身份打出電話,之前已經有很多此類案例。
隱秘的撥打電話
以上是以安卓手機為攻擊工具,對運營商系統進行的攻擊。有一些情況下,安卓手機用戶會變成受害者。例如,手機被攻擊者植入了惡意軟件。攻擊者可以通過惡意軟件,經過手機的SIP接口撥打電話,產生巨額話單。而且這個通話界面可以被完全隱藏,所以它也可以被利用來做竊聽。這個例子暴露出來的問題是安卓對VoLTE的權限沒有處理好。VoLTE是一個IP數據連接,在安卓系統中被當做普通的Internet Access的權限處理,所以撥打電話這個請求就可以瞞天過海了。
以上就是對該論文的簡單解讀。這篇論文所發現的問題,值得目前所有的,“已經”和“將要”部署VoLTE的運營商們重視。運營商可以通過升級P-GW和SIP server來修復這些漏洞。我想移動運營商們也許可以多多借鑒那些老牌的VoIP服務商的經驗,例如Skype,他們一定經歷過很多類似的攻擊問題。
在11月份即將在韓國召開的POC 2015 (http://www.powerofcommunity.net/ )會議上,漏洞發現者也將就這個議題發表演講。今年UnicornTeam也有議題入選,屆時可以與韓國的研究者們當面交流這個問題的細節。