16亿密码泄露事件背后的技术真相

本文深入分析了所谓的16亿密码泄露事件,揭示了数据主要来自长期流传的信息窃取日志,包含技术细节如数据去重过程、JSON文件解析和HIBP集成方法,实际影响的独立邮箱仅1.09亿个。

16亿密码故事(又名"数据巨魔")

剧透:我拥有标题中提到的数据,它大部分符合我的预期,我已将其添加到HIBP并命名为"数据巨魔",下面我将提供更多背景信息。

近年来,关于数据泄露中暴露密码数量的头条新闻相互攀比已成为一种常态。每个新故事都想要呈现一个超越前一个故事的数字,点击诱饵循环持续不断。你从很远就能看到它来了,而且你知道现实情况比标题要少,但少多少呢?

六月时,一个标题为"160亿密码在破纪录的数据泄露中暴露"的故事登上了头条。我以为这将是另一个标准的、耸人听闻的标题,会吸引几天的眼球然后被遗忘,但显然不是这样。开始时,人们对"Have I Been Pwned"产生了巨大兴趣:

那是谷歌搜索我的"小"项目,我觉得很奇怪,因为我们没有在HIBP中放入任何数据!但那个最初的故事获得了如此大的关注,并进入主流媒体,以至于许多出版物都将人们引导到HIBP,不可避免地,有一堆搜索是为了弄清楚该服务实际上是什么。新闻仍在不断出现——这个故事上周刚刚登陆AOL:

你知道这很严重,因为所有的红色和感叹号…但根据文章,“你不需要恐慌”🤷‍♂️

猜测够了,让我们来看看这里实际有什么,为此,我直接去了源头:

Bob是一位高质量的研究人员,多年来在嗅探泄露数据方面非常成功,其中一些数据由于他的出色工作最终进入了HIBP。所以我们聊了聊这个宝库,他首先明确表示这不是单一的暴露来源,而是今年公开暴露的不同信息窃取数据集。暗示这是一次大规模泄露的头条新闻具有误导性;窃取者日志是从个别受感染的机器产生的,偶尔会捆绑和重新分发。Bob还指出许多数据集不再暴露,他也没有所有数据的副本。但他确实拥有一个数据子集,愿意发送给HIBP,所以让我们分析一下。

总的来说,Bob发送的数据包含10个JSON文件,总计775GB,跨越27亿行。对HIBP的初步粗略检查显示,超过90%的电子邮件地址已经存在其中,而在之前的窃取者日志中的那些,匹配网站域名的相关性很高。我的意思是,如果Bob发送的数据中有某人的电子邮件地址和密码在登录Netflix和Spotify时被捕获,那么这个人可能已经在HIBP的Netflix和Spotify窃取者日志中。换句话说,有很多数据我们以前见过。

那么,我们如何理解这一切,特别是考虑到Bob发送的语料库大约是报道的160亿标题的17%?让我概括地谈谈这些数据集如何倾向于使用夸张的标题,而实际影响的数字要小得多:

  • 文件之间通常存在重复,因为相同的数据多次出现
  • 同一文件内也经常存在重复,同样,相同的数据重新出现
  • “一行"是一个人的电子邮件地址和密码列在他们登录的网站旁边的实例,所以100个不同的行可能都是一个人

我收到的数据语料库包含27亿行,我能够从中提取3.25亿个独特的窃取者日志条目。这是我能够成功解析出网站、电子邮件地址和密码值的行数。在我之前关于一个人的Netflix和Spotify凭证被捕获的例子中,那将意味着两个独特的窃取者日志记录。所有这些然后蒸馏到所有文件中的1.09亿个独特电子邮件地址,这是你现在将在HIBP中看到的数字。换句话说,27亿 -> 1.09亿是从标题到人的96%减少。我们可以对160亿标题应用相同的数学吗?我们永远无法确定,但我敢打赌减少幅度更大;我怀疑额外的数十亿语料库会继续添加新的电子邮件地址,而且重复率会增加。

因为在加载窃取者日志后总是会出现这个问题,一个快速警告:

并非所有加载到此泄露中的电子邮件地址都会包含相应的窃取者日志条目。这是因为我们有一个过程来正则表达式提取所有地址(代码是开源的),另一个过程拉取针对有效网站和密码的带有电子邮件地址的行。

而且因为我最终会在回复查询时反复复制和粘贴这个,另一个警告:

出现在窃取者日志中通常是设备受感染的指标,但我们没有数据表明它何时被感染。这里会有很多旧数据,就像有很多重新包装的数据一样。

在有效窃取者日志条目中的密码中,有2.31亿个独特的密码,我们以前见过其中的96%。这些现在都在Pwned Passwords中,具有更新的普遍性计数,并且可以通过网站搜索,当然,也可以通过API搜索。说到这个,那些密码目前被大量搜索:

在我们能够从语料库中解析出的1.09亿个电子邮件地址中,96%已经存在于HIBP中(这个数字巧合地匹配我们跟踪的现有密码的百分比)。当然,它们并非全部来自以前的窃取者日志,但据传闻,在我的测试期间,我发现了这个和今年早些时候的ALIEN TXTBASE日志之间的很多交叉。无论如何,我们从数据巨魔中添加了440万个以前从未见过的新地址,所以仅这一点就很重要。不足以证明"有史以来最大"之类的夸张标题是合理的,但仍然可观。

总结如下:

  • 160亿标题蒸馏到实际影响的独特值数量要小得多
  • 数据主要来自已经流传一段时间的窃取者日志
  • 它肯定不是新鲜的,并且不会构成任何已经存在的新的风险

最后,还有那个"数据巨魔"的标题。当我第一次看到这个故事获得如此大的关注时,我脑海中的图像是一个巨魔坐在数据储藏上。大众媒体然后接过了这个,把它变成了故意挑衅的头条,操纵叙事以寻求关注。希望这篇文章能稍微缓和所有这些,并为讨论带来一些理智。我们需要认真对待像这样的数据暴露,但它肯定不值得它得到的关注。

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