2008年7月31日,苹果发布了一个过期的补丁在方式的一大漏洞Mac OS X服务器手柄转动的网站和电子邮件地址的名称为用于连接数字地址。该漏洞是在域名服务(DNS)协议的根本缺陷,影响所有,但内置到操作系统和发布作为独立的服务器软件包DNS服务器屈指可数。
如果在Internet服务提供商(ISP)或公司的DNS服务器上被利用,攻击者将能够将该服务器的任何用户重定向到他或她选择的目的地。因此,虽然你可能从你的书签或类型选择Macworld.com到浏览器的位置字段,和浏览器显示了www.macworld.com位置字段,您已经下载了一个恶意网站的主页主办一个坏家伙加载恶意软件和网络钓鱼。
尽管苹果发布了针对所有运行OS X 10.4.11和10.5.4(服务器和桌面、英特尔和PowerPC、Leopard和Tiger)的mac的修复程序,但该修复程序只修复了DNS服务器软件中最脆弱的部分,即便是在不使用该修复程序的系统上。(在Mac OS X中,服务器软件是安装的,但没有打开,而在OS X服务器中,DNS服务必须配置和激活。)
使用的操作系统,从一个全面的DNS服务器请求DNS查找DNS客户端软件,仍然是有风险的,但在一个较低的水平,在更有限的情况下。
了解漏洞
今年早些时候,安全研究人员Dan Kaminsky无意中发现了DNS的一个主要漏洞——该协议将我们能记住的域名(www.macworld.com)转换为互联网软件使用的互联网协议(IP)地址(70.42.185.230)。(注:本文作者之一Rich Mogull与Kaminsky一起准备了该公告。)
更准确地说,Kaminsky并没有发现新的漏洞,而是发现了一种新的致命有效的方法来攻击DNS中的已知弱点。这类攻击被称为缓存中毒,它允许攻击者破坏DNS服务器在内存中保存的数据库,并在用户请求进行名称-编号查询时向用户系统提供详细信息。
此缺陷允许攻击者将绑定到域名的有效IP地址替换为攻击者想要的任何IP地址。实际上,攻击者可以通过向浏览器提供错误的IP地址来劫持用户的Web浏览器(和其他Internet软件);浏览器显示用户认为他们输入的地址,使重定向不可见。其他浏览器重定向使用帧之类的技巧,并且不容易隐藏。
如果用户被发送到恶意目的,坏人可以使用各种社会工程学技巧骗你输入敏感信息(如伪造银行网站看起来真),或直接使用Web浏览器漏洞攻击你。Mac用户更容易受到比后者前者受到打击,因为目前还没有已知的公开Mac OS X的利用在野外的工作只需访问一个网站。
在Kaminsky的发现之前,缓存中毒是一种很难实现的攻击。每个DNS请求都有两个部分:事务标识符(TXID),它是一个随机的16位数字,这意味着有将近66,000个可能的值。TXID与端口号配对,端口号是IP地址上的一种邮箱。任何类型的出站请求都被附加到一个端口,以便远程服务器或其他计算机的响应可以被发送回请求机器上的正确cubbyhole。
缓存中毒过去涉及试图猜测TXID和UDP组合,并试图提供伪造的响应,这些响应将被认为是合法的。这可能需要几天或几周的时间,并不能保证成功或不被注意到。该方法也不会替换缓存的DNS编号数据库中已经存在的条目,因为早在上世纪90年代攻击被发现后,就有一些保护措施被插入到DNS中。这是一场坏人很难赢的比赛。
基于两个因素,新的攻击绕过了早期的限制。首先,大多数(但不是所有)DNS服务器在进行DNS查询时按顺序分配端口。也就是说,它们从58363开始,然后用58364,以此类推,递增1。第二,Kaminsky认为发送一系列特定类型的错误请求会极大地增加攻击者赢得比赛的可能性。
攻击通常从尝试让DNS服务器查找恶意控制的域条目开始。如果攻击者让DNS服务器从攻击控制的DNS服务器查找一个地址,该不法分子可以获得目标DNS服务器使用的当前端口号。攻击的下一部分是用对不存在的子域(域名的最左边部分)的请求轰炸服务器,攻击者希望劫持该域的查找。
例如,攻击者可能会强制服务器查找aaaaaa.macworld.com,然后,因为他知道UDP端口,发送的数以万计的假冒反应在一秒钟左右为子域。如果用正确的TxID添加和端口攻击前macworld.com DNS服务器响应,它赢了。但是,攻击者有选手数以万计在这场比赛中,和一个用正确的TxID添加有击败macworld.com服务器。
如果aaaaaa.macworld.com失败,攻击者可以转移到aaaaaa.macworld.com,以此类推。最终,攻击者通过纯粹的数字获胜——获胜可能需要10秒到几分钟的时间,而且,一旦获胜,就会失去一切。获胜的响应还可以包含关于同一域的其他信息(称为附加记录记录字段),攻击者使用该信息来替换主域或任何其他域的缓存条目。
这样想吧。Alex和一个叫Charlene的相亲对象建立了关系。但是亚历克斯有个敌人叫贝丝。贝丝发现亚历克斯应该在12点10分在欧迪咖啡馆和某人见面喝咖啡。,但不知道相亲对象的名字。贝丝把5万名妇女送到咖啡馆——现在相当拥挤——她们都有不同的名字。“嘿,亚历克斯,我是亚历克西斯,我不是来接你的吗?”"Hey, Alex, I'm Zelda, aren't I here to meet you?"
如果Beth的命名夏琳雇工他真正的相亲之前满足亚历克斯,他知道未来的事情,他一直下滑米奇,并在酒店的客房配有伤痕,他的肾脏被唤醒时,他的钱包不见了,和高达客房服务法案。
卡明斯基是众所周知的研究DNS的问题,而且,令人费解了这个问题,叫保罗·维克西,老乡从它开始DNS的主要原因后。是的Vixie还落后互联网安全联盟,这使得BIND,使用最广泛的DNS服务器中的一个人 - 这是苹果所使用的软件。卡明斯基和接触的Vixie其他专家和主要供应商,并拉到一起在三月份的一次秘密会议上微软校园。
在会议上,与会人员同意了一个发布补丁的协调日期,以最大限度地降低坏人在某些产品补丁发布之前就发现问题的风险。然后,这个核心团队与其他供应商合作,比如苹果公司,重用易受攻击的DNS版本。(一些公司在协调日期之前发布了补丁,没有关于漏洞的细节,也没有人注意到这些改动。)
2008年7月8日,美国计算机应急响应小组(US-CERT)发布并推广了一个前所未有的大型多厂商补丁,该补丁可以帮助传播重要的计算机安全信息。
该修复随机分配DNS使用的端口,使攻击者更难预测到哪里发送他们欺骗的响应。根据我们前面的例子,假设Beth只知道Alex将在给定的一周内与Charlene见面。她必须派出数百万的冒名顶替者,而假夏琳在真夏琳到来之前及时截住亚历克斯的可能性是微乎其微的。
这不是一个永久的修复,但它是所有供应商都可以实现的,而且它不一定会揭示确切的漏洞,给每个人额外的时间来修补。不幸的是,由于各种因素的综合作用,漏洞的全部细节在13天后被公之于众,紧接着就是攻击工具。
尽管被告知这个问题早在五月,苹果公司未能发出与其他主要操作系统厂商,包括微软7月8日的修补程序。苹果甚至推迟发布数周补丁后的攻击代码被公开和攻击出现在野外。苹果不但没有补丁,但它甚至未能通知客户时,他们可以期待一个补丁。由于这是可能的服务器管理员在他们的OS X服务器手动更新的BIND版本的自己,这是很难理解为什么花了这么长时间苹果回应。
理解你的风险
随着攻击工具的广泛使用,任何使用Mac OS X服务器作为递归DNS服务器的人都必须立即应用苹果的补丁。
我们在阅读后测试了上周的更新在SANS研究所的博客条目他说,苹果的补丁只修复了Mac OS X Tiger和Leopard中的DNS服务器,而没有修复客户端。我们证实了这一点:客户端仍然容易受到攻击,但成功攻击普通电脑的具体情况尚未公布。Dan Kaminsky将在他的演讲中公布这些细节黑帽安全会议周三,但据信客户的风险仍然很低。
对普通Mac用户来说,真正的风险是使用未打补丁的DNS服务器。在国内,这可能是你的ISP;在工作中,它是你的雇主;在你的iPhone上,它是AT&T;在网吧,它是网吧的ISP。当你在一个分配给你IP地址和DNS服务器的易受攻击的服务器后面浏览时,如果攻击者接管了那个服务器,他们可以将你重定向到任何他们想要的地方。
你有几个选择来保护自己。首先,你可以对你的Mac进行硬编码,以使用“安全”的DNS服务,比如OpenDNS,它提供免费的DNS服务,并依赖于DNS服务器软件,这些软件在被发现之前就已经对这种攻击进行了加固。OpenDNS的DNS服务器位于208.67.222.222和208.67.220.220。输入这些IP地址可以防止被利用,因为它们是直接使用的,而不是查找的。
要设置OpenDNS或另一个安全的DNS服务器,请遵循以下步骤:
不幸的是,在iPhone上,你必须为每一个Wi-Fi连接更改DNS服务器设置。这对于您的家庭和办公室网络来说很容易,但是对于其他网络来说就很麻烦了。AT&T不允许EDGE (2.5G)或3G连接有备用DNS,而且在撰写本文时,AT&T仍是未能更新其DNS服务器软件以避免被攻击的全国性isp之一,该攻击已在AT&T位于得克萨斯州奥斯汀的网络上出现。
随着iPhone或笔记本电脑或台式机,你可以从你的或通过Witopia.net或publicVPN.com工作的公司使用VPN连接来代替。VPN连接需要VPN服务器上的安全手段有效的登录和利用域名将防止发生,这是一个很好的警示连接。与VPN连接活跃,DNS服务通常经由服务器设置在VPN连接的另一端。用下一段的技术,以确认您的VPN服务的DNS服务器已经正确地打上补丁。
为了帮助你发现自己是否脆弱,丹·卡明斯基(Dan Kaminsky)发表了一篇文章他网站上的DNS检查器。点击在右上角的按钮,如果你当前的DNS服务器使用的端口随机化,它会告诉你。
如果您使用未修补的DNS服务器或您不确定是否安全的服务器,则另一个风险是使用安全的Web连接。安全的Web服务器使用数字证书,浏览器和操作系统可以对数字证书进行验证,使用浏览器和操作系统中已经内置的信息来检查知名第三方机构的加密签名,以确认证书是合法的。
随着DNS漏洞,攻击者可以以点更改www.amazon.com来,他们已经安装了自己的证书,被指称是有效的www.amazon.com的IP地址。但是,任何浏览器,支持安全连接将提醒您该证书是无效(包含错误的验证签名或无),或者是自签名的,这意味着没有为它的第三方先天不足。停止。千万不要错过去。不要连接!
第二个危害安全Web站点的方法是,如果您没有指向启动“https”(安全Web连接的缩写)的银行或其他站点的URL的书签。如果您进入www.chase.com,首先会被带到正常使用中的不安全网站,然后被Chase重定向到其安全网站。
随着攻击者接管了您的DNS服务器对chase.com的查找,他们可以选择不将您重定向到安全站点,从而避免证书警告。查看您的浏览器以确保您认为安全的连接实际上已经关闭了锁(右下角,Firefox;在location字段中有https。
最糟糕的事情是等待
这个漏洞一旦修补,就不太可能再出现,因为难度已经提高到如此之高。除非从DNS中提取另一个漏洞,否则此修复可能会持续一段时间。
苹果没有准备好补丁,也没有与公司和个人客户沟通补丁的进展情况,结果成了山羊。
而这不幸的是什么样子的结局。尽管十多年来在DNSSEC,追平了基于证书的验证,DNS响应的方式工作,有前进没有明确的路径。最终,只有这样,DNS可以确保的是使用加密。这些谁制作和发布DNS可能有更多的动机在计划定居并进入行动。
[Glenn Fleishman为他的博客Wi-Fi网络新闻、花边新闻和西雅图时报撰写有关无线安全问题和Mac OS X的文章。Rich Mogull是一名独立的安全顾问,他定期在Securosis.com上撰写关于安全问题的博客。他也是《花边新闻》的特约编辑。
这篇文章,“DNS漏洞:你应该知道和做什么”最初发表于Macworld大会 。