Facebook知道你吃了什么:逐步发现Facebook收集关于你的全部数据
我敢打赌大多数Facebook用户并不真正了解平台对他们的了解程度。
如果我告诉你,你可以在短短5分钟内可视化这些数据呢?这是一个关于我如何通过编程方式探索https://facebook.com/dyi的故事。
我将展示如何自己操作,并一起探索我的(经过审查的)Facebook数据。文章末尾提供开源代码。
数据索引技术细节(可跳过)
对于技术爱好者,让我详细说明:我选择使用由ELK(Elastic + LogStash + Kibana)组件组成的Docker技术栈。我实现了一个自定义LogStash文件流,用于预处理从下载的ZIP存档中提取的JSON文件到ElasticSearch。
然后我拆分包含多个元素的记录(事件、点击、点赞、通知、市场商品点击等),以便可以轻松查询真实的Facebook对象(就像它们在GraphQL中被索引一样),并使用我感兴趣的字段创建ElasticSearch索引。
技术实施过程
通过Docker-compose启动服务后,数据开始流动。在样本数据通过ElasticSearch后,我通过一键点击手动创建索引模式。最后,使用Kibana开始处理这些数据片段并理解所面对的内容。
数据发现结果
Facebook通过Facebook Pixel技术和其他"尊重隐私"的工具,知道我在300多个网站上的每一次数字事件,包括支付方式、安装的应用和访问的网站——即使我没有登录Facebook。
数据显示,平台记录了我的外卖订购行为、旅行预订详情、音乐品味(直接来自Spotify而非页面点赞),甚至包含大量标记为"CUSTOM"的未公开数据类型。
技术档案分析
在下载的JSON档案中,我发现:
advertisers_who_uploaded_a_contact_list_with_your_information.json包含上传过我联系信息的广告商profile_information.json以数据科学优化的格式存储了我的核心个人信息
这些字段被计算机用于计算机,用来定制广告(或出售给出价最高者)。
开源工具
我创建了一个开源框架,供好奇的人们下载自己的数据并立即在计算机上可视化:https://github.com/avilum/facebook-archive-analyzer
当你发现档案中更多有趣的文件时,可以轻松地向数据处理管道添加新数据。本文将会有第二部分!
作者:Avi Lumelsky - 软件工程师/安全研究员,专注于隐私保护、深度学习和网络安全领域。