揭秘Facebook数据收集:从ELK技术栈到用户隐私分析

本文通过ELK技术栈分析Facebook数据档案,揭示第三方数据收集机制,包含Docker部署细节和JSON数据处理方法,展示如何可视化用户隐私数据。

Facebook知道你吃了什么:逐步揭示Facebook收集的完整数据

我敢打赌大多数Facebook用户并不清楚平台真正了解他们多少信息。

如果我告诉你,你可以在5分钟内可视化这些数据呢?这是一个关于我如何通过编程方式探索https://facebook.com/dyi的故事。

我将展示如何自己操作,并一起探索我的(经过审查的)Facebook数据。文末提供开源代码。

数据获取与合规性

大型(及小型)公司若希望全球扩展或进入欧洲/加州市场,必须遵守最新隐私法规。Facebook作为广告寡头垄断的最大参与者之一(仅次于Google),允许用户随时免费下载自己的数据。

我创建了新档案,几小时后收到了邮件链接。Facebook的"下载您的信息"部分提供HTML或详细JSON格式的档案,我选择了两者。

技术实现:ELK技术栈部署

(技术细节 - 可跳过)

我选择使用由ELK(Elastic + LogStash + Kibana)组件组成的Docker堆栈。实现了自定义LogStash文件流,将下载的ZIP存档中的JSON文件预处理到ElasticSearch。

然后拆分包含多个元素的记录(事件、点击、点赞、通知、市场商品点击等),以便轻松查询真实的Facebook对象(就像在GraphQL中索引一样),并使用感兴趣的字段创建ElasticSearch索引。

堆栈中的ElasticSearch服务将索引所有在Facebook服务器上发生的与我数据相关的事件。随后使用Kibana可视化和研究数据。

撰写文件(可使用Kompose转换为Kubernetes服务)在文末提供。运行docker-compose up后一切开始运行。

数据分析发现

Facebook大部分信息来自第三方应用和服务。即使没有将Facebook、Instagram或WhatsApp账户连接到这些应用,也能被识别。

通过Facebook Pixel技术和其他"尊重隐私的伟大工具",他们知道:

  • 300+网站上发生的每个数字事件
  • 每个服务的支付方式
  • 安装或更改的应用程序
  • 访问的网站

具体数据示例

  • 外卖服务日志:记录购物车事件,即使用户未登录
  • 旅行数据:航班预订和住宿记录
  • 音乐偏好:来自Spotify的事件数据
  • 自定义数据事件:近1/5的存档事件类型为"CUSTOM",含义不明

最重要的发现是"advertisers_who_uploaded_a_contact_list_with_your_information.json"文件,以及包含所有核心信息的"profile_information.json"。

开源代码

代码可在https://github.com/avilum/facebook-archive-analyzer获取。欢迎在GitHub上关注我。

当您在档案中发现更多有趣文件时,很容易向管道添加新数据。本文将会有第二部分!


作者简介:Avi Lumelsky - 软件工程师/安全研究员,主要专注于隐私、深度学习和网络安全领域。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计