Android沙盘原理与实现(3)

发表于:2013-04-18来源:Csdn作者:Jack_Jia点击数: 标签:Android
/proc/mounts = 加载文件系统, /system/bin/cp = 复制文件, /root/su = 切换用户, /system/bin/rm = 删除文件, ); 2、动态分析 动态分析是Android沙盘的主要功能,主要使用

  '/proc/mounts' => '加载文件系统',

  '/system/bin/cp' => '复制文件',

  '/root/su' => '切换用户',

  '/system/bin/rm ' => '删除文件',

  );

  2、动态分析

  动态分析是Android沙盘的主要功能,主要使用Google Android模拟器作为沙盘环境,同时以前面修改过的system.img来启动模拟器,以在操作过程中生成我们所需的日志信息:

  system('start emulator -avd MalDroidAnalyzer -scale 0.8 -system images/root-system.img -ramdisk images/ramdisk.img -kernel images/zImage -prop dalvik.vm.execution-mode=int:portable &');

  这里的root-system.img是经过root的,默认情况下,Android模拟器是没有root权限的,需要自己手工修改。这样在一些需要root权限的病毒才能正常地模拟器运行,以触发更多的恶意行为。

  启动模拟器后,利用adb安装APK到模拟器上。业界多数沙盘是通过monkey去自动操作软件以触发恶意行为,但这种做法过于盲目,不容易触发恶意行为,同时当操作过于频繁时容易导致程序崩溃,因此在MalDroidAnalyzer中选择由用户自主手工操作,操作时间由用户自己把握。手工操作可能更有利于触发恶意行为,因为病毒作者通常会更多地依赖用户的操作习惯来触发恶意行为,比如点击、拔打电话等行为。

  为了避免生成过多的无用日志,因此在使用logcat命令时可提前过滤下,并输出到log.txt文件:

  system("adb logcat -v time ActivityManager:I camera:V AudioHardware:D Telephony:V CallNotifier:D su:D MediaProvider:V videocamera:V BluetoothEnabler:V BluetoothHIDService:I dalvikvm:W *:S > log.txt");

  最后对生成的日志log.txt进行分析,由于修改过system.img,它会按照json格式输出我们所需的信息,而有些原本Android系统输出的日志可直接拿来作行为检测,就未作修改。日志格式如下:

  09-16 10:18:04.583 W/dalvikvm( 299): MalDroid: { "DexClassLoader": { "path": "/data/data/com.test/files/anserverb.db" } }

  09-16 10:17:27.963 W/dalvikvm( 281): MalDroid: { "SendNet": { "desthost": "www.google.com", "destport": "80", "data": "7b2263656c6c5f746f77657273223a5b7b226d6f62696c655f6e6574776f726b5f636f6465223a32362c226c6f636174696f6e5f617265615f636f6465223a2d312c226d6f62696c655f636f756e7472795f636f6465223a3331302c2263656c6c5f6964223a2d317d5d2c22726571756573745f61646472657373223a747275652c22686f7374223a226d6170732e676f6f676c652e636f6d222c2276657273696f6e223a22312e312e30227d" } }

  09-09 08:37:10.371 W/dalvikvm( 191): MalDroid: { "CryptoUsage": { "operation": "keyalgo", "key": "53, 52, 67, 68, 65, 48, 54, 51, 67, 68, 53, 56, 68, 56, 53, 70", "algorithm": "AES" } }

  09-09 08:37:12.560 W/dalvikvm( 191): MalDroid: { "CryptoUsage": { "operation": "encryption", "algorithm": "AES/CBC/PKCS5Padding", "data": "ylmftg6" } }

  09-17 20:17:14.302 W/dalvikvm( 274): MalDroid: { "ServiceStart": { "name": "com.android.md5.Settings" } }

  09-17 20:24:24.944 W/dalvikvm( 126): MalDroid: { "FdAccess": { "path": "2f646174612f646174612f636f6d2e616e64726f69642e6c61756e636865722f66696c65732f6c61756e636865722e707265666572656e636573", "id": "588716465" } }

  09-17 20:24:24.965 W/dalvikvm( 126): MalDroid: { "FileRW": { "operation": "read", "data": "0005", "id": "588716465" } }

  生成日志后,MalDroidAnalyzer会去分析日志,生成统计图数据,然后生成报告。下面是一些真实病毒样本的恶意行为记录:

  1、窃取通讯录:

  2、通话录音:

  3、发送收费短信:

  4、动态加载类文件:

  5、Root提权:

  四、真实案例

  在Google Android官方市场上,曾出现过多起应用程序嵌入恶意代码的事件,比如“功夫病毒”,可进行root提权,并破坏文件系统,同时窃取用户隐私信息,感染了上百万用户,危害甚广。病毒作者通过对知名软件进行修改,嵌入恶意代码然后重打包,然后诱骗用户下载这些伪造软件。除“功夫病毒”外,还有DroidDream、AnserverBot、PhoneSpy等恶意软件。下面是MalDroidAnalyzer针对PhoneSpy病毒Gmail.apk给出的分析报告,该病毒会窃取用户隐私信息、通话录音等恶意行为。由于该病毒无GUI界面,而是以后台服务在运行,因此报告中的截图是主页界面:

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