单击并拖动下面的声波以跳到任何一点。你也可以 直接听 在 Soundcloud 上。
与道格·阿莫斯和保罗·达克林一起。
介绍和结尾音乐 伊迪丝·马奇.
薛定谔的猫在特色图片中的轮廓来自 达特菲尔德 下 CC BY-SA 3.0.
你可以听我们的 的SoundCloud, 苹果播客, Google播客, Spotify, 缝 以及任何可以找到好的播客的地方。 或者只是放下 我们的 RSS 提要的 URL 进入你最喜欢的播客。
阅读成绩单
道格。 Slack 泄漏、顽皮的 GitHub 代码和后量子密码学。
所有这些,以及更多,都在 Naked Security 播客上。
[音乐调制解调器]
欢迎大家收听播客。
我是道格·阿莫斯。
和往常一样,和我在一起的是保罗·达克林。
保罗,你今天好吗?
鸭。 超级骗子,像往常一样,道格!
道格。 我非常兴奋能参加本周的比赛 技术历史 段,因为……
......你在那里,伙计!
本周,11 月 XNUMX 日……
鸭。 不好了!
我想一分钱刚刚掉了……
道格。 我什至不必说年份!
11 年 2003 月 2000 日——全世界都注意到了影响 Windows XNUMX 和 Windows XP 系统的 Blaster 蠕虫。
Blaster,也称为 Lovesan 和 MsBlast,利用了缓冲区溢出,并且可能以消息而闻名, “比利·盖茨,你为什么让这成为可能? 停止赚钱并修复您的软件。”
发生了什么事,保罗?
鸭。 嗯,那是以前的时代,也许,我们非常重视安全。
而且,幸运的是,如今这种漏洞将变得更加难以利用:它是基于堆栈的缓冲区溢出。
如果我没记错的话,Windows 的服务器版本已经用所谓的 堆栈保护.
换句话说,如果你在函数内部溢出堆栈,那么,在函数返回并破坏损坏的堆栈之前,它会检测到发生了不好的事情。
因此,它必须关闭有问题的程序,但恶意软件无法运行。
但当时 Windows 的客户端版本中还没有这种保护。
我记得,这是早期的恶意软件之一,它必须猜测您拥有的操作系统版本。
你是2000吗? 你在新台币吗? 你在XP吗?
如果它弄错了,那么系统的一个重要部分就会崩溃,你会得到“你的系统即将关闭”的警告。
道格。 哈,我记得那些!
鸭。 所以,对于许多人来说,附带损害是你受到感染重创的迹象……
…这可能来自外部,就像您只是一个家庭用户并且您家中没有路由器或防火墙一样。
但是,如果您在公司内部,最有可能的攻击将来自公司内部的其他人,在您的网络上喷射数据包。
所以,很像我们谈到的 CodeRed 攻击,那是几年前,在最近的播客中,这件事的规模、数量和速度确实是问题所在。
道格。 好吧,那是大约 20 年前的事了。
如果我们把时光倒流到五年前,那就是 Slack 开始泄漏 散列密码。 [笑声]
鸭。 是的,流行的协作工具 Slack……
…它有一个功能,您可以向其他人发送邀请链接以加入您的工作区。
并且,您可以想象:您单击一个显示“生成链接”的按钮,它会创建某种网络数据包,其中可能包含一些 JSON。
如果您曾经收到过 Zoom 会议邀请,您就会知道它有日期、时间、邀请您的人、可用于会议的 URL、密码等等东西——里面有很多数据。
通常,您不会深入研究原始数据以查看其中的内容——客户只会说:“嘿,这是一个会议,这是详细信息。 你想接受/也许/拒绝吗?”
事实证明,当你用 Slack 做这件事时,正如你所说,五年多来,在邀请函中打包的是与邀请函本身并不严格相关的无关数据。
所以,不是 URL,不是名称,不是日期,不是时间……
…但是*邀请用户的密码哈希* [笑声]
道格。 Hmmmmm。
鸭。 我不骗你!
道格。 这听起来很糟糕……
鸭。 是的,确实如此,不是吗?
坏消息是,这到底是怎么进来的?
而且,一旦它在那里,它究竟是如何在五年零三个月内逃避注意的?
事实上,如果您访问有关 Naked Security 的文章并查看 完整网址 文章的最后,你会注意到它说, blahblahblah-for-three-months
.
因为,当我第一次阅读报告时,我的脑海中并不想看到它是 2017 年! [笑声]
那是 17 月 17 日到 17 月 XNUMX 日,所以那里有很多“XNUMX”。
我的脑海中将 2017 年视为起始年——我将其误读为“今年 2022 月至 XNUMX 月*”[XNUMX]。
我想,“哇,*三个月*他们没有注意到。”
然后这篇文章的第一条评论是, “咳咳[咳嗽]。 实际上是 *17 年 2017 月 XNUMX 日*。”
哇!
但有人在 [17 年 2022 月 XNUMX 日] 发现了这一点,值得称赞的是,Slack 在同一天修复了它。
就像,“哦,天哪,我们在想什么?!”
所以这是个坏消息。
好消息是,至少它是*散列*密码。
而且它们不只是经过哈希处理,它们是 *salted*,这是您将唯一选择的每个用户随机数据与密码混合的地方。
这个想法是双重的。
一,如果两个人选择了相同的密码,他们得到的哈希值是不一样的,所以你不能通过查看哈希数据库做出任何推断。
第二,您不能为已知输入预先计算已知哈希的字典,因为您必须为每个密码*为每个盐*创建一个单独的字典。
因此,破解散列密码并非易事。
话虽如此,整个想法是它们不应该成为公共记录的问题。
它们被散列和加盐*以防*它们泄漏,而不是*为了它们可以*泄漏。
所以,鸡蛋在 Slack 的脸上!
Slack 表示,大约每 200 个用户中就有 0.5 个或 XNUMX% 受到影响。
但是,如果您是 Slack 用户,我会假设如果他们没有意识到他们在五年内泄露了散列密码,那么他们可能也没有完全列举出受影响的人员名单。
所以,无论如何,去更改你的密码......你也可以。
道格。 好的,我们还说:如果您不使用密码管理器,请考虑购买; 如果可以,请打开 2FA。
鸭。 我以为你会喜欢的,道格。
道格。 是的,我愿意!
然后,如果您是 Slack 或类似的公司,请选择一个 著名的盐哈希和拉伸算法 自己处理密码时。
鸭。 是的。
Slack 的回应中最重要的一点,也是我认为缺少的一点,就是他们只是说,“别担心,我们不仅对密码进行了哈希处理,我们还对它们进行了加盐处理。”
我的建议是,如果您陷入这样的违规行为,那么您应该愿意声明您用于加盐和散列的算法或过程,以及理想情况下所谓的 伸展,这就是您不只是对加盐密码进行一次哈希处理的地方,而且也许您将其哈希处理 100,000 次以减慢任何类型的字典或蛮力攻击。
如果您说明您正在使用什么算法以及使用什么参数..例如, PBKDF2
, bcrypt
, scrypt
, Argon2
– 这些是那里最著名的密码“salt-hash-stretch”算法。
如果您确实说明了您正在使用的算法,那么:[A] 您更加开放,并且 [B] 您正在给问题的潜在受害者一个机会,让他们自己评估他们认为这可能有多危险.
这种开放性实际上可以提供很大帮助。
Slack 没有这样做。
他们只是说,“哦,它们是加盐和哈希的。”
但我们不知道的是,他们是否放入了两个字节的盐,然后用 SHA-1 对它们进行了一次哈希处理……
......或者他们有什么东西更能抵抗被破解?
道格。 坚持坏事的主题,我们注意到人们正在发展的趋势 将坏东西注入 GitHub,只是为了看看会发生什么,暴露风险……
…我们还有另一个故事。
鸭。 是的,据称有人现在在推特上说:“别担心,伙计们,没有伤害。 这只是为了研究。 我要写报告,从蓝色警戒中脱颖而出。”
他们创建了数以千计的虚假 GitHub 项目,基于复制现有的合法代码,故意在其中插入一些恶意软件命令,例如“致电回家以获取进一步说明”和“将回复的正文解释为要执行的后门代码”,以及很快。
因此,如果您安装了其中一个软件包,确实可能会造成伤害。
给他们合法的名字……
......显然,借用了一个真正项目的提交历史,这样如果它刚刚出现,那么这个东西看起来比你想象的要合法得多,“嘿,下载这个文件。 你知道你想!”
真的?! 研究?? 我们已经不知道了?!!?
现在,你可以争辩说,“好吧,拥有 GitHub 的微软,他们在做什么让人们上传这类东西变得如此容易?”
这是有道理的。
也许他们可以做得更好,首先将恶意软件拒之门外。
但是说“哦,这都是微软的错”有点过头了。
在我看来,更糟糕的是,说:“是的,这是真正的研究; 这真的很重要; 我们必须提醒人们这可能会发生。”
嗯,[A] 我们已经知道了,非常感谢你,因为以前有很多人这样做过; 我们得到了响亮而清晰的信息。
[B] 这*不是*研究。
这是故意诱骗人们下载代码,让潜在的攻击者远程控制,以换取编写报告的能力。
对我来说,这听起来更像是一个“巨大的借口”,而不是一个合法的研究动机。
所以我的建议是,如果你认为这*是*研究,并且如果你决心重新做这样的事情,*如果你被抓住,*不要指望很多同情*。
道格。 好的——我们将在节目结束时回到这一点,读者评论,所以坚持下去。
但首先,让我们谈谈 红绿灯,以及它们与网络安全的关系。
鸭。 啊,是的! [笑]
嗯,有一种东西叫做 TLP, 红绿灯协议.
TLP 就是你可能称之为“人类网络安全研究协议”的东西,它可以帮助你标记你发送给其他人的文件,给他们暗示你希望他们会做什么(更重要的是,你希望他们会做什么*不是*) 处理数据。
特别是,他们应该在多大范围内重新分配它?
这是否如此重要,以至于你可以向世界宣布它?
或者这是否有潜在危险,或者它是否可能包含一些我们还不想公开的东西……所以你自己保密?
它开始于: TLP:RED
,这意味着,“把它留给你自己”; TLP:AMBER
,这意味着“您可以在您自己的公司内部或您认为可能迫切需要知道这一点的您的客户传播它”; TLP:GREEN
,这意味着,“好吧,你可以让它在网络安全社区内广泛传播。”
和 TLP:WHITE
,这意味着,“你可以告诉任何人。”
非常有用,非常简单:红色、琥珀色、绿色……一个适用于全球的隐喻,不用担心“秘密”和“机密”之间有什么区别,“机密”和“机密”之间有什么区别,所有那些复杂的东西需要围绕它制定大量的法律。
好吧,TLP 刚刚进行了一些修改。
因此,如果您从事网络安全研究,请确保您了解这些。
TLP:WHITE
已经改为我认为实际上更好的术语,因为 白色 具有我们在现代时代可以做到的所有这些不必要的文化色彩。
所以, TLP:WHITE
刚刚变成 TLP:CLEAR
,在我看来,这是一个更好的词,因为它说,“你很清楚使用这些数据”,而且这个意图表达得很清楚,咳咳,非常清楚。 (对不起,我无法抗拒双关语。)
还有一个附加层(所以它有点破坏了这个比喻——它现在是一个*五*色的交通灯!)。
有一个特殊的关卡叫 TLP:AMBER+STRICT
,这意味着,“你可以在公司内部分享它。”
所以你可能会被邀请参加一个会议,也许你在一家网络安全公司工作,很明显你需要向程序员展示这个,可能展示给你的 IT 团队,可能展示给你的质量保证人员,这样你就可以研究问题或解决它。
但是, TLP:AMBER+STRICT
意味着尽管您可以在您的组织内部传播它,*请不要告诉您的客户或您的客户*,甚至是您认为可能需要知道的公司以外的人。
一开始就把它放在更紧密的社区内。
TLP:AMBER
和以前一样,意思是“好吧,如果你觉得需要告诉你的客户,你可以。”
这可能很重要,因为有时您可能想通知您的客户,“嘿,我们已经解决了。 在修复到来之前,您需要采取一些预防措施。 但因为它有点敏感,我们可以要求你暂时不要告诉全世界吗?”
有时,过早地告诉世界实际上对骗子的影响比对防守者的影响更大。
所以,如果你是网络安全响应者,我建议你去: https://www.first.org/tlp
道格。 你可以 进一步了解 在我们的网站上 裸安全sophos.com.
如果你正在寻找其他一些简单的阅读,忘记量子密码学......我们正在继续 后量子密码学,保罗!
鸭。 是的,我们之前在播客上已经谈过几次了,不是吗?
假设可以构建一个足够强大和可靠的量子计算机,那么某些类型的算法可以在当今最先进的技术水平上加速,或者达到平方根......或者更糟糕的是, *今天问题规模的*对数*。
换句话说,而不是取 2256 尝试查找具有特定哈希的文件,您也许可以做到(“just”!)2128 尝试,这是平方根。
显然快了很多。
但是有一整类问题涉及素数的因式分解,理论上说可以用他们今天所用时间的*对数*来破解,松散地说。
所以,而不是采取,说,2128 天来破解[远比宇宙的当前年龄],破解可能只需要 128 天。
或者你可以用“分钟”代替“天”,或者其他什么。
不幸的是,对数时间算法(称为 Shor 的量子分解算法)……理论上,这可能适用于当今的一些加密技术,尤其是那些用于公钥加密的技术。
而且,以防万一这些量子计算设备在未来几年内变得可行,也许我们现在应该开始为不易受到这两种特定攻击类别的加密算法做准备?
特别是对数一,因为它极大地加速了潜在的攻击,以至于我们目前认为“好吧,没有人会弄清楚这一点”的密码密钥可能会在以后的某个阶段变得可揭示。
无论如何,NIST, 国家标准与技术研究所 在美国,几年来一直在举办一场竞赛,试图标准化一些公开的、未获得专利的、经过严格审查的算法,这些算法将抵抗这些神奇的量子计算机,如果它们出现的话。
最近,他们选择了现在准备标准化的四种算法。
他们有很酷的名字,道格,所以我必须把它们读出来: CRYSTALS-KYBER
, CRYSTALS-DILITHIUM
, FALCON
及 SPHINCS+
. [笑声]
所以他们有很酷的名字,如果没有别的。
但是,与此同时,NIST 认为,“嗯,这只是四种算法。 我们要做的是再挑选四名作为潜在的二级候选人,我们将看看是否有任何人也应该通过。”
所以现在有四种标准化的算法,未来可能会标准化的四种算法。
或者在 5 年 2022 月 XNUMX 日*有*四个,其中一个是 SIKE
, 短缺 超奇异同源密钥封装.
(我们需要几个播客来解释超奇异同源,所以我们不会打扰。[笑声])
但是,不幸的是,尽管它已经公开接受公众监督至少五年了,但它似乎已经无法挽回地被打破。
所以,幸运的是,就在它得到或可以标准化之前,两名比利时密码学家发现,“你知道吗? 我们认为我们已经找到了解决这个问题的方法,使用大约需要一个小时的计算,在相当平均的 CPU 上,只使用一个内核。”
道格。 我想现在发现它比标准化它并在野外放出来更好?
鸭。 的确如此!
我想如果它是已经标准化的算法之一,他们将不得不废除标准并提出一个新的标准?
这似乎很奇怪,这五年没有引起人们的注意。
但我想这就是公众监督的全部想法:你永远不知道什么时候有人可能会碰到需要的裂缝,或者他们可以用来闯入并证明算法没有最初想象的那么强大的小楔子。
一个很好的提醒,如果你*曾经*想过编织自己的密码学……
道格。 [笑]我没有!
鸭。 ..尽管我们已经在 Naked Security 播客 N 次告诉过你,“不要那样做!”
这应该是最终的提醒,即使真正的专家提出了一个在全球竞争中受到公众监督长达五年的算法,这仍然不一定提供足够的时间来暴露结果非常糟糕的缺陷。
所以,这肯定不好看 SIKE
算法。
谁知道,也许它会被撤回?
道格。 我们将密切关注这一点。
随着本周太阳慢慢落山,是时候听取我们的一位读者关于我们之前讨论的 GitHub 故事的消息了。
罗伯 写入:
“评论中有一些粉笔和奶酪,我不想这么说,但我真的可以看到争论的双方。 它是否危险、麻烦、浪费时间和消耗资源? 是的,当然是。 有犯罪意识的人会这样做吗? 是的,是的,是的。 这是否提醒任何使用 GitHub 或任何其他代码存储系统的人,安全地在互联网上旅行需要一定程度的愤世嫉俗和偏执狂? 是的。 作为一名系统管理员,我的一部分想要为暴露手头的风险鼓掌。 作为一群开发人员的系统管理员,我现在需要确保每个人最近都搜索过任何有问题的条目。”
鸭。 是的,谢谢 RobB 的评论,因为我想看到争论的双方很重要。
有评论说,“这到底是什么问题? 这很棒!”
一个人说, “不,实际上,这种渗透测试很好而且有用。 很高兴这些现在被暴露出来,而不是从真正的攻击者那里抬起丑陋的头。”
我对此的回应是,“嗯,这*是*实际上是一种攻击。”
只是后来有人出来了,说:“哦,不,不。 没有造成任何伤害! 老实说,我没有调皮。”
我不认为你有义务买那个借口!
但无论如何,这不是渗透测试。
我的回答很简单: “负责任的渗透测试人员只有在获得明确许可后才会采取 [A] 行动,并且 [B] 在事先明确同意的行为限制内采取行动。”
您不只是制定自己的规则,我们之前已经讨论过这一点。
所以,正如另一位评论者所说,我认为这是我最喜欢的评论...... Ecurb 说, “我认为有人应该挨家挨户打碎窗户,以展示门锁的有效性。 这是逾期的。 请有人跳上去。”
然后,以防万一你没有意识到这是讽刺,伙计们,他说, “不!”
鸭。 我认为这是一个很好的提醒,并且我认为如果您是 GitHub 用户,无论是作为生产者还是消费者,您都可以做一些事情。
我们在评论和文章中列出了它们。
例如,在您的所有提交上放置一个数字签名,这样很明显更改来自您,并且有某种可追溯性。
并且不要只是盲目地消费东西,因为您进行了搜索并且“看起来”它可能是正确的项目。
是的,我们都可以从中学习,但这真的算作教我们,还是我们无论如何都应该学习的东西?
我认为这是*不是*教学。
它只是*没有足够高的标准*算作研究。
道格。 围绕这篇文章进行了很好的讨论,并感谢您将其发送过来,Rob。
如果您想提交有趣的故事、评论或问题,我们很乐意在播客上阅读。
你可以发邮件 tips@sophos.com
; 您可以评论我们的任何一篇文章; 或者您可以在社交网站上联系我们: @NakedSecurity
.
这就是我们今天的节目——非常感谢您的收听。
对于 Paul Ducklin,我是 Doug Aamoth 提醒你,直到下一次……
两个都。 保持安全!
[音乐调制解调器]