V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
redbricks
V2EX  ›  Android

APP 漏洞自动化扫描专业评测报告(上篇)

  •  
  •   redbricks · 2016-08-16 11:40:30 +08:00 · 8771 次点击
    这是一个创建于 3024 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一、前言

    随着 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

    爱加密—— http://www.ijiami.cn/

    梆梆加固—— 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 美元,所以我没有详细分析这两个平台。

    以下简单统计了各个平台的收费情况,如下表:

    2.2 测试样本

    测试样本:

    三、总体能力对比

    3.1 扫描时间对比

    以下列表各个扫描平台扫描时间的对比,金刚只能检测 50M 以内的 APP ,所以没有新浪微博的检测时间,而百度每检测一次收费 9.9 元,而且没有记录扫描时间;受限于时间和经费,没有再次检测 APP 以获取扫描时间,单位:分。

    补充一下,时间的获取是以扫描界面内对应 APP 给出的或者是以收到扫描结束通知为依据的。可以看出,阿里聚安全和 AppRisk 的扫描时间与 APP 的大小成正比,而 360 和金刚没有明显的规律。当用户把 APP 投入阿里聚安全和 AppRisk 中扫描时,可以根据 APP 的大小预测大致的扫描时间;而投入到 360 和金刚时却无法预测大致的扫描时间。

    3.2 漏洞项对比

    360 将许多类型相同的漏洞分成多个具体的漏洞,我将其合并一下(组件导出归为一类,文件读写归为一类, SQL 注入归为一类)。

    以下是具体漏洞个数对比:

    从上表可以看出,五个产品相同的扫描项有 9 种,其中四个产品相同的扫描项有 7 种。总的来说,这五个产品基本覆盖了目前 Android 应用程序可能出现的所有漏洞。

    总体覆盖量排名:阿里聚安全( 35 个)>360 ( 30 个)>百度( 26 个)>金刚( 23 个)>Apkrisk ( 20 个)

    3.3 扫描能力对比

    最后我用自己编写的测试 APP 测试各个扫描平台的扫描能力。这些扫描能力主要分为静态检测能力和动态检测能力。静态检测能力包括检测隐藏 dex 、过程间分析、正向分析、逆向分析;动态测试主要是指测试拒绝服务漏洞的能力,拒绝服务漏洞又可以划分为:空 Intent 引起的拒绝服务,强制类型转换引起的拒绝服务以及序列化对象导致的拒绝服务。由于这些检测能力决定了扫描器扫描结果的精度和准度,因此我详细分析了各个扫描平台的扫描能力。

    由于内容太长,我将扫描能力和扫描结果单独作为下篇分享出来,敬请关注!

    Sunnieli

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3400 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 11:32 · PVG 19:32 · LAX 03:32 · JFK 06:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.