如何更好地預防移動端勒索軟件的侵害?要從勒索軟件的運行機制入手

責任編輯:editor006

作者:Alpha_h4ck

2017-01-01 20:26:43

摘自:黑客與極客

既然我們已經(jīng)知道了攻擊者可以做什么,那么我們將在這篇文章中討論移動端勒索軟件的檢測和緩解思路。勒索軟件目前所使用的信息鎖定技術(shù)都是已知的,所以我們可以通過輕量級的符號執(zhí)行技術(shù)來檢測勒索軟件的惡意活動。

在2016年發(fā)生了許多與勒索軟件有關(guān)的安全事件,而現(xiàn)在越來越多的網(wǎng)絡(luò)犯罪分子會通過勒索軟件來獲取大量的非法收益。除此之外,“勒索軟件即服務”在暗網(wǎng)市場中似乎也成了一種新的潮流。更加恐怖的是,2017年將會成為勒索軟件爆發(fā)的一年。因此,我們?nèi)绾尾拍芨玫乇Wo自己的安全呢?

既然我們已經(jīng)知道了攻擊者可以做什么,那么我們將在這篇文章中討論移動端勒索軟件的檢測和緩解思路。我們希望能夠?qū)⑦@些技術(shù)方面的內(nèi)容與安全研究人員共同分享,并且提升安全行業(yè)對移動端勒索軟件的理解。

檢測思路

為了設(shè)計和實現(xiàn)更加高效的移動端勒索軟件檢測/緩解技術(shù),我們必須從移動端勒索軟件的技術(shù)細節(jié)入手。毫無疑問的是,勒索軟件的惡意功能肯定會在其實現(xiàn)代碼中有所體現(xiàn)。因此,我們準備利用靜態(tài)分析技術(shù)以及一些其他的小技巧來對移動端勒索軟件進行分析和探究。

下圖顯示的就是幾種移動端勒索軟件常用的檢測方法:

典型的“威脅信息”(Threatening text)會寫得非常明確,用戶一看就會知道自己正在面對的是什么,而且這些信息往往都會告訴目標用戶如何去支付贖金。因此,我們可以通過機器學習算法來對“正常信息”和“威脅信息”進行自動化分類,并以此來檢測移動設(shè)備是否感染了勒索軟件。我們需要對分類器進行一些簡單的訓練,首先要移除掉勒索信息樣本中的一些類似“the”、“at”和“an”這樣的介詞,然后將類似“locked”這樣的動詞過去式/完成時轉(zhuǎn)換為其動詞原形“lock”。我們用一些典型的威脅信息樣本和普通的文本信息來訓練分類器,這樣就可以讓分類器學會區(qū)分出哪些是不安全的消息了。

勒索軟件目前所使用的信息鎖定技術(shù)都是已知的,所以我們可以通過輕量級的符號執(zhí)行技術(shù)來檢測勒索軟件的惡意活動。首先,我們可以搜索App中android.app.Activity的所有子類,并且找出所有重寫了onKeyUp和onkeyDown方法的字節(jié)碼。接下來,我們可以模擬執(zhí)行這些方法中的代碼來查看其代碼路徑是否鎖定了手機的home鍵或返回鍵(下圖中的藍色箭頭所示),如果方法的返回值為“true”(如紅色箭頭所示),則表明點擊事件不會得到進一步的處理。這也就意味著,被感染手機中的其他應用將不會被推送至手機前臺,包括手機原本的主屏launcher在內(nèi)。

下圖顯示的是鎖定手機虛擬鍵的代碼路徑:

為了利用設(shè)備的管理員API,應用程序需要在其manifest文件中聲明相應的權(quán)限。但是攻擊者可以單獨定一個“策略”文件,惡意App可以直接引用這個文件來獲取到管理員權(quán)限(root)。因此,我們可以通過檢測設(shè)備中的一些危險行為(例如重置密碼、強制鎖定、擦除數(shù)據(jù)和存儲加密等),來識別出一些不需要用戶交互的惡意方法。

在這里,我們使用了一款自定義版的FlowDroid來對勒索軟件的字節(jié)碼進行靜態(tài)分析。首先我們要了解勒索軟件App中所有方法的控制流程,我們打算先尋找調(diào)用lockNow()的方法以及一些其他的惡意方法。我們找出了所有調(diào)用了Java反射API的方法,但是相應的方法代碼都是經(jīng)過混淆處理的。當我們識別出了這些方法名之后,我們就可以將這些方法添加進控制流程圖中的節(jié)點了。如果方法名稱經(jīng)過了混淆處理,那么我們要先找到保存有這個方法名(已混淆)的String對象,然后利用反射機制來重新執(zhí)行方法中的所有聲明語句,直到我們運行到invoke()方法為止。這樣一來,我們便能夠畫出勒索軟件大致的控制流程圖了。

下圖所示的就是我們在尋找濫用設(shè)備管理員API的方法時的大致流程:

我們還嘗試利用同樣的方法來對其他的一些感染實例進行了檢測。更加確切地說,我們想測試一下這項技術(shù)能否適用于各種場景。

同樣的,我們還是使用FlowDroid來進行流程分析,比如說,我們現(xiàn)在準備分析listFiles()方法到CipheroutputStream()方法之間的代碼處理流程。我們需要找出那些并非由主屏launcher所啟動的代碼路徑,因為這些代碼路徑所指向的功能是不需要任何的用戶交互就可以直接激活的。

不幸的是,整個檢測過程需要消耗大量的時間。如果使用機器學習方法,我們就可以對App進行預過濾處理,這樣就可以提升我們的檢測精度,而且也非常的安全。更加重要的是,基于機器學習的檢測方法可以大大減少我們的檢測時間。

趨勢科技的解決方案

趨勢科技(TrendMicro)一直都在致力于研發(fā)這種先進的研究技術(shù),這些技術(shù)可以幫助研究人員快速檢測到新型的勒索軟件變種,并且為終端用戶提供可靠的安全保護。對于客戶來說,可以使用趨勢科技的移動端安全解決方案【傳送門】,它可以幫助用戶更好地抵御惡意軟件所帶來的威脅。

企業(yè)用戶也可以考慮使用趨勢科技的企業(yè)版移動端安全解決方案【傳送門】。我們提供了設(shè)備管理、數(shù)據(jù)保護、應用管理和其他的一些功能。

鏈接已復制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號