首页
社区
课程
招聘
2017安卓应用第三方SDK威胁概况
发表于: 2017-11-21 17:05 5448

2017安卓应用第三方SDK威胁概况

2017-11-21 17:05
5448

据外媒报道,美国媒体机构Zenith发布的最新研究报告预测,在2018年,全球智能手机用户数量将会继续增长。其中,中国智能手机用户数量将位居全球第一,达到13亿,届时将人手一部智能手机。而移动市场份额中,谷歌的Android和苹果的iOS两个操作系统占据了市场份额的98%左右,而其中Android系统的智能设备由于其较高的性价比占据了绝大部分的市场份额。

由此可见,智能终端设备已经占据了人们生活的方方面面。日常生活中,几乎每个人都会接触到智能设备,包括手机、平板、智能手表、智能电视等,其中又以Android系统为主。

       移动端应用的开发涉及到许多第三方SDK,而第三方SDK的安全性很难保证。移动端应用的开发为节约成本、快速成型,一般都会使用多种第三方的SDK,包括支付、统计、广告、社交、推送、地图类的第三方SDK。下图所示为经360显危镜后台查询的几款常用SDK使用情况统计数据,从图中可以看出使用了该SDK开发的APP非常多。


图1

而第三方的SDK开发侧重于功能性的完善,在安全性方面的投入较少,导致了今年来由第三方SDK引起的安全事件频发。

       近两年已被爆出有安全漏洞的第三方SDK主要有FFmpeg、SQLite、pdfium、个信sdk、chrome内核等,且由于其被广泛使用到大量的APP中,造成漏洞的影响范围非常大。

FFmpeg的是一款全球领先的多媒体框架,支持解码、编码、转码、复用、解复用、流媒体、过滤器和播放几乎任何格式的多媒体文件。

2017年6月,neex向Hackerone平台提交了俄罗斯最大社交网站VK.com的ffmpeg的远程任意文件读取漏洞。该漏洞利用了FFmpeg可以处理HLS播放列表的特性,而播放列表(Playlist)中可以引用外部文件。通过在播放列表中添加本地任意文件的引用,并将该文件上传到视频网站,可以触发本地文件读取从来获得服务器文件内容。同时,该漏洞亦可触发SSRF漏洞,造成非常大的危害。


图2

       此外,360GearTeam发现的编号CVE-2016-6671漏洞,FFmpeg在对SWF文件解码时,在计算解码后数据大小时可导致写入数据超过申请内存空间的大小,从而造成缓冲区溢出。编号CVE-2016-10190漏洞中发现FFmpeg在处理chunk数据时由于有符号整数到无符号整数类型转换引起的堆缓冲区溢出。

       当然,FFmpeg被爆出的漏洞不止上述几种。下图所示为FFmpeg官方的修复记录,从中可以看到每一版本均修复了大量的已分配CVE编号的漏洞,新版本同样会有许多未发掘出的漏洞等待修复。


图3

       在360显危镜后台根据该第三方库的特征规则搜索查询,在库中40万多个APP中,有月6万多个APP使用了FFmpeg的第三方开源库的代码,如下图所示约占15%。主流的一些视频应用几乎都采用了该开源库用于对多媒体文件的处理。从图中可以看出,该第三方库的使用范围是非常大的,一旦被爆安全漏洞,影响范围将是无法估量的。


图4

SQLite是遵守ACID的关系数据库管理系统,实现了大多数SQL标准。它使用动态的、弱类型的SQL语法,包含在一个相对小的C库中。作为一款嵌入式数据库,它因占用的资源非常低,数据处理速度快等优点被Andriod、iOS、WebKit等流行软件采用。

       2017年Black大会上来自长亭科技的议题介绍了基于Memory Corruption的SQLite漏洞。基于该漏洞,可以攻击常见的使用了SQLite的浏览器,包括Safari、Chrome、Opera等。同时,由于大部分应用本地数据库的存储几乎都采用了SQLite实现,这些应用同样受到该漏洞的影响。基于该漏洞可以造成大范围的用户信息泄露,包括用户在浏览器中填写的用户名、密码、身份证、银行卡等敏感信息。另外,基于该漏洞可以实现远程代码执行,从而控制用户终端设备,危害是非常大的。


图5

       此外,SQLite也有许多影响严重的漏洞常常被爆出。SQLite从3.3.6提供了支持扩展的能力,通过sqlite_load_extension API(或者load_extension SQL语句)开发者可以在不改动SQLite源码的情况下,通过加载动态库来扩展SQLite的能力。然而该功能被黑客利用,通过SQL注入漏洞加载预制的符合SQLite扩展规范的动态库,从而实现了远程代码执行,危害非常严重。

       当然,SQLite的漏洞并不仅限于这几个。随着版本更新,在功能升级的过程中,每一版本均会被爆出大量的不同级别的漏洞。每一版本均会在上一版本基础上修改一些bug和漏洞,并可能会添加新的功能。由于精力有限,无法保证对每一行代码都经过安全审核,新发布的版本中很可能存在未被发现的漏洞。在现有技术体系下,产品漏洞挖掘的过程将会是长期存在的状况。


图6

       在Android应用中,只要有本地存储数据的需求,一般均会采用SQLite数据库存储。因此,一旦SQLite被爆安全漏洞,将影响数以万计的Android应用。同时,在某一Android设备中,一般都会预装许多应用或日常使用中安装了许多需要的应用,而这些应用中总会有一款应用使用了SQLite数据库。因此,SQLite的安全漏洞几乎总会影响的该设备。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (1)
雪    币: 144
活跃值: (38)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
从流氓软件起家,到如今为安卓漏洞挖掘的做的贡献,360目前做的还是不错的。至于流氓行为,是国内大环境的趋势。,百度,腾讯,360,其实都没什么太大的底线。
2017-11-21 22:17
0
游客
登录 | 注册 方可回帖
返回
//