下载本文的 PDF 版本 PDF

玩火自焚

安全威胁会终结通用计算吗?

DANIEL E. GEER,VERDASYS

转折点总是在毫无预警的情况下到来,又迅速消失得遥不可及。我们可能正接近一个转折点。如果真是这样,我们现在就要玩真的了,“我们”指的不仅仅是我们这些安全极客。如果说有什么原因导致转折点似乎正在高速逼近,那正是因为我们这些安全极客尚未创造出必要的奇迹。

我们很多人相信,更多的人也说,复杂性和安全性是相互对立的。这种复杂性与安全性的对立是真实存在的,但并非绝对;然而,它在某种程度上是可以衡量的,而来自前线的消息并不乐观。软件行业销售的产品不会自然磨损,并且在复制时保持完全的保真度——这两个特点,以及其他特点,将数字世界与物理世界区分开来。为了继续从现有客户身上赚钱,软件供应商必须销售升级、维护或两者兼而有之。当产品不稳定或难以使用时,维护最好卖——对维护的需求本身就是对复杂性的承认。新功能,如果要迫使原本满意的用户有效地回购他们已经拥有的产品,往往至少是线性的(10个新功能),如果不是几何级的(10%的新功能)。在不完美的情况下,每个新功能都会带来新的故障模式,而功能有时会相互作用;因此,潜在的故障模式数量很自然地会比功能数量增长得更快。

我们已被警告

正如弗雷德·布鲁克斯在 1975 年撰写《人月神话》时我们已经知道的那样,随着软件产品每个新版本的特性增加,产品增长时,错误查找率最初会下降,然后开始上升,如图 1 所示。

布鲁克斯估计,所有已知错误的修复中有 20% 到 50% 会引入未知的错误。因此,理性地来说,在某个时候,许多错误应该永久保留在原位并充分记录下来,而不是修复。除了不太可能发生、晦涩难懂且特殊的安全漏洞(这些漏洞是故意引入产品中的)之外,安全漏洞仅仅是所有无意漏洞的子集,因此也会随着系统复杂性而增加。困难在于,如果一个安全漏洞被永久保留在原位并充分记录下来,就会在产品及其用户身上画上一个靶心。如果布鲁克斯的猜测是正确的——所有已知错误的修复中有 20% 到 50% 会引入未知的错误——并且如果将安全漏洞留在原位是令人憎恶的,那么人们只能得出结论:1. 未知安全漏洞的分布式存在是数字世界的永久特征;2. 产品越复杂,对于该产品来说就越有可能如此。如果再加上普遍性(如果不是单一文化),你就遇到了一个相当棘手的问题。

很难制造出本身不受滥用的安全产品。事实上,针对安全产品的攻击似乎比针对所有软件产品的总体攻击增长得更快,因此,从统计学角度来看,安全产品作为攻击目标被过度代表。这并不奇怪:每个黑手党首领都会首先试图招募竞争对手的保镖,然后再试图绕过他;我们最害怕的疾病是那些通过控制而非逃避我们的免疫系统来击败我们的疾病;为了让你成为一名自杀式炸弹袭击者,我只需在你没注意的时候把你的后备箱装满炸药即可。

例如,安全产品似乎是为 DoS(拒绝服务)攻击量身定制的。你的策略是在短时间内三次登录失败后禁用帐户?很好,我将对你的每个用户进行登录失败操作(而且你越大,就越容易找到真实用户名)。为了击败猜测攻击,你采用了计算成本高昂的授权测试?很好,无论你做出 NOGO 决策的计算成本是多少,都是我可以随意强加给你的成本;如果我发起授权的成本低于你拒绝授权的成本,我们就有了 DoS 由此产生的不对称性。

为了制造出每个人都想运行(并且每个人都能运行)的产品,该产品必须被“傻瓜化”。这当然是一种不具体的侮辱,但“傻瓜化”产品一直是大众市场的必要条件。软件产品尤其如此,因为它们的复杂性增长速度远远快于用户的智力增长速度。摩尔定律使我们的计算强度每 18 个月翻一番,但没有用户的思维速度每 18 个月翻一番。

不可抗拒的力量

在互联网时代,消费设备很大一部分感知价值来自它们的连接便捷性。将所有事物与所有事物连接起来只会继续下去;实验室使其成为可能。摩尔定律使每 18 个月每美元的 CPU 性能翻一番,但存储每 12 个月翻一番,带宽更快,可能每 9 个月翻一番。这表明,从经济角度来看,最佳电子设备(包括计算机)随着时间的推移,朝着更多数据更频繁地移动的方向发展。如果 18:12:9 的比例相当准确,并且持续十年,你将获得两个数量级的 CPU 性能,但存储增加三个数量级,带宽增加四个数量级。如果我们保持计算机设计不变,那么十年的增长将使 CPU 前的数据量达到今天的 10 倍,但这些数据同时在总体上移动性也提高了 10 倍。例如,Verizon FiOS 光纤宽带服务是对未来数据更丰富但数据移动性更强的未来的一种地面验证。

如果这种对数据丰富、数据移动性强的未来的预测是正确的,那么你不必成为一名专业的偏执狂也能想象到,数据取代 CPU 成为通过速度更快的网络发起的攻击的主要焦点。也许情况已经是这样了,因为丢失一台笔记本电脑更换的财务成本很小,但它包含的数据既不是微不足道的,也不仅仅是财务方面的。使这成为一个转折点的原因本身就是数字世界和物理世界之间差异的一个例证:被盗数据使源完全可操作;你不会立即注意到它丢失了(就像你从车道上偷走一辆汽车一样),但只有当数据以对你可见的方式使用时,你才会发现数据被盗了。这里没有排斥原则(如果我拥有你的汽车,你就没有了;但如果我拥有你的数据,你也有)。

所以这就是我们来这里的原因?

让我们回顾一下:复杂性上升是因为软件供应商的自身利益需要它。实验室的量级进步使计算机和类计算机设备越来越容易被越来越多的人使用。(人的)技能与(计算机)马力的比率正在迅速下降,而且不会下降得更慢。随着硬件价格的下降,数据占据了大部分价值。当银行是金钱所在的地方时,小偷抢劫银行;现在他们抢劫数据,如果他们不这样做,那才令人惊讶。正如每个营销人员和每个情报官员都知道的那样,数据融合增加了你所拥有数据的值。我们的对手在这方面也很聪明。

有人可能会说公众不知道这一切有多么脆弱,但这种天真无邪的状态正在以某种方式消逝。公众越感到无助,就越想受到保护。事实上,这是本文的中心主题——公众感到无助,而感到无助会抑制主动性。这不仅适用于我们在此谈论的内容。

狂欢结束了

当攻击者承担极少甚至没有任何风险来发起攻击时,他们会肆无忌惮地攻击。当攻击者可以使用自动化时,他们会充满活力地攻击。当攻击者的基本运营成本仅为防御者基本运营成本的一小部分时,攻击者就可以赢得军备竞赛。当攻击者可以在没有任何警告信号的情况下发起攻击时,防御者必须始终保持高度警惕。所有这些都可以在数字领域获得,当这种情况发生时,唯一的策略就是最坏情况下的先发制人。这在恐怖主义世界中是如此,但在数字世界中更是如此。

先发制人需要情报,情报需要监控,而监控需要不依赖于被监控者的意愿或意识的机制。公众要求获得他们感到自己无法实现的保护。公众,至少在美国,已经习惯了所有不良结果都是可以追究责任的人的过错的想法。公众在原则上是错误的(照顾好自己),但在实践中是正确的(将风险分配给最有能力阻止风险的人)。这些力量共同促成了将监控责任放在上游端,将保护责任(和责任)分配给那些拥有最多资源的人,而不管这是否公平。

我们以前做过这件事——1968 年《贷款真实法案》的 Z 条例规定,消费者因信用卡滥用而遭受的最大损失为 50 美元。消费者可能是个白痴,但损失不会超过 50 美元。事实上,这样的限制并没有鼓励消费者自我保护——恰恰相反(1968 年的 50 美元相当于今天的 275 美元)。不,如果要进行先发制人,它所需的情报将基于分配给各种“财力雄厚的”机构的监控责任。换句话说,对策对风险的敏感度不是风险自然存在的地方,而是风险被分配的地方。注意副作用,我们来了。

如果未来持有更多数据,并且这些数据既更具移动性又是唯一真正的价值存储,那么我们最终将迎来格蕾丝·穆雷·霍珀 1987 年的预测

“总有一天,在公司的资产负债表上,将会有一个条目写着‘信息’;因为在大多数情况下,信息比处理信息的硬件更有价值。”

如果你认为数据与资产负债表无关,请计算一下一家纯信息公司的清算价值——例如,费埃哲公司。如果我们要监控某物以保护资产(数据价值),那么我们必须选择一个观察单位。这可能是唯一悬而未决的问题:观察单位是一个数据项还是观察单位是一个人?我们是构建基础设施来监控数据还是监控人?我们已经有了一些方面的部署;通常被称为 DRM(数字版权管理)的东西有点像监控数据,但受到数据驻留在不安全位置的阻碍。

更重要的是,美国每个携带手机的人都受到监控,这是紧急(911)服务 imposed 的即时定位要求。那么,我们想要什么作为监控单位?请记住将来自一个监控系统的数据与另一个监控系统的数据融合的力量,在回答之前请仔细考虑。考虑一下你是否想要监控。考虑一下你愿意为安全或坦率地说,为那种似乎与安全感同义的麻木感付出什么代价。我的家人自然已经厌倦了我和这个问题,但一位应该更了解情况的人说:“隐私对我来说并不重要。我过着美好的生活。我没有什么可隐瞒的。”

但这并不是要抨击隐私,尽管“监控”一词可能暗示了这一点。这是一个关于计算未来走向的问题。这是我真正要问的问题:如果,奇迹般地,我的朋友和邻居们认为,如果不进行他们无法知情接受的监控,他们想要的安全就无法获得,那该怎么办?

我想他们可以接受他们不知道的监控(“只要让我安全就好,但不要告诉我”)。我想他们可以决定在某种程度上放弃互联网——毕竟,在现实世界中,没有人想住在每个反社会者都是你隔壁邻居的城镇里。我想他们可以拒绝购买带有 GPS 的手机,并且只在想打电话时才插入电池。但我对此表示怀疑。

你们太与众不同了,无关紧要

我们这些身处极客世界的人,那些真正觉得阅读 Queue 是一件乐事的人,现在和将来都将是少数派。我们这些人永远都不够多,无法让我们所知道的那些事情成为“常识”的一部分。我们不能以自己为社会楷模,尽管在我的声音所及之处,几乎每个人都肯定是其大家庭的系统管理员,但我们可能掌握其他人想要什么。至少,几乎没有既重要又任何一个人都能完全理解到位的软件产品,至少没有对公众重要的软件产品。当然,我的同事 Hobbit 知道 ncat,因为他编写了它,但谁能向街上的那个人解释它的用途?安德森可能在某个时候理解了 Mosaic,古特曼了解 cryptlib,丁格尔丁了解 tor,但卡特勒还了解多少 Windows?Linux 和托瓦尔兹呢?我为什么要说这些?

我们软件行业称之为进步的雪球般的复杂性正在产生越来越微妙的缺陷。它不可能不这样做。它也不会不这样做。这是物理规律,而不是人为失误。当然,按代码单位体积计算,情况可能会越来越好。但是,你每单位时间或花费 X 美元可以运行的代码量正在以几何级数增长。因此,为了保持风险不变,我们软件的优点必须以几何级数增长才能保持平衡。“红皇后”是对的:你必须跑得越来越快才能留在原地。这在竞争方面是如此,在安全方面也是如此:赛门铁克的《互联网威胁报告》显示漏洞检测率正在上升(见图 2)。

在盯着图 2 中的图表时,请记住,在同一时期,每个软件供应商都在大幅增加支出以避免漏洞——但曲线仍然上升。显然,我们跑得不够快,因为我们没有停留在原地。企业知道这一点。对于某些企业来说,这甚至是一个崇高的目标;任何银行曾经发给我的最令人生畏的 RFP 都不过如此

  1. 来对我们做最坏的事情。
  2. 用数字告诉我们,我们有多安全。
  3. 从那时起,向我们发送工程变更单,使我们始终处于恒定的风险之中。

坦率地说,我夹着尾巴溜走了。

走向何方

那么重点是什么?复杂性与安全性问题的唯一替代方案是使计算不那么通用,通过创建专用设备来消除复杂性。美国企业正在努力做到这一点:每个锁定脚本、每个标准构建、每个默认关闭的功能都是通过降低通用性来减少攻击面的一种尝试。通用性是复杂性所在的地方,正如 Perl 的信条——总有另一种方法——是为什么 Perl 的正确性只能是“它工作了吗?”(Perl 黑客们,这不是在说你们。)这就是推动“虚拟化”趋势的原因。

虚拟化通过用专用设备取代通用计算机来降低复杂性风险。如果动量 = 质量 x 速度 (p = mv),那么虚拟化已经具有很大的势头,而且还会变得更大。微软在这个方向上已经全力以赴;这就是它收购 Connectix 的原因。纽约的几家所谓的 大型银行正在改造其交易大厅,以便桌面只有显示器,你在那里看到的每个应用程序实际上都是一个专用设备,因为它在远程冗余数据中心的大型主机上的某个虚拟机中单独运行。高德纳现在预言,Vista 将是雷德蒙德生产的最后一款通用操作系统(如果高德纳这么说,那么每个 CIO 都可以正式这么说)。

“专用设备策略”规避了日益复杂的通用计算机无法逃脱的不安全性。无论是副作用还是目的,快速重启的小型虚拟机还可以通过使恢复时间接近于零来为你带来高可用性。正如你可能已经知道的那样

Availability = MTBF/(MTBF + MTTR) 

因此,当 MTBF(平均故障间隔时间)为无穷大或 MTTR(平均恢复时间)为零时,可用性为 100%。这些银行在避免故障方面花费了十位数美元,他们已决定不再在 MTBF 上花费更多资金,而是专注于 MTTR。他们将为一个虚拟机专门用于一项任务,并且他们将获得他们需要的快速恢复。其他人很可能会效仿他们,但对于那些效仿者来说,这种改变将是一种滞后效应——一旦虚拟化站稳脚跟,就不会再回到单体式通用操作系统。要回到过去,他们将不得不——作为一个整体——重新吸收他们留下的所有复杂性。困扰当今互联网连接操作系统的复杂性(和不安全性)就像青蛙——它必须被逐渐煮沸。

但监控仍然是一个明确的选择,而且,如果说有什么的话,它背后有更大的势头——特别是如果你考虑到物理安全领域正在发生的事情,我们数字安全领域的人员据说是与物理安全领域“融合”的。正如 20 世纪 90 年代商业世界在密码学应用方面几乎完全赶上军事世界一样,在这个十年里,我们在流量分析方面赶上了他们。入侵检测系统、防火墙、策略管理器、电子邮件和 URL 过滤器、设备驱动程序代码注入以及更多(免责声明:我自己的公司也参与其中)都是广义流量分析的示例。与虚拟化不同,监控是现有事物之上的分层产品。监控表明,监控者将保护那些无法保护自己的事物,而公众绝对希望受到保护。

你的时间快到了

阅读 Queue 的人不是那些做出这些决定的人。首先,这些决定不是在一个地方做出的。而且,在任何情况下,当我们将不安全的媒介交给每个人时,我们都没有做真正重要的两件事中的任何一件:1. 提供安全保障,或 2. 获得知情同意。(我说这话是作为一个相信你照顾好自己的人,这是对第 2 项的重申。)我可能过于乐观了;这可能不是(a)通用计算机的终结与(b)监控世界之间的选择。它可能不是(a)或(b),而是(c):以上所有。

至少让我们了解我们所处的位置。我们数字精英为世界提供了快速、免费、开放的传输,任何人都可以向任何人传输,并且我们向他们提供了一种通用设备,它具有如此多的复杂性层级,以至于没有人能够完全理解它。因为“你只能靠自己”在政治上行不通,所以必须做出改变。由于你无需阻止传输即可对其进行监控,并且由于计算机中的通用功能对于绝大多数使用它们的人来说是多余的,因此保护的受益者可能会认为监控和专用设备是对风险和复杂性的改进。从他们的角度来看,这是真实且正常的。

虽然 Queue 的读者可能很清楚,离心点火提前和手动变速杆使驾驶更加真实,但试着向大众市场推销它。通用计算机必须消亡,否则我们必须将一切置于监控之下。这两种选择都很糟糕,但“以上所有”对像我这样的人、像你这样的人、像我们这样的人来说将是彻底的失败。我们现在是在玩真的了。

DANIEL E. GEER, Jr., Sc.D. 是 Verdasys, Inc. 的副总裁兼首席科学家。他的职业生涯亮点包括 X Window 系统和 Kerberos (1988 年)、华尔街第一家信息安全咨询公司 (1992 年)、第一届电子商务学术会议的召集人 (1995 年)、“风险管理是赚钱之道”的演讲,改变了安全的焦点 (1998 年)、Usenix 协会主席 (2000 年)、首次呼吁用问责制取代身份验证 (2002 年)、“网络不安全:垄断的代价”的主要作者和发言人 (2003 年),以及 SecurityMetrics.Org (2004 年) 的联合创始人以及 Metricon 1.0 (2006 年) 的召集人。

acmqueue

最初发表于 Queue 第 4 卷,第 9 期
数字图书馆 中评论本文





更多相关文章

Paul Vixie - 要么静态,要么回家
当前和历史上计算机与网络安全中的大多数问题都可以归结为一个简单的观察结果:让其他人控制我们的设备对我们不利。在另一篇文章中,我将解释“其他人”和“不利”的含义。就本文而言,我将完全专注于“控制”的含义。我们失去对设备控制权的一种方式是外部分布式拒绝服务 (DDoS) 攻击,这种攻击会用不需要的流量填充网络,从而没有空间容纳真实的(“需要的”)流量。其他形式的 DDoS 类似:例如,低轨道离子炮 (LOIC) 的攻击可能不会完全填满网络,但它可以使 Web 服务器非常忙于响应无用的攻击请求,以至于服务器无法响应任何有用的客户请求。


Axel Arnbak, Hadi Asghari, Michel Van Eeten, Nico Van Eijk - HTTPS 市场中的安全崩溃
HTTPS(超文本传输​​协议安全)已发展成为安全 Web 浏览的事实标准。通过基于证书的身份验证协议,Web 服务和 Internet 用户首先使用 TLS/SSL 证书相互验证(“握手”),端到端加密 Web 通信,并在浏览器中显示挂锁以指示通信是安全的。近年来,HTTPS 已成为保护在线社交、政治和经济活动的重要技术。


Sharon Goldberg - 为什么保护互联网路由需要这么长时间?
BGP(边界网关协议)是将互联网粘合在一起的粘合剂,使不同组织运营的大型网络之间能够进行数据通信。BGP 通过为组织之间的流量(例如,从波士顿大学的网络,通过更大的 ISP(互联网服务提供商),如 Level3、巴基斯坦电信和中国电信,然后到住宅网络,如 Comcast 或企业网络,如美国银行)设置路由,使互联网通信全球化。


Ben Laurie - 证书透明度
2011 年 8 月 28 日,一个错误颁发的 google.com 通配符 HTTPS 证书被用于对伊朗的多个用户进行中间人攻击。该证书由一家名为 DigiNotar 的荷兰 CA(证书颁发机构)颁发,DigiNotar 是 VASCO Data Security International 的子公司。后来的分析表明,DigiNotar 在其系统中意识到该漏洞已超过一个月 - 至少自 7 月 19 日以来。它还表明,至少已颁发了 531 个欺诈性证书。最终计数可能永远不会为人所知,因为 DigiNotar 没有所有错误颁发的证书的记录。





© 保留所有权利。

© . All rights reserved.