iOS隱私安全之通過popup向用戶索取Apple ID和密碼
你想知道用戶的Apple ID和password嗎?想訪問用戶的Apple帳號嗎?或者在其他的web服務上使用Apple ID對應郵箱和密碼?你只需要禮貌地問他們,他們可能就會告訴你哦。
攻擊原理
iOS會在很多情況下要求用戶輸入iTunes密碼,最常見的情況有安裝iOS系統更新和app在安裝時卡住了。
因此,用戶已經習慣了當系統提示輸入Apple ID和密碼時,輸入ID和密碼。但是,這些提示不僅出現在鎖屏、主頁,也可能會出現在一個隨機的app中,比如app想要訪問iCloud,遊戲中心或者應用內購買的情況。
因此,這種提示可以被任意的一個app濫用,通過UIAlertController就可以很簡單的實現,效果看起來和系統對話框一模一樣。即使了解一點釣魚攻擊的用戶也很難在很短時間內發現這些警告(提示)是釣魚攻擊。
如何保護
如果出現這種情況,可以按home鍵,看app有沒有退出:
如果app和輸入apple ID密碼的對話框都關閉了,證明這是釣魚攻擊;
如果app和對話框都可見,說明這是系統對話框;因為系統對話是不同的進程,不是iOS app的一部分。
不要在彈出窗口中輸入ID和密碼,手動打開系統設定進行輸入。這就跟不點擊郵件中的鏈接,改為在瀏覽器中手動輸入是一個道理。
如果點擊了cancel(取消)按鈕,app仍然會記錄你在password域輸入的內容,所以關閉彈出對話框時,先清空彈出框中輸入的內容。
我們之前想的是,偽造的警告信息需要app的開發者知道ID的郵箱地址,事實上這種彈出框的郵箱地址和密碼都需要用戶輸入。所以,這種釣魚app向用戶問密碼就變得更加簡單了。
建議
因此,這種提示可以被任意的一個app濫用,通過UIAlertController就可以很簡單的實現,效果看起來和系統對話框一模一樣。即使了解一點釣魚攻擊的用戶也很難在很短時間內發現這些警告(提示)是釣魚攻擊。
現在的web瀏覽器在防釣魚攻擊方面做得很好,但是手機app里的釣魚攻擊是一個相對比較新的概念。
當系統要求用戶輸入Apple ID和密碼時,讓用戶在打開系統設置後輸入;
修復該問題的根本在於,系統不應該經常要求用戶輸入ID和密碼;
應用中的對話框應該在頂端顯示app的標誌,來跟系統對話框區分開;
有時候iOS會在鎖屏時彈出這樣的通知(如下圖),點擊後會打開iCloud設置,這種方式比向用戶直接問密碼更好。
複雜性
因此,這種提示可以被任意的一個app濫用,通過UIAlertController就可以很簡單的實現,效果看起來和系統對話框一模一樣。即使了解一點釣魚攻擊的用戶也很難在很短時間內發現這些警告(提示)是釣魚攻擊。
製作這樣的彈出框非常容易,Apple docs中就有例子,實際的釣魚彈出框代碼不超過30行。
Q&A
雙因子認證安全嗎?
答案是否定的,雖然有些人使用了雙因子認證,但是仍然有很多用戶在大多數web服務中使用相同的用戶名和密碼。即使你的賬戶是雙因子認證的,那麼app也可以問你第二部的code呀!
Apple store會接受這樣的app嗎?
答案是肯定的。雖然App Store有很多的安全機制,但是有很多的辦法可以繞過,比如:
使用遠程代碼,JS橋等;
用 iTunes search API 來比較現在的版本號和App Store中的版本號,這樣的話app可以在得到同意後,自動執行惡意代碼;
用遠程配置工具來配置一個只有Apple通過後才執行的特徵;
使用基於時間的觸發器,只有當app通過審核或拒絕後才執行;
手機釣魚攻擊
手機釣魚攻擊會變得越來越常見。因為iOS沒有明確區分系統UI和應用的UI元素才引起這種釣魚攻擊。很多網站也會有macOS和iOS一樣的彈出框,所以許多用戶會以為這是一個系統彈框。
參考鏈接:https://github.com/KrauseFx/steal.password
*本文作者:ang010ela,轉載請註明來自 FreeBuf.COM
※年年被黑!凱悅酒店再曝數據泄露,中國18家店遭殃,開個房都不省心?
※某開源投票框架無限投票漏洞
※銀行木馬利用VMvare進行傳播
※騰訊安全反病毒實驗室:捕獲多起Ramnit殭屍網路家族的DDoS攻擊
TAG:FreeBuf |