Android O限制系统全屏进一步遏制手机勒索
一、引言
近期谷歌發布了最新手機操作系統Android O的開發者預覽版,一如往常,Android O又帶來了多項新功能與優化升級,其中一項有關系統窗口管理的優化給Android手機勒索軟件帶來了嚴重沖擊。
二、簡述Android系統與勒索軟件對抗史
手機勒索軟件是一種特殊的惡意軟件,其通常將自身偽裝為看似無害的軟件或是利用社會工程學誘導受害者下載安裝,隨后通過惡意利用操作系統正常功能或者缺陷強制鎖住用戶桌面使得用戶無法正常使用設備,并幾乎都會要求受害者繳納贖金以解鎖設備。手機勒索的解鎖費用通常為20、30或50元不等,通常情況下當用戶設備感染勒索軟件后,出于設備被鎖定的焦急心理與不高的贖金金額,用戶一般都會通過勒索軟件鎖屏界面提供的聯系方式聯系制馬人以嘗試解鎖設備,因此這種“薄利多銷”且制作成本低廉的點對點式直接性敲詐軟件頗受制馬人的青睞。此外,這類軟件通常具有很高的可變性,制馬人只需簡單調整軟件代碼或鎖屏樣式便可生成新的勒索軟件。360烽火實驗室一直密切關注國內外手機勒索軟件動向,先后發布了多篇對手機勒索軟件的研究成果。
縱觀Android系統尤其是高版本系統史,每一版都在遏制勒索軟件方面做出了積極的應對:
- Android L(Android 5.0-5.1)
在早期Android版本中,通過getRunningTasks 方法可獲取當前運行棧頂程序,但自Android 5.0起該方法被棄用,同時getRunningAppProcesses與getAppTasks方法的使用也受到了限制,由此抑制了劫持Activity類勒索軟件的出現。
- Android M(Android 6.0)
大部分手機勒索軟件的慣用伎倆是通過SYSTEM_ALERT_WINDOW權限來打開特定系統類型窗口并將其顯示在所有其他應用程序和窗口之上,以此達到鎖定用戶設備的目的。Android M的出現使得勒索軟件制馬人在實施手機勒索時遇到了一大瓶頸——動態權限申請,由于自Android M起,SYSTEM_ALERT_WINDOW開始被列為一種危險程度較高的權限而被特殊處理——即需要用戶動態授權。這一改變意味著只要勒索軟件的目標系統為Android M,其就不能如往常一樣在用戶毫無防備的情況下鎖定用戶設備,而是必然有一個用戶授權階段,這對勒索軟件的發展起到了一定程度的阻礙作用。
- Android N(Android 7.0-7.1)
與之前版本可任意設置或重置鎖屏密碼不同的是,Android N中明確規定,第三方應用開發者只能使用DevicePolicyManager.resetPassword為無密碼設備設置初始密碼,而不能重置或清除已有的設備密碼。Android N中對于resetPassword API所添加的限制能阻止木馬對已有鎖屏密碼的重置,從而使得部分勒索軟件失效。
圖1 Android各版本對抗手機勒索
?????? 以上改進從Android系統角度有效遏制了勒索軟件發展,然而勒索技術也在不斷升級,這些變化并徹底根除勒索軟件,在利益誘惑之下,制馬人仍會不遺余力地在勒索軟件上繼續尋求新的可趁之機。
三、Android O進一步遏制勒索軟件
現狀與原理
根據360烽火實驗室的統計,截止到2017年5月初共捕獲到勒索軟件超過55萬個,其中系統窗口置頂類勒索軟件占比高達81.5%,遠高于鎖屏密碼修改、系統文件篡改等其他類型勒索軟件。這種懸殊的差距很大程度上源于,篡改鎖屏幕密碼或系統文件分別需要用戶動態授權設備管理器或root權限,一旦用戶拒絕授權,進一步的勒索行為將無法實施;而窗口置頂類勒索軟件無需用戶任何授權即可鎖定設備,相比前者鎖屏成功的幾率要大得多。
圖2 系統窗口置頂類勒索軟件占比
????????????? (數據說明:81.5%包含了既有系統窗口置頂又存在鎖屏密碼修改等其他勒索技術的多重手機勒索軟件)
Android O預覽版一經發布就給了勒索軟件致命打擊,新系統禁用了5種窗口。如下圖所示,其中包括3種勒索軟件常用的系統窗口類型,窗口置頂類勒索木馬“賴以生存”的系統窗口類型被限制使用了。
圖3 Android O禁用的5種窗口類型
在Android O之前版本中,勒索軟件通過調用特定系統窗口類型將自身窗口完全覆蓋在第三方應用程序與其他系統窗口之上,用戶無法響應其他窗口,由此設備被鎖定;但在Android O中,這幾種具有置頂權限的系統窗口類型被棄用,勒索軟件制作者找不到其他能完全覆蓋第三方應用程序與其他系統窗口的窗口類型,窗口置頂類鎖屏將無法實施。
不同版本窗口置頂類勒索軟件運行效果
在Android 6.0之前,使用系統類窗口進行手機勒索十分簡單,只需要在AndroidManifest清單文件中申請SYSTEM_ALERT_WINDOW權限即可使用TYPE_SYSTEM_ALERT、TYPE_SYSTEM_ERROR等高級別窗口,用戶開啟手機勒索軟件后無需額外操作甚至來不及做出反應,系統窗口就已置頂,手機即刻被鎖定。
自Android 6.0起至Android 7.1,Android系統開啟動態權限模型,SYSTEM_ALERT_WINDOW權限開始被列為一項特殊權,盡管其權限級別(Signature)不是Dangerous,但開發者在使用之前也必須動態獲得用戶授權,只有在用戶進行授權后,應用才可以隨意使用TYPE_SYSTEM_ALERT、TYPE_SYSTEM_OVERLAY、TYPE_SYSTEM_ERROR等高級別窗口。在這一階段,用戶通過一項Action——MANAGE_OVERLAY_PERMISSION打開設置“在其他應用的上層顯示”頁面,如下圖所示,用戶手動允許后,系統高級別窗口權限開放,此時即可成功使用這些窗口進行手機勒索。
圖4 Android 6.0及以上動態申請SYSTEM_ALERT_WINDOW
圖5 SYSTEM_ALERT_WINDOW動態授權頁面
SYSTEM_ALERT_WINDOW動態授權完成后,將窗口類型設置為TYPE_SYSTEM_ERROR得到的鎖屏效果如下——上拉菜單、屏幕下方菜單鍵無效,無任何方式退出窗口,手機被強制鎖定:
圖6 手機被鎖定
在最新的Android 8.0中,SYSTEM_ALERT_WINDOW權限的使用進一步受限,對于第三方應用程序而言,該權限保護下的TYPE_SYSTEM_ALERT、TYPE_SYSTEM_OVERLAY、TYPE_SYSTEM_ERROR等幾類勒索軟件常用窗口完全被禁用。即使獲得了用戶動態授權,使用這幾種窗口也會觸發窗口類型錯誤:
圖7 使用禁用窗口報窗口類型錯誤
取而代之,為了解決窗口置頂需求,Google引進了一種新窗口類型?TYPE_APPLICATION_OVERLAY,這類型窗口將覆蓋其他第三方應用的窗口,但卻始終位于系統狀態欄與輸入法窗口之下,如下圖,用戶可以下拉狀態欄并關閉該置頂窗口:
圖8 TYPE_APPLICATION_OVERLAY窗口置頂后仍可操作狀態欄
為了保障Android 8.0的向前兼容性,安裝了Android 8.0的設備也能正常運行使用了TYPE_SYSTEM_ALERT等被禁窗口的應用程序,但同TYPE_APPLICATION_OVERLAY窗口一樣,被禁窗口也可通過下拉狀態欄的TURN OFF選項關閉,故使用舊版本SDK開發的窗口手機勒索軟件在Android 8.0中同樣會失效。
圖9 狀態欄的TURN OFF選項
需要注意的是,雖說自Android M到Android O一直加強系統類窗口的使用限制,但當病毒作者將目標勒索軟件仍舊鎖定在Android M之前版本,這種限制作用將大大降低。而從目前各版本Android操作系統的分布情況來看,高達61.7%的設備仍舊使用Android M以下系統版本,這也就說明絕大多數用戶設備仍面臨著勒索軟件帶來的高危風險,由此看來,Android高版本操作系統的普及力度亟待加強。
圖10 Android各系統版本分布情況
(圖片來源:https://developer.android.com/about/dashboards/index.html)
隨著Android O的逐步推廣普及,利用系統類型窗口作惡的勒索軟件將難以存活,但是其它形式的勒索軟件卻未受其影響,所以對于勒索軟件的監控以及防范仍不能松懈。
Android的開放為其快速發展提供了更多可能性,同時勢必會帶來更多的安全問題,不過,隨著Google對手機操作系統的持續改善,現存的諸多安全問題不斷得到解決,再加上安全廠商對Android設備及軟件的大力護航,開發者的開發環境與用戶的用機環境必將更加安全同時更加豐富多彩。
原文地址:?http://blogs.360.cn/blog/android_o_against_ransomware/
總結
以上是生活随笔為你收集整理的Android O限制系统全屏进一步遏制手机勒索的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Core Dump流程分析
- 下一篇: android sina oauth2.