當前位置:
首頁 > 最新 > LTE空口用戶面數據任意篡改漏洞分析報告

LTE空口用戶面數據任意篡改漏洞分析報告

報告編號: B6-2018-070201

報告來源: 360無線電安全研究部

報告作者: 鄭玉偉、張婉橋

0x00 漏洞背景

6月27日GSMA CVD漏洞發布平台公布了一個新的漏洞。獨角獸團隊第一時間對該漏洞進行了分析。

該漏洞由LTE標準中的缺陷引入,因為沒有使用強制性的用戶面數據的完整性保護,使得LTE鏈路上的數據可被篡改。例如可以篡改DNS請求和響應。由於該攻擊發生於數據鏈路層,任何上層協議針對DNS可用的防護措施都將失效。唯一解決方案是修改LTE標準,目前3GPP正在研究如何修復該漏洞。

圖 1 GSMA CVD 披露

該漏洞是LTE協議標準漏洞,產生原因是LTE標準在制定時為了提高短報文帶寬利用率,對於用戶面的數據,空口層面僅僅啟用了加密,並沒有像控制面數據一樣,強制進行完整性保護。

這使得通過對運營商LTE網路中eNodeB與終端(手機等)之間的無線鏈路進行擊,遠程利用此漏洞,可以篡改用戶的IP數據報文,作者將這個漏洞命名為ALTER攻擊。威脅更大的是,可以在無線電波層面,對LTE用戶進行DNS spoof攻擊。

關於LTE空口的用戶面與控制面

LTE的控制面用於傳輸信令,而數據面則用於傳輸用戶的業務數據,例如承載語音通話,網頁瀏覽的IP報文數據。

LTE中加密和完整性保護在PDCP層實現,下面兩個圖分別為LTE空中介面(uu介面)控制面和用戶面PDCP層功能示意圖。

圖2 LTE 控制面PDCP層功能示意圖

圖 3 LTE 用戶面 PDCP 層功能示意圖

對比這兩個圖,可以看到在LTE空中介面的控制面有加密和完整性保護,而在用戶面則只有加密。事實上這個用戶面加密在LTE標準中是可選的,當然運營商在部署時通常都會啟用加密,但是該漏洞卻與是否加密沒有任何關係,問題在於沒有使用完整性保護。

0x01 攻擊過程及原理

硬體平台

圖 4 LTE 惡意中繼示意圖

實現這個攻擊核心組件是LTE中繼(Relay),即在運營商eNodeB和手機之間插入一個LTE惡意中繼,惡意中繼由一個偽eNodeB和一個偽UE(終端,類似手機)組成。下行鏈路中,運營商eNodeB給真實UE(用戶手機)發送的數據被偽UE接收,通過偽eNodeB發送給真實UE。上行鏈路中,真實UE給運營商eNodeB發送的數據則被偽eNodeB接收,通過偽UE發送給運營商的eNodeB。這樣所有真實UE與運營商之間的數據都會通過中繼。

實現原理

當LTE網路啟用用戶面加密時,要發起攻擊,首先需要解決的是在空口上繞過加密演算法,修改IP報文數據。

LTE加密原理

從常規思維看,分組對稱加密演算法的密文只要被修改一個bit,會導致在解密時,分組中至少一半以上的bits放生變化,這是評價加密演算法好壞的一個標準。從這個角度看,在LTE用戶面啟用加密時,似乎針對密文進行修改,並不會帶來什麼危害,數據頂多在惡意中繼那透明的通過,惡意中繼也無法解密,也無法受控的通過篡改密文達到修改明文的目的。然而這個思路對於流式加密並不適用,而LTE用戶面數據恰好採用的是流式加密。

圖 5 LTE 用戶面數據加密/解密示意圖

如圖所示,LTE 的流式加密過程中,秘鑰流生成器利用AS key等一系列的參數產生密鑰流,秘鑰流與明文流異或後得到密文c。解密時則用秘鑰流和密文流c異或得到明文m。

發送端和接收端使用相同的AES key 即相同的演算法產生keystream。

2 繞過加密任意篡改數據包

圖 6 插入攻擊者之後的 LTE 用戶面數據加密/解密示意圖

上圖為插入攻擊者之後的LTE用戶面數據加解密示意圖,假定用特定的掩碼mask和密文流c異或的到密文流c』,解密的時候得到的明文流為m』。

這個過程可以描述為

經過簡單推導

可得到

如果知道數據報文的原始明文,就可以得到篡改掩碼Mask。

而對於移動數據網路,同一個運營商,同一個區域的DNS一般是固定的,很容易得到,所以大致可以猜測出DNS數據包的明文。然而,要做到DNS spoof攻擊,只需要修改UE發送的DNS請求中的IP地址而已,而IP地址在PDCP數據包中的偏移也是固定的,這使得修改操作更容易。現在遺留的問題變為怎麼在眾多PDCP幀中定位到DNS數據包。

3 定位DNS數據包

DNS請求數據一般比較短,可以嘗試通過長度來區分,但是需要注意的是如何將同樣短的TCP SYN請求與DNS請求區分開來,作者通過大數據的方式,統計了移動網路中DNS請求的長度分布,分布圖如下:

從這個圖中可以看到下行DNS請求回應的長度與PDCP其他幀的長度有非常明顯的區分度,毫不費力的可以區分出來,而對於上行的DNS請求,則可以通過猜測的方式,即對疑似DNS請求報文修改目標IP地址到自己控制的惡意DNS伺服器,觀察是否檢測到DNS請求回應,如果收到回應,則說明修改的是一個DNS包,這個方法準確率很高。

4 IP頭檢驗和的處理

修改IP後,會導致IP包的校驗和改變,這裡還得處理校驗和,這裡作者使用了修改TTL去補償IP變動以保證整個IP頭校驗和不變的方法。我們知道TTL會隨著IP包經過的路由逐跳減小。而對於上行鏈路空口截獲的IP包從UE出來之後顯然還沒有經過任何路由,所以TTL還是默認值,這個默認值可以從UE操作系統的TCP/IP協議棧的默認設置中得到。而對於下行鏈路,我們不知道IP報文從我們的惡意DNS伺服器發出後經過了多少路由,修改TTL補償校驗和的方式行不通,這裡作者通過修改IP頭中的標識區域來做補償。

5 UDP校驗和處理

對於上行鏈路,由於最終計算UDP校驗和的程序顯然在攻擊者控制的惡意DNS伺服器上,因此可以通過修改協議棧源碼的方式直接忽略。

對於下行鏈路,修改DNS伺服器協議棧將UDP校驗和直接設為0,DNS回應依然有效。

到此校驗和問題解決。篡改LTE用戶面數據的坑已經填完,整個攻擊的原理也闡述完畢。

0x02 威脅範圍

由於該漏洞由LTE標準引入,針對於所有從LTE 演變而來的其他網路,例如NB-IoT,LTE-V,以及未來的5G(依然沒有啟動強制性的用戶面完整性保護),都有影響。

與WIFI下的DNS spoof釣魚攻擊相比,LTE空口DNS spoof實現難度雖然要大得多,但攻擊範圍卻比WIFI要大,LTE攻擊並不需要像WIFI攻擊一樣,需要先破解預共享秘鑰,因此拋開實現難度問題,成功率和覆蓋面都比WIFI下的釣魚攻擊要強,威脅也更大。

由於該攻擊發生於數據鏈路層,任何上層協議針對DNS可用的防護措施,例如DNSSEC,DTLS等在這裡都將失效。唯一解決方案是修改LTE標準。目前已有部分運營商和設備商表示,要推動LTE標準修復這個漏洞。

0x03 時間線

2018-06-27GSMA CVD披露漏洞

2018-07-02360無線電安全研究部完成分析報告

0x04 參考鏈接

https://www.alter-attack.net/

https://www.alter-attack.net/media/breaking_lte_on_layer_two.pdf


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 360CERT 的精彩文章:

TAG:360CERT |