关于“安全连接”
我们都知道为了提高web应用的安全性,有人提出了一种叫做安全连接的概念。它是在用户浏览器和web服务器之间建立一种基于ssl的安全连接。可是让人感到遗憾的是,它在web欺骗中基本上无所作为。受攻击者可以和web欺骗中所提供的错误网页建立起一个看似正常的“安全连接”:网页的文档可以正常地传输而且作为安全连接标志的图形(通常是关闭的一把钥匙或者锁)依然工作正常。换句话说,也就是浏览器提供给用户的感觉是一种安全可靠的连接。但正像我们前面所提到的那样,此时的安全连接是建立在 www.org 而非用户所希望的站点。
攻击的导火索
为了开始攻击,攻击者必须以某种方式引诱受攻击者进入攻击者所创造的错误的web。黑客往往使用下面若干种方法。
1把错误的web链接放到一个热门web站点上;
2如果受攻击者使用基于web的邮件,那么可以将它指向错误的web;
3创建错误的web索引,指示给搜索引擎。
web欺骗的细节完善
前面描述的攻击相当有效,但是它还不是十分完美的。黑客往往还要创造一个可信的环境,包括各类图标、文字、链接等,提供给受攻击者各种各样的十分可信的暗示。总之就是隐藏一切尾巴。此时,如果错误的web是富有敌意的,那么无辜的用户将处于十分危险的境地。
另外,黑客还会注意以下方面。
1. 状态线路
连接状态是位于浏览器底部的提示信息,它提示当前连接的各类信息。web欺骗中涉及两类信息。首先,当鼠标放置在web链接上时,连接状态显示链接所指的url地址,这样,受攻击者可能会注意到重写的url地址。第二,当web连接成功时,连接状态将显示所连接的服务器名称。这样,受攻击者可以注意到显示 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欺骗的预防解决 逃离灾难
受攻击者可以自觉与不自觉地离开攻击者的错误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.”等等。
所有的解决方案,可以根据用户的安全要求和实际条件来加以选择。