跳到主要内容

平台型应用

定义

混合应用是一种结合原生应用开发和网页应用开发技术的新型移动端应用模式,能够动态加载并快速的版本迭代。由于可以加载外部代码并且原生的 WebView 不具备对加载资源的管理和访问控制能力,混合应用借助 JSBridge 技术将原生的敏感接口暴露给外部,造成了严重的隐私和安全威胁。

随着近两年移动平台服务的进一步演化,开始出现一些混合应用正在主动加载来自第三方实体的网页或代码,可能是SDK,小程序或者是其他服务以获得用户信息或直接利益。来自不同供应商的各种服务将被越来越多的应用程序所整合。这意味着,这些应用程序正在演变成一个平台,其包含许多由不同的商业实体运维的子应用(sub-application),风险与责任也不再限定于应用本身,而是逐渐的扩散开来。通过这种方式,不同实体的嵌入式 App 服务可以很容易地在不需要安装的情况下得到访问机会和个人隐私数据,甚至是代码执行的机会。我们将这类应用程序称作平台型应用(platform application,papp)

隐私泄露

Android 手机作为我们日常的移动设备,其中承载了大量的隐私数据,如:

  • 设备信息: 设备型号、设备 ID、设备 IMEI、Mac地址、设备序列号等
  • 用户信息: 联系人、短信、通话记录、日历、相册等
  • 传感器信息: 加速度传感器、陀螺仪、指南针等
  • 位置信息: GPS、基站、WIFI等

许多应用会从敏感API中获取这些数据,然后将其各种渠道泄露出去,在常规的污点分析中,这些泄露隐私信息的API也就是我们的目标source点;

敏感API

Susi利用机器学习的方法,对Android应用中的 source 点及 sink 点进行了分类,在这里提供了对android-30.jar运行后的结果作为参考

Susi 提供的 sink 点未必考虑了 Webview 和 JSBridge 导致的问题

感兴趣的同学可以寻找最近的相关工作,提供更加精确而全面的敏感API列表