在幾個星期前,筆者在2016年的歐洲黑帽大會上談論了躲進口袋的壞東西:為什麼勒索病毒造成貓捉老鼠遊戲內的曲折劇情。當回顧2015年4月到2016年4月的行動勒索病毒 Ransomware (勒索軟體/綁架病毒)時,趨勢科技注意到了Android勒索病毒數量的大幅上升。在這一年時間內,Android勒索病毒數量增加了140%。某些地方的行動勒索病毒甚至佔行動惡意軟體總數的22%!(這些數字來自趨勢科技的行動應用程式信譽評比服務)。在這期間所注意到的一個趨勢是它跟傳統勒索病毒走勢有密切相關:跟其他勒索病毒一樣,行動勒索病毒也在不斷地發展和成長。
這項研究從筆者在Politecnico di Milano(POLIMI)時就開始,趨勢科技的行動研究團隊為這項研究做出巨大的貢獻。本文將討論行動勒索病毒所使用的技術及協助解決這些問題的偵測技術。
為什麼行動勒索病毒會得逞?上鎖和恐懼
根據趨勢科技的分析,鎖住螢幕和恐嚇受害者必須付錢,以重新啟用設備,是行動勒索病毒得逞的必備伎倆。
鎖住螢幕
SMSLocker(偵測為ANDROIDOS_SLOCKER或ANDROIDOS_SMSLOCKER)是現今Android勒索病毒的開端。最初它沒有使用加密技術,只是將目標檔案隱藏起來。2015年的版本會用根據設備產生的金鑰加密,所以很難去製作通用的解鎖工具。它主要利用簡訊進行命令和控制(C&C)通訊;有些變種會使用Tor。SLocker對行動勒索病毒最大的改變是使用Android UI API來鎖住設備螢幕。這是我們第一次看到惡意軟體利用此技術來控制設備,總結如下基於KeyEvent.Callback API呼叫:
- 綁定onKeyDown()和onBackPressed()函式回調,
- 只要受害者按下實體按鈕就會觸發回調,
- 根據API,透過傳回「true」值給連鎖內的下一個回調(代表「不傳播,事件已經被處理」),應用程式有效地防止當前的活動被移到背景處理。
圖1、Android套件索引列表內onKeyDown()函式的說明