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