分享

因错误配置第三方服务,已有过亿用户数据遭到泄露

 板桥胡同37号 2021-05-29

图片

基于现代云环境的解决方案已然成为移动应用开发领域的客观标准。只需单击操作,开发者就能将云端存储、实时数据库、通知管理、分析等服务全面接入应用程序。然而,对于这些云服务自身的安全性、配置及具体情况,开发人员们似乎不甚了然。

本次研究主要从配置及实施的角度介绍云服务滥用引发的广泛隐患,并阐述“错误实践”可能给应用开发者及用户造成的实际影响。

1概述

Check Point Research (CPR) 最近发现,过去几个月来不少应用程序开发者将应用数据与用户数据置于危险境地。由于在向应用程序内配置与集成第三方云服务时未能遵循最佳实践,已经有无数用户的个人数据意外泄露。在某些情况下,甚至开发者自己的数据也极易受到影响。总之,错误配置已经令用户的个人数据及开发者的内部资源(包括更新机制与存储系统)面临严峻风险。

在本项研究中,CPR 将向大家简要介绍滥用实时数据库、通知管理器以及存储系统的行为如何令过亿用户的个人数据(电子邮件、密码、姓名等)暴露于网上,又怎样令企业资源陷入攻击者的瞄准范围。

2错误配置实时数据库

实时数据库允许应用程序开发者将数据存储在云端,并确保将数据实时同步至接入的每一个客户端处。这类服务解决了应用程序开发中最常见的一大难题,即保证所有客户端平台均由同一套数据库提供支持。但如果应用程序开发者未能对实时数据库进行正确的身份验证配置,结果又会如何?

事实上,这类错误配置在实时数据库中屡见不鲜。更令我们惊讶的是,此问题影响范围极广并涉及到数百万用户。在尝试访问相关数据之后,研究人员发现自己的未授权访问行为居然一路畅通无阻。

图片图片图片

图一:Google Play 上使用全开放式实时数据库的部分应用 

在调查这些公开数据库中的内容时,我们提取到大量敏感信息,包括用户身份、电子邮件地址、密码、私人聊天以及设备位置等等。一旦攻击者访问到这些数据,极有可能引发服务撞库(即使用相同的用户名及密码组合尝试登录其他服务)、欺诈与身份盗用。

图片

图二:Logo Maker 上的用户邮件、密码、用户名及 ID

Astro Guru 是一款颇具人气的占星、星座与手相测试应用,目前下载量已经超过 1000 万。用户只需要输入个人信息(包括姓名、出生日期、性别、居住地、电子邮件及付款信息),Astro Guru 就能为您生成个人占星术及星座预测报告。但它的实时数据库也处于开放状态,这么多敏感数据一股脑外泄,想想就觉得刺激……

图片

图三:Astro Guru 上共享的用户位置、电子邮件与个人文件 

除了个人信息之后,实时数据也未能逃过类似的命运。目前搭载有 5 万多台出租车上的 T’Leva 应用同样开放了后端实时数据库,我们借此访问到驾驶员与科员间的聊天消息,并成功检索到了用户全名、电话号码及所在位置(目的地与出发地)——只消发送一条请求即可获取,就这么简单。

图片

图四:TLeva 上出租车司机与乘客间的私人聊天内容 

如前所述,这类数据一旦公开将对开发者及用户造成巨大影响。从开发者的角度出发,参考平台上的这些可用数据甚至能够引导应用程序的行为模式。此外,我们发现大多数应用程序都具备“读取”与“写入”权限,单此一项就足以给数据库内容乃至开发商声誉造成巨大打击。

3推送通知

推送通知管理器是移动领域使用范围最广的服务之一。开发者需要经由推送通知才能与用户展开互动。例如,我们可以通过推送通知标记新的可用内容(例如发布新视频)、显示聊天消息、提示新邮件等等。大多数推送通知服务需要一个或多个密钥以标识请求提交者的身份。那么如果把这些密钥嵌入到应用程序本体之内,结果会如何?

图片

图五:将推送通知服务凭证嵌入应用程序本体 

虽然推送通知服务中的数据往往不太敏感,但恶意攻击者仍然对夺取这种通知能力抱有兴趣。想象一下,如果新闻发布应用向用户推送了伪造的通知内容,将他们定向至某个伪造页面,并提示用户续订订阅服务……因为通知来自官方应用,用户们绝对不会有任何怀疑,麻烦也将由此开始。

4云存储

移动应用配合云存储带来了一套优雅便捷的解决方案,极大降低了开发者或已安装应用的共享文件访问门槛。以我们在 Google Play 找到的两款应用为例:首先是下载次数超过 1000 万的 Screen Recorder 录屏应用,它会将录制好的内容存储在云服务内。虽然通过云端访问屏幕录像非常方便,但如果开发者将访问密钥嵌入到存储这些录像的同一服务之内,则很可能造成严重后果。通过快速分析应用程序文件,我们成功恢复了访问密钥,从而掌握了读取各条存储记录的权限。

第二款应用名为 iFax,它不仅把云存储密钥嵌入到应用程序本体,还保存了所有传真传输内容。在分析应用程序之后,我们发现攻击者能够一口气访问到使用这款应用的 50 多万用户曾经发送过的全部文档。

图片

图六:Google Play 上的应用未能妥善保护云存储密钥 

出于道德考量,我们没有使用密钥访问这些存储账户。相反,我们只是通过应用程序内的实际代码收集到相关证据,用以证明这类敏感信息正处于风险威胁之下。

5极力掩盖

不少开发者自己也清楚把云存储密钥放在应用程序里不是什么好办法。在分析了几十个案例后,我们发现有些人宁愿花心思搞“看不见就是没问题”那套鸵鸟哲学。是的,某些开发者是真的认为客户发现不了的问题,也就不是问题。

6把密钥藏起来

下面来看几个滥用云服务密钥的示例。在使用 Jdax 等开源工具检查了公开发布的应用程序之后,我们整理出了部分开发者在应用程序代码中体现出的设计逻辑。

在以下示例中,开发者使用 Base64 编码来隐藏密钥。问题是 Base64 不仅可逆,而且不需要任何共享 secret。我们只要使用相同代码行并输出解码函数的结果,就能轻松还原应用程序中的密钥。

图片

图七:iFax 应用上传的文档 

图片

图八:Screen Recording 上传的视频 

即使应用程序中不使用明文密钥,我们只要找到负责初始化云服务接口的代码片段,即可从其参数的值中获取密钥内容。总而言之,只要开发者把密钥嵌入到应用程序之内,我们总能把它提取出来。

图片

图九:变量存储密钥“b.a”与“b.c

图片

图十:使用 XOR 初始化 secret 密钥 

7恶意移动软件

没错,某些开发者会故意在移动软件当中引入恶意软件。下面来看之前报告过的 CopyCat 恶意软件。

CopyCat 恶意软件在对 XOR 进行编码的同时,会将云服务凭证存储在类文件之内。通过对这款恶意应用的快速分析,我们不仅能够获得 CopyCat 所使用的云存储密钥,甚至还能修改所有存储数据。这里存储的不仅有恶意软件中的部分关键组件——例如 CopyCat 需要下载的恶意载荷托管服务——还包括恶意软件中的更新组件。

图片

图十一:CopyCat 的云存储密钥解码结果 

原文链接:

https://research./2021/mobile-app-developers-misconfiguration-of-third-party-services-leave-personal-data-of-over-100-million-exposed/


你也「在看」吗?👇

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多