2014年11月10日,火眼(Fireeye)移動安全研究人員發現那種使用enterprise/ad-hoc授權文件(provisioning)安裝的iOS應用會替換掉從App Store下載的正版iOS應用,前提是兩個app使用的是相同的bundle identifier。
這個惡意軟件使用隨機名稱(比如“新生氣小鳥”),誘使用戶安裝下載,但安裝後就會發現,它並沒有安裝“生氣小鳥”,而是將從App Store下載的合法應用替換掉了。所有從App Store上下載的應用都能被替換掉,除了iPhone本身自帶的應用(如Mobile Safari)。
這個漏洞出現的原因是iOS並沒有嚴格要求使用相同bundle identifier的應用的證書要匹配。目前我們發現漏洞存在的版本有iOS7.1.1、7.1.2、8.0、8.1以及8.1.1beta,iPhone越獄和非越獄機都受影響。攻擊者利用該漏洞的方式可通過無線網絡或USB。我們將這一漏洞命名為“假面攻擊”。
我們在7月26日就已向蘋果公司報告了這一漏洞。最近克勞德.箫發現“WireLurker”惡意程序。在仔細研究了WireLurker後,我們發現它開始利用“Masque攻擊方式”的有限形式通過USB來公司iOS設備。假面攻擊帶來的攻擊破壞要強於WireLurker。Masque攻擊能導致iPhone上從App Store上下載的合法應用被替換掉,比如銀行或郵件應用。這意味著攻擊者能夠竊取用戶的銀行憑證信息,只要惡意軟件和將要被替換的合法應用使用一致的UI界面。
我們驚奇得發現,惡意程序甚至能夠接入原始應用的本地數據,而且當原始應用被替換掉時本地數據扔保留了下來。這些本地數據中可能包含緩存的郵件,或甚是登陸許可證(login-tokens),以後惡意程序可使用這些關鍵信息來直接登陸用戶賬戶。
目前,我們發現這個漏洞問題已經開始傳播。所以面對這樣的形勢,我們認為有必要讓公眾了解詳細情況,因為潛在的危險可能影響到每一個人。與此同時,我們也向大家列出了一些解決辦法,幫助iOS用戶能更好的享受到應有的服務。
安全影響
通過Masque攻擊,攻擊者能夠誘使受害者下載安裝惡意應用,使用偽造的應用名(攻擊者起的名字),而且該惡意應用會將合法的應用替換掉(使用相同的bundle identifier)。Masque攻擊方式無法替換iPhone自帶的應用,如Mobile Safari,但就是能替換從App Store下載的應用。經過我們的總結發現,假面攻擊會帶來以下嚴重的安全後果:
1. 攻擊者會模仿原始應用的登陸界面以竊取用戶的登陸憑證信息。我們通過對多個銀行及郵件應用已經驗證了這個事實。就是說這個惡意程序會使用與原始應用相同的UI界面欺騙用戶,誘使他們輸入自己的登陸憑證信息,然後攻擊者將憑證信息傳送到遠程服務器上。
2. 我們還發現原始應用的目錄下的數據,比如說本地數據緩存,即使在原始應用被替換掉時,這些本地數據仍保留在惡意應用的本地目錄中。所以惡意程序竊取了這些敏感信息。我們通過郵件類應用證實了這個事實,具體發現就是惡意軟件竊取了重要郵件的本地緩存,然後將這些信息上傳到其遠程服務器上。
3. MDM(移動設備管理)接口無法辨別惡意應用和原始合法應用,如果它們使用的是相同的bundle identifier。目前MDM API不會獲取每個應用的憑證信息(certificate information)。這樣的話,MDM也就很難發現此類攻擊。
4. 我們曾在病毒公告白皮書2014(Apple without a shell – iOS under targeted attack)中提到過,那些使用enterprise provisioning描述文件(我們都將其稱作“EnPublic應用”)的應用不受蘋果審查。因此,攻擊者就是利用這一漏洞,使用iOS私有API進行強大的攻擊活動,比如像後台監控(CVE-2014-1276)和模仿iCloud的UI界面來竊取用戶的Apple ID和密碼的活動。
5. 攻擊者通過Masque攻擊還能繞過正常應用的沙盒,然後通過利用iOS已知漏洞獲取root權限,比如之前盤古團隊進行的攻擊活動。
舉例
我們在進行實驗時,使用了一個內部應用,用的bundle identifier是“com.google.Gmail”,應用名字為“新生氣小鳥”。我們通過enterprise憑證給這款應用簽名。當我們從網站上安裝這款應用時,它便替換了iPhone上原始的Gmail應用。
圖1
圖1展示了整個過程,圖1中的a、b展示了合法的Gmail應用已安裝在iPhone設備上,而且有22封未讀郵件。圖1中c展示受害者被引誘去安裝下載(從網上)一個名為“新生氣小鳥”的內部應用。需要注意的是“新生氣小鳥”是這個惡意程序的名稱,其實攻擊者可以把它設置成任意的名字。但這個惡意程序用戶的bundle identifier是“com.google.Gmail”。
當用戶點擊“安裝”後,圖1中d展示的是安裝過程中內部應用替換了原始應用。圖1中e展示原始Gmail應用被內部應用替換。安裝完後,當用戶打開Gmail應用時,用戶就自動登錄到一個UI幾乎完全一致,只是在界面上方能看到一小行字“沒錯,你上鉤了”的應用,呵呵,這只是我們惡作劇為了向大家展示這一攻擊過程提前設置好的信息。在真實攻擊活動中,攻擊者可不會跟你這麼禮貌。與此同時,原始應用的本地緩存郵件數據,在一個sqlite3數據庫以清晰文本形式儲存的數據,在圖2中展示,就被上傳到遠程的服務器上。
注意Masque整個攻擊過程完全是在無線網絡下進行的,並沒有依靠將一個設備連接到一台電腦上。
圖2
視頻
解決辦法和預防方法
iOS用戶可以采取以下三個步驟來降低被攻擊的風險:
1. 下載應用時,除了App Store不要去亂七八糟的第三方下載平台
2. 不要點擊第三方網頁給你彈出的一個彈框內顯示的安裝提示(如圖3),不管彈框內寫的是什麼信息都不要相信。彈框內的信息都是攻擊者使用吸引人的字眼來誘使用戶點擊的。
3. 當打開一款app時,如果iOS給你發出警告信息“不受信任的應用開發者(圖3)”,請選擇“不信任”,然後立即卸載這款應用
圖3
檢查一下,是否已經通過Masque攻擊活動下載了很多應用了,iOS7用戶可以檢查安裝在他們iPhone上的enterprise provisioning描述文件,這一信息表明了Masque攻擊可能植入的惡意軟件的簽名身份。路徑是“Settings – > General -> Profiles” for “PROVISIONING PROFILES”。iOS7用戶可以向相關安全部門上報可疑的provisioning描述文件。刪除provisioning描述文件可以防止enterprise簽名應用(依靠provisioning描述文件才能運行的應用)運行。但是iOS8設備未顯示已經安裝在設備上的provisioning描述文件,我們建議用戶需要更加謹慎,在安裝應用程序時。
我們在7月份時已向蘋果報告了此漏洞。因為目前蘋果推出的標准防御手段或接口無法預防此次攻擊,我們希望蘋果能夠向專業的安全技術設備供應商提供更為強大的接口,以保護企業用戶不受此類攻擊的影響。
在此,我們要感謝火眼團隊成員Noah Johnson和Andrew Osheroff,感謝他們為demo視頻做出的貢獻。此外,我們還想感謝Kyrksen Storer和Lynn Thorne,感謝他們為這次博文做出的貢獻,尤其,還要感謝Zheng Bu,感謝他提供的珍貴的評論和反饋。
原文鏈接:http://www.fireeye.com/blog
原文作者 Hui Xue,Tao Wei,Yulong Zhang,翻譯作者 silencezt