Web欺骗的工作原理
欺骗能够成功的关键是在受攻击者和其他Web服务器之间设立起攻击者的Web服务器,这种攻击种类在安全问题中称为“来自中间的攻击”。为了建立起这样的中间Web服务器,黑客往往进行以下工作。
改写URL
首先,攻击者改写Web页中的所有URL地址,这样它们指向了攻击者的Web服务器而不是真正的Web服务器。假设攻击者所处的Web服务器是www.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.www.org,当用户点击任何一个链接都会直接进入www.www.org,而不会直接进入真正的URL。如果用户由此依次进入其他网页,那么他们是永远不会摆脱掉受攻击的可能。
很显然,修改过的文档中的所有URL都指向了www.www.org,当用户点击任何一个链接都会直接进入www.www.org,而不会直接进入真正的URL。如果用户由此依次进入其他网页,那么他们是永远不会摆脱掉受攻击的可能。
关于表单
如果受攻击者填写了一个错误Web上的表单,那么结果看来似乎会很正常,因为只要遵循标准的Web协议,表单欺骗很自然地不会被察觉:表单的确定信息被编码到URL中,内容会以HTML形式来返回。既然前面的URL都已经得到了改写,那么表单欺骗将是很自然的事情。
当受攻击者提交表单后,所提交的数据进入了攻击者的服务器。攻击者的服务器能够观察,甚至是修改所提交的数据。同样地,在得到真正的服务器返回信息后,攻击者在将其向受攻击者返回以前也可以为所欲为。
关于“安全连接”
我们都知道为了提高Web应用的安全性,有人提出了一种叫做安全连接的概念。它是在用户浏览器和Web服务器之间建立一种基于SSL的安全连接。可是让人感到遗憾的是,它在Web欺骗中基本上无所作为。受攻击者可以和Web欺骗中所提供的错误网页建立起一个看似正常的“安全连接”:网页的文档可以正常地传输而且作为安全连接标志的图形(通常是关闭的一把钥匙或者锁)依然工作正常。换句话说,也就是浏览器提供给用户的感觉是一种安全可靠的连接。但正像我们前面所提到的那样,此时的安全连接是建立在www.www.org而非用户所希望的站点。
攻击的导火索
为了开始攻击,攻击者必须以某种方式引诱受攻击者进入攻击者所创造的错误的Web。黑客往往使用下面若干种方法。
1把错误的Web链接放到一个热门Web站点上;
2如果受攻击者使用基于Web的邮件,那么可以将它指向错误的Web;
3创建错误的Web索引,指示给搜索引擎。
完善攻击
前面描述的攻击相当有效,但是它还不是十分完美的。黑客往往还要创造一个可信的环境,包括各类图标、文字、链接等,提供给受攻击者各种各样的十分可信的暗示。总之就是隐藏一切尾巴。此时,如果错误的Web是富有敌意的,那么无辜的用户将处于十分危险的境地。
另外,黑客还会注意以下方面。
1. 状态线路
连接状态是位于浏览器底部的提示信息,它提示当前连接的各类信息。Web欺骗中涉及两类信息。首先,当鼠标放置在Web链接上时,连接状态显示链接所指的URL地址,这样,受攻击者可能会注意到重写的URL地址。第二,当Web连接成功时,连接状态将显示所连接的服务器名称。这样,受攻击者可以注意到显示www.www.org,而非自己所希望的站点。
攻击者能够通过JavaScript编程来弥补这两项不足。由于JavaScript能够对连接状态进行写操作,而且可以将JavaScript操作与特定事件绑定在一起,所以,攻击者完全可以将改写的URL状态恢复为改写前的状态。这样Web欺骗将更为可信。
2. 位置状态行
浏览器的位置状态行显示当前所处的URL位置,用户也可以在其中键入新的URL地址进入到另外的URL,如果不进行必要的更改,此时URL会暴露出改写后的URL。同样地,利用JavaScript可以隐藏掉改写后的URL。JavaScript能用不真实的URL掩盖真实的URL,也能够接受用户的键盘输入,并将之改写,进入不正确的URL。
Web欺骗的弱点
尽管黑客在进行Web欺骗时已绞尽脑汁,但是还是留有一些不足。
文档信息
攻击者并不是不留丝毫痕迹,HTML源文件就是开启欺骗迷宫的钥匙。攻击者对其无能为力。通过使用浏览器中“viewsource”命令,用户能够阅读当前的HTML源文件。通过阅读HTML源文件,可以发现被改写的URL,因此可以觉察到攻击。遗憾的是,对于初学者而言,HTML源文件实在是有些难懂。
通过使用浏览器中“view document information”命令,用户能够阅读当前URL地址的一些信息。可喜的是这里提供的是真实的URL地址,因此用户能够很容易判断出Web欺骗。不过,绝大多数用户都很少注意以上一些属性,可以说潜在的危险还是存在的。
逃离灾难
受攻击者可以自觉与不自觉地离开攻击者的错误Web页面。这里有若干种方法。访问Bookmark或使用浏览器中提供的“Open location”进入其他Web页面,离开攻击者所设下的陷阱。不过,如果用户使用“Back”按键,则会重新进入原先的错误Web页面。当然,如果用户将所访问的错误Web存入Bookmark,那么下次可能会直接进入攻击者所设下的陷阱。
关于追踪攻击者
有人建议应当通过跟踪来发现并处罚攻击者。确实如此,攻击者如果想进行Web欺骗的话,那么离不开Web服务器的帮助。但是,他们利用的Web服务器很可能是被攻击后的产物,就象罪犯驾驶着盗窃来的汽车去作案一样。
预防办法
Web欺骗是当今Internet上具有相当危险性而不易被察觉的欺骗手法。幸运的是,我们可以采取的一些保护办法。
短期的解决方案
为了取得短期的效果,最好从下面三方面来预防:
1.禁止浏览器中的JavaScript功能,那么各类改写信息将原形毕露;
2.确保浏览器的连接状态是可见的,它将给你提供当前位置的各类信息;
3.时刻注意你所点击的URL链接会在位置状态行中得到正确的显示。
现在,JavaScript、ActiveX以及Java提供越来越丰富和强大的功能,而且越来越为黑客们进行攻击活动提供了强大的手段。为了保证安全,建议用户考虑禁止这些功能。
这样做,用户将损失一些功能,但是与可能带来的后果比较起来,每个人会得出自己的结论。
长期的解决方案
1.改变浏览器,使之具有反映真实URL信息的功能,而不会被蒙蔽;
2.对于通过安全连接建立的Web——浏览器对话,浏览器还应该告诉用户谁在另一端,而不只是表明一种安全连接的状态。比如:在建立了安全连接后,给出一个提示信息“NetscapeInc.”等等。
所有的解决方案,可以根据用户的安全要求和实际条件来加以选择。