移动 APP 已逐步渗透入我们的生活,据统计,2016年,APP 发行数量仅电商、金融、游戏这三大类共计高达2万左右,国内移动互联网活跃用户数已经突破10亿,移动互联网这样快速的推移,移动互联网的安全问题更为严峻,基于腾讯云乐固和腾讯平台的大数据分析, 整个移动应用开发者所面临的安全问题主要涉及面有终端漏洞威胁,应用重打包威胁,应用仿冒威胁。

本移动 APP 安全行业报告将对金融、电商、游戏三大重灾区行业进行举例分析并配以图表说明,还原移动 APP 安全行业本貌。

金融行业移动 APP安全

现状概述

据统计,2015年金融行业移动 APP 用户约为8亿,2016年用户约增长至10亿。

金融行业移动 APP 受漏洞影响如图所示

高危占比23%:数据传输不安全导致盗取用户钱财损害平台利益。

中危占比40%:用户敏感信息泄露,应用被重打包后加入恶意代码和广告。

低危占比37%:应用崩溃,APP主要逻辑被逆向。

支付安全问题位列金融行业移动 APP 安全问题之首。

安全问题种类繁多,但其究竟是如何给广大 APP 用户造成危害的,我们选取一枚案例共同深入分析。

金融行业移动 APP 所遇到的安全问题

1、客户端与服务器传输安全

中间人攻击原理:中间人攻击主要发生在客户端与服务器通信过程中,黑客利用网络协议的漏洞,进行数据监听数据窃取以及数据篡改等违法行为。

正常通信过程如下所示 :

在android的https协议中,若自定义的X509TrustManager不校验证书或实现的自定义HostnameVerifier不校验域名接受任意域名,就会触发中间人攻击漏洞。

非正常通信过程如下图所示:

腾讯云乐固团队分析发现大部分银行和理财类APP,都存在此漏洞。

某银行 APP 反编译代码截图

2、用户输入数据传输安全

用户手机如果 root过,病毒软件就可以通过监听系统键盘或第三方输入法等方式来获取用户输入的信息,并转发到不法分子手中。

著名漏洞平台上曾经曝光过著名输入法的输入漏洞。

某电商 APP 键盘记录漏洞

3、本地数据安全

安卓 Shared Preferences 本地存储方式是开发者常用的存储本地信息的方式,但在 root 过的手机上,黑客可以轻松查阅这些明文保存的信息。

而 android 自带的 SQLite 数据库,也是以明文的形式存储在本地文件中的。黑客同样可以在 root 过的手机中查看这些信息。

那么,如何应对这些安全隐患呢?

1、安全支付解决方案

采用高强度的加密键盘,严格的双认证传输通道,从输入层到传输层保护了每一笔交易每一次数据传输的安全。

2、本地安全存储方案

对本地文件进行加密保护。防止本地文件被窃取盗用的风险。

3、高级 APP 安全防护方案

能在 APP 代码层面进行加密加花,可防破解,防盗版,防注入,防调试等。

4、安全身份认证体系

专为金融客户量身打造,包括人脸核身,短信认证等多重方案。可帮助金融客户在身份认证这一层打击不法分子。

电商行业移动 APP安全

现状概述

2016年移动电商APP总用户数量约6.3亿,其中约2.7亿用户遭受过不同程度安全问题,占比约43%。

电商行业移动 APP 受漏洞影响如图所示

高危占比14%:数据传输不安全导致用户订单泄露、篡改。

中危占比55%:本地数据存储不安全、用户隐私泄露。

低危占比29%:APP 业务逻辑被破解、算法剽窃。

支付安全问题依旧位列电商行业移动 APP 安全问题之首,而被“薅羊毛”问题当属电商行业移动 APP 安全问题的代表。

与传统零售相比,用户网购体验流程区别较大,基本遵循下图所示的网购流程。

每一个环节都可能引致重大的安全问题,电商 APP 也不例外。下面谈谈网购流程中较容易出现安全问题的三个环节:

1、账号注册-登录

电商 APP 的使用流程中,注册-登录过程都可以通过一些自动化工具来完成——批量注册账号、扫号。“羊毛党”们则利用了这一点, 刷取了大量的活动资源。因此,电商APP账号注册-登录系统则是电商平台打击黑产以及薅羊毛的第一道防线。

PS:扫号是指使用扫号器对账号、密码进行批量验证。

2、商品浏览

移动电商行业中,商家通过“平台活动”吸引用户、促进销量。而“羊毛党”则是通过“强占”商家的这种优质资源并转手真正的用户来谋利。损害了商家与用户的双向权益。以下是薅羊毛关系链

3、订单支付

支付系统是电商 APP 必不可少的一个模块,涉及到用户的账户密码、资金安全。用户在 APP 上支付时,数据如果不做有效保护,随时会被不法分子利用。

以下,我们围绕一个例子来分析以下,电商行业的主要安全隐患都有哪些。

案例:

国内著名移动运营商遭黑卡薅羊毛,流量平台一月被抢8.2万G

2016年12月10日至2017年1月6日期间,某运营商的“有奖答题”营销活动被羊毛党疯狂利用,导致活动开始时网页崩溃,活动福利一抢而空。

参考链接:

http://tech.qq.com/a/20161214/003524.htm

上述案例全过程分析

1、薄弱环节:无法鉴别真实用户

爆发这场“薅羊毛”大战的技术原因在于运营商(客户端APP、APP后台)无法有效识别出哪些是真实用户、哪些是羊毛党,也就是缺少图中所示的强大、高效的用户身份鉴别模块。

2、突破关键:手机号验证已经不是门槛

为提高注册用户身份的真实性、过滤出高价值用户以及防止恶意注册、扫号,案例中的运营商使用了短信验证码。为此,如何突破短信验证码就成为薅羊毛的关键一步。如下图手机打码关系链图。

3、“薅羊毛”的产业链:分工有序

整个“薅羊毛”有着完备、成熟的产业体系。羊毛党们经过精心的准备,接下来的攻击和套现就变得简单化、便捷化。羊毛党们利用打码平台和卡商提供的海量手机号以及提供的打码服务在运营商的流量平台上批量注册账号,并用注册到的账号采用自动化的软件参与运行商的“有奖答题”活动。整个薅羊毛关系链暴露出这样的核心问题:单纯依据手机号码来鉴别用户已不足以满足电商 APP 被“薅羊毛”的安全需求。看看黑产在这个方向的专业分工:

如何应对“羊毛党”?——

解决方案

随着互联网的蓬勃发展,网购已经成为居民生活消费不可获取的重要部分。除了移动应用通用安全问题外,电商 APP 在业务安全方面存在的问题较大,腾讯云乐固针对电商 APP 提供了定制的安全解决方案。

1、支付安全解决方案

采用高度定制的安全键盘,严格的双认证传输通道,确保输入数据安全以及输入层到传输层的数据安全,有效防止截屏、输入信息窃取等威胁。

2、应用安全解决方案

乐固安全产品在源码、资源文件、运行时内存、逆向破解等方面对电商 APP 进行全方位保护。

3、业务安全解决方案

在 APP 集成短信验证码安全 SDK,与腾讯云乐固&天御防刷后台配合,有效防止批量注册、扫号以及“薅羊毛”等恶意行为,避免企业被刷带来的巨大经济损失。

总而言之,对抗“羊毛党”,根源上是识别用户是否真实,是否可靠。电商平台需从多维度去鉴别、过滤。

游戏行业移动 APP安全

现状图示

据统计,2016年游戏类移动 APP 款数约2.6万,2015年游戏类移动 APP 款数约1.5万,2016年相比2015年增长约73%。

游戏行业移动 APP 受漏洞影响如图所示:

高危占比29.9%:游戏客户端与服务器数据传输不安全导致游戏数据可篡改、可泄露等;

中危占比29.2%:游戏客户端本地存档数据未加密,导致存档可篡改、隐私泄露;

低危占比40.9%:应用内存在部分逻辑不严谨,导致在某些情况下应用崩溃;

APP 破解问题位列游戏行业移动 APP 安全问题之首。

游戏行业移动 APP 安全问题

1、重打包

如同传统的互联网黑产一样,手机游戏黑产主要目的是获取非法收益,其手法多种多样,主要包括插入恶意代码、插入广告、破解等。

首先,插入恶意代码主要的方法是黑客对下载的游戏安装包进行反编译,在其中加入恶意代码,再将游戏重新打包为安装包,进行二次发布。相对于原始游戏应用,插入恶意代码的游戏应用可以进行恶意扣费、读取用户的隐私数据、破坏用户的设备,极大损害游戏厂商与游戏玩家的利益;

其次,插入广告作为获取收入的最直接方式,经常出现在手机游戏应用中。普通用户可能不知道这些广告中大部分来自于“打包党”的二次插入,“打包党”们通过反编译工具向应用中插入广告代码与相关配置,再在第三方应用市场、论坛发布;

最后,破解作为直接破坏游戏平衡性的最佳方法一直是游戏开发者深恶痛绝的一种安全问题。众所周知,很大一部分游戏的收入来自于游戏中出售的虚拟物品,而黑客可以使用反编译的手段修改游戏逻辑代码绕过付费验证逻辑,达到不付费即可体验游戏收费功能的目的。这不仅损害了游戏厂商的利益,更破坏了整个游戏体系的平衡,对整个游戏运营系统是暴击。

与此同时,部分渠道被重打包的盗版游戏代码内除了游戏本身的逻辑代码外还包含了一些发送短信的恶意代码,相关的模块在原始的正版应用中并不存在,如下图:

游戏行业移动 APP 所遇安全问题

2、外挂

外挂作为破坏游戏平衡性的常规手段对单机游戏与网络游戏均具备较大的破坏力,对于单机游戏来说,外挂可以协助玩家以较低成本完成游戏,破坏游戏本身的平衡性与可玩性;对于网络游戏来说,外挂在破坏游戏平衡性的同时也会增加服务器端的计算压力。也正因为外挂对于游戏的破坏力惊人,外挂通常被游戏开发者、运营商认定为主要安全问题。

腾讯云乐固团队对市场上比较流行的一款消除类游戏进行调查发现,该游戏外挂以辅助工具的名义存在于各大游戏论坛中,其使用方法简单粗暴,并且配以图文教程。其主要手段是提示消除路径、增加道具使用次数、篡改消除单元排列,通过这些“辅助”方法,游戏难度大大降低,游戏平衡性荡然无存。

下图是篡改消除单元排列的效果图:

游戏行业移动 APP 安全问题解决方案

通过上文的分析可以看出,手游行业所存在的安全问题主要包括重打包与外挂两大类,腾讯云乐固推出一套完善的移动游戏安全解决方案。

1、游戏反重打包解决方案

针对手机游戏行业中存在的插入恶意代码、插入广告、破解等问题,乐固制定了高强度的反重打包方案。在游戏开发者完成开发后,乐固对游戏安装包进行反重打包处理,处理后的游戏安装包内的任何代码、资源文件发生改动均无法正常运行游戏。

2、游戏反外挂解决方案

针对市场上出现的外挂进行分类对抗,提高游戏对外挂的免疫力,保护游戏平衡性。

移动 APP 在安全方面存在较多的问题,并且问题分布与应用所在的行业具有密切的关系。比如金融行业的 APP 主要存在的安全问题大都跟数据相关,包括通讯数据安全、本地数据存储安全、运行时数据安全等;电商行业的APP对注册、登录、账户密码安全相关的方面需求更为强烈,包括密码撞库、业务防刷、密码泄漏等;游戏类APP所存在的安全问题根据游戏类型的不同而千差万别,但究其本质主要包括重打包、外挂两大类。

对于APP开发团队来说,在复杂的外部环境中保护团队的开发成果是必要的,应尽可能采取针对行业的专业安全解决方案防范安全问题的出现。

对于APP用户来说,使用盗版应用存在的风险较大,建议从正规的应用市场下载应用。

相关推荐

MySQL成勒索新目标,数据服务基线安全问题迫在眉睫

【黑客解析】黑客是如何实现数据库勒索的?


此文已由作者授权腾讯云技术社区发布,获取更多云计算技术干货,可请前往腾讯云技术社区

欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~

腾讯云安全:移动 APP 安全行业报告的更多相关文章

  1. 【转载】腾讯云安全组如何开放3306端口让Mysql可访问

    Mysql数据库的默认端口号为3306,在服务器安装好Mysql数据库后,如果使用的服务器是阿里云或者腾讯云服务器,如果在后台启用了安全组功能,则需要在安全组中对3306端口的入站规则进行放行,只有在 ...

  2. 腾讯云Centos7.6开放端口及配置腾讯云安全组

    1:防火墙的开启.关闭.状态查询.设置开机自启.开机禁用命令 检查状态(1):firewall-cmd --state 检查状态(2):systemctl status firewalld.servi ...

  3. 腾讯云安全:开发者必看|Android 8.0 新特性及开发指南

    欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 背景介绍 谷歌2017 I/O开发者大会今年将于5月17-19日在美国加州举办.大会将跟往年一样发布最新的 A ...

  4. 高德定位腾讯定位在APP上无法开启定位权限的解决方案

    [备注]公司项目中遇到的问题,如果你在团队工作其中定有不少配合方面的问题,其中的思路是可以借鉴的,因为这也许正是你们现在遇到的问题,总结的不好的地方还请多多指教 因为项目需求的确定,定位成了必不可少的 ...

  5. python + selenium + PhantomJS 获取腾讯应用宝APP评论

    PhantomJS PhantomJS 是一个基于WebKit的服务器端JavaScript API,它无需浏览器的支持即可实现对Web的支持,且原生支持各种Web标准,如DOM 处理.JavaScr ...

  6. 腾讯云安全组,实现服务器外网ip访问网站

    添加访问地ip出入站规则HTTP,并将云主机添加到安全组中.

  7. 个人作业2:APP案例分析--腾讯动漫

    第一部分 调研,评测 个人第一次上手体验 以往看漫画就是在浏览器直接搜索在网页上看,直到用了腾讯动漫APP,我才摒弃这个很low的方法.腾讯动漫直接用qq就可以登陆,有更齐全的漫画分类,更清晰的画质, ...

  8. 你的App为什么上不了TOP10?

     App市场风起云涌.但是,却仅仅有少数几个App能成为"暴发户",很多其它的则沉淀在应用商店中无人问津. 在移动互联网时代.智能手机成为了中心. 手机之所以智能.就在于手机上 ...

  9. Scrapy项目 - 数据简析 - 实现腾讯网站社会招聘信息爬取的爬虫设计

    一.数据分析截图 本例实验,使用Weka 3.7对腾讯招聘官网中网页上所罗列的招聘信息,如:其中的职位名称.链接.职位类别.人数.地点和发布时间等信息进行数据分析,详见如下图:   图1-1 Weka ...

随机推荐

  1. 【机器学习实战】第14章 利用SVD简化数据

    第14章 利用SVD简化数据 SVD 概述 奇异值分解(SVD, Singular Value Decomposition): 提取信息的一种方法,可以把 SVD 看成是从噪声数据中抽取相关特征.从生 ...

  2. 服务器 : Apache Tomcat - 理解架构层次

    文章概览 相信很多接触java的人都对Tom猫有着多少的熟悉,就个人而言,本来只知道Tom简单的操作与配置,就像裹上一层纱,迷迷糊糊的. Tomcat的书籍本来就不多,高分的还是很久之前的版本,直到最 ...

  3. kafka学习笔记1:测试环境搭建

    最近因为架构中引入了kafka,一些之前在代码中通过RPC调用强耦合但是适合异步处理的内容可以用kafka重构一下. 考虑从头学一下kafka了解其特性和使用场景. 环境选择 首先是测试环境的搭建,平 ...

  4. Python手动实现k-means

    import numpy as np import matplotlib.pyplot as plt def kmeans(data, cluster_num, method='mean'): poi ...

  5. hibernate:There is a cycle in the hierarchy! 造成死循环解决办法

    下面是报的异常:在网上搜了关于:There is a cycle in the hierarchy!,才知道原来是因为死循环造成的!解决了好久,没有成功,后台不得已请教老大,老大说是因为在使用JSON ...

  6. PHP strftime()函数输出乱码问题

    直接调用strftime() strftime(time_buf, 80, "%a, %e %b %G %T %z", p_stime);  输出为 Îå, 18 12ÔÂ 201 ...

  7. 如何实现MDI窗体不重复打开同一个子窗体?

    使用MDI窗体时,默认是可以多次打开同一个子窗体的,那么如何控制不重复打开同一个子窗体呢?MDI窗体有个重要属性——MdiChildren,该属性表示MDI窗体打开的子窗体的数组,循环遍历该数组,可以 ...

  8. springboot-mybatis 批量insert

    springboot mybatis 批量insert 操作 直接上代码: 1.首先要在pom.xml中导入包: 略...... 2.springboot mybatis配置: package com ...

  9. Regasm

      程序集注册工具(Regasm.exe) 读取程序集中的元数据,并将所需的项添加到注册表中.注册表允许COM 客户程序以透明方式创建.NET Framework类.类一经注册,任何COM 客户程序都 ...

  10. 2943:小白鼠排队-poj

    2943:小白鼠排队 总时间限制:  1000ms 内存限制:  65536kB 描述 N只小白鼠(1 < N < 100),每只鼠头上戴着一顶有颜色的帽子.现在称出每只白鼠的重量,要求按 ...