• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • Android沙盤原理與實現

    發表于:2013-04-18來源:Csdn作者:Jack_Jia點擊數: 標簽:Android
    據網秦發布的《2012年上半年全球手機安全報告》,2012年上半年Android病毒感染量增長迅猛,尤以5、6月最為突出,上半年感染手機1283萬部,比2011年下半年增長62%。

      【作者】:riusksk(泉哥)

      【團隊】:騰訊安全應急響應中心

      【微博】:http://t.qq.com/riusksk

      【博客】:http://riusksk.blogbus.com

      【日期】:2012年10月2日

      一、前言

      據網秦發布的《2012年上半年全球手機安全報告》,2012年上半年Android病毒感染量增長迅猛,尤以5、6月最為突出,上半年感染手機1283萬部,比2011年下半年增長62%。在全球范圍內,中國大陸地區被感染率占居首位。面對增長如此迅速的Android軟件,安全研究人員常常需要逆向分析樣本,分析出其惡意行為,但手工分析較費時間。在DEX文件反混淆技術的不遍推廣和普及下,比如今年的BlackHat就有DEX反混淆的專題及相應工具公布,現在已有很多惡意軟件使用到這些反混淆技術,這就加大了樣本分析的難度及所花費的時間。本文主要講述如何利用Android沙盤實現自動化分析惡意軟件的方法,其中介紹了Android沙盤的原理,以及由筆者編寫的Android沙盤——MalDroidAnalyzer,后面會提供由MalDroidAnalyzer分析真實病毒時自動生成的分析報告。

      二、Android常見惡意軟件行為

      1、惡意扣費

      病毒在后臺發送扣費短信、拔打電話進行惡意扣費,同時會對服務商發回的服務短信進行屏蔽,破壞系統的正常功能,同時對用戶造成資費損失。

      2、隱私竊取

      病毒通過后臺服務竊取用戶隱私信息,包括通話錄音、短信內容、IMEI、IMSI、地理位置、通訊錄、瀏覽器歷史記錄等信息,然后上傳到黑客控制的遠程服務器。

      3、遠程控制

      病毒在后臺開機自動,并與C&C服務器進行通訊,并從中獲取加密的指令,解密后執行相應的惡意操作,也有通過SMS進行控制,構造出botnet,從而大規模地遠程控制用戶的手機。比如之前著名的AnserverBot病毒,就是通過新浪博客進行遠程控制,也是首個利用第三方站點作為C&C服務器的Android病毒。

      4、系統破壞

      病毒通過系統漏洞進行ROOT提權,并執行高權限操作,在后臺靜默安裝子程序包,或者通過偽造成殺毒軟件、提示更新等方式欺騙用戶安裝第三方惡意程序。病毒可能會更改網絡狀態、APN,或者替換系統文件、添加惡意書簽、屏蔽運營商短信、中止殺軟進程等方式進行系統破壞。

      5、其它

      病毒在后臺聯網下載大量軟件,消耗用戶手機流量,或者執行一些比較耗電的操作來消耗手機電量,進而影響正常的手機通信。也有些一些病毒通過釣魚欺騙等方式,誘騙用戶下載偽裝軟件,導致帳戶密碼失竊。

      三、Android沙盤原理

      本文主要介紹一款Android惡意軟件行為自動分析平臺——MalDroidAnalyzer,其主要結合靜態分析和動態分析技術來實現惡意軟件行為自動化分析。MalDroidAnalyzer是筆者使用Perl語言編寫的,用于輔助分析Android軟件行為,提高惡意軟件的分析效率。

      首先,MalDroidAnalyzer直接以apk文件作為輸入,整個分析過程主要分析兩部分:靜態分析和動態分析。靜態分析會通過反編譯apk文件,分析其中的權限、組件、敏感函數等信息,這些可以彌補動態分析中因未觸發惡意行為而漏掉的行為。動態分析主要通過在模擬器運行Android軟件,然后再對軟件進行一些操作以觸發盡可能多的惡意行為,接著輸出到log中,再通過腳本對日志進行分析。由于Android系統默認情況下,一些輸出日志里面缺乏我們所需的信息,比如發送短信時,只在log中記錄手機號,而沒有短信內容,此時就需要通過修改Android源碼或者反匯編system.img中的相關類或者庫進行修改,可以在短信發送函數sendTextMessage(位于system.img中的framework/framework.jar)里面添加短信內容的日志輸出:

      下面是可能需要修改的相關文件,包括源碼位置和編譯后所對應的相關文件,可根據自身需要進行修改:

      發送短信:android.telephony.SmsManager(system.img中的framework/framework.jar)

      文件操作:org.apache.harmony.luni.platform.OSFileSystem(system.img中的framework/core.jar)

      網絡操作:org.apache.harmony.luni.platform.OSNetworkSystem(system.img中的framework/core.jar)

      拔打電話:android.app.Activity(system.img中的framework/framework.jar)

      啟動服務:android.content.ContextWrapper(system.img中的framework/framework.jar)

      數據加解密:javax.crypto.Cipher(system.img中的framework/core.jar)

      核心庫:dalvik/vm/native(system.img中的lib/libdvm.so)

      關于apk文件及MalDroidAnalyzer的工作流程如下圖所示:

      1、靜態分析

      沙盤MalDroidAnalyzer主要在電腦端對APK進行靜態分析,通過apktool先進行反編譯處理。正常的APK文件主要是以zip格式進行壓縮捆綁的文檔,里面主要包含AndroidManifest.xml、Classes.dex和res等文件。在反編譯后會得到明文的AndroidManifest.xml,里面定義各組件、組件權限和啟動位置、軟件基本信息等,通過對該xml文件的分析,可以獲取到軟件名稱、包名等基本信息,同時對包含的各個組件進行分析,特別是Broadcast Receiver組件的觸發條件,可能就包含有開機自啟動項用于啟動后臺服務,這些在報告中都會被高亮顯示出來。

      在動態分析過程中,可能由于惡意行為的時間限制,或者模擬器的功能限制(比如藍牙、Wifi),導致病毒的一些惡意行為無法觸發。此時,我們通過檢測Android軟件調用的API函數可彌補這里的不足,比如發送扣費短信通常會調用sendTextMessage()函數,執行外部命令可能會調用java.lang.Runtime.exec()。下面是筆者收集整理的一些敏感API函數列表,歡迎各位讀者補充和改進:

      my %apis = (

      "IActivityManager\$Stub\$Proxy\;\-\>shutdown" => '關機',

    原文轉自:http://blog.csdn.net/jiazhijun/article/details/8667129

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>