2017年8月29日 星期二

[紀錄] 台灣好厲駭<第一屆>報告 - 利用軟體無線電實作惡意基地台

紀錄 2017/08/24 上台報告的內容

簡報上因為有些其他東西不方便附上來


整份報告是講述使用 usrpb210 + OpenAirInterface 來實作惡意基地台

重點在 4G LTE 上的攻擊

常見 4G LTE 的攻擊有
    <1> 阻斷服務
    <2> 資料洩漏

整篇重點在於資訊洩漏上,並統合幾篇論文內容整理
============================================================

做的東西,常聽見的名字是 IMSI Catcher

他是透過獲取他人手機上的 IMSI ,來達到追蹤用戶在區域上的移動的功能


IMSI 是用戶在行動網路上的永久識別,類似身分證那種

存在 SIM 卡裡面和發卡的運營商

長度最長不超過 15

格式: 國家代碼 + 運營商編號 + 運營商自行分配

EX:
台灣: 466
中華電信: 92
則在台灣,中華電信的手機,IMSI 開頭都是 46692

如  466920000000003
==============================================================
討論一下,從 2G ~ 4G 的 IMSI Catcher 上的變化

因為 1G 本身連加密都沒有,所以不討論

2G 在設計上,只有防備被動式攻擊

也就是他怕會有人監聽無線電通訊

所以,在 2G 裡面,通訊上的身分認證並不會使用 IMSI

而是改用 TMSI 作為臨時的身分識別

但 2G 的設計並沒有考慮到會不會有人做主動式攻擊

也就是架設一個惡意的基地台

2G 在認證上,只會認證使用者身分,不會驗證基地台是否是合法的

UE 將無條件相信其所連接的基地台

故在 2G 裡面,只需要誘使UE 跟我們連接即可,後面你向UE要求什麼都可以

比如我這邊是想要他的 IMSI ,就可以對UE 發起身分識別要求

也可以要求傳輸改用未加密通訊,這樣就可以竊聽用戶通話了


每個世代都會改進前一個世代的問題

在 3G 裡面,增加了2G 所沒有的雙向驗證

但 3G 因為缺乏訊號的完整性保護,我們可以透過降級攻擊

把服務降到 2G 來進行 2G 已知的漏洞攻擊
======================================================================

2G 上的實際攻擊流程:

先用工程手機監聽目標周遭的基地台和其訊號強度

選取最弱的來假冒,目的是為了降低同頻干擾

之後再調整Cell selection 用的參數來誘使 UE 連接即可


3G 上的實際攻擊過程:

(其實就是中間人攻擊)

一開始先用假基地台和目標UE 做通訊連接,在最開始可以獲得其 TMSI

然後我們用此假冒成目標 UE ,和合法基地台做連接

並在獲取需要的驗證參數後,直接和合法基地台斷開連接

再回去和 UE 做通訊,因為整個過程的時間很短暫,所以得到的那些參數都是可以用的

之後再要求 UE 降級到 2G 來使用服務即可

========================================================================

4G 有了很多改善,如使用更強的安全演算法和新增了3G 所沒有的訊號完整性保護

4G 的雙向驗證使用的是 EPS AKA protocol ,而在 2017/07 的 black hat 上

有人發表了一篇有關於 AKA protocol 上的密碼學漏洞

可以做到資訊洩漏,達到我這篇所要報告的 imsi catcher 上的功能
(不過還沒研究QQ)

========================================================================
4G 簡單講架構

分為兩個部分 <1> 核心網路 <2> 基地台

而 UE + 核心網路 + 基地台 合稱 EPS


核心網路裡面可以簡單分為三個部分
- HSS    : Database
- MME : 身分認證 / 資源分配 / 核心網路和 基地台之間溝通的主要橋梁
- SPGW: 提供 UE 對外的網路連線

手機開機時,會做 camping on

意思就是會去連接 4G LTE Network


UE 會先經過一些篩選機制後,向自己認為最合適的 Cell 發起連接請求

而cell 會轉給 mme ,之後也是經過一些機制判斷後,mme 會告訴 cell 這 UE

可不可以連進來,可以的話,整個過程就差不多結束了
=======================================================================

整理相關論文內講述有關 4G LTE 上的資訊洩漏問題


<1> Smart paging


在 2G 裡面,做 paging 的範圍差不多是一個都市的大小,大概 100 公里差不多

所以監聽這類訊息其實沒什麼用

而到了 4G ,協定上為了加速整個過程並將低訊號上的負載

把範圍縮小到一個基地台的大小,差不多 2 公里

我們可以藉由被動式攻擊來監聽這類訊息,來粗略估計 UE 在哪裡

<2> GUTI persistence


前面有說過 2G 通訊是改用 TMSI 做身分識別,而在 4G 裡面改稱為 GUTI

做一個整稱 (當然裡面包含很多其他有的沒的)

理論上來講,GUTI 必須要分頻繁的去更改

可是經由他人測試報告發現,其實運營商並不會很經常去更改 GUTI

大概 3 天差不多才改一次。


在 2015 年,國外學長發現,社群軟體如 FB messenger / What's APP

這類軟體在傳訊息給他人時,會觸發 Paging request ,裡面會包含 GUTI

所以我們可以透過這樣的方式來綁定 GUTI 和他人的網路身分


然後前面有說嘛,其實運營商大概 3 天才會改一次GUTI ,

故我們可以透過這樣的方式,監控他人長達三天之久

<3> SIB msg


eNB 會一直去廣播自己的資訊,包刮 MCC / MNC / TAC / 自己的 ID

我們可以透過獲取這類訊息來配置我們自己的惡意基地台

雖然其實大多訊息也是可以在網路上蒐集到。

<4> 錯誤報告機制


4G 為了方便做 Trouble shooting ,所以提供了一個錯誤機制

在基地台和 UE 連接失敗後,基地台可以回給UE 一個原因,告訴她為啥失敗

而 UE 會依照這個原因去修改,而我們可以利用這樣的方式去控制 UE 後續的行為

達到類似 ROP 的感覺。



有些設備有支援和啟動 locationInfo-r10 這個功能,沒實際研究過,是看到有一篇論文有寫

當設備有這功能的時候,在回報這個錯誤機制時會把自己的 GPS 定位一起給出去

這樣我就可以確切知道 UE 所在的地方



以生活舉例就好像去了一家銀行辦事情,阿銀行說不准,因為這裡要雙證件

那我們知道問題後就會去準備雙證件給銀行,跟這裡概念差不多一樣,透過故意

給一個原因來要求 UE 做一些我們想要他做的事情。


我這篇報告也是透過這個方式去做攻擊的


<5> Attach procedure


在這過程中,我們可以透過拒絕UE連接並回給他一個拒絕的原因來控制 UE 後續的行為

也就是使用我剛剛上面寫的那個方式進行攻擊


<6> Tracking Area Update procedure


一樣在這個過程中,我們可以透過拒絕UE並給一個原因來控制其後續行為


=======================================================================

IMSI Catcher in 4G LTE


這次實驗的整體流程是:

1. 一開始手機是正常和真實合法基地台連接,然後UE 定期會去偵測並重選
透過偽造合法基地台並強化訊號使其對我們的假 eNB 進行 Cell Reselection


這裡要改 MCC 和 MNC 以偽造合法基地台,並修改 MAC 和當地不同以觸發 TAU


2. UE 會對我們發起 TAU Request


這裡我修改 OAI 的設定,如果有去追裡面的 Code 會發現其在編譯前就把處理 TAU 

的函數給註解掉了,所以這裡要先改 OAI 設定,然後修改函數內容讓其收到 TAU Request

會直接回 EMM Causes #9 


這樣會使 UE 清掉其裡面所有的 GUTI 並對我們重新發起 Attach ,而當 UE 沒有任何

GUTI 時,為了證實自己身分, UE 會將 自己的IMSI 發給我們

3. UE 對我們發起 Attach

這時我們就可以獲取到目標的 IMSI ,之後的目的就是要盡量不讓 UE 發覺自己被攻擊

這裡使用 EMM Causes #15 ,其實使用 EMM Causes #12 也可以,但其會關閉 晶片

所以改用 15 ,這裡也要重新去修改 OAI 的設定來符合我們的需求


到此我的實作也結束了~




待續

1 則留言:

  1. 請問關於第二點OAI設定,具體是要修改哪裡?

    回覆刪除

Triton/Trisis

紀錄網路上蒐集整理的內容