您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關怎么實現LTE空口用戶面數據任意篡改漏洞分析,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
2020年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標準中是可選的,當然運營商在部署時通常都會啟用加密,但是該漏洞卻與是否加密沒有任何關系,問題在于沒有使用完整性保護。
硬件平臺
圖 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。
加密
Keystream XOR m = c;
解密
Keystream XOR c= m;
發送端和接收端使用相同的AES key 即相同的算法產生keystream。
圖 6 插入攻擊者之后的 LTE 用戶面數據加密/解密示意圖
上圖為插入攻擊者之后的LTE用戶面數據加解密示意圖,假定用特定的掩碼mask和密文流c異或的到密文流c’,解密的時候得到的明文流為m’。
這個過程可以描述為
mask XOR c = c’;
Keystream XOR c’ = m’;
經過簡單推導
Keystream XOR c’ XOR m = m’ XOR m;
Keystream XOR c’ XOR ( Keystream XOR c) = m’ XOR m;
Keystream XOR (Mask XOR c) XOR ( Keystream XOR c) = m’ XOR m;
可得到
Mask = m’ XOR m;
如果知道數據報文的原始明文,就可以得到篡改掩碼Mask。
而對于移動數據網絡,同一個運營商,同一個區域的DNS一般是固定的,很容易得到,所以大致可以猜測出DNS數據包的明文。然而,要做到DNS spoof攻擊,只需要修改UE發送的DNS請求中的IP地址而已,而IP地址在PDCP數據包中的偏移也是固定的,這使得修改操作更容易。現在遺留的問題變為怎么在眾多PDCP幀中定位到DNS數據包。
DNS請求數據一般比較短,可以嘗試通過長度來區分,但是需要注意的是如何將同樣短的TCP SYN請求與DNS請求區分開來,作者通過大數據的方式,統計了移動網絡中DNS請求的長度分布,分布圖如下:
從這個圖中可以看到下行DNS請求回應的長度與PDCP其他幀的長度有非常明顯的區分度,毫不費力的可以區分出來,而對于上行的DNS請求,則可以通過猜測的方式,即對疑似DNS請求報文修改目標IP地址到自己控制的惡意DNS服務器,觀察是否檢測到DNS請求回應,如果收到回應,則說明修改的是一個DNS包,這個方法準確率很高。
修改IP后,會導致IP包的校驗和改變,這里還得處理校驗和,這里作者使用了修改TTL去補償IP變動以保證整個IP頭校驗和不變的方法。我們知道TTL會隨著IP包經過的路由逐跳減小。而對于上行鏈路空口截獲的IP包從UE出來之后顯然還沒有經過任何路由,所以TTL還是默認值,這個默認值可以從UE操作系統的TCP/IP協議棧的默認設置中得到。而對于下行鏈路,我們不知道IP報文從我們的惡意DNS服務器發出后經過了多少路由,修改TTL補償校驗和的方式行不通,這里作者通過修改IP頭中的標識區域來做補償。
對于上行鏈路,由于最終計算UDP校驗和的程序顯然在攻擊者控制的惡意DNS服務器上,因此可以通過修改協議棧源碼的方式直接忽略。
對于下行鏈路,修改DNS服務器協議棧將UDP校驗和直接設為0,DNS回應依然有效。
到此校驗和問題解決。篡改LTE用戶面數據的坑已經填完,整個攻擊的原理也闡述完畢。
由于該漏洞由LTE標準引入,針對于所有從LTE 演變而來的其他網絡,例如NB-IoT,LTE-V,以及未來的5G(依然沒有啟動強制性的用戶面完整性保護),都有影響。
與WIFI下的DNS spoof釣魚攻擊相比,LTE空口DNS spoof實現難度雖然要大得多,但攻擊范圍卻比WIFI要大,LTE攻擊并不需要像WIFI攻擊一樣,需要先破解預共享秘鑰,因此拋開實現難度問題,成功率和覆蓋面都比WIFI下的釣魚攻擊要強,威脅也更大。
由于該攻擊發生于數據鏈路層,任何上層協議針對DNS可用的防護措施,例如DNSSEC,DTLS等在這里都將失效。唯一解決方案是修改LTE標準。目前已有部分運營商和設備商表示,要推動LTE標準修復這個漏洞。
上述就是小編為大家分享的怎么實現LTE空口用戶面數據任意篡改漏洞分析了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。