移动应用安全分析-Thor抓包实战

从Web Checker背后的数据分析来看移动应用隐私安全

Posted by Supertramp on January 29, 2019

目前的移动应用安全现状不容乐观,虽然通过正规途径下载软件可以杜绝大部分植入病毒APP,但是隐私泄露每天都在发生。 相比大公司有成熟的安全检测流程,大部分小型工作室及个人开发者的APP数据加密工作仍做得不够到位。

这篇文章将选取Web checker这款软件,通过抓包和爬虫等技术手段来研究它的背后有哪些数据被记录在服务端,以及简单的数据抓取和分析。

Web checker介绍

Webpage Update Checker can monitor changes to web pages (example: blog, twitter, web serial, fan fiction or online novel) for you by cloud server. It can inform you whenever a particular page changes without you having to go and check every time.

If the app detects that a web page has changed, you can compare the before and after versions of the page side-by-side.

To use this app, simply add a page url you would like to monitor, click on the save icon. You’re done! Now whenever this web page or blog changes, the monitor will send a notification to you.

Features:

* Tracking changes to web page content.
* Monitor pages by cloud.
* Send alert to iOS Notification Center when a page change is detected.
* Monitor any number of pages for changes.
* Smart comparison system that ignores ads and code changes.

Web checker iphone screenshot

以上是这款软件在iOS App Store里的介绍,关于它的使用体验, 俺在这篇文章里有提到:监控网页变化

使用Thor进行抓包分析

Thor介绍

Thor全称叫做 Thor HTTP 抓包嗅探分析&接口调试&网络协议, 是iOS端强大的HTTP(S)抓包软件,通过抓包, 我们可以知道本地请求是否合法来保护个人隐私。

也可以获取一些通过正常手段无法直接获取的图片、音视频、安装包等资源,还可以设置断点和请求重放对APP进行调试。

Thor在iOS端售价68元,软件开发者还将另外两款软件与之打包售卖。

基础设置

介绍完Thor的基本功能,开始进行抓包操作。

下载好软件,第一次使用需要按照说明安装证书以允许软件对HTTPS协议传输内容进行解密。

HTTPS证书设置

APP界面

设置完毕就可以点击闪电图标进行抓包了。

抓取数据包

在开始抓包之前,先关闭后台其他应用,以防止抓取过多不相关数据。

开启抓包后,闪电图标由蓝色变为红色。需要注意的是,开启抓包需要占用系统VPN通道,需要使用代理的软件其传输数据无法抓取。

开启抓包

在抓包记录栏可以看到成功抓取到的数据记录

内容分析

高亮部分显示了HTTP请求的方式以及响应数据格式

抓包记录

在原始消息体里可以看到请求链接包含了服务器中的两个文件夹 users和pages,查看JSON格式的数据包可以发现分别包含了用户id,设备类型,国家地区,token和对应用户记录的网页地址,刷新间隔时长,更新时间等

消息体

消息体

根据测试,不需要添加token就可以访问到数据,且数据包未进行加密,通过更改网页链接中的ID即可访问其他用户的信息。 这样就方便我们用Python编写简单的http请求代码来爬取整个服务器的数据了。

使用Python进行网页爬虫

配置好Python后,运行以下代码

import requests
url = "http://webupdatenotification.com/users/"
for i in range(1,20000):
    newurl = (url) + str(i)
    return_data=requests.get(newurl)
    print return_data.text

爬取数据耗时依代码逻辑和服务器数据量而定。

最后将得到的数据复制到Excel便可进行简单的分析。

因为软件不需要注册,所以没有太多关于用户隐私的内容,可以看到这个软件的用户群体遍布全球各地,岛国人民就占了一半。

用户占比

俺没有对网页内容分类做统计,因为数据量实在太多,是个体力活。至于岛国人民最喜欢关注的网站类型,嘿嘿,你懂的。

App安全性分析

通过以上操作,可以看到这个服务器的数据完全处于未加密状态,普通用户不需要任何门槛即可获取到这些信息。但是由于这个软件提供的服务类型太过于小众,自然也就没有太多人会去关注。

另外竞争对手的缺乏,也导致很少有人故意对服务器发起攻击,否则也不会带着这些漏洞活到今天了。(假如同行想要捣乱以此瓜分市场份额也是非常容易的事:将请求数据中自己的的token更换为其他用户的token,就可以做到更改其他用户的软件保存记录。)

关于Thor和移动应用安全

自iOS9以来,Apple开放越来越多的接口。一些小型工作室及个人开发者得以开发出许多强大的的工具,例如Thor,原本是开发者用来调试自家软件的工具,被一些爱折腾的用户利用来探索应用漏洞。前段时间的联通充话费和免流漏洞使得这款软件进入大多数人的视野。官方的电报群用户数现在已经超过5000。

越来越多的人加入漏洞探索和薅羊毛大军,应用开发者的日子变得不像以前那么好过了。过去开发者只需专注于修补软件上的bug,就可以保障应用安全,现在还得提防抓包,设置断点。

正所谓道高一尺,魔高一丈,薅羊毛大军的出现,或许也会使众多应用开发者被迫在数据安全方面下更大的功夫。