MobSF框架之动态分析
一、使用配置
【1】方式一:虚拟设备,配置动态分析器(VirtualBox + MobSF_VM.ova)
参考:https://github.com/ajinabraham/Mobile-Security-Framework-MobSF/wiki/1.-Documentation
http://www.freebuf.com/sectool/99475.html
http://www.mottoin.com/92477.html
【2】方式二:Android真机,安装配置相应软件(Xposed框架 + Droidmon/JustTrustMe/RootCloak模块)
参考:https://github.com/ajinabraham/Mobile-Security-Framework-MobSF/wiki/2.-Configure-MobSF-Dynamic-Analysis-Environment-in-your-Android-Device-or-VM
二、动态分析
动态分析的前端展示页面如图所示,主要功能包括:Environment Created,Start / Stop Screen,Install / Remove MobSF RootCA,Start Exported Activity Tester,Start Activity Tester,Take a Screenshot,Finish。
【1】Environment Created
> 设置web代理,用来抓取APP访问流量
> 建立adb连接,adb connect ip:port
> 安装程序,adb install -r xxx.apk
> 运行程序,adb shell am start -m xxx
【2】Start / Stop Screen
> 利用屏幕录制软件screencast提供的服务,来实现实时操作功能
【3】Install / Remove MobSF RootCA
> 安装、卸载RootCA,方便对样本中HTTPS流量进行截获
> adb push ca.crt /xx
> adb shell su -c cp /xx /xxx
【4】Start Exported Activity Tester
> 遍历获取AndroidManifest.xml文件中的所有Exported Activity
> 依次启动activity,adb -s IP:PORT shell am start -n PACKAGE/ACTIVITY
> 获取当前activity运行时的屏幕截图,并保存截屏
> 强制关闭应用,adb -s IP:PORT shell am force-stop PACKAGE
【5】Start Activity Tester
> 遍历AndroidManifest.xml文件中的所有Activity,而不单单是Exported
> 处理流程与Exported Activity一致
【6】Take a Screenshot
> 截屏并保存到本地
> adb -s IP:PORT shell screencap -p /xx/screen.png
> adb -s IP:PORT pull /xx/screen.png /xxx/xx.png
【7】Finish
> 日志收集:收集程序运行过程中所有dalvikvm的Warning和ActivityManager的Information,以及Xposed目录下的API监控日志
> 日志分析:以正则匹配为主,对日志文件进行分析处理,匹配恶意url、邮箱等特征信息
> MobSF完成检测分析后,将所有可用信息输出到web界面,方便分析人员进行分析
##总结##
对APK进行动态分析时,MobSF主要利用Xposed框架、Droidmon实现对应用程序调用API的情况进行监控,并且可灵活维护一份需要hook的API列表,主要工作包括:
1. 利用webproxy实现代理进而拦截样本流量;
2. 安装证书以便拦截https流量;
3. 遍历所有activity,尽量多的获取各个Activity运行得到的日志;
4. 利用正则匹配出API及参数和返回值;
5. 实时更新恶意url库,以url信息特征进行查杀。
三、参考资料
【1】http://purpleroc.com/MD/2016-08-31@Android%20Malware%20Analysis%20Tool(1)--MobSF.html