Bit of a Close Talker: A Practical Guide to Serverless Cloud Co-Location Attacks
本文提出了一种利用无服务器云调度器漏洞以实现微架构侧信道攻击物理共定位的全面方法论,展示了对 Microsoft Azure Functions 等主要平台的成功攻击,并提出了一种名为“Double-Dip”的调度器作为缓解策略。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
以下是使用简单语言和日常类比对论文《Bit of a Close Talker》进行的解释。
大局观: “无服务器”酒店
想象一下,云计算世界就像一家巨大的酒店。
- 传统云(有服务器): 你租下了一整间房供自己使用。即使你只睡了5分钟或24小时,你也得为这间房付全款。
- 无服务器云(Serverless): 你只需为你实际待在房间里的精确时间付费。如果你只需要10秒钟来放下包裹,你就只付10秒钟的钱。酒店工作人员(云提供商)负责所有的清洁、钥匙管理和维护工作。你只需出现,完成任务,然后离开。
这对于节省成本和提高灵活性非常棒。但由于这家酒店极其高效,它会尝试将尽可能多的客人挤进同一间房以节省空间。这产生了一个安全风险:陌生人可能会最终和你挤在同一个房间里。
问题所在:“贴脸开大”攻击(The "Close Talker" Attack)
在计算机世界中,存在着被称为**侧信道攻击(side-channel attacks)**的诡计。想象一个试图偷走你信用卡号的小偷。他无法破开你的保险箱,但如果他站在你身边,就在同一个房间里,他可以通过听你的心跳声或感受你电脑散发的热量来猜出你的密码。
为了做到这一点,小偷需要与你同处一地(co-located)——这意味着他的计算机实例和你的计算机实例必须运行在完全相同的物理服务器上(即同一个“房间”)。
挑战在于: 云提供商很聪明。他们会尽量混合客人群体,以免陌生人挤在一起。这篇论文提出了一个问题:小偷能否通过欺骗酒店经理(调度器),从而让自己进入与特定受害者相同的房间?
解决方案:窃贼是如何得手的
本文作者创建了一个关于如何欺骗云端的“实操指南”。他们将整个过程分解为三个步骤,就像侦探破解谜案一样:
第一步:指纹识别(“试运行”)
在发起攻击之前,小 thief 需要了解酒店经理是如何思考的。
- 类比: 想象小偷向酒店发送一条测试信息。他观察酒店将他安置在哪里。然后他再次发送另一条信息并再次观察。
- 发现: 通过发送许多次测试请求,小偷了解了经理的行为习惯。
- 经理是否为了节省时间,总是把同一个客人放在同一个房间里?(是的,这被称为“调用局部性/Invocation Locality”)。
- 当业务繁忙时,经理是否会增加更多的房间?(是的,这是“自动扩缩容/Auto-Scaling”)。
- 经理是否会将拥有相似行李的人归为一类?(是的,这是“软件包局部性/Package Locality”——如果你和对方都需要相同的软件工具,你们就会被放在一起)。
第二步:攻击(“设陷阱”)
一旦小偷知道了经理的习惯,他就会设置陷阱。
- 如果经理按行李分组(软件包局部性): 小偷会创建一个使用与受害者完全相同的“行李”(软件软件包)的伪造函数。经理看到匹配的行李后,会自动将他们安排在同一个房间。
- 如果经理因业务繁忙而增加房间(自动扩缩容): 小 thief 会制造大规模的虚假请求爆发。这会迫使经理快速开启许多新房间。小偷用自己的“客人”淹没系统,以增加其中一个偶然落在受害者房间里的概率。
- 结果: 在测试中,他们成功地诱骗了像 Microsoft Azure 这样的系统以及开源平台,将他们的“攻击者”代码直接放置在“受害者”代码旁边。
第三步:证明
他们不仅仅是猜测;他们证明了这是行得通的。
- 他们在模拟酒店(一个计算机程序)上进行了测试。
- 他们在由50台计算机组成的真实集群上进行了测试。
- 他们在 Microsoft Azure Functions(一个真实的、公开的云服务)上进行了测试。
- 结果: 他们成功地在 Azure 中与受害者实现了同处一地,而实现这一目标的成本不到 25 美元。
修复方案:“双蘸式”调度器(The "Double-Dip" Scheduler)
论文不仅展示了如何入侵,还提供了一把锁。他们提出了一种新的规则给酒店经理,称为 Double-Dip。
- 运作方式:
- 第一次蘸取(First Dip): 当一名客人(函数)到来时,经理首先检查:“这个客人已经在某个房间里了吗?我们能把他放回原处吗?”(这保持了速度和效率)。
- 第二次蘸取(Second Dip): 如果没有适合他的房间,经理会寻找一个拥有最少不同类型客人的房间。(这保持了效率)。
- 目标: 这确保了如果新客人进入,他们不太可能与陌生人混杂在一起。这创造了一种“软隔离”。它不是一道完美的墙(不像专门的私人住宅),但它让小偷更难猜到受害者躲在哪里。
核心结论
- 威胁: 无服务器云非常高效,但其高效性(将相似的事物聚集在一起)为攻击者创造了一个后门,让他们可以悄悄靠近受害者。
- 现实情况: 攻击者不需要超能力;他们只需要理解云的调度规则,并发送正确的“测试信息”来利用这些规则。
- 防御措施: 云提供商需要改变他们的调度算法,使其变得更具随机性和不可预测性,从而确保陌生人不会意外地挤在同一个房间里。
重要提示: 论文强调,这项研究关注的是调度(房间分配)。它实际上并不直接窃取数据;它只是证明了“房间分配”是可以被操纵的,从而为未来的数据窃取搭建舞台。作者已向微软警告了此事,微软也表示他们已经部署了其他防御措施,但调度漏洞本身仍然是一个现实存在的问题。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。