最近,优步被一个 18 岁的年轻人完全控制了。 Simon Sharwood 的Uber 因云系统似乎被劫持的“安全事件”而卷土重来,提供了一些初步细节:
不过,从泄露到 Twitter 上的屏幕截图来看,入侵者已经入侵了 Uber 的 AWS 云账户及其管理级别的资源;获得对公司 Slack 工作区及其使用超过 1PB 存储空间的 Google G Suite 帐户的管理员控制权;控制 Uber 的 VMware vSphere 部署和虚拟机;访问内部财务数据,例如公司开支;和更多。
特别是:
甚至这家美国巨头的HackerOne漏洞赏金账户似乎也遭到了入侵,我们注意到现在已经关闭。
根据VX Underground的恶意软件图书馆员的说法,入侵者正在使用被劫持的 H1 帐户发布有关赏金提交的更新,以吹嘘他们的 pwnage 程度,声称他们在乘车应用程序业务中拥有各种超级用户访问权限。
这也意味着入侵者可以访问并且据说已经下载了 Uber 的安全漏洞报告。
因此,该事件的结果之一是“不负责任地披露”了 Uber 知道并且可能最终会修复的一系列漏洞。近年来,“负责任的披露”政策对整体网络安全进行了重大改进,但开发和部署修复程序需要时间。为了使负责任的披露有效,漏洞必须在发生这种情况时保密。
Stewart Baker 在Rethinking Responsible Disclosure for Cryptocurrency Security中指出,这些政策很难应用于加密货币系统。下面我讨论细节。
贝克总结“负责任的披露” :
曾经有一段时间,软件生产商将独立的安全研究视为不道德的,甚至可能是非法的。但是,由于生产者和研究人员就“负责任的披露”规则达成了粗略的协议,那些日子已经一去不复返了。根据这些规则,研究人员会“负责任地”披露他们发现的漏洞——也就是说,只向公司披露,并及时在黑帽黑客发现和利用漏洞之前悄悄地开发补丁。负责任的披露和修补极大地提高了计算机系统的安全性,这就是为什么大多数软件公司现在向发现并报告其产品中的安全漏洞的研究人员提供巨额“奖金”。
这并没有真正带来网络安全的黄金时代,但如果没有负责任的披露所带来的持续改进,我们的情况会更糟。
贝克确定了加密货币的两个基本问题:
首先,许多客户与保护其资金的硬件和软件提供商没有持续的关系——他们也没有定期更新安全性的动机。转向新的安全提供商或使用更新的软件会产生风险;让一切保持原样感觉更安全。所以用户不会急于支付和安装新的安全补丁。
用户还被网络钓鱼帐户和其他涉及更新或安装软件的骗局所淹没,因此对“立即修补”消息持怀疑态度是有道理的。事实上,大多数用户甚至没有尝试直接使用加密货币,而是依赖于交易所。因此,他们的安全取决于他们交换的安全。交易所有着糟糕的安全历史,可以追溯到八年前的Mt. Gox及更远的地方。使用加密货币的勇敢者直接依赖于他们的钱包软件的安全性,而钱包软件的安全性也有很长的漏洞历史。
接下来,贝克指出去中心化的意识形态是一个问题:
这意味着负责硬件或软件安全的公司可能无法确定谁使用了其产品,或者无法将补丁提供给这些用户。这也意味着许多存在安全漏洞的钱包将可以公开访问,仅受精心设计的密码保护。一旦漏洞的消息泄露,任何人都可以对密码进行逆向工程,合法所有者可能会发现自己正在竞相抢在窃贼之前转移他们的资产。
Molly White 记录了最近在虚钱包生成器中发现的漏洞中的两个问题的示例,这使数百万美元处于危险之中:
1inch Network 披露了他们的一些贡献者在 Profanity 中发现的一个漏洞,Profanity 是一种用于创建以太坊用户“虚荣”钱包地址的工具。尽管大多数钱包地址看起来相当随机,但有些人使用虚荣地址生成器登陆钱包地址,如 0xdeadbeef52aa79d383fd61266eaa68609b39038e(以 deadbeef 开头),……但是,由于亵渎工具生成地址的方式,研究人员发现它是相当容易逆转用于查找密钥的蛮力方法,允许黑客发现使用此方法创建的钱包的私钥。
攻击者已经在利用该漏洞,其中一个从各种虚荣地址中掏空了 330 万美元。 1inch 在他们的博客文章中写道:“这不是一项简单的任务,但目前看来,数千万美元的加密货币可能会被盗,甚至数亿美元。”
由于该漏洞,Profanity 工具的维护者从 Github 中删除了代码。有人在 1 月份对这种利用的可能性提出了担忧,但由于该工具没有得到积极维护,因此没有得到解决。
实际上值得注意的是,从发现潜在漏洞到利用它需要七个月的时间。正如怀特在Wintermute 中以 1.6 亿美元报道的那样,这些攻击仍在继续:
Wintermute 没有透露更多关于这次攻击的信息,但黑客可能利用了五天前披露的虚钱包地址生成器 Profanity 中的漏洞。加密资产保险库管理员有一个前缀为 0x0000000 的钱包地址,这是一个虚地址,如果使用亵渎工具创建,该地址很容易受到攻击。
但一切都很好,因为首席执行官说公司“有偿付能力,剩余股本是该数额的两倍” 。显然,将三分之一的资产输给小偷在加密领域没什么大不了的。
Baker 将此类漏洞的快速利用描述为“几乎可以保证”,因为可以立即获得经济回报,并提供了上个月的另外两个示例:
一方面,黑客从 Nomad 那里拿走了近 2 亿美元,Nomad 是一个用于转换和转移加密货币的区块链“桥梁”。一位用户开始利用 Nomad 智能合约代码中的一个缺陷。这使其他人倾向于利用。很快,一场喂食狂潮爆发,迅速耗尽了所有可用资金。在另一起事件中,加密货币平台 Solana 看到黑客从近 8,000 个钱包中盗取了数百万美元,可能是通过损害其种子短语的安全性,从而获得了对钱包的控制权。
贝克总结:
总之,这些问题使得负责任的披露在很大程度上变得不可行。悄悄地填补安全漏洞几乎是不可能的。相反,当任何补丁在被广泛部署之前被发布并在疯狂的掠夺中被利用时,它都可能被逆向工程。 (这不是一个新的观察;2020 年ACM 文章中指出了这个问题,值得更多关注。)
如果我是对的,这是加密货币安全性的一个根本缺陷。这意味着黑客和大规模盗窃将是地方性的,无论该行业在安全方面多么努力,因为用于解决新安全漏洞的负责任的披露模型根本行不通。
Böhme等人图 2 |
Baker 引用的 2020 年论文是 Rainer Böhme、Lisa Eckey、Tyler Moore、Neha Narula、Tim Ruffing 和 Aviv Zohar在加密货币中负责任的漏洞披露。作者如此描述漏洞的普遍性:
加密货币领域本身就是一个虚拟的“狂野西部”,产生了无数的协议,每个协议都面临着很高的错误风险。项目依赖于具有深度加密工具的复杂分布式系统,通常采用未经广泛审查的研究前沿协议。它们是由具有不同能力水平的个人(从热情的业余爱好者到有资质的专家)开发的,其中一些人以前没有开发或管理过生产质量的软件。该领域的项目和公司之间的激烈竞争刺激了快速发展,这通常会促使开发人员跳过保护其代码库所需的重要步骤。应用程序很复杂,因为它们需要多个软件组件(例如,钱包、交易所、矿池)之间的交互。漏洞的高流行因它们如此容易货币化而加剧。由于市值通常以数十亿美元计,窃取硬币的利用同时对网络犯罪分子有利可图,并对用户和其他利益相关者造成损害。加密货币的另一个重要方面是用户的隐私,他们的交易数据可能会在他们交易的区块链系统中的共享分类账上查看。一些加密货币采用先进的加密技术来保护用户隐私,但它们增加的复杂性通常会引入威胁此类保护的新缺陷。
Böhme等人描述了普通软件和加密货币的披露和修补过程之间的两个根本区别。一、协调:
加密货币的去中心化特性必须不断就有效交易的单一历史达成全系统共识,这需要生态系统的绝大多数成员之间进行协调。虽然个人可以单方面决定是否以及如何将补丁应用到她的客户端软件,但安全激活一个改变验证交易规则的补丁需要绝大多数系统客户端的参与。如果缺乏协调,应用补丁的用户可能会被未打补丁的大多数人忽略他们的交易。
因此,诸如实施哪种协议或如何修复漏洞等设计决策必须得到大多数利益相关者的支持才能生效。然而,没有开发人员或维护人员自然而然地担任协调错误修复的角色,更不用说命令授权发布违反其他参与者意愿的更新了。相反,定义松散的维护者组通常非正式地承担这个角色。
与在开源社区中经常观察到的“创造性”竞争(例如,Emacs 与 vi)不同,加密货币项目之间的竞争通常是敌对的,这一事实加剧了这种协调挑战。据推测,这可以通过与支持者的金融财富的直接和可衡量的联系以及硬币之间通常较小的技术差异来解释。后者是广泛的代码重用的结果,这使披露者处于决定在许多竞争项目中负责任地通知哪个的微妙位置。由于缺乏正式定义的角色和职责,通常很难确定在每个项目中通知谁。此外,即使进行了披露,也不能假设接收方会采取负责任的行动:据报道,有关漏洞的信息已被用于攻击竞争项目、影响投资者,甚至可能被维护者用来攻击他们自己的用户。
二是争议,其中:
源于“代码就是法律”的广泛设计目标,即使代码成为共享系统状态的最终权威,以避免(可能是错误的)人为干预。对于支持者来说,这种方法应该消除意图的歧义,但它本质上假设代码没有错误。当不可避免地发现错误时,修复它们(或不修复)几乎可以保证至少有人会对解决方案不满意。 …此外,可能会出现无法在不丢失系统状态的情况下修复错误的情况,这可能导致用户账户余额的丢失,从而导致他们的硬币丢失。例如,如果发现允许任何人从发布在区块链上的数据中有效计算私钥的弱点,恢复就变成了迁移到新密钥的竞赛,因为系统不再能够区分授权用户和攻击者。这是在没有任何安全网的情况下构建密码系统的特别有害的后果。大多数商业密码学应用采用但在加密货币中被拒绝的更安全的方法是让第三方负责重置凭证或暂停使用已知的弱凭证。
我在The $65B Prize中讨论了即将到来的“有效计算私钥”的能力。
Böhme等人继续详细介绍了加密货币漏洞被利用的七个事件。在某些情况下,披露是公开的,并且开发速度很快,在其他情况下,开发人员会被私下通知。比特币中的一对漏洞提供了一个例子:
一位来自比特币现金的开发者匿名向比特币(和其他项目)披露了一个漏洞。在比特币现金分裂之前,比特币代码库中的效率优化错误地放弃了必要的检查。实际上有两个问题:拒绝服务漏洞和潜在的金钱创造。它被传播到多种加密货币中并在那里存在了近两年,但从未在比特币中被利用。 … 比特币开发人员首先通知控制比特币大部分哈希率的矿工拒绝服务漏洞,确保他们已经升级,以便在比特币开发邮件列表上公开披露之前,这两个漏洞都不能被利用。在网络升级之前,他们没有通知任何人通货膨胀错误。
作者总结了一系列有价值的建议,以改善对漏洞的响应,贝克也这样做了。但它们都取决于是否存在可以向其披露漏洞以及能够做出适当响应的受信任方。在一个真正去中心化、去信任的系统中,这样的各方是不可能存在的。这些建议都没有解决根本问题,在我看来,这是:
- 加密货币应该是去中心化和去信任的。
- 与所有软件一样,它们的实现也存在漏洞。
- 在发现漏洞和为大多数网络节点部署修复程序之间会有延迟。
- 如果在此延迟期间,不良行为者发现了该漏洞,它将被利用。
- 因此,如果该漏洞不被利用,它的知识必须仅限于能够确保升级而不透露其真实目的(即漏洞)的受信任的开发人员。这违反了去信任和去中心化的目标。
在带有治理代币的可升级“智能合约”的情况下,这个问题尤其严重。为了修补漏洞,治理代币的持有者必须投票。这个过程:
- 要求公开披露补丁的原因。
- 不可能是瞬时的。
如果加密货币不是去中心化和去信任的,那么它们的意义何在?用户只是简单地从信任由法律体系支持的可见、受监管、负责任的机构转变为与法律体系有效交战的不可见、不受监管、不负责任的各方。为什么这是一个改进?
原文: https://blog.dshr.org/2022/09/responsible-disclosure-policies.html