APP漏洞自动化扫描专业评测报告(上篇)
一、前言
随着Android操作系统的快速发展,运行于Android之上的APP如雨后春笋般涌现。由于一些APP的开发者只注重APP业务功能的实现,对APP可能出现安全问题不够重视,使得APP存在较多的安全隐患。国内一些安全厂商为这些开发者提供了各种各样的安全服务,包括APP的加固、安全漏洞分析等。
目前在业界有很多自动化检测APP安全性的在线扫描平台。为了了解目前国内移动APP在线漏洞扫描平台的发展情况,我进行了一次移动安全扫描平台的评测分析;主要从漏洞项对比、扫描能力对比以及扫描结果这三个方向来对比。
希望此次的调研结果可以为读者提供更加可靠的安全漏洞扫描服务建议。
二、分析对象
这一章主要介绍需要对比的扫描平台和需要测试的APP样本。
2.1 对比平台
扫描平台 | 网址 |
---|---|
阿里聚安全漏洞扫描 | http://jaq.alibaba.com/ |
360APP漏洞扫描 | http://dev.360.cn/mod/vulscan |
腾讯金刚审计系统 | http://service.security.tencent.com/kingkong |
百度移动云测试中心 | http://mtc.baidu.com/startTest/safe |
AppRisk Scanner | https://apprisk.newskysecurity.com |
爱加密 | |
梆梆加固 | https://www.bangcle.com/ |
AppTest掌测 | http://www.appstest.cn/ |
TestIn测试平台 | www.testin.cn/ |
腾讯优测 | http://utest.qq.com/ |
爱内测 | http://www.ineice.com/ |
AppScan | http://www-03.ibm.com/software/products/zh/appscan-mobile-analyzer |
Fortify SCA | http://www8.hp.com/us/en/software-solutions/application-security/ |
对上述扫描平台,我都上传APP进行了测试,简单比较它们的扫描结果。最后,综合检测结果、它们在漏洞扫描领域的知名度以及它们的用户数量,我选取表中前五个扫描平台,即阿里聚安全、360APP漏洞扫描、金刚、百度和AppRisk进行详细的对比分析;由于金刚和优测都是腾讯旗下的产品,所以我选择了专注于APP审计的金刚审计系统。
爱加密扫描速度很快,但整个漏洞扫描就是为其加密模块做铺垫,扫描项非常简单,没有实际的漏洞扫描,只是简单的字符串匹配,故扫描速度非常快。梆梆加密扫描速度也比较快,扫描内容比爱加密要丰富,一共14项,包含了一些高危漏洞的扫描,如与WebView相关的一些漏洞等,但是其漏洞扫描模块也是为了给自己的加固服务做铺垫,所以没有选取这两家。AppTest掌测测试成本太高,每次测试2999元起,所以没有对它进行详细分析。腾讯优测的扫描结果与金刚非常相似,但没有金刚详细;有时候扫描结果只有漏洞概述,没有漏洞的详细信息,也没有修复建议。爱内测的扫描结果非常简略,只判断是否存在漏洞,而不统计漏洞的个数以及漏洞位置。
AppScan和Fortify SCA是国外的扫描平台,分别属于IBM和惠普。我分析了它们的扫描结果,AppScan的免费版本检测结果没有多大的参考价值,重要的漏洞信息都没有显示,如果测试时间超过4个小时,则会中断扫描服务。Fortify SCA的扫描侧重Web应用程序,虽然也可以扫描Android程序,但扫描结果以Web漏洞为主,差强人意,而且在免费试用15天后,每测试一个APP需要花费2000美元,所以我没有详细分析这两个平台。
以下简单统计了各个平台的收费情况,如下表:
扫描平台 | 是否收费 | 备注 |
---|---|---|
阿里聚安全漏洞扫描 | 免费 | 完全免费 |
360APP漏洞扫描 | 免费 | 完全免费 |
腾讯金刚审计系统 | 免费 | 完全免费 |
百度移动云测试中心 | 9.9元/次 | 新用户可以获得一张9元代金券,只能用百度钱包支付剩余的0.9元 |
AppRisk Scanner | 不详 | 普通账户可以测试2个app,随后可以通过可以通过邮件联系AppRisk升级账户 |
爱加密 | 免费 | 漏洞扫描主要为其加密服务做推广,扫描能力很差 |
梆梆加固 | 免费 | 漏洞扫描主要为其加密服务做推广,扫描能力较差 |
AppTest掌测 | 2999元/次 | AppTest掌测还有其他测试服务,收费标准不同,安全测试是2999元/次 |
TestIn测试平台 | 2000元/次 | 安全扫描服务需要填写非常详细的申请表才有机会获得1次试用服务 |
腾讯优测 | 200元/次 | 新用户免费使用一次。通过U币的形式付款,1U币=1元 |
爱内测 | 免费 | 爱内测免费版主要为其定制化检测做广告 |
AppScan | 混合 | AppScan将用户分为免费账户和标准账户,免费账户的扫描结果简单;标准账户可以按次收费也可以按月收费 |
Fortify SCA | 2000美元/个 | 新用户免费试用15天,超过15天后每测试一个APP需要2000美元,一年内可对同一个APP进行多次测试 |
2.2 测试样本
测试样本:
名称 | 版本 |
---|---|
WiFi万能钥匙 | 4.0.9 |
墨迹天气 | 5.0916.02 |
新浪微博 | 6.7.0 |
测试app | 无 |
手机百度 | 7.4 |
通过上传精心构造的包含各种漏洞的“测试APP”,测试它们的扫描能力,随后上传应用市场中下载量较大的应用程序进行实际测试。由于受时间和资源的限制,并未大规模上传应用进行测试,也只是详细对比了WiFi万能钥匙的扫描结果。因此扫描结果有些许的片面性,但总体反映各个扫描平台的检测能力。
三、总体能力对比
3.1 扫描时间对比
以下列表各个扫描平台扫描时间的对比,金刚只能检测50M以内的APP,所以没有新浪微博的检测时间,而百度每检测一次收费9.9元,而且没有记录扫描时间;受限于时间和经费,没有再次检测APP以获取扫描时间,单位:分。
阿里聚安全 | 360 | 百度 | 金刚 | Apkrisk | |
---|---|---|---|---|---|
WiFi万能钥匙(5.38M) | 6 | 458 | 无 | 1395 | 3 |
墨迹天气(14.9M) | 16 | 1256 | 无 | 1577 | 4 |
手机百度(36.8M) | 21 | 261 | 无 | 710 | 7 |
新浪微博(53.2M) | 45 | 1112 | 无 | 无 | 8 |
补充一下,时间的获取是以扫描界面内对应APP给出的或者是以收到扫描结束通知为依据的。可以看出,阿里聚安全和AppRisk的扫描时间与APP的大小成正比,而360和金刚没有明显的规律。当用户把APP投入阿里聚安全和AppRisk中扫描时,可以根据APP的大小预测大致的扫描时间;而投入到360和金刚时却无法预测大致的扫描时间。
3.2 漏洞项对比
360将许多类型相同的漏洞分成多个具体的漏洞,我将其合并一下(组件导出归为一类,文件读写归为一类,SQL注入归为一类)。
以下是具体漏洞个数对比:
漏洞类型 | 阿里聚安全 | 360 | 金刚 | 百度 | Apkrisk |
---|---|---|---|---|---|
WebView组件远程代码执行漏洞 | √ | √ | √ | √ | √ |
WebView绕过证书校验漏洞 | √ | √ | √ | √ | √ |
WebView明文存储密码风险 | √ | √ | √ | ||
WebView组件系统隐藏接口漏洞 | √ | √ | √ | √ | √ |
组件导出风险 | √ | √ | √ | √ | |
存在可以被恶意访问的表单 | √ | ||||
存在外部可访问的表单 | √ | ||||
本地代码执行漏洞 | √ | ||||
本地SQL注入漏洞 | √ | √ | |||
私有文件遍历漏洞 | √ | √ | |||
getDir任意读写 | √ | ||||
通用签名漏洞 | √ | ||||
安全加固风险 | √ | ||||
不安全的反射 | √ | ||||
META-INF目录存在敏感文件信息 | √ | ||||
ContentProvider文件跨域访问 | √ | ||||
Native动态调试 | √ | ||||
固定端口监听风险 | √ | ||||
Zip文件目录遍历漏洞 | √ | ||||
密钥硬编码 | √ | √ | |||
广播信息泄露风险 | √ | √ | |||
Url用户敏感信息泄露 | √ | ||||
Uri用户敏感信息泄露 | √ | ||||
外部URL可控的WebView | √ | ||||
KeyStore风险 | √ | √ | |||
尝试使用root权限 | √ | ||||
Intent敏感数据泄露风险 | √ | √ | |||
运行其他可执行程序风险 | √ | ||||
第三方库检测 | √ | ||||
日志泄露风险 | √ | √ | √ | √ | |
Dex文件动态加载风险 | √ | √ | √ | ||
数据库全局读写漏洞 | √ | √ | |||
WebView File域同源策略绕过 | √ | √ | √ | ||
Fragment注入漏洞 | √ | √ | √ | ||
初始化IVParameterSpec函数出错 | √ | √ | √ | √ | |
PendigIntent误用风险 | √ | √ | √ | ||
用户自定义权限滥用风险 | √ | √ | √ | √ | |
SharedPrefs任意读写 | √ | √ | √ | √ | √ |
源码泄露漏洞(混淆率等) | √ | ||||
App存在隐式意图调用 | √ | √ | √ | ||
加密哈希函数漏洞MD5 | √ | ||||
加密哈希函数漏洞SHA-1 | √ | ||||
证书弱校验 | √ | √ | √ | √ | √ |
主机名弱校验 | √ | √ | √ | √ | |
随机数加密破解漏洞 | √ | √ | √ | √ | √ |
Intent Scheme URL漏洞 | √ | √ | √ | ||
本地拒绝服务 | √ | √ | |||
全局文件可读可写 | √ | √ | √ | √ | √ |
强制类型转换本地拒绝服务漏洞 | √ | √ | |||
AES/DES弱加密 | √ | √ | √ | √ | |
RSA弱加密风险 | √ | √ | |||
调试开关开启风险 | √ | √ | √ | √ | √ |
备份功能开启风险 | √ | √ | √ | √ | √ |
中间人攻击 | √ | √ | √ | √ |
从上表可以看出,五个产品相同的扫描项有9种,其中四个产品相同的扫描项有7种。总的来说,这五个产品基本覆盖了目前Android应用程序可能出现的所有漏洞。
总体覆盖量排名:阿里聚安全(35个)>360(31个)>百度(26个)>金刚(23个)>Apkrisk(20个)
3.3 扫描能力对比
最后我用自己编写的测试APP测试各个扫描平台的扫描能力。这些扫描能力主要分为静态检测能力和动态检测能力。静态检测能力包括检测隐藏dex、过程间分析、正向分析、逆向分析;动态测试主要是指测试拒绝服务漏洞的能力,拒绝服务漏洞又可以划分为:空Intent引起的拒绝服务,强制类型转换引起的拒绝服务以及序列化对象导致的拒绝服务。由于这些检测能力决定了扫描器扫描结果的精度和准度,因此我详细分析了各个扫描平台的扫描能力。
由于内容太长,我将扫描能力和扫描结果单独作为下篇分享出来,敬请关注!
APP漏洞自动化扫描专业评测报告(上篇)的更多相关文章
- APP漏洞自动化扫描专业评测报告
一.前言 目前在业界有很多自动化检测APP安全性的在线扫描平台.为了了解目前国内移动APP在线漏洞扫描平台的发展情况,我进行了一次移动安全扫描平台的评测分析:主要从漏洞项对比.扫描能力对比以及扫描结果 ...
- APP漏洞自动化扫描专业评测报告(中篇)
前言 上一篇中通过对阿里聚安全[1].360App漏洞扫描[2].腾讯金刚审计系统[3].百度移动云测试中心[4]以及AppRisk Scanner[5] 在收费情况.样本测试后的扫描时间对比和漏洞项 ...
- APP漏洞自动化扫描专业评测报告(下篇)
上篇.中篇回顾:通过收费情况.样本测试后的扫描时间.漏洞项对比以及扫描能力这几个方面对阿里聚安全[1].360App漏洞扫描[2].腾讯金刚审计系统[3].百度移动云测试中心[4]以及AppRisk ...
- 移动APP漏洞自动化检测平台建设
移动APP漏洞自动化检测平台建设 前言:本文是<移动APP客户端安全笔记>系列原创文章中的第一篇,主要讲的是企业移动APP自动化漏洞检测平台建设,移动APP漏洞检测发展史与前沿技术,A ...
- 安全基线自动化扫描、生成报告、加固的实现(以Tomcat为例)
一.背景说明 当前在服务上线前,安全部门都会对服务基线配置进行把关,整个流程可以分为扫描.生成报告.修复三步. 在执行这一流程时当前普遍的做法是半自动化的,扫描和生成报告是自动化的,执行扫描.执行生成 ...
- 国内APP漏洞扫描收费情况调查
概述 上一次分享了应用加固的评测后,很多人想看看漏洞扫描相关的对比数据.其实在选择市面上这些移动安全类的产品时,经常为各种复杂的数据而感到疑惑,不知道怎么来评判各自的性能以及价格,从而选择出一款性价比 ...
- APP漏洞扫描器之本地拒绝服务检测详解
APP漏洞扫描器之本地拒绝服务检测详解 阿里聚安全的Android应用漏洞扫描器有一个检测项是本地拒绝服务漏洞的检测,采用的是静态分析加动态模糊测试的方法来检测,检测结果准确全面.本文将讲一下应用漏洞 ...
- APP漏洞扫描用地址空间随机化
APP漏洞扫描用地址空间随机化 前言 我们在前文<APP漏洞扫描器之本地拒绝服务检测详解>了解到阿里聚安全漏洞扫描器有一项静态分析加动态模糊测试的方法来检测的功能,并详细的介绍了它在针对本 ...
- APP漏洞扫描用地址空间随机化【转】
转自:http://www.cnblogs.com/alisecurity/p/6141575.html 前言 我们在前文<APP漏洞扫描器之本地拒绝服务检测详解>了解到阿里聚安全漏洞扫描 ...
随机推荐
- SyntaxError: EOL while scanning string literal的解决
2281 python中字符串的最后一个字符是斜杠会导致出错:SyntaxError: EOL while scanning string literal [背景] Python 2.7.2 中想要通 ...
- Spring Cloud (1) 服务的注册与发现(Eureka)
Spring Cloud简介 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全 ...
- Unity引擎GUI之Slider和Scrollbar
Slider(滑动条):是一个主要用于形象的拖动以改变目标值的控件,他的最恰当应用是用来改变一个数值,最大值和最小值自定义,拖动滑块可在此之间改变,例如改变声音大小. Scrollbar(滚动条):是 ...
- ★Java-----记事本编译、运行时注意事项
1.文件名需要与源代码中公共类的名字相同,即class后面的名字: 2.Java中严格区分大小写: 3.记事本编辑好之后保存文件后缀必须是". java": 4.运行cmd,dos ...
- 【备份工具】mydumper
Mydumper主要特性:是一个针对MySQL的高性能多线程备份和恢复工具,开发人员主要来自MySQL,Facebook,SkySQL公司. 特性: 1:轻量级C语言写的 2:执行速度比mysqldu ...
- C# FormClosing FormClosed 区别详解
FormClosing事件 在窗体关闭时,FormClosing事件发生.此事件会得到处理.从而释放与窗体相关的所有资源. 如果取消此事件,则窗体仍然保持打开状态. 当窗体显示为模式对话框时,单击“关 ...
- 推荐系统入门:作为Rank系统的推荐系统(协同过滤)
知乎:如何学习推荐系统? 知乎:协同过滤和基于内容的推荐有什么区别? 案例:推荐系统实战? 数据准备:实现推荐栏位:重构接口:后续优化. 简书:实现实时推荐系统的三种方式?基于聚类和协同过滤:基于S ...
- PythonOpenCV:MLP用于最近邻搜索
一:简单C++版本的链接: http://blog.csdn.net/kaka20080622/article/details/9039749 OpenCV的ml模块实现了人工神经网络(Artific ...
- pyqt5 做的小程序,可以用来UI做个小demo
#!/usr/bin/python3# -*- coding: utf-8 -*- """ZetCode PyQt5 tutorial This program crea ...
- android全屏下的输入框未跟随软键盘弹起问题
最近开发中遇到,全屏模式下输入框在底部不会跟随软键盘弹起.于是网上搜索了解决的方案.大致找到了两种方案. 第一种 定义好此类 public class SoftKeyBoardListener { p ...