微信、抖音和支付宝的小程序的月活用户总数接近全球最受欢迎的社交网络 Facebook 28.9 亿 MAU
。北京电子科技学院的论文《A SMALL LEAK WILL SINK MANY SHIPS: VULNERABILITIES RELATED TO MINI PROGRAMS PERMISSIONS》 对小程序权限进行研究。系统分析了9个
流行的移动应用生态系统超过 700 万
个小程序,测试了超过 2,580 个 API
,发现6类
潜在安全漏洞,银联、字节、微信、QQ、支付宝、百度、小米、华为纷纷中招,并总结了小程序保护用户隐私的系统性建议。
论文对小程序保护用户隐私的建议:
- 加强主应用、应用厂商和用户的协同,形成个人隐私保护的管理体系的小程序。
- 小程序通过宿主应用上架,
宿主应用应严格控制权限管理
,积极整治涉及用户敏感权限的API,最大程度保护用户隐私。 - 应用厂商需要考虑现有的操作系统如何处理特定的API和结果反馈。 例如,工程师在一段时间后自动清除剪贴板。
- 用户在使用小程序时也需要增强个人信息保护的安全意识,警惕来路不明的小程序,不要将自己的隐私信息快速授权给小程序,以免
被非法收集和泄露,造成不必要的损失
。 - 鼓励用户积极举报违法行为。
论文挖掘的小程序6类潜在安全漏洞(截止2021年)
易受攻击的缓存机制
- 临时⽂件在回收前可以不经⽤⼾同意重复使⽤,存在易受缓存攻击的问题。
微信
⽤⼾关闭使⽤过的⼩程序,再次打开⼩程序进⾏操作时,之前缓存的临时⽂件依然存在。- QQ和字节只要⽤⼾退出⼩程序或者重新打开之前使⽤过的⼩程序,之前的临时⽂件就会⾃动删除。
易受攻击的问题 API
微信、QQ、支付宝
均存在敏感权限相关的API没有很好地封装权限。
易受攻击的权限传输
- 直接打开
⽀付宝
⼩程序中的“⾼德地图”即可精准定位⽤⼾,忽略⼩程序向⽤⼾申请位置权限。 - ⼀些公司可能会在不同的⼩程序之间共享⽤⼾信息。例如,在
微信
中登录“拼多多”⼩程序。 - ⽤⼾⽆法关闭相关⽤⼾信息的授权。⽤⼾⽆法完全控制其个⼈信息的传播范围和使⽤范围,将导致权限不断开放和个⼈信息在不明情况下被使⽤的⻛险。
不安全的权限管理
银联
小程序的权限管理比较混乱。由于银联的安全主要与用户身份信息和支付有关,所以对于麦克风、地理位置、相机、相册等其他敏感权限的考虑并不是很严格。字节
小程序的权限并不能随着小程序的删除而删除。官方文档并没有明确说明对于授权的有效期以及删除小程序后授权是否保持开放。小程序已完成的授权存在安全风险。支付宝
小程序的授权涉及的个人敏感信息(如身份证号)会被个别小程序保留。已取消授权并删除小程序,但一定时间后再次进入小程序时仍可查阅相关信息却不能设置权限,存在安全风险。
不安全的 Webview 组件
一些小程序可以通过 webview 组件来承载网页。网页与小程序的通信是基于各平台为网页开发者提供的宿主应用,通过网页开发包提供的接口实现的。不支持所提供接口之外的任何通信。特别是相册权限,如果用户拍照时手机开启了GPS,那么一旦小程序可以访问到相机和相册,恶意小程序只需要过滤出用户手机拍摄的照片就可以知道其地理位置。
- QQ 和字节均未发现任何涉及危险权限的接口。
- 在 Android 下的
微信
宿主 app 中,可以使用 webview 组件获取用户的存储信息。 支付宝
小程序可绕过标准权限控制,获取用户的相机、相册、位置等敏感权限。百度
下的小程序,在iOS环境下可绕过获取相机权限进行拍照。华为
快应用可绕过获取用户存储的信息(图片、音频、视频、文档等)。
易受攻击的剪贴板机制
iOS 14 升级后,当应用程序读取剪贴板的内容时,会有一个弹出窗口通知用户。无论小程序运行在哪个主机应用程序中,当小程序读取剪贴板时都会有通知。Android 比较复杂,因为有多个版本。
- 小米 MIUI12 独立拆分剪贴板权限,用户可以监控各个应用的读写行为。
华为、vivo
剪贴板的权限控制不会告知用户。