acm-header
登录

ACM通信

的观点

如何看待安全故障


为什么保护大型计算机系统如此困难?这不仅仅是因为它们很大,而且可以通过互联网公开获取。在政府实验室和商业企业的研究人员中,这个问题也不是新的,没有研究过的,或者没有相当大的动机。防御者将计算中心的虚拟墙筑得更厚、更高,而攻击者则对薄弱环节进行出色的魔鬼般的攻击,使系统在一场军备竞赛中与自己对抗,这场竞赛从计算机通过网络进行通信开始就一直在进行。

因此,我没有提出一种技术解决方案或某种巧妙的识别攻击者的新方法——有许多有趣而有效的例子——而是研究了一些涉及人类直觉的基本问题,以及它如何影响复杂系统的安全设计。通过不仅关注理解我们如何创建和使用模型来解决问题,而且关注这些解决方案有时是如何失败的,就有可能开发出一些方法来考虑安全问题,从而产生更健壮的解决方案。

直觉可以被(粗略地)视为熟悉事件的模型。在模型中,假设在一定程度上简化了被观察的数据,这与模型的普遍性成正比。简化是必要的,也是使模型对解决问题有用的必要条件。当模型为各种问题提供解决方案时,我们会发展出一种直觉,这种直觉将我们对它们的熟悉程度封装起来。不幸的是,随着熟悉程度的增加,往往会错过与我们在创建模型时所做的假设不一致的更改。当这种情况发生时,一个模型可能会对我们分析结果的方式造成更多的伤害而不是好处。

这和计算机安全有什么关系?如果直觉背后的基本假设与实际行为或威胁的性质不一致,系统的保护可能比我们想象的要少,如下例所示:在一个经典的(大约1995年)网络安全设计中,您的对手通常被视为来自网络外部的敌对代理,试图通过可访问服务的弱点破坏防御。如果网络中的主机或服务不能被外部接触,则被认为是安全的,不会受到外部攻击。为了保护用户,不允许远程主机连接到他们的工作站。今天,一种新的攻击类型-客户端攻击已经变得越来越流行和危险;例子包括恶意电子邮件附件和网页,它们允许根据Web浏览器或电子邮件客户端的安全问题运行任意代码。随着客户端攻击的增多,旧模式出现了一个缺陷;尽管避免了与外部的直接连接,用户仍然可能受到他们所请求的服务的攻击[3.].


即使你错过了掉进池塘的石头,你也可以看到水面上的涟漪。


一种新的攻击载体被创造出来,将用户转化为平台,在未经用户同意甚至不知情的情况下攻击内部资源。用户不再是安全模型的被动参与者;它们已经成为进入受保护的网络内部的入口的服务。关键是模型所处的环境是不断变化的。如果忽略此更改,模型将不可避免地失败。

回到顶部

意想不到的后果

使网络和软件行为不断变化的问题更加复杂的是,现实世界中软件、硬件和人的集合经常以难以或不可能预测的方式行动和失败。虽然大量的人以统计上可预测的方式行为,但对一个秩序良好的系统进行简单更改的结果并不总是可预测的结果。你想要解决的问题可能会得到解决,即使整个结果失败了。

这个结果体现在意外后果的概念中。一个例子涉及到用户身份验证,这是计算机安全的老朋友。只要人们使用密码进行身份验证,其他人就会对窃取密码感兴趣(证书盗窃)。为了打击凭证盗窃,过去几年引入的商业技术创造了一次性(一次性)密码,取代了传统的密码概念。除了用于身份验证用户的凭据只能使用一次之外,用于实现此目的的技术是无关紧要的。

一种假设是,通信通道的任何一方都没有被改变。不幸的是,在大量故意窃取凭证的情况下,用户从通道一侧已被破坏的机器上登录。例如,一个毫无防备的用户Bob从他的工作站上使用他的一次性密码进行身份验证并登录到Alice的集群。不幸的是,敌对的一方,伊芙,在鲍勃不知情的情况下接管了那个工作站。Bob现在开始处理Alice的集群。Eve现在可以使用这个经过验证的连接攻击Alice的集群,而Bob不知道幕后发生了什么。实现这一功能的实际机制在技术上并不复杂,许多工具包无需付出太多努力便为Eve提供了所需的功能。14].

考虑到如何使用一个经过安全验证的链接来攻击Alice的集群,需要注意的是凭证窃取的问题已经完全解决了;Eve可以访问Bob输入的身份验证信息,尽管在登录后这些信息是无用的。通过将Bob视为访问Alice集群的服务,而不是身份验证令牌的来源,Eve成功绕过了Alice防止非法访问的机制。此外,除非Alice准备好应对这种新的威胁,否则她将面临比简单的凭据盗窃(她有多年检测和纠正凭据盗窃的经验)更加微妙和危险的攻击。

回到顶部

进化生态学

这些安全问题的例子的共同点是,在解决一个特定的漏洞时,一些更复杂的东西取代了它。消除漏洞的行为会给系统周围的整个生态系统带来压力。攻击者不是消失,而是急切地进化以利用任何剩下的机会。保护系统对攻击者施加压力,迫使他们改变以前成功的行为,同时创建新的和以前未探索的攻击模式,以利用仍然不受保护的资源。这些资源、弱点和未被探索的选项一直都在那里,只是没有足够的动力去使用它们,因为总是有更简单的方法来度过。

安全设计必须认识到增强是新的入侵技术背后的驱动力,而不仅仅是消除漏洞的一种手段。这一点的重要性怎么强调都不为过。

这与我前面关于模型的讨论有什么关系?如果爱丽丝试图通过使用防火墙来保护她的系统管理员,将他们与外部发起的接触隔离,伊芙可能会通过发送电子邮件消息,将爱丽丝的防御系统中的一个脆弱的Web浏览器指向一个敌对的互联网站点。Alice知道,虽然屏蔽连接是有用的,但同样重要的是要屏蔽电子邮件和Web内容,并保持工作站和应用软件的补丁。

回到顶部

决议

这种洞察力如何有助于设计更安全的系统?首先,用于开发安全解决方案的模型和假设必须基于实际数据,并考虑到由于意外行为(包括人为和技术)而导致的失败的可能性。此外,解决一个安全漏洞可能会导致攻击方法分布的变化(通常是重大的和不可预测的)。

任何设计都有失败的时候。2].然而,如果你在设计时考虑到失败的不可避免性,那么当失败发生时,你至少有机会发现它。关键是要设计出能够优雅地失败的系统。在问题发生时就确定问题的存在,这是将损害降到最低的最佳选择,除了完全防止它之外。解决方案必须设计成当它们失败或行为不当时产生大量噪音。大多数系统最终会做一些意想不到的事情。当他们这么做的时候,你会想知道的。即使你错过了掉进池塘的石头,你至少可以看到水面上的涟漪。

那么,爱丽丝应该做些什么来增强她新的一次性密码软件呢?她知道Eve不会善罢甘心,所以假设认证系统可能会失败,就会有更多的选择。也许Bob用于登录的通信应用程序现在被检测为审计用户活动。也许系统会计为不寻常的行为提供反馈。这可能无法阻止攻击,但当不可避免的意外发生时,它将有可能检测和响应。

回到顶部

参考文献

1.理查德·道金斯(rd@thehackerschoice.com)。正在编写Linux内核键盘记录器。Phrack 11日59(2002年6月);www.phrack.org/phrack/59/p59-0x0e.txt。

2.Schneier B。《秘密与谎言:网络世界的数字安全》威利计算机出版社,纽约,2000年。

3.王,Y.-M。Strider HoneyMonkeys:活跃的客户端蜜罐,用于寻找利用浏览器漏洞的网站。第14届Usenix安全研讨会(巴尔的摩,7月31日)上正在进行的部分工作。5, 2005);www.usenix.org/events/sec05/wips/wang.pdf和research.microsoft.com/HoneyMonkey/。

4.Melstorm (melstorm@storm.net.nz)。信任短暂:入侵后SSH劫持Melstorm。在第14届国防大会上的演讲(2005年8月46日,拉斯维加斯);opensores.thebunker.net/pub/mirrors/blackhat/presentations/bh-usa-05/BH_US_05-Boileau/metlstorms_sshjack-1.02.tar.gz。

回到顶部

作者

斯科特•坎贝尔(scampbell@lbl.gov)是加州伯克利劳伦斯伯克利国家实验室国家能源研究科学计算中心的计算机安全分析师。


©2006 acm 0001-0782/06/0100 $5.00

允许为个人或课堂使用本作品的全部或部分制作数字或硬拷贝,但不得为盈利或商业利益而复制或分发,且副本在首页上附有本通知和完整的引用。以其他方式复制、重新发布、在服务器上发布或重新分发到列表,需要事先获得特定的许可和/或付费。

数字图书馆是由计算机协会出版的。版权所有©2006 ACM, Inc.


没有发现记录

Baidu
map