移动云存储服务平台Parse下的iOS安全分析


发布人:admin分类:网络安全浏览量:24发布时间:2017-12-12

Parse:专为移动应用提供后台服务的云平台

Parse是由 YC 孵化出来的、专为移动应用提供后台服务的云计算平台,为开发者包办繁琐的后台服务,让开发者只需专注于具体的开发工作。它提供任意数据保存、照片或其它文件存储、发送推送通知、创建用户帐号、使用地理位置数据、添加 Facebook/Twitter 帐号登陆等等服务。

Parse向移动端开发者提供了许多实用的功能,比如云数据存储,推送通知,使用情况报告,崩溃日志统计,代码托管,后台作业以及其他一些功能。相对于提供的这些功能来说,本文比较在意的是云计算的核心,云数据存储。

所有的云数据都是存储在所谓的定制类目中(普通的数据类表)

或许正是Parse这种简单的产品体验,让开发者遗忘了安全问题以及漏洞。

Parse安全性分析

你可以给这些类目设置不同的客户端权限:GET, FIND, UPDATE, CREATE, DELETE ,ADD FIELDS。在默认情况下所有都是公开的。当然,大多数开发者在配置表的时候往往都忽视了这一点。

我在Parse平台上有一个项目,在配置AOLs上面花费了大量时间,所以我十分感兴趣其他开发者是如何配置他们在Parse上的账户的。

有一对密钥是用来连接Parse账户与手机应用:Application ID 和 Client Key. 为了对云数据进行操作,我们必须找到这些密钥。这就让我们使用idb(一款令人惊艳的IOS渗透测试程序)[https://github.com/dmayer/idb]—破解应用的二进制文件吧。在解密过程中,我们可以检查下NSUserDefaults(一个常见的存储这些数据的地方)

正如你看到的,没有任何收获。让我们回到破解应用二进制文件的地方,使用Hopper(一款反汇编软件)我们将从一个应用中寻找到Parse的密钥

正如我们之前预料的,连接Parse的密钥就在这里。接下来我们将分析Parse数据结构以及客户权限。

下一步就是识别Parse的表名。实际上,我们在前面那张截图中就已经找到ClientKey了,这里有想当多的registerSubclass函数调用。每个类都有一个parseClassName函数用来返回一个对应的Parse表名。

我们这就来看看这些表的结构吧:

PFQuery *query =[PFQuery queryWithClassName:@"ParseClassName"];
[queryfindObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    NSLog(@"%@", objects);
}];

我们尝试获取访问许可,确定如何影响应用的运行状况。需要我们做的是向Parse提交一个查询,并分析其返回结果。为此,我写了一个小工具 ParseRevealer[https://github.com/igrekde/ParseRevealer]简化了一些操作,使得整个过程更加的方便快捷。

从权限列表中我们可以得知,开发者尝试将产品做的更安全,但是这点还是不够。这里就展示一下我们可以实现操纵的ChatMessage类。

一个十分危险的漏洞是攻击者可任意修改聊天内容:

PFQuery *query = [PFQuery queryWithClassName:@"ChatMessage"];
[query whereKey:@"message" equalTo:@"Привет, Хабр!"];
 
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    PFObject *object = [objects firstObject];
    object[@"message"] = @"Хабр, я тебя ненавижу!";
   
    [object saveInBackground];
}];

更严重的漏洞在于错误的数据映射算法,造成可以遍历所有聊天信息。由于,不填写发件人字段,应用就会崩溃。如果发送一个无效的聊天信息,当有人打开聊天窗口的时候就会崩溃。

何为业界良心

当你发现你安装的应用存在这些问题,不要责怪Parse,它仅仅是为开发者节约了后端开发的成本,一切的一切都全凭开发者的良心!

[参考来源infosecinstitute,翻译/鸢尾,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)]


被黑站点统计 - 文章版权1、本主题所有言论和图片纯属会员个人意见,与本文章立场无关
2、本站所有主题由该文章作者发表,该文章作者与被黑站点统计享有文章相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该文章作者和被黑站点统计的同意
4、文章作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、被黑站点统计管理员有权不事先通知发贴者而删除本文

免责声明

本站主要通过网络搜集国内被黑网站信息,统计分析数据,为部署安全型网络提供强有力的依据.本站所有工作人员均不参与黑站,挂马或赢利性行为,所有数据均为网民提供,提交者不一定是黑站人,所有提交采取不记名,先提交先审核的方式,如有任何疑问请及时与我们联系.

admin  的文章


微信公众号

微信公众号


Copyright © 2012-2022被黑网站统计系统All Rights Reserved
页面总访问量:21415520(PV) 页面执行时间:72.467(MS)
  • xml
  • 网站地图