移动 APP 风险现状|学习笔记

简介: 快速学习移动 APP 风险现状

开发者学堂课程【互联网安全-移动APP漏洞风险与解决方案:移动 APP 风险状】与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/357/detail/4192


移动 APP 风险现状


内容介绍:

一、常见风险现状

二、常见漏洞


一、常见风险现状

1、侵犯开发者合法权益与收入

举例

image.png

类似图片的案例,我们曾遇到过一个游戏客户。之前客户反馈开发半年的游戏上线了之后,基本前两天在应用市场可以达到前三的位置,但是从第三天游戏排名达到应用市场前十的时候,就会出现与本游戏相似的其他游戏。

这些游戏除了签名、账户流程、账户注册、消费、广告系统不一样,但是游戏名字、游戏的系统逻辑玩法,分数排名是一模一样。当这个游戏在应用市场排名达到了前十名时,不久后,该游戏在各大应用市场纷纷上线,排名也由之前的前十逐步上升到前三。

这些盗版公司基本上将大部分的资源直接花费在了运营和推广上,借助正版游戏厂家的力量占据市场,获取收益,所以导致正版游戏厂家被挤压,收益减少,所投入的开发成本直接流失。

2、通过恶意广告插件骚扰用户、影响产品体验

当我们去应用商店去搜索较为热门的APP或者关键词时,应用市场就会推荐很多相似的应用软件。但是,区别性比较大的软件一打开可能就是一个广告,并且不断地向手机发送广告。而此应用生产者仅是利用此方法获取不当收益。

3、窃取用户隐私,如短信、电话、通讯录等

有些商家采取短期收益或是大量小收益行为。例如,在APP中插播恶意广告、插件或者是推广一些新的APP,进而诱导用户下载并通过申请包括短信、通讯录等手机权限,获取用户个人信息等。

而这个情况也会最大程度影响用户期待和出现市场量被破解和盗版问题的出现;

4、通过钓鱼盗取用户银行账户密码等

几乎相似的软件,例如银行证券类等相关软件,用户直接下载打开后填写信息后,基本上一天的时间,该用户就会出现账户进账户里的信息被盗走的情况。


二、常见漏洞

1、APP漏洞基本上是从APP应用诞生开始就会存在,不论是移动端的还是说我们传统模式的。

任何一个应用程序都会存在漏洞。由图可视,网上都可以搜得到类似漏洞,但我们所关注的敏感信息就先做了一些隐藏。而这些漏洞其实基本上是由人工审计上报列出来的。但仍然存在许多非常传统的漏洞,例如:本地数据库是否注入;敏感信息的存储传输,若加密,用户可能只采用了简单的MD5或者BASE64直接编码。

再由图可视,列举出来的大部分漏洞都是与业务逻辑所相关,例如:重置密码漏洞和一些算法破解。当算法被破解时,整个链路的请求协议都将会被伪造出来。

image.png

2、认证缺陷问题

很多用户身份和敏感信息可以被批量泄露。该漏洞被分为两类:

一类是当用户在端上受到影响,可能是因为端上用户或者另外一面用户的聊天软件里被插入了一段 JS 具有一定恶意的代码,进而引导用户下载东西或者执行手机上一些命令。

另一类可能涉及服务端。服务端处显示,用户的服务接口会对应所有用户。如果接口权限不够严谨,或者部分人员冒用权限去访问其他用户服务端信息,那这可能会导致该平台用户信息的泄露。

3、系统问题

APP依赖的漏洞库或者组件库,包括设备、使用者是否为本人等,用户是完全不知道应用端是在哪里运行,由谁运行。虽然APP或者代码由开发者开发、打包以及投放市场等。但是应用端出去了,用户就应该提高警惕心。

例如:

安卓系统漏洞,仅凭文字消息可入侵这样的标题,是因为安卓本身具有一个 stage fight 媒体库。只要应用需要用到这种媒体功能,基本上都是调用的应用。调用操作系统本身涉及到底层库。如果底层库存在问题,那基本上该应用就会存在直接漏洞。

当他人给用户直接发送信息,当应用在调用库的时候直接渲染,而这会直接导致用户应用信息被窃取,或者说就被利用执行命令。

4、病毒问题

除移动端之外,还包括 ISO 之前出现 XCodeGhost 的一个风险,应用感染病毒之后,病毒会不断给用户预装应用,还会发送很多短信;更加严重的是病毒可能会采集用户所有信息,“帮助”用户发送短信。例如,应用“帮助”用户重置密码时,该密码可能会被用户拿去从事银行或者手机号运营,在这个过程中,密码都可能直接被病毒劫走。

之前也出现过类似的案例。除了安卓系统本身也可能会有锁屏密码这个问题之外,ISO 之前也出过好几次问题。但是 IOS 不同于安卓的一点就是它的系统碎片化没有那么严重。

系统严重碎片化直接产生影响,以下将举例说明:

WebView 也曾出现代码执行漏洞,主要影响就是安卓4.2,即API 16以及以下的版本才会有 View 远程命令执行,因为 WebView 本身就是系统的最高权限,当用户的应用去访问网页的时候,只有第二工厂租赁,那么当应用执行了 JS 的话,就直接拥有最高权限,此时 JS 可以做任何操作。

image.png

但为什么现在仍有很多应用检查后发现还是会有这种情况呢?因为很多业务发现终端用户系统碎片化非常严重。虽然很多用户已经聚集在新版本,但是仍有不少用户可能还聚集在安卓4.0以下版本,并且因为考虑到业务兼容性,所以舍弃了这一方面的漏洞。所以,APP仍然存在漏洞情况。

甚至存在很多的安卓原生饥饿,因为用户购买的手机基本上是生产厂家对系统进行一次包装后的。当用户需要对手机系统进行升级,那么在用户查到相关漏洞再返还给生产厂家修复,但由于部分厂家不会做重点维护,安卓手机一些机型永远无法去修复,所以手机无法进行升级。

再者,除了阿里聚安全本身对所有应用做扫描或做统计的数据外,还包括国外一些统计机构做的一些分析数据。例如,像这里提到的97%的安卓应用都会存在安全漏洞,平均每个漏洞应用都会有87个,23%次高风险漏洞。

可能数据会让大家产生恐惧感,但是实际上为什么很多应用会存在漏洞?原因有两点:

①部分厂家无法针对部分用户进行系统修复。

②很多开发者忽视和低估了APP被人利用的可能性。

例如:本业之前曾有过一些应用本身在手机打开了一个端口,当这个端口用来和定位做通信时,网络就可以通过端口访问本业界的应用,获取定位,之后该应用即会推送附近的美食和娱乐场所等。但是当整个过程被有意利用时,本业界手机信息即会出现信息泄露等风险。


三、总结

主要有两类的风险点可被拿来做利用:一类是技术上,一类就是业务上。

1、技术风险

可被概括为三类:代码,数据,环境。

(1)代码问题。例如前面提到的防爆冲,打包,破解,其实就涉及到代码。很多的开发者会将很多的整个代码,逻辑,甚至是整个协商的密钥管理方式都全部写在代码里面,而这里面可能会涉及到该代码如何可以防止被他人逆向,不被别人调试,甚至是该应用发布后,不被别人拿去重打包,插入广告以及开发者如何识别进而停止运行的安全问题。

(2)数据问题。主要为:数据存储;数据验证;数据重放;

存储主要一方面看存放的位置,是否存在一个非公共区域。存储是否为铭文,加密是否足够强。另外一方面就是数据在传输上是否做好,在公共 WiFi 的情况下是否被别人劫持或者是中间篡改你的数据包等等。

例如,在线医疗APP,正常用户去使用时,不论是上传病例,还是询问医生等信息存储,该APP在使用时被认为是正常的。当该页面接口直接抓包,那么就可以看到用户的私人信息。其次,这个数据是否有做一个验证,因为从端上发到服务器的数据有可能是做伪造的。这个数据就是前面提到一个厌搴胡家签的情况。再者,数据是否有被重放。当用户发送短信验证码时,是否出现重放两次的情况,导致这两个15分钟之内都有效的验证码,同时都可以拿来注册或者是改密码。

(3)环境问题。系统本身在不同的系统特性下,可能就会有一些不同的类型。IOS 可能本身会排除一些传统较为常见以及存储等的情况。另外是否存在开地址随机化,内存是否随机分配,是否可以被别人直接截取到这一段内存来窃取信息。安卓本身就可能会看到更多的信息。包括安卓的四大组件,它的耗时与性本,还有一些RTVT。安卓系统一些消息通道本身是否有问题,是否对外开放一些不该开放的组件。

再者还有一些是权限本身。该应用是否过多或者是申请不需要用到的权限,会被别人利用,之后就是本地是否开端口,如果开了端口,该端口是否有做验证?它接收的数据,是用白名单还是用黑名单的方式来做过滤。

2、业务风险

业务风险最常见的就是逻辑漏洞,并且很多都是一些逻辑绕过的问题,其次是否有做一些逻辑的校验。

例如,用户需要设置手机密码,或者输入页面手势密码,才能到下一个页面。但是有可能别人只需要去对手拿到手机或者是直接对手机发送一串命令,用户就绕过这个输入手机密码的校验,直接到下一个页面。这也算是一种在系统本身在对不可信的环境下去被人利用的一个问题。

之后是逻辑漏洞,最主要是逻辑效果的问题。主要是体现在。用户要去达到具体的什么目的时候,逻辑是分点有条理的。但是否存在由一直接到三的情况,跳过了中间应有步骤。

最后就是策略上的问题。该策略不仅只是从风控维度,而且还包括本身其他很多的一些简单的策略。例如,密码策略是否为纯数字;纯字母是否可以被不断尝试;手势密码发的点是否必须连接四个点以上的可能性;密码输入有否可以被复制;整个页面可否防止截屏等,这种都是在简单的在端上可以去考虑到做策略。

相关文章
|
7月前
|
安全
第二轮学习笔记:三、APP抓包
第二轮学习笔记:三、APP抓包
62 0
|
4月前
|
安全 Java 应用服务中间件
【Azure 应用服务】App Service 默认页面暴露Tomcat版本信息,存在安全风险
【Azure 应用服务】App Service 默认页面暴露Tomcat版本信息,存在安全风险
|
2月前
|
XML 前端开发 JavaScript
react学习笔记一:入门级小白到脚手架(create-react-app)开发项目
这篇文章是React的学习笔记,覆盖了从React的基础用法到高级特性,包括组件化、状态管理、生命周期、虚拟DOM等主题,适合React初学者参考。
111 0
react学习笔记一:入门级小白到脚手架(create-react-app)开发项目
|
SQL 安全 网络安全
|
SQL 存储 监控
解析汽车APP面临的18种攻击风险
一文解析汽车APP面临的攻击风险
137 0
|
安全
第二轮学习笔记:三、APP抓包
第二轮学习笔记:三、APP抓包
106 0
第二轮学习笔记:三、APP抓包
|
前端开发
React学习笔记(六) Create React App
React学习笔记(六) Create React App
119 0
|
持续交付
|
iOS开发
《移动 App 性能监测实践(iOS篇)》电子版地址
移动 App 性能监测实践(iOS篇)
153 0
《移动 App 性能监测实践(iOS篇)》电子版地址

热门文章

最新文章