注册 livepatch 账户有何安全隐患?

注册 livepatch 账户有何安全隐患?

如果有帮助的话,尝试分解成具体的问题:

  1. 这是否意味着如果有人猜到了您的密码,他们就可以干扰您的更新或实时补丁?
  2. 在 livepatch 期间是否有依赖于此帐户的附加身份验证过程?如果是,为什么?

话虽如此,很高兴看到对该产品的这种投资!

答案1

在任何地方使用任何服务开设账户只有在以下情况下才会产生安全隐患:

  • 重复使用登录名/密码
  • 使用容易猜到的密码
  • 不要保护你的密码重置(例如从不更改你的主要电子邮件帐户的密码)
  • 共享密码
  • ...

除了基本的账户安全之外:

否,开设帐户进行实时修补不会带来任何额外风险。

另一方面:你真的需要它吗,因为它对于需要 24/7/365 全天候可用的服务器来说非常棒,但对于你的笔记本电脑/个人电脑来说呢??? 我个人认为并非如此,完全是主观观点

答案2

与一些天真的非黑即白的观点相反,无论如何,即使您所做的一切都正确无误,使用任何此类服务都可能给您带来安全问题。

但首先需要说明的是:我不是该产品的用户,因此我只能根据我所读到的内容提供个人评估。

总结:安全隐患在于您允许第三方直接更新您的系统而无需您采取任何行动,因此您依赖它正确、安全地完成其工作,同时也依赖您和该提供商之间的整个网络路径具有良好的安全性(这会影响不同的级别,从由于 BGP 劫持而导致的 IP,到可能出现的 DNS 解析和 X.509 证书)。

内核实时修补概述

首先,重要的是要了解“实时修补”是最新 Linux 内核的一个功能,具有多种实现。这也意味着您可以自己从中获益,而无需依赖任何第三方(您可以在此处看到一个示例:http://chrisarges.net/2015/09/21/livepatch-on-ubuntu.html)。这当然不简单,因为你必须掌握技术,定义需要修补什么优点以及可以修补什么或不可以修补什么,然后创建补丁,然后应用它们,等等。

第三方,比如这里的 Canonical,目前只是打包了所有的体验,因此这是一个成本/收益的评估,成本不仅仅是金钱部分(例如,如果你免费使用他们的服务,你可能会被用作金丝雀测试员,请参阅“问:Canonical 如何测试实时补丁?”http://blog.dustinkirkland.com/2016/10/canonical-livepatch.html其中有“它是在金丝雀测试的基础上推出的,首先针对一小部分使用 Canonical Livepatch 服务的 Ubuntu 社区用户。”和“如果使用 Canonical Livepatch 服务的 Ubuntu 社区用户想要消除被随机选为金丝雀的微小机会,则应加入 Ubuntu Advantage 计划(起价为每月 12 美元)。”)

然而,我会提供这个适用于许多实际上没有特定集中理由的“集中式”技术的通用声明:如果能同时拥有一个架构,可以轻松地进行实时补丁,而不管补丁来自何处,并且与上述内容分开,为用户/客户提供一种方法,使他们能够轻松选择补丁来源,即他们信任的提供商,其中可以包括商业和免费解决方案,但可以选择(例如,一些提供商可能对修补的内容有更严格的限制,而其他提供商则具有更广泛的范围,等等)。

让用户能够决定给予什么信任以及信任给谁,这是许多设置中缺少的。

在这里,您完全依赖 Canonical 来正确完成其工作。这是一个信任问题,但您几乎总是没有任何来自外部的有用指标来表明您可以给予的信任程度。您可以决定仅根据公司的名称或规模来信任它,但您会很容易地找到大公司的反例,无论是根据名称还是规模,这些大公司都会故意做傻事,但不会以某种方式失败。这并不意味着您或我不应该信任这个特定的提供商,这只是一种普遍的姿态,要么相信每个人在被证明有罪之前都是无辜的,要么完全相反(当然,证明“没有问题/错误/安全漏洞”之类的负面事情是不可能的,所以你只能接受妥协)

因为您的安全不仅仅取决于您的行为,也取决于您是否选择了好的密码,而没有在任何地方重复使用它。您可以应用所有最好的安全准则来维护您的凭证,但在您背后,提供商可能会做一些愚蠢的事情,比如以纯文本或 MD5 格式存储它。或者在没有 HTTPS 的情况下交换它。或者一百万个其他问题。

关于提供自动更新

使用这样的服务就好比让你的系统自动更新,无需你干预。这既有好处也有坏处,所以必须进行风险评估。

近期有例子可以说明此类案件如今可能出现的问题:

  1. 由于一些签名失败,Mozilla 阻止了 Firefox 扩展和更新(https://blog.mozilla.org/addons/2019/05/04/update-regarding-add-ons-in-firefox/);这基本上是一种反向通用 DOS 攻击,由于一个地方(Mozilla 服务器)发生单一故障,所有使用它们的人都会受到负面影响。这与内核实时修补非常相似:您的浏览器有扩展,可以将它们设置为自动更新;但如果机制失败,不幸的是,它甚至会阻止扩展运行,这甚至不仅仅是一个更新问题
  2. 华硕的更新基础设施遭到盗版者的入侵,盗版者利用其向客户发送恶意软件(https://arstechnica.com/information-technology/2019/05/asus-cloud-service-abused-to-install-backdoor-on-pcs/
  3. 通过 BGP 劫持,攻击者能够将流量转移到一个处理加密货币的知名网站,然后让人们在被重定向到其他地方时损失部分投资组合。这是myetherwallet.com2018 年的故事:https://www.psychz.net/client/blog/en/theft-of-cryptocurrency-of-myetherwallet-users-by-bgp-hijack--.html 顺便提一下,犯罪分子甚至懒得使用除了自我认证之外的任何其他手段,因为人们似乎并不关心当时显示的警告,或者操作是通过自动化软件进行的,而这些软件往往是错误构建的,无法正确检查远程证书,也无法对那些未经已知 CA 验证的证书采取正确的行动
  4. 最近的“DNSpionnage”事件(https://krebsonsecurity.com/2019/02/a-deep-dive-on-the-recent-widespread-dns-hijacking-attacks/) 是之前案例的演变,其中结合了 BGP 劫持、密码被盗以及为 TLS 通信自动创建新的 DV X.509 证书,这甚至能够阻止配置为仅允许来自已知 CA 的证书的最佳软件。

上面的列表显示了截然不同的情况:

  1. 是被自身架构打败的提供商:过期的证书会导致其下方的整个子链无效,这是设计使然
  2. 供应商是否发现其架构被一些攻击者从内部滥用
  3. 是一个未直接受到攻击的网站,因为犯罪分子能够劫持该网站“下方”的资源(IP 地址),使流量流向他们而不是真正的网站(这意味着,尽管该网站是或可能是安全和完美的,但在这个级别上没有任何东西可以阻止这次攻击)
  4. 是对多个系统的大规模攻击,包括人类在软件中遇到证书变更或不匹配的错误,并且还在进一步攻击

理论上,Canonical LivePatch 系统与其他系统一样,可能遭受上述列表所列出的相同类型的攻击,当然也可能遭受其他攻击。

Canonical LivePatch 系统

从在线文档来看,一旦您启动特定snap服务并生成令牌,您就无需再做任何事情,更新(内核补丁)将自动进入您的系统并应用。

在任何情况下,阅读细则总是有用的,这里的服务条款https://ubuntu.com/legal/livepatch-terms-of-service 您可以在其中找到关于按原样提供的服务且不提供任何担保的标准语句,并且在结尾处“否则,Canonical 在合同、侵权或其他任何索赔方面的总责任限于 10 英镑。”

据我所知,必须拥有帐户才能跟踪您如何使用系统(因为有 3 台服务器的免费优惠),但登录并不允许专门“推送”某些更新。人们可能会猜测/推测,在“商业”设置中,这种访问权限可以允许查看相关服务器列表,远程了解其实时补丁状态(具有仪表板),并可能限制/暂停/强制某些实时补丁。

事实上,根本不是一个理论,它确切地写在数据表中https://assets.ubuntu.com/v1/ef19ede0-Datasheet_Livepatch_AW_Web_30.07.18.pdf

On-prem 服务为您提供了 Canonical Livepatch 的所有优势,但可以完全控制补丁的推出,并更轻松地跟踪已注册机器的状态。On-prem 服务以站点范围的订阅形式提供,最初由 Canonical 部署到您选择的云上。

本地实时补丁服务允许您定义推出策略,并完全控制哪些机器将得到更新以及何时更新。为了使您的机器保持最新状态,本地服务会定期与 Canonical 实时补丁同步并获取最新补丁。但是,本地服务器允许您设置分阶段发布的策略,并将新补丁应用于数据中心内受控的机器子集,并在验证后,根据需要在尽可能多的阶段将补丁应用于更广泛的机器集。

(但我不清楚身份验证部分是如何处理的,它是否仍然在本地实例内部,或者它是否仍然由 Canonical 进行全局管理)

对于你的问题:

这是否意味着如果有人猜到了您的密码,他们就可以干扰您的更新或实时补丁?

答案是是的如果你考虑到所有可能的用例。

另一件需要考虑的事情是,客户端(canonical-livepatch snap)是专有的,因此没有源代码可用。因此,即使你想研究它,你也不知道这段代码到底是干什么的。你可能需要安装代理并干预 TLS 握手和 DNS 记录,以捕获双向传输的数据。

你至少可以祝贺他们的诚实http://blog.dustinkirkland.com/2016/10/canonical-livepatch.html从技术上来说,它就在这里:

问:Livepatching 不是一个大型的 rootkit 吗?

答:Canonical Livepatches 会注入内核模块来替换正在运行的内核中的二进制代码部分。这需要 CAP_SYS_MODULE 功能。这是将任何模块 modprobe 到 Linux 内核所必需的。如果您已经拥有该功能(默认情况下,Ubuntu 上的 root 拥有该功能),那么您已经能够任意修改内核,无论是否使用 Canonical Livepatches。

安全启动

顺便提一下https://wiki.ubuntu.com/Kernel/Livepatch这部分:

为什么 Livepatch 无法在我的计算机上运行?

安全启动

如果您使用安全启动,您还需要将 livepatch 公钥导入到您的密钥环中。

[...]

之后,如果需要,请输入 MOK 密码,然后重新启动。然后,您的 BIOS 将指导您在 MOK 中注册新密钥。此时,您将能够验证模块签名。

我不是安全启动方面的专家,也不清楚添加此类密钥的具体后果,但我认为对该技术及其风险的全面评估需要审查其中的这一部分。

身份验证过程

你的问题是

在 livepatch 期间是否有依赖于此帐户的附加身份验证过程?如果是,为什么?

当您启动服务和进程实例时,您需要提供一个“令牌”。这显然与您的帐户绑定,但这是您系统上唯一可配置的部分,snaplivepatch 守护程序使用它与其服务器进行通信。

该网站上的另一个问题也与此相关:哪些数据会被传输至 Canonical 进行实时补丁?

我们了解到专有软件交换了大量的数据,这对于实时修补(例如:当前正常运行时间)在技术上不是必需的,但却是 Canonical 服务的一部分。

但是没有关于基于给定令牌的身份验证如何工作的信息。它是按原样交换的还是从中派生出其他加密材料?交换是在 TLS 流中完成的吗?是否对证书(和主机名匹配)及其有效性进行了适当的检查,包括上游 CA 的时间和签名以及允许哪些 CA?同样,您需要信任(或不信任)提供商本身,因为所有这些没有公开的详细信息。

您可以尝试联系 Canonical 并获取有关您的问题的详细技术答复。如果发生这种情况,这肯定会引起本网站观众的兴趣,但不能保证会发生这种情况。

相关内容