Android App漏洞检测
1 国内Android App在线漏洞检测平台
腾讯金刚审计系统 http://service.security.tencent.com/kingkong 免费 无限制
腾讯御安全 http://yaq.qq.com/ 免费 查看漏洞详情需认证
阿里聚安全 http://jaq.alibaba.com/ 免费 查看漏洞详情需认证
360显微镜 http://appscan.360.cn/ 免费 无限制
360APP漏洞扫描 http://dev.360.cn/html/vulscan/scanning.html 免费 无限制
百度MTC http://mtc.baidu.com 9.9元/次 无限制
梆梆 https://dev.bangcle.com 免费 无限制
爱内测 http://www.ineice.com/ 免费 无限制
通付盾 http://www.appfortify.cn/ 免费 无限制
NAGA http://www.nagain.com/appscan/ 免费 无限制
GES审计系统 http://01hackcode.com/ 免费 无限制
注:排名不分先后
2.2开源Android App漏洞检测工具
1.MobSF
Github:https://github.com/ajinabraham/Mobile-Security-Framework-MobSF
Mobile Security Framework(MobSF)是印度安全公司(http://opensecurity.in)开发的一个智能化、一体化的开放源代码的移动应用(Android / iOS)自动化测试框架,支持静态和动态分析,App后端Web API漏洞检测。
主要特点:基于Python Django的开源在线漏洞检测框架,前端UI完善,基础功能全面,安装布署方便,但总体来说审计点偏少,不适合实战,更适合辅助分析与二次开发,国内目前不少在线APP检测的平台都有这个框架的影子。

图7 MobSF生成的检测报告
2.Drozer
Drozer是MWR Labs开发的一个开源Android 安全测试框架,支持编写自定义模块。目前已经有不少介绍Drozer文章,这里就不多说了。

图8 Drozer运行界面
3.Marvin
Github:https://github.com/programa-stic/
Marvin是西班牙Programa STIC组织发布一个开源Android App漏洞检测框架,该框架主要分为四个项目:
(1)Marvin-Django
主要包含框架前端UI界面与数据库部分;
(2)Marvin static analyzer
一个主要基于Androguard 及Static Android Analysis Framework (SSAF)的Android App静态分析引擎。
(3)Marvin Dynamic Analyzer
一个APP动态分析引擎,基于OpenNebula及Android-x86 模拟器,可搭建分布式分析系统,用于复现静态分析发布的漏洞与动态检测漏洞。
(4)Marvin toqueton
一个自动化遍历APP UI的工具,用于分析APP UI控件并进行自动化交互遍历,辅助动态分析。
主要特点:
笔者刚看到这个项目发布时研究了一番,主要特点有可直接搜索下载Google应用商店或者上传应用进行分析,可编写自定义静态分析脚本,使用动态引擎复查静态分析的结果提升准确性,使用本地应用去遍历APP UI等,但仔细实践后发现动态分析环境(ubuntu+openNebula+Android-X86)的布署很麻烦,多次尝试都未成功。

图9 Marvin主界面
4.Inspeckagehttps://github.com/ac-pm/Inspeckage
一个Xposed插件,用于调试分析Android App。
主要特点:
使用方便,自带WEB界面,装Xposed插件可以分分钟开始挖漏洞;2.功能全面:查看Manifest信息,监控本地文件读写,查看文件内容,查看Logcat日志,查看网络通信请求(支持SSL uncheck),监控IPC通信,查看加密操作,调用未导出组件等。

图10 Inspeckage主界面
三、iOS App漏洞检测
一般来说iOS App由于iOS系统安全限制(非越狱环境),且无法直接反编绎获取App源码,其在安全性上远高于Android App,但近两年前随着XcodeGhost(https://security.tencent.com/index.php/blog/msg/96),iBackDoor,AFNetworking中间人等后门事件与漏洞的曝光,iOS App安全性也慢慢受到国内开发者与安全研究人员的关注。
3.1 常见iOS App漏洞测试工具
测试iOS App安全性离不开一台越狱过的iOS设备,以及一些测试利器。在此简单简介两个iOS App安全测试工具:
1.Idb

图11 Idb主界面
官网:http://www.idbtool.comGithub:https://github.com/dmayer/idb
Idb是一款开源的iOS App安全评估工具,作者是Danl A.Mayer。
主要功能:
1.查看应用以下信息:应用包名;注册的URL Schemes;SDK版本;应用数据文件夹位置;应用权限等,
2.查看/下载应用数据文件;
3.查看应用文件保护级别;
4.Dump iOS keychain;
5.检测应用是否加密;
6.检测应用编绎安全选项(ASLR/PIE, DEP, ARC);
7.查看应用的shared libraries;
8.提取应用binary中的字符串;
9.Class dump;
10.查看应用URL Handler;
11.Invoke and fuzz URL handlers;
12.查看系统剪切板
13.截屏
14.安装系统证书;
15.编辑 /etc/hosts文件;
16.查看系统日志;
2.Needle

图12 Needle主界面
Github:https://github.com/mwrlabs/needleNeedle是MWR Labs开发的一个开源iOS安全测试框架,同样支持开发自定义模块来扩展Needle的功能,目前主要功能包含对iOS应用数据存储,IPC,网络通信,静态代码分析,hooking及二进制文件防护等方面的安全审计。
与drozer类似,Needle提供了一个shell界面,基本idb有的功能needle都有或者说以后也会有(因为可以自己写模块),而Needle还同时支持Cycript与Frida两个hooking方案,可以方便的加载hook脚本与执行命令。
3.2 iOS App自动化漏洞检测
在很长一段时间内,iOS安全研究都主要集中在iOS系统安全漏洞挖掘中,由于iOS相对安全的系统机制保护与严格的审核机制,iOS App安全性一般比Android App要高不少,历史上出现的过一些iOS App漏洞也主要集中在iOS越狱环境下,但近年来XcodeGhost,AFNetworking框架中间人漏洞以及多个恶意SDK曝光也说明了iOS App安全性并没有我们想像的那么高,建设iOS App自动化漏洞审计平台对于拥有大量iOS App产品的企业来说还是很有必要的。
为了提升公司iOS App安全漏洞审计能力与应急能力,笔者与riusksk(林大夫)从2015年底开始一起研发iOS App漏洞审计系统(后续并入金刚),目前已经成功上线近半年,也辅助发现了一些iOS App业务安全漏洞,详情可参考文章:https://security.tencent.com/index.php/blog/msg/105
此外360NirvanTeam(http://nirvan.360.cn)也上线了在线检测功能,开源方案MobSF也有iOS App在线审计功能。此类审计平台主要审计点有:BIN文件分析,第三方库漏洞检测,XCodeGhost检测,恶意SDK检测等。相对来说金刚更为全面,适合开发上线前自查与安全研究人员辅助分析,包含了私有API检测,开放端口检测,应用文件审计,网络通信数据审计,日志审计,classdump等功能,后续还会继续优化iOS App UI自动化遍历功能与URL scheme Fuzzing功能。

图13 TSRC iOS App漏洞审计报告部分内容


















