前言据外媒报道,美国媒体机构Zenith发布的最新研究报告预测,在2018年,全球智能手机用户数量将会继续增长。其中,中国智能手机用户数量将位居全球第一,达到13亿,届时将人手一部智能手机。而移动市场份额中,谷歌的Android和苹果的苹果iOS两个操作系统占据了市场份额的98%左右,而其中Android系统的智能设备由于其较高的性价比占据了绝大部分的市场份额。 由此可见,智能终端设备已经占据了人们生活的方方面面。日常生活中,几乎每个人都会接触到智能设备,包括手机、平板、智能手表、智能电视机等,其中又以Android系统为主。 移动端使用的开发涉及到许多第三方SDK,而第三方SDK的安全性很难保证。移动端使用的开发为节约成本、快速成型,一般都会运用多种第三方的SDK,包括支付、统计、广告、社交、推送、地图类的第三方SDK。下图所示为经360显危镜后台查询的几款常用SDK运用情况统计数据,从图中可以看出运用了该SDK开发的APP非常多。 第三方SDK安全威胁近两年已被爆出有安全漏洞的第三方SDK主要有FFmpeg、SQLite、pdfium、个信sdk、chrome内核等,且由于其被广泛运用到大量的APP中,造成漏洞的影响范围非常大。 FFmpeg漏洞概况 FFmpeg的是一款全球领先的多媒体框架,支持解码、编码、转码、复用、解复用、流媒体、过滤器和播放几乎任何格式的多媒体文件。 2017年6月,neex向Hackerone平台提交了俄罗斯最大社交网站VK.com的ffmpeg的远程任意文件读取漏洞。该漏洞利用了FFmpeg可以处理HLS播放列表的特点,而播放列表(Playlist)中可以引用外部文件。通过在播放列表中添加本地任意文件的引用,并将该文件上传到视频网站,可以触发本地文件读取从来获得服务器文件内容。同时,该漏洞亦可触发SSRF漏洞,造成非常大的危害。 当然,FFmpeg被爆出的漏洞不止上述几种。下图所示为FFmpeg官方的修复记录,从中可以看到每一版本均修复了大量的已分配CVE编号的漏洞,新版本同样会有许多未发掘出的漏洞等待修复。 SQLite是遵守ACID的关系数据库管理系统,实现了大多数SQL标准。它运用动态的、弱类型的SQL语法,包含在一个相对小的C库中。作为一款嵌入式数据库,它因占用的资源非常低,数据处理速度快等优点被Andriod、苹果iOS、WebKit等流行软件采用。 2017年Black大会上来自长亭科技的议题介绍了基于Memory Corruption的SQLite漏洞。基于该漏洞,可以攻击常见的运用了SQLite的浏览器,包括Safari、Chrome、Opera等。同时,由于大部分使用本地数据库的储存几乎都采用了SQLite实现,这些使用同样受到该漏洞的影响。基于该漏洞可以造成大范围的用户信息泄露,包括用户在浏览器中填写的用户名、密码、身份证、银行卡等敏感信息。另外,基于该漏洞可以实现远程代码执行,从而控制用户终端设备,危害是非常大的。 当然,SQLite的漏洞并不仅限于这几个。随着版本更新,在功能升级的过程中,每一版本均会被爆出大量的不一样级别的漏洞。每一版本均会在上一版本基础上修改一些bug和漏洞,并可能会添加新的功能。由于精力有限,无法保证对每一行代码都经过安全审核,新发布的版本中很可能存在未被发现的漏洞。在现有技术体系下,产品漏洞挖掘的过程将会是长期存在的状况。 Chromium威胁分析 Chromium是一个由Google主导开发的网页浏览器,以BSD许可证等多重自由版权发行并开放源代码。Chromium是Google的Chrome浏览器背后的引擎,其目的是为了创建一个安全、稳定和快速的通用浏览器。 现在,有许多浏览器是基于Chromium开发的,且提供了Win、macOS和Android版本的浏览器。国内的主流浏览器均采用了Chromium内核,包括360浏览器、猎豹浏览器、遨游浏览器等。由于终端用户对浏览器均会有硬性需要,PC和移动设备中均会安装各种各样的浏览器,总有一款是基于Chrome内核的。 虽然Chrome是Google开发和维护的,但是也被爆出许多漏洞,影响了基于相当内核版本的其他浏览器。微软于2017年10月18日公布了一款藏匿于Google Chrome的浏览器安全漏洞,编号为CVE-2017-5121。该问题是由V8 JavaScript引擎引起的,通过引起使用崩溃导致攻击者可以在内存地址中放置任意的数据。通过精心构造的攻击,该漏洞可以达到远程代码执行(RCE),影响几乎所有基于Chrome内核的浏览器。Google已于今年9月份中旬在Chrome 61版本修复了相关漏洞。 每年Chrome浏览器都会被爆出许多安全漏洞。如下图所示,每年Chrome均会被爆出大量的多种类型的安全漏洞,影响几乎所有Chrome内核的浏览器。此外,由于漏洞报给Google修复,其他基于Chrome内核的浏览器修复该漏洞需要较长的周期,漏洞的危害还是存在的。同时,其他厂商的浏览器很难跟上Chrome内核的更新速度,以至于很多浏览器还是很久之前的旧版本内核,导致该版本还受以往历史漏洞的影响。 Android系统安全趋势Android是一种基于Linux的自由及开放源代码的操作系统,由Google公司和开放手机联盟领导及开发,主要规划用于触控荧幕移动设备如智能手机和平板电脑。现在,Android系统已经成为现今最流行的智能设备操作系统。 Android系统中,也运用了大量的第三方SDK组件用于其系统底层的基础服务功能,例如蓝牙协议栈实现、HTTPS协议实现、音视频编解码等。然而,Google运用的这些第三方组件也时常会被爆出有高危漏洞,且鉴于Android系统的广泛流行性,影响也是巨大的。下图所示内容为统计的2017年1月份至11月份Android系统中修复的第三方组件中的漏洞数量情况。从图中可以看出,第三方组件的安全性严重威胁到了Android系统的安全性。 总结在软件开发过程中,大量复用第三方SDK加速产品成型成为普遍现状,而第三方SDK的安全漏洞也将影响这些产品。如FFmpeg、SQLite、Chromium、PDFium等开源库,均在安全漏洞的挖掘上投入了非常多的精力,尚且会被爆出许多高危漏洞影响巨大。也有许多优秀的开源产品,重点将精力投入到功能的开发与完善上,而未经过任何的安全审核。这些开源产品中,代码中很难避免地留有大量的安全漏洞,一旦被恶意攻击者利用将对用户造成巨大损失。 现在,国内存在许多提供给第三方用于快速接入的SDK库,然而其安全现状却令人堪忧。绝大部分第三方SDK均缺乏安全审核环节,造成代码中总是有较多的安全漏洞,影响接入该SDK的使用的安全性。对于缺乏安全审核能力的厂商,我们推荐运用360显危镜对Android使用进行线上漏洞扫描,扫描结果报告中将列出风险点供厂商评估修复。同时,针对Android使用中存在较多漏洞,且修复难度较大的问题,360Vulpecker在业内首创了安全SDK。在使用发布时接入该SDK,基于运行时修复技术可以在使用中修复绝大多数常见的通用型漏洞,致力于为缺乏Android使用漏洞修复能力的厂商提供简单通用的漏洞处理方案,使其不再受到常规漏洞的侵扰。现在,该安全SDK尚处于内测阶段,稍后会对外公开。 |
发表评论