这是一篇关于移动应用程序流量分析及地理位置数据共享的文章,主要内容如下:
- 背景:两个月前发布了关于第三方之间位置数据共享的帖子,之后与该领域的许多人交流,包括非营利组织成员和广告技术公司员工,还受邀参加播客谈论地理定位数据和隐私。
主要工作:
- 创建了一个小指南和一个 Python 笔记本,允许任何人记录移动应用程序流量并从中发现有趣的事情,相关链接为https://github.com/tim-sha256/analyse-ad-traffic/?ref=timsh.org,初始设置需 10 - 30 分钟,分析每个应用约 10 分钟。
- 复制了 Gravy Analytics Google 表格并创建了一个简单表单,可填写并写入表格,用于记录应用程序流量信息,表格链接为https://docs.google.com/spreadsheets/d/1fJbNT-kmfuWUlIpYr9sduvjZS1ggrmhydCzoDlqaMaA/edit?usp=sharing&ref=timsh.org,还可填写另一个表单https://forms.gle/Wyj1K54B5NQw3Vxt7?ref=timsh.org来帮助众包应用程序收集和共享的数据类型信息。
- 分享了一些可视化的“域权力”图表,包括使用
PyVis
创建的广告技术公司域在所有请求中的分布可视化图,以及请求密度的图表等,相关代码和文件都在同一仓库中。
操作步骤:
- 步骤 1:在 PC 上安装
mitmproxy
,可从官方下载页面选择安装方式,安装后运行mitmweb --listen-host 0.0.0.0 --listen-port 8080
启动mitmweb
。 - 步骤 2:在移动设备(以 iOS 为例)上设置代理,打开开发者模式(若设置中缺失可参考相关指南),确保 iPhone 和计算机在同一 wifi 网络,然后安装并信任证书。
- 步骤 3:收集请求,运行
ipconfig getifaddr en0
找到 PC 本地 IP 地址,在 iPhone 的 wifi 网络设置中设置手动代理,打开浏览器访问mitm.it
,完成后可在mitmweb
界面看到请求,若只想记录特定应用的流量,可关闭其他应用并清除流量后再打开该应用。
- 步骤 1:在 PC 上安装
数据处理:
- 记录数据后,可手动查找有趣的请求,如在
mitmweb
中查看 Facebook 请求。若感觉数据足够,可关闭应用并在mitmweb
中按文件→保存,将流量保存为flows
文件并重命名为appname.flow
。 - 打开
[mitm_test.ipynb](https://github.com/tim-sha256/analyse-ad-traffic/blob/main/mitm_test.ipynb?ref=timsh.org)
,在本地 Jupyter Notebook 或 Google Colab 中进行数据过滤和分析,填写关键词,运行单元格创建df_filtered
表,可查看匹配的请求或响应以及相关信息。
- 记录数据后,可手动查找有趣的请求,如在
- 改进空间:作者知道这是一种很原始的方法,本可使用
mitmdump
自动保存和过滤到.csv,但为避免错过某些内容故意保持半手动,例如关闭过滤器后发现了gs-loc.apple.com
这个苹果请求用户位置信息的端点,但不确定应用程序是否负责该请求。
总之,作者希望有人能对至少一个应用进行分析并贡献信息,或进行实验和娱乐,如有任何意见可联系hello@timsh.org。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。