Android N如何限制重置密碼以遏制勒索軟件
Android N安全特性概覽
AndroidN即Android7.0,代號“牛軋?zhí)?rdquo;,是Google于2016年7月份推出的最新版智能手機(jī)操作系統(tǒng)。AndroidN帶來了諸多新特性與功能,它們將對系統(tǒng)整體性能進(jìn)行提升,特別對安全性進(jìn)行了強(qiáng)化。
圖1給出了AndroidN帶來的主要變更,一方面,AndroidN對部分原有功能進(jìn)行了優(yōu)化,如應(yīng)用程序編譯、電池與內(nèi)存管理、通知功能、無障礙功能等;另一方面,AndroidN也引入了諸多新特性,如多窗口支持與VulkanAPI等。
圖1Android N主要行為變更
AndroidN的諸多新特性歸根結(jié)底是為了增強(qiáng)系統(tǒng)安全性、提升用戶體驗。為了應(yīng)對層出不窮的惡意木馬和不斷完善Android系統(tǒng)安全機(jī)制,Google還對Android系統(tǒng)的安全性進(jìn)行了諸多優(yōu)化,這些優(yōu)化主要涉及系統(tǒng)權(quán)限、應(yīng)用間文件共享以及Androidfor Work三方面的內(nèi)容:
1.系統(tǒng)權(quán)限變更
棄用GET_ACCOUNTS權(quán)限。AndroidN之前,開發(fā)者通過AccountManager的getAccounts()方法獲取設(shè)備上賬戶信息之前必須保證已申請GET_ACCOUNTS權(quán)限;而AndroidN棄用了該權(quán)限,開發(fā)者可以在不申請GET_ACCOUNTS的情況下訪問設(shè)備上的賬戶信息。
新增OPEN_EXTERNAL_DIRECTORY行為。與原先申請WRITE_EXTERNAL_STORAGE權(quán)限后即可寫外部存儲不同的是,在AndroidN中,開發(fā)者首先需要通過該Action在外部存儲中申請創(chuàng)建一個可寫目錄,方可對外部存儲進(jìn)行寫操作,這種方式進(jìn)一步加強(qiáng)外部存儲的安全性能。
2.應(yīng)用間文件共享
應(yīng)用私有目錄被限制訪問(0700),文件所有者將無法通過設(shè)置私有文件訪問模式為MODE_WORLD_READABLE與MODE_WORLD_WRITEABLE來開放私有文件的讀寫權(quán)限;此外,通過file:///URI也將無法訪問到應(yīng)用包之外的路徑;同時DownloadManager將不能通過文件名來共享私有文件的信息。若要在應(yīng)用間共享文件,開發(fā)者可以發(fā)送一項content://URI,并授權(quán)URI的臨時訪問權(quán)限。進(jìn)行此授權(quán)的最簡單方式是使用FileProvider類。這一改變有效確保了共享文件的安全問題。
3.Android for Work
主要涉及證書安裝、重置密碼、二級用戶管理以及設(shè)備標(biāo)識符訪問權(quán)限的變更;
除了上述三個方面外,AndroidN還引入了新的開機(jī)驗證機(jī)制,在設(shè)備開機(jī)時首先會驗證系統(tǒng)文件完整性,一旦檢測到系統(tǒng)文件被篡改(或者是引導(dǎo)鏡像存在被修改的痕跡),則禁止系統(tǒng)啟動或限定部分功能(實(shí)際上在AndroidM時代,系統(tǒng)也會進(jìn)行完整性檢查,但AndroidM在檢測到系統(tǒng)被篡改時只是以彈窗形式提醒用戶,而不會采取進(jìn)一步措施)。AndroidN的新開機(jī)驗證機(jī)制將直接影響到設(shè)備Root的困難程度,因為在Root過程中通常以修改系統(tǒng)文件的方式來提升用戶權(quán)限。從這個角度來看,新的開機(jī)驗證機(jī)制在某種程度上提高了系統(tǒng)的安全性。
AndroidN在用戶層與系統(tǒng)層上的安全機(jī)制調(diào)整增強(qiáng)了設(shè)備的安全性。在系統(tǒng)層面,通過限制對私有文件的訪問,強(qiáng)化了應(yīng)用間的隔離效果,進(jìn)一步保護(hù)了應(yīng)用程序私有數(shù)據(jù)的安全;在用戶層面,通過嚴(yán)控證書安裝流程、限制重置密碼等操作來降低由非法證書、鎖屏勒索類木馬帶來的威脅。
我們以Androidfor Work對鎖屏勒索類木馬發(fā)展趨勢產(chǎn)生的影響為例來深入分析安全新特性。
鎖屏勒索類木馬現(xiàn)狀
鎖屏勒索類木馬是讓Android用戶頭疼的惡性問題之一,網(wǎng)絡(luò)上也頻頻爆出Android用戶遭遇各類鎖屏勒索的新聞及其引發(fā)的相關(guān)討論。
圖2Android鎖屏勒索問題頻現(xiàn)
Android手機(jī)鎖屏勒索類木馬主要是通過操作用戶開機(jī)密碼從而強(qiáng)制鎖定用戶手機(jī),使得用戶無法正常使用手機(jī),并以此威脅用戶進(jìn)行付費(fèi)解鎖,用戶只需按照惡意軟件的提示進(jìn)行指定操作。從技術(shù)角度看,鎖屏勒索類木馬主要利用了特殊懸浮窗、Activity劫持、屏蔽虛擬按鍵、設(shè)置手機(jī)PIN碼和修改系統(tǒng)文件等方式以達(dá)到強(qiáng)制多屏的效果。
2016年前三個季度捕獲鎖屏勒索類木馬11.1萬余個,與2015年同季度對比發(fā)現(xiàn),2016年一季度呈現(xiàn)出爆發(fā)式增長,同比增長767%;2016年二季度同比增長360%;2016年三季度同比增長56%,如圖3所示。由圖4可以看到,直接與重置密碼相關(guān)的鎖屏勒索類木馬在這類木馬中占了很大比重。這既足以反映出鎖屏勒索類木馬已成為Android安全的重災(zāi)區(qū),也表現(xiàn)出重置密碼是這類木馬的最常采用的手段,同時這類木馬展現(xiàn)的巨大利益誘惑吸引著大量的木馬作者,無形中給廣大用戶帶來了巨大的安全隱患。
圖32015和2016年同季度Android鎖屏勒索類木馬數(shù)量對比
圖4鎖屏勒索木馬中設(shè)置鎖屏密碼勒索木馬占比
重置密碼特性變更
圖5給出了一個Android手機(jī)上的鎖屏勒索類木馬示例,可以看出木馬運(yùn)行后首先會要求獲取設(shè)備管理權(quán)限,用戶按要求激活設(shè)備管理器后則會發(fā)現(xiàn)手機(jī)立刻被強(qiáng)制鎖屏,并且鎖屏界面出現(xiàn)了“提示性”語句,用戶根據(jù)“提示性”信息向指定賬戶支付一定金額后才能取得新密碼解鎖進(jìn)入手機(jī)桌面。
圖5Android鎖屏勒索木馬示例
1.鎖屏勒索類木馬實(shí)現(xiàn)重置密碼
Android N之前,通過操作設(shè)備管理器可以很容易地實(shí)現(xiàn)重置密碼,只需調(diào)用設(shè)備管理器DevicePolicyManager提供的resetPassword(Stringpassword, int flags)接口,其中password為新的密碼。圖6所示為勒索木馬重置密碼的代碼:首先需要為設(shè)備管理器添加reset-password動作,然后只要監(jiān)聽到用戶激活設(shè)備管理器便立即調(diào)用resetPassword接口進(jìn)行重置密碼進(jìn)而鎖定用戶的手機(jī),如圖6所示。
圖6勒索軟件示例代碼
2.Android N中的resetPassword接口
與Android N之前版本可任意設(shè)置或重置設(shè)備密碼不同的是,AndroidN中明確規(guī)定,第三方應(yīng)用開發(fā)者只能使用DevicePolicyManager.resetPassword為無密碼設(shè)備設(shè)置初始密碼,而不能重置或清除已有的設(shè)備密碼。
若設(shè)備當(dāng)前沒有密碼,如圖7( 左)所示,此時可以調(diào)用resetPassword方法成功設(shè)置鎖屏密碼,如圖7(右)。
圖7成功設(shè)置密碼
若設(shè)備已有密碼,當(dāng)嘗試調(diào)用resetPassword方法重置鎖屏密碼時,系統(tǒng)會拋出SecurityException異常,并提示“Admincannot change current password”,如圖8所示。
圖8修改已有密碼失敗
從上述內(nèi)容可以看到,AndroidN中對于resetPasswordAPI所添加的限制能阻止木馬對已有鎖屏密碼的重置,從而使得部分勒索軟件失效。
小結(jié)
1.在Android N中,鎖屏勒索類木馬只能利用系統(tǒng)提供的重置密碼API來設(shè)置設(shè)備的初始密碼,而不能用來修改已有密碼,這也就意味著那些從不設(shè)鎖屏密碼的用戶仍然會處在危險之中,由此可見用戶養(yǎng)成主動設(shè)置鎖屏密碼等良好習(xí)慣對提高設(shè)備安全性而言非常重要;
2.由于在針對Android N以下版本的鎖屏勒索類木馬中,重置密碼相關(guān)的木馬占比較大,因此AndroidN對該API的使用限制將會大幅縮小鎖屏勒索類木馬的影響范圍;
3.面對此種對重置密碼功能的限定,鎖屏勒索類木馬可能會另辟蹊徑,比如結(jié)合偽裝、誘導(dǎo)等其他手段來擾亂用戶正常使用設(shè)備,以達(dá)到敲詐勒索的目的。對此我們會繼續(xù)關(guān)注,讓用戶更安全地使用手機(jī)。