前言
本文描述Internet上的一种安全攻击,它可能侵害到WWW用户的隐私和数据完整性。这种攻击可以在现有的系统上实现,危害最普通的Web浏览器用户,包括Netscape Navigator和Microsoft Internet Explorer用户。
允许攻击者创造整个WWW世界的影像拷贝。影像Web的入口进入到攻击者的Web服务器,经过攻击者机器的过滤作用,允许攻击者监控受攻击者的任何活动,包括帐户和口令。攻击者也能以受攻击者的名义将错误或者易于误解的数据发送到真正的Web服务器,以及以任何Web服务器的名义发送数据给受攻击者。简而言之,攻击者观察和控制着受攻击者在Web上做的每一件事。
欺骗攻击
在一次欺骗攻击中,攻击者创造一个易于误解的上下文环境,以诱使受攻击者进入并且做出缺乏安全考虑的决策。欺骗攻击就像是一场虚拟游戏:攻击者在受攻击者的周围建立起一个错误但是令人信服的世界。如果该虚拟世界是真实的话,那么受攻击者所做的一切都是无可厚非的。但遗憾的是,在错误的世界中似乎是合理的活动可能会在现实的世界中导致灾难性的后果。
欺骗攻击在现实的电子交易中也是常见的现象。例如,我们曾经听说过这样的事情:一些西方罪犯分子在公共场合建立起虚假的ATM取款机,该种机器可以接受ATM卡,并且会询问用户的PIN密码。一旦该种机器获得受攻击者的PIN密码,它会要么“吃卡”,要么反馈“故障”,并返回ATM卡。不论哪一种情况,罪犯都会获得足够的信息,以复制出一个完全一样的ATM卡。后面的事情大家可想而知了。在这些攻击中,人们往往被所看到的事物所愚弄:ATM取款机所处的位置,它们的外形和装饰,以及电子显示屏的内容等等。
人们利用计算机系统完成具有安全要求的决策时往往也是基于其所见。例如,在访问网上银行时,你可能根据你所见的银行Web页面,从该行的帐户中提取或存入一定数量的存款。因为你相信你所访问的Web页面就是你所需要的银行的Web页面。无论是页面的外观、URL地址,还是其他一些相关内容,都让你感到非常熟悉,没有理由不相信。但是,你很可能是在被愚弄。
Web欺骗的两个组成部分
为了分析可能出现欺骗攻击的范围和严重性,我们需要深入研究关于Web欺骗的两个部分:安全决策和暗示。
安全决策
安全决策,这里指的是会导致安全问题的一类决策。这类决策往往都含有较为敏感的数据,也就是意味着一个人在做出决策时,可能会因为关键数据的泄露,导致不受欢迎的结果。很可能发生这样的事情:第三方利用各类决策数据攻破某种秘密,进行破坏活动,或者导致不安全的后果。例如,在某种场合输入帐户和密码,就是我们在此谈到的安全决策问题。因为帐户和密码的泄露会产生我们不希望发生的问题。此外,从Internet上下载文件也是一类安全决策问题。不能否认,在下载的文件当中可能会包含有恶意破坏的成分,尽管这样的事情不会经常发生。
安全决策问题无处不在,甚至在我们通过阅读显示信息做出决策时,也存在一个关于信息准确性的安全决策问题。例如,如果你决定根据网上证券站点所提供的证券价格购买某类证券时,那么你必须确保所接收信息的准确性。如果有人故意提供不正确的证券价格,那么不可避免地会有人浪费自己的财富。
暗示
WWW站点提供给用户的是丰富多彩的各类信息,人们通过浏览器任意翻阅网页,根据得到的上下文环境来做出相应的决定。Web页面上的文字、图画与声音可以给人以深刻的印象,也正是在这种背景下,人们往往能够判断出该网页的地址。例如,一个特殊标识的存在一般意味着处于某个公司的Web站点。
我们都知道目标的出现往往传递着某种暗示。在计算机世界中,我们往往都习惯于各类图标、图形,它们分别代表着各类不同的含义。富有经验的浏览器用户对某些信息的反应就如同富有经验的驾驶员对交通信号和标志做出的反应一样。
目标的名字能传达更为充分的信息。人们经常根据一个文件的名称来推断它是关于什么的。manual.doc是用户手册的正文吗?它完全可以是另外一个文件种类,而不是用户手册一类的文档。一个microsoft.com的链接难道就一定指向我们大家都知道的微软公司的URL地址吗?显然可以偷梁换柱,改向其他地址。
人们往往还会在时间的先后顺序中得到某种暗示。如果两个事件同时发生,你自然地会认为它们是有关联的。如果在点击银行的网页时,username对话框同时出现了,你自然地会认为你应该输入你在该银行的帐户与口令。如果你在点击了一个文档链接后,立即就开始了下载,那么你很自然地会认为该文件正从该站点下载。然而,以上的想法不一定都是正确的。
如果你仅仅看到一个弹出窗口,那么你会和一个可视的事件联系起来,而不会认识到一个隐藏在窗口背后的不可视的事件。 现代的用户接口程序设计者花费很大的精力来设计简单易懂的界面,人们感受到了方便,但潜在的问题是人们可能习惯于此,不可避免地被该种暗示所欺骗。
Web欺骗的欺骗手段
TCP和DNS欺骗
除了我们将要讨论的欺骗手段外,还有一些其他手段,在这里我们将不做讨论。这种攻击的例子包括TCP欺骗(在TCP包中使用伪造的IP地址)以及DNS欺骗(攻击者伪造关于机器名称和网络信息)。读者有兴趣可以阅读有关资料。
Web欺骗
Web欺骗是一种电子信息欺骗,攻击者在其中创造了整个Web世界的一个令人信服但是完全错误的拷贝。错误的Web看起来十分逼真,它拥有相同的网页和链接。然而,攻击者控制着错误的Web站点,这样受攻击者浏览器和Web之间的所有网络信息完全被攻击者所截获,其工作原理就好像是一个过滤器。
后果
由于攻击者可以观察或者修改任何从受攻击者到Web服务器的信息;同样地,也控制着从Web服务器至受攻击者的返回数据,这样攻击者就有许多发起攻击的可能性,包括监视和破坏。
攻击者能够监视受攻击者的网络信息,记录他们访问的网页和内容。当受攻击者填写完一个表单并发送后,这些数据将被传送到Web服务器,Web服务器将返回必要的信息,但不幸的是,攻击者完全可以截获并加以使用。大家都知道绝大部分在线公司都是使用表单来完成业务的,这意味着攻击者可以获得用户的帐户和密码。下面我们将看到,即使受攻击者有一个“安全”连接(通常是通过Secure Sockets Layer来实现的,用户的浏览器会显示一把锁或钥匙来表示处于安全连接),也无法逃脱被监视的命运。
在得到必要的数据后,攻击者可以通过修改受攻击者和Web服务器之间任何一个方向上的数据,来进行某些破坏活动。攻击者修改受攻击者的确认数据,例如,如果受攻击者在线订购某个产品时,攻击者可以修改产品代码,数量或者邮购地址等等。攻击者也能修改被Web服务器所返回的数据,例如,插入易于误解或者攻击性的资料,破坏用户和在线公司的关系等等。
欺骗整个Web世界
你可能认为攻击者欺骗整个Web世界是不可能的,但是恰恰相反,攻击者不必存储整个Web世界的内容,他只需要制造出一条通向整个Web世界的链路。当他需要提供关于某个Web站点的错误Web页面时,他只需要在自己的服务器上建立一个该站点的拷贝,由此等待受害者自投罗网。
Web欺骗的工作原理
欺骗能够成功的关键是在受攻击者和其他Web服务器之间设立起攻击者的Web服务器,这种攻击种类在安全问题中称为“来自中间的攻击”。为了建立起这样的中间Web服务器,黑客往往进行以下工作。
改写URL
首先,攻击者改写Web页中的所有URL地址,这样它们指向了攻击者的Web服务器而不是真正的Web服务器。假设攻击者所处的Web服务器是 www.org ,攻击者通过在所有链接前增加 http://www.www.org 来改写URL。例如, http://home.xxx1.com 将变为 http://www.www.org/http://home.xxx1.com. 当用户点击改写过的 http://home.xxx1.com (可能它仍然显示的是 http://home.xxx1 ),将进入的是 http://www.www.org ,然后由 http://www.www.org 向 http://home.xxx1.com 发出请求并获得真正的文档,然后改写文档中的所有链接,最后经过 http://www.www.org 返回给用户的浏览器。工作流程如下所示:
1.用户点击经过改写后的 http://www.www.org/http://home.xxx1.com ;
2. http://www.www.org向http://home.xxx1.com 请求文档;
3. http://home.xxx1.com向http://www.www.org 返回文档;
4. http://www.www.org 改写文档中的所有URL;
5. http://www.www.org 向用户返回改写后的文档。
很显然,修改过的文档中的所有URL都指向了 www.org ,当用户点击任何一个链接都会直接进入 www.org ,而不会直接进入真正的URL。如果用户由此依次进入其他网页,那么他们是永远不会摆脱掉受攻击的可能。
关于表单
如果受攻击者填写了一个错误Web上的表单,那么结果看来似乎会很正常,因为只要遵循标准的Web协议,表单欺骗很自然地不会被察觉:表单的确定信息被编码到URL中,内容会以HTML形式来返回。既然前面的URL都已经得到了改写,那么表单欺骗将是很自然的事情。
当受攻击者提交表单后,所提交的数据进入了攻击者的服务器。攻击者的服务器能够观察,甚至是修改所提交的数据。同样地,在得到真正的服务器返回信息后,攻击者在将其向受攻击者返回以前也可以为所欲为。
关于“安全连接”
我们都知道为了提高Web应用的安全性,有人提出了一种叫做安全连接的概念。它是在用户浏览器和Web服务器之间建立一种基于SSL