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