以下報告由SophosLabs安卓專家陳宇撰寫,並得到安卓團隊成員William Lee、Jagadeesh Chandraiah和Ferenc LászlóNagy的支持。
隨著Android惡意軟件數量的增長,當涉及到用來躲避用於動態分析的模擬器的科技時,它遵循Windows同類軟件的每一步。
在這篇博客文章中,我們將展示一些反模擬器科技。
模擬器是允許一臺電腦(主機)類比另一臺電腦(來賓)的硬體或軟件。它通常允許主機系統運行軟件或使用為來賓系統設計的周邊設備。在安全性方面,這是一種測試惡意軟件行為的簡便方法——這就是惡意軟件創建者想要破壞它的原因。
反模擬技術存在於許多不同的Android惡意軟件家族中,其中一個是最近在Google Play中發現的Android廣告加載軟件。
有了這些,SophosLabs發現了六種常見的反模擬器科技:
1.檢查電話服務資訊
模擬器檢測就是要找出模擬器和實際設備提供的環境之間的差异。首先,模擬器上的設備id、電話號碼、IMEI和IMSI與實際設備上的不同。Android.os.TelephonyManager類提供獲取資訊的方法。應用程序可以使用此類中的方法來確定電話服務和狀態,訪問某些類型的訂戶資訊,並注册偵聽器以接收電話狀態更改的通知。例如,它可以使用getLine1Number獲取第1行的電話號碼。在模擬器上,埠號為1555521。如果埠號為5554,則返回值為15555215554。
Andr/RuSms AT使用此程式碼檢測模擬器:
2.檢查生成資訊
我們發現多個惡意軟件系列正在檢查生成資訊以確定它是否在模擬器上運行。例如,此銀行家惡意軟件具有以下反模擬器程式碼(按一下可放大):
字串是加密的。解密後,它將檢查:
ctx.getSystemService(“phone”).getDeviceId().equals(“000000000000000”)
Build.MODEL.contains(“google_sdk”)
Build.MODEL.contains(“模擬器”)
Build.MODEL.contains(“Android SDK”)
Build.FINGERPRINT.startsWith(“通用”)
Build.FINGERPRINT.startsWith(“未知”)
Build.MODEL.contains(“針對x86構建的Android SDK”)
Build.MANUFACTURER.contains(“Genymotion”)
Build.BRAND.startsWith(“generic”)和Build.DEVICE.startsWith(“generic”)
上面的函數由廣播接收器調用。在應用程序清單中,此接收器定義為接收android.intent.action.BOOT_COMPLETED和android.intent.action.SCREEN_ON。這意味著每次開機並從睡夢中醒來時都會呼叫它。這是惡意軟件發起惡意行為的常見場所。但如下所示,如果模擬器檢查函數返回“True”,此惡意軟件將不會執行任何操作
3.檢查系統内容
另一種方法是檢查系統内容。模擬器上的某些系統内容與實際設備上的不同。例如,設備品牌、硬體和型號。此錶顯示模擬器上的一些系統屬性值:
財產
值表示模擬器
反滲透引導程式
未知
反滲透啟動模式
未知
反滲透硬體
金魚
反滲透產品型號
軟體發展工具包
反滲透產品裝置
通用的
反滲透產品名稱
軟體發展工具包
4.檢查是否存在模擬器相關檔。
這是惡意軟件樣本中發現的另一種科技。他們檢查QEMU(快速模擬器)或其他與模擬器相關的檔案是否存在。例如,這段程式碼可以在Andr/Pornclk變體中找到
5.檢查調試器和安裝程式
這不是一個反模擬器,但它的目的也是為了阻礙動態分析。與檢查點報告的這個skinner廣告軟件一樣,它使用Debug.isDebuggerConnected()和Debug.waitingForDebugger()來檢查調試器是否存在。更有趣的是,它還讓安裝程式使用getInstallerPackageName,並查看它是否由Google Play(com.android.vending)安裝。囙此,如果像大多數分析師那樣,將程式安裝到帶有adb的設備上,應用程序將無法工作。
6。定時炸彈
這是許多惡意軟件/廣告軟件家族在動態分析中隱藏自己的另一種管道。安裝後,他們等待一定的時間,直到他們開始他們的活動。例如,在廣告軟件示例中可以看到下麵的設定檔:
“設定”:{
“adDelay”:18萬,
“firstAdDelay”:86400000,
“解鎖延遲”:2,
“bannerDelay”:18萬,
“bannerPreDelay”:10000,
“橫幅每日”:25
},
firstAdDelay是第一個廣告發佈前的毫秒,在本例中是24小時。這也可以防止用戶產生懷疑。
我們相信Android惡意軟件和廣告軟件的作者將繼續在他們的程式碼中加入反模擬技術,因為他們迄今為止已經取得了相當程度的成功。安全公司必須用更好的檢測方法來匹配它們。
參攷:
https://github.com/strazzere/anti-emulator
http://blog.checkpoint.com/2017/03/08/skinner-adware-rears-auggy-head-google-play/