以 92% 成功率劫持 Gmail 應用是怎麼回事,真的可以實施嗎?

&> 你從第三方網站下載了一個牆紙應用,它不需要任何許可權,所以你推測它不會是惡意應用。但加州大學河濱分校的研究人員發表的一篇研究報告(PDF)指出,沒有任何許可權的應用程序也能竊取你的敏感信息。這種攻擊方法被稱為UI狀態推斷攻擊,他們針對的平台是Android,但認為其它操作系統存在類似的弱點

&> 程序打開一個窗口需要佔用內存,惡意程序通過監視已用內存和未用內存的變化,可以推斷你打開了哪個程序的什麼窗口,比如惡意程序作者觀察到打開一個貝寶登錄窗口需要佔用多少多少內存,安裝在你手機上的惡意程序監視到已佔用內存增加了相同大小的空間,它能推斷你正在打開的是貝寶登錄窗口,它可以彈出一個假的貝寶登錄窗口,誘騙你輸入登錄信息。通過統計分析進程的共享內存變化,研究人員能以92%的成功率劫持Gmail應用。

Source: 研究人員以92%的成功率劫持Gmail應用


非常有想法的一篇論文

且不談92%這個數字,論文中提到的攻擊方法是非常具有創新性的

所謂UI Interface Attack充分利用了Android Activity喚起和切換的特性,在檢測到用戶進入登錄或者輸入關鍵數據頁面時,通過對於公共內存、網路狀態等公開信息的探測,準確識別應用,並提供一個釣魚Activity來獲取用戶的用戶名和密碼

這種方法是完全可行的

就檢測環節來說,Gmail在喚起登錄界面時確實有內存和網路的變化,可以針對性進行探測

攻擊環節上,插入Activity替換Gmail的登錄界面也是完全可行的

比較容易讓用戶發現問題的環節就是:在Activity完成任務之後,在Android的任務切換窗口,應該可以看到一個奇怪的歷史進程,不過按照大多數用戶對於任務切換窗口的使用,最後因為發現自己用戶名密碼泄露而去改密碼的用戶應該不會太多

當然,文中提到的這種攻擊,首先需要安裝一個病毒程序,這個環節是攻擊不可避免繞過的

雖然讓用戶手動去安裝病毒軟體,在當今的Android生態環境下不是一件太困難的事情,但是為了做到完全隱蔽,靜默安裝病毒軟體才是王道

基本上只要Android手機開啟了很多電腦同步程序要求的ADB功能,連上電腦之後進行簡單的病毒包靜默安裝就好了

更甚的可以利用現在很多軟體市場都有的一鍵安裝軟體功能(在頁面上選擇安裝的軟體,手機上自動安裝),通過攔截模擬市場的軟體安裝指令,在Android設備連接上攻擊WIFI時,自動將病毒軟體安裝到設備上

那麼,如何防禦這種攻擊呢?和防禦大部分Android平台上的常見攻擊一樣,理論上來說只需要用戶控制好自己設備上的軟體就可以了,實際上則需要Android用戶提高安全意識,在輸入敏感信息時最好先確認一下系統任務列表,同時定期檢查設備上安裝的軟體,盡量關閉諸如ADB,Root等比較危險的許可權

安全使用Android,從一點一滴做起

最後,祝你生活愉快,謝謝


英語水平有限,大致瀏覽了下,沒仔細看,可能有錯誤。

理論上是有可能的,但是有兩點問題

1.如果應用想,那麼可以隨時更改進行某項操作時佔用的內存數量,甚至不需要更新軟體只需要動伺服器端,這也就意味著這個軟體可能好用幾天,然後又不能用了得更新,甚至如果被監控的軟體動點腦筋,你就完全廢了,如果Google想的話,就可以在下個Android版本中設定只有系統程序才能獲得內存信息,其他程序只能獲得粗略的信息,正如他們在4.2中對飛行模式和在4.4中對電池情況做的事一樣。而如果應用通過檢測別的軟體的狀態進行活動,這是需要額外許可權的,用戶就會明確看到這個應用申請了這個許可權,那麼剩下的就看用戶了。

2.正如英文新聞下面評論說的

So if I install malicious software, I can be hacked? Stop the presses!

歸根結底還是用戶的安全意識問題,正如我們知道,不能在電腦上隨便安裝或者運行來歷不明的程序,在手機上也是如此,始終通過正規途徑獲得應用(官網,官方或其他大型應用商店),並且謹慎對待應用許可權(好吧,在國內這點的確有點困難),才能更好地保護我們的個人財產和隱私。


這其實就是釣魚攻擊。非常可行。

釣魚網站很常見,作為網站,甚至不需要用戶安裝App,訪問網頁就可能被騙走密碼。釣魚網站在手機上比PC上更嚴重,因為很多手機瀏覽器默認隱藏地址欄,用戶無從得知某個登錄頁面是否由釣魚網站偽造。

注意,釣魚攻擊不一定來自私人黑客,還可能直接來自ISP。我國曾被谷歌指控入侵GMail賬號。DNS劫持也是在我國也早已司空見慣。

本例中的釣魚App是釣魚網站的變種。我認為根本解決辦法是操作系統強製為所有App添加地址欄,即使是單機App,也一樣要顯示App的證書域名。


手機上釣魚比電腦上釣魚更容易上當。電腦瀏覽器至少可以看看網站地址,app欺詐根本看不出來。


就是靠統計共享內存的變化,CPU初始化時間 還有網路事件變化 三個看似無害的且公開的信息,

然後通過大量的數據統計特徵歸納來確定前台的應用程序是誰,

根據特定的程序啟動的時候彈出偽造的登陸框來進行釣魚攻擊

可行性還是有的,

不過相當懷疑那些特徵的通用性,文中也說了只用了三星galaxy 3 在android4.2 和4.1 上,對於不同手機不同硬體不同操作系統版本還有不同的手機狀態,難道以上的三個特徵真的有用么?難道你們能針對各種各樣的手機的各種各樣的情況都做一次特徵?可能特徵放雲端合適一點

我看聳人聽聞的成分更多一點

順帶搜索了可能的實現

淺談Android應用性能之內存 ? 奇虎360技術博客

Android 查看內存詳解(轉)


只能說有理論上的可行性,個人認為實際意義不大。佔用內存大小透露的信息太少,即便是針對單一應用,也很可能出現誤判。另外還要考慮不同機型和系統,要實現起來會很有難度。

但是這真是一個新穎的思路,期待更多的應用。


那個。。。為啥會邀請我啊。。。我這方面一點都不懂誒。。依然謝 哈哈


沒有許可權什麼都不能監視.除非你用的root用戶。


這個答案可能有點抖機靈。我不質疑這個方案的可行性,但我想反問一下:

如果我按了多任務鍵或返回鍵怎麼辦?恐怕小白都能識破吧。


推薦閱讀:

手帳APP好用不,跟實體手帳比有什麼不一樣的體驗?
IM 應用 Telegram 是如何保障通信安全私密的?
如何從一個人手機中下載的應用了解這個人?

TAG:Gmail | Android應用 |