路人甲 · 2015/08/22 13:34

From:https://www.fireeye.com/blog/threat-research/2015/08/another_popular_andr.html

0x00 前言


很多流行的Android应用都泄露了隐私数据。我们发现另一款流行的Google Play应用,“Camera 360 Ultimate”,不仅对用户的照片进行了优化,但也不经意间泄露了隐私数据,可以让恶意的用户不经过认证就接触到用户Camera 360的云账户和照片。

在这个发现之前,FireEye的研究者发现了在Camera 360应用和其他应用中大量使用的SSL协议漏洞。这些漏洞被通过使用中间人攻击的方法利用,并且对用户的隐私构成了严重的威胁。

Android应用开发者应该采取更对的安全措施来为他们的用户提供更安全的手机使用体验。

0x01 概要和介绍


Camera 360是一个流行的照片拍摄和编辑应用。它在世界范围内有数百万的用户。这个应用会为照片的存储提供免费的云服务。为了使用这些云特色,用户会创建一个可以通过www.cloud.camera360.com访问的云账户。

云访问是通过用户名和密码来进行限制的。但是当应用访问晕的时候,它就会通过未加密的形式泄露隐私数据,比如在Android系统日志(logcat)和网络通信过程中。可以读取logcat或者捕获网络通信的应用就可以偷取的这个数据。在你的WiFi网络中的恶意用户也可以通过WiFi嗅探来偷取这个数据。

泄露的数据可以被用来下载所有用户的照片,除了在那些用户隐私相册中的照片。隐私相册通常都会使用一个额外的密码来保护重要的图像数据。这个应用不会对这些隐私图像进行操作,并且所有从设备上上传的图像都是默认为非隐私的。

0x02 技术细节


我们分析了Camera 360的最新的版本(6.2)以及先前的版本(6.1.2,6.1.1和6.1),然后在所有的这些版本中都发现了数据泄露。

泄露的数据可以被用来通过如下的步骤来对用户的照片进行未授权访问:

  • 通过使用泄露的证书来创建新的登录会话。然后,从服务器获取到图像的密钥并且使用它们来下载图像。
  • 劫持登录会话,使用泄露的token来下载图像
  • 使用泄露的图像密钥来下载图像而不需要认证

并且,捕获的网络通信内的图像可以被很贱的提取和查看。

以下是所有的细节。

0x03 创建一个登录会话


Camera 360应用使用HTTPS登录到服务器,这也就意味着敏感的登录数据不能被轻易的通过网络通信来获取到。在登录的过程中,应用会把隐私数据记录到logcat上去,而这些数据可以被在同一时间运行在这个设备上的其他应用读取到。

Camera 360记录了用户的Email地址,password hash值和其他相关的一些数据。当这些数据泄露的时候,它们就可以被用来创建一个单独的登录会话。作为对登录请求的回应,服务器会返回一个token、用户ID和其他的账户信息。这个token和用户ID可以被用来获取服务器上所有非加密的图像的密钥。利用这些密钥,所有相关的图像都可以被下载下来。

下图展示了我们测试过程中生成的日志信息:

通过对这个应用进行逆向分析,我们发现了他的HTTPS登录URL。在上面提到的日志信息中的数据可以被用来在这个HTTPS请求中创建一个登录会话。这个不带参数的URL如下图所示:

任何可以读取logcat的应用都可以获得这些登录的数据并且创建它们自己的登录会话。Logcat可以用READ_LOGS权限来读,而这个权限对所有运行在Android4.0和以下的版本上的应用都是可以得到的。但是自从Android4.1(jelly bean)以后,这个权限不再会被授权给第三方应用。

通过逆向这个应用,我们也可以发现密码的hash值是原始密码的双重MD5并且是unsalted的。攻击者可以通过使用字典攻击来获取原始的密码,使用彩虹表或者暴力破解来生成一个匹配hash值的字串。破解密码并不是必须的,只要这个hash值可以被直接用来创建登录会话。密码的hash值和窃取到的Email地址可以用来登录camera 360以及云(管理系统)。

0x04 使用泄露的tokens劫持会话


作为对应用登录请求的回应,服务器返回一个token、用户ID和其他账户信息。camera 360会在下一个验证自身的请求中使用这个token和用户ID。

对我们测试账户的服务器响应如下所示:

这个token是不会过期并且是固定的。它会保持有效即使用户已经登出,因为会话变量只是被在客户端删除了而不是服务器端。因此,成功的请求可以在任何时候通过使用这个token来发送。

Camera 360把这些token,以及用户ID、其他应用和设备相关的数据泄漏到了logcat和网络通信上。任何可以读取logcat的Android应用、任何运行在设备上或者在设备的WiFi网络中的网络嗅探器都可以偷取到这些数据。这些泄露的数据可以被用来发送未认证的请求给服务器,也可以笑在云端的所有非隐私图像。

0x05 泄露到logcat的数据


Camera 360会在登录的过程中和用户打开云端账户相关的活动时泄露数据到logcat。

以下是日志信息的两个例子:

在上面的信息中,uid和user Id被设置成了相同的用户ID。token,user token和localkey被设置成了相同的token值。

0x06 泄露到网络通信中的数据


这个应用使用HTTPS发送登录请求,但是下一次的请求是通过HTTP发送的,一同发送的还有一个未加密的认证token和user ID。这些未加密的数据可以轻易的从网络通信中读到。

一个这种HTTP请求如下所示:

0x07 使用token和user ID来下载照片


泄露的token,user ID和其他应用相关的数据可以通过利用以下任何一种请求来获得用户的照片:

这些HTTP请求可以通过两种方法被用来下载照片,如下所示:

FETCHING IMAGE KEYS

以上提到的任何HTTP请求都可以被用来从服务器上获得照片的密钥。服务器对我们测试请求的应答如下:

Response for "http://cloud.camera360.com/v2/page/timeline?...."

Response for "http://cloud.camera360.com/v2/page/getNew?..."

密钥可以从服务器应答中提取,然后使用以下的HTTP请求来下载相关的图像:

Bypassing login page of web cloud

被用来获取图像密钥的HTTP请求同样可以被用来绕过camera 360 云网站的登录(https://cloud.camera360.com/login)。执行任何的这些请求都会让用户登录到web服务,因为这些请求包含了认证token。用户被提示去在一个浏览器标签页中输入这些URLS,然后就直接登录到了云网站的主页。

0x08 使用泄露的照片密钥下载照片


camera 360的云相册进程会从服务器上获取最近的照片(非隐私的照片)来向用户展示存储的云照片。它会把接收到的服务器应答记录到logcat上。一个这样的信息如下所示:

这些记录的密钥可以被那些能够读取logcat的应用窃取到。所有的密钥都由user ID,和一个唯一的照片ID组成。正如上面所提到的,这些密钥可以被用在以下的HTTP请求中来下载图像:

这是一个指向照片的固定链接,并不会失效。这个链接可以被用来在不提供证书或者是认证token的情况下下载照片。

0x09 从捕获的通信中提取照片


从网络通信中收集到的这些图像都是未加密并且可以被轻易就看到的。

0x0a 预防


云应用和Android应用安全需要提高,来预防那些更多的数据泄露和未授权数据访问。以下是一些思路:

  • 不要在任何的产品中把一些隐私数据记录到Android system log(logcat)上去
  • 通过使用以下的几种方法来阻止会话被劫持:
  • 不仅仅把登录进程加密,还要把涉及到隐私数据的比如token,userID,照片密钥和照片文件等进行加密
  • 对token设置到期时间戳
  • 当发送一个登出请求时,最好从服务器端删除掉所有的session variables。不要再次接受以前发布过的token。
  • 服务器可以在每个请求中都改变token的值。这样就可以限制攻击者的攻击。
  • token可以和IP地址绑定,但是对那些使用动态IP地址的用户可能不是很方便。
  • 指向照片的固定连接应该需要认证,或者让这个链接有时效性。

0x0b 结论


camera 360在网络通信和Android系统日志中泄露了很多未加密的隐私数据,这会让用户的隐私受到威胁。

FireEye Mobile Threat Prevention Platform可以检测数据泄露和Android应用中已发现的漏洞,并且帮助用户在和应用分享隐私数据方面做出更好的选择。

0x0c Reference


http://en.wikipedia.org/wiki/Session_hijacking

http://resources.infosecinstitute.com/session-hijacking-cheat-sheet/

Camera 360应用隐私数据泄露的分析相关推荐

  1. 国内android应用商城中程序隐私泄露分析,Android应用程序隐私数据泄露检测

    摘要: Android智能手机中存储着用户的隐私数据,这些隐私数据泄露,会使用户蒙受经济损失及人身伤害.然而,目前第三方应用软件市场中存在许多恶意软件或漏洞软件,但现有的对Android应用软件检测技 ...

  2. 360手机卫士经典案例分析

    摘要 对360手机卫士在保持和吸引顾客方面的独特之处进行了研究,从360手机卫士产品本身,到与产品有关的一系列渠道.定价和促销的营销组合,分析360手机卫士给顾客传递和传播的价值,并结合顾客感知价值这 ...

  3. 360浏览器 隐私_2020年5个用于在线隐私的浏览器扩展

    360浏览器 隐私 HTTPS无处不在 (HTTPS Everywhere) In the early days, the internet was unencrypted and dangerous ...

  4. 360路由器登录协议的分析和模拟实现

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/78878057 一.360路由器登录协议分析的工具配置 1. 路由器型号:360路由 ...

  5. 【SA8295P 源码分析】18 - Camera Bringup 流程 及 源码分析

    [SA8295P 源码分析]18 - Camera Bringup 流程 及 源码分析 一.Camera Bringup 流程 1.1 CameraConfigSA8295.c 配置文件解析 1.2 ...

  6. 【JPEG图像加密隐私保护——安全性分析综述】

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 JPEG图像加密隐私保护--安全性分析综述 前言 一. 草图攻击 二.选择明文攻击 三.改进的选择明文攻击 总结 前言 1. 对JPE ...

  7. android camera 降低帧率_Android性能问题分析之bugreport

    Android手机性能问题一直是用户关注的重点,分析性能问题则成为工程师日常工作的一部分.根据问题的类型通常有适合的工具可供使用,比如systrace ,traceview,simpleperf等可视 ...

  8. 陈天桥:欣赏360保护隐私 用户安全永远第一

    针对眼下因腾讯QQ与360之争引发的网民隐私讨论,盛大公司董事长陈天桥今日向TechWeb表示,非常欣赏360公司重视和保护用户隐私,对用户负责任的行为. 近日,在360等公司的公开指责下,腾讯QQ利 ...

  9. 360断网工具箱简单分析

    某日,在公司的电脑突然不能上网了,也没人说断网了,那就是我的电脑的问题了,当时正浏览网页呢,这怎么办,正好有360断网急救箱,正好让他给检测下,没成想,问题来了,弹出提示窗,此功能已被网络管理员禁止( ...

  10. Android 8.0系统源码分析--Camera processCaptureResult结果回传源码分析

    相机,从上到下概览一下,真是太大了,上面的APP->Framework->CameraServer->CameraHAL,HAL进程中Pipeline.接各种算法的Node.再往下的 ...

最新文章

  1. 【转贴】爱是莲花,最美的是清苦的莲心
  2. 女生学高铁和计算机哪个更好,2020铁路最好的5个专业 女生上铁路学什么专业好...
  3. html中radio单选按钮控件标签用法解析及如何设置默认选中
  4. 百度推出开发者搜索 Beta;雷军手机使用时长曝光;苹果败诉,电脑上可以模拟 iOS 系统 | 极客头条...
  5. All boundaries are conventions, waiting to be transcended.
  6. EasyRecovery如何恢复游戏——英雄联盟
  7. Access2010中文版入门与实例教程(奋斗的小鸟)_PDF 电子书
  8. c语言java异或区别_C、C++、Java异或运算交换变量变量值的区别
  9. RecyclerView多条目加载
  10. 解决 pyecharts 折线图数字标签设置 formatter 参数后标签内容有问题
  11. linux PS命令详解
  12. 照片模糊怎么变清晰?
  13. 2 c++编程-核心
  14. Tableau 网站流量分析案例之浏览量分析(二)
  15. 在线查看相机快门次数
  16. js删除数组内多个指定下标的元素
  17. 一行一行读取文件的两种方式
  18. android纪念日源码,分享超炫的表白页面和爱的纪念日源码
  19. ACCESS实例2 资料管理2——窗体创建方法
  20. 酷炫越野车高清mac动态壁纸

热门文章

  1. 域名解析、域名转向的作用
  2. 颜色匹配 opencv版
  3. 虚拟机配置--网络、MySQL数据库、JDK环境变量
  4. NetLimiter 4.0.15.0 x64 破解新鲜出炉!
  5. c语言兵器谱,程序员兵器谱——那些男人们梦寐以求的终极键盘
  6. 职教mooc计算机组装与维护课程网课答案,2020-网课答案-高职心理辅导与教育-中国大学mooc...
  7. 使用Unity3D制作Flappy Bird
  8. 关于当前安全设置不允许下载文件问题的解决
  9. SpringBoot之自定义starter
  10. 建文高考成绩查询2021,2021届新高考语文强化模拟卷(三).pdf