上幾周我對來電顯示偽造做了一下調查,它的特點是可以對線上的服務產生影響。幾個月之前,我偶然度讀到一篇來自澳大利亞的安全研究員Shubham Shah的文章,你可以在這里找到它。
他在2年半前做了一項很棒的調查,他分析了來電顯示投毒對兩步驗證的影響,包括了現在非常流行的服務,比如:Google,Facebook等。來電顯示就是當接到電話的時候顯示在屏幕上的手機號。他成功有效地繞過了兩步驗證。為了繞過兩步驗證,他利用了電子語音郵箱一直存在的認證問題。稍后我會講述其中的細節。
來電顯示投毒
現在,讓我們從故事的開頭講起:
首先我們知道:手機網絡的安全性其實非常差的!
不過大多數人所不知道的是,偽造來電顯示非常容易。一般來說,攻擊者首先要對手機網絡有一定的權限,鑒于現在VOIP的普及程度,這是非常容易的。VOIP可以允許攻擊者設置任何他想要的來電顯示或者自己設置用戶交換機,就像Asterisk那樣。
舉例來說,這篇文章講述了如何一步步設置你自己的Asterisk服務器,然后偽造任何想要的來電顯示。VOIP服務商,比如voip.ms允許用戶設置打出去電話的來電顯示,這個操作在Web端即可完成,甚至不需要一個真正的手機。softphone(模擬手機的軟件)也可以這樣(還有比如x-lite)。
一個古老而嚴重的問題–黑掉電子語音郵箱
現在我們知道,只要有了一部電腦和信用卡,任何人都可以對來電顯示投毒。那么一個攻擊者在基于這種情況下,利用社會工程學和惡作劇電話會達到怎樣的效果呢?
電子語音郵箱,如果電子通訊企業存在漏洞,就可以利用它獲取用戶的電子語音郵箱?,F在世界上仍然有很多手電子通訊公司利用來電顯示對用戶進行認證,不需要其他必須的信息。
我對澳大利亞的電子通信公司做了一個調查,并有了驚人的發現。首先來看下澳大利亞電子通信公司的的“三巨頭”:
A1
DREI(Hutchison)
T-Mobile
下面的圖展示了澳大利亞2015年第四季度通信公司的市場占比:
2015年第四季度澳大利亞電子通信市場占比
上面的數據是從這里引用的(抱歉,這個是德語)。
我對三大公司進行了檢測,包括使用了同一網絡的其他公司,得到如下結果:
A1-電子語音郵箱沒有漏洞
BOb
Yess
DREI(Hutchison)–電子語音郵箱沒有漏洞
T-Mobile–電子語音郵箱存在漏洞
Telering
Hot
S-Budget
從上圖中可以看出來,T-Mobile在澳大利亞的市場占比是28%。大概有4百萬用戶(來自T-Mobile)。另外,我還沒有測試三大巨頭使用同一網絡的子公司,這意味著受影響用戶的遠遠不止如此。實際情況意味著,由于T-Mobile默認配置的電子語音郵箱沒有密碼。澳大利亞T-Mobile用戶的電子郵箱都存在這個漏洞。
如何利用它成為一名攻擊者?
現在,我們知道攻擊者在特定情況下可以獲取用戶的電子語音郵箱,那么如何利用這個漏洞去黑掉線上服務呢?Shubham Shah在2年半前利用它繞過兩步驗證,當時的兩步驗證會自動打電話到用戶的手機,告訴用戶兩步驗證的認證代碼。所以當用戶想要獲取代碼的時候,用戶必須接到自動電話的語音信息。由于電子語音有限的漏洞,可以按照下面的步驟來繞過。
攻擊步驟
1. 輸入受害者的手機號
2. 要求使用語音驗證–同時給受害者打電話,使得語音信息自動保存到用戶的電子語音郵箱
3. 一段時間之后,偽造來電顯示獲取受害者的語音郵箱
4. 讀取安全代碼,應該存在語音郵箱里
5. 收工
那么關于Netflix情況如何?
文章的開頭,我已經告訴你Netflix有點問題。
正如上面講的,Netflix存在相同的漏洞,但是受影響的不是兩步驗證,而是找回密碼功能。
Netflix的語音電話找回密碼
這意味著,如果受害者添加了電話號碼到他的Netflix賬戶,來提高賬戶的安全性,實際上安全性未升反降。如果攻擊者獲知受害者的手機號(受害者的電子通信公司存在電子語音郵箱漏洞),攻擊者就可以充值受害者的密碼。完全不需要受害者的交互,Netflix的語音驗證碼就可以保存到電子語音郵箱。另外一個場景就是,受害者沒有接到電話,Netflix的語音驗證碼保存到電子語音郵箱。
我通過Responsible Disclosure向Netflix報告了這個問題。我發現他們有一個相應速度超快的安全小組。由于Netflix使用第三方服務自動發送語音電話,所以修復這個問題稍微花費了點時間。如下你可以看到詳細報告的時間線。
時間線
2016/09/26? – 報告問題
2016/09/26? – 收到回復(未修復)
2016/09/28? – 由于問題危害較高,第三方服務商增加了額外的防護
2016/10/04? – 收到回復,正在滾動升級修復
2016/11/04? – 已修復
問題總結
雖然Shubham Shah已經對這種漏洞做過總結,但是:
用戶應該設置一個電子語音郵箱密碼(如果運營商提供了這個功能)
提供安全驗證的自動語音電話服務商,應該確保安全代碼不會自動保存到電子語音郵箱。
可以添加用戶互動功能,再發送語音安全代碼到用戶的手機。比如用戶需要按某個鍵才可以收到語音手機,Netflix就是這么修復的。
最終感想
我對T-Mobile至今存在漏洞感到驚訝,這已經是很老的問題了,安全領域的人應該對此表示警惕。我認為,很多人并不知道來電顯示可以被偽造,另外包括短信或者郵箱。并且每個人都可以很容易做到。