Web欺骗是一种具有相当危险性且不易被察觉的黑客攻击手法,一般意义上讲,也就是针对浏览网页的个人用户进行欺骗,非法获取或者破坏个人用户的隐私和数据资料。它危及到普通Web浏览器用户,包括Netscape Navigator用户和Microsoft Internet Explorer用户。
一、欺骗手法
攻击者如果想进行Web欺骗就,离不开Web服务器的支持,所以绝大多数情况下,他们在受攻击者和Web服务器之间设立起攻击者自己的Web服务器,这种攻击种类在安全问题中称为“来自中间的攻击”。用户浏览器和真正的服务器之间的数据交换并非是直接的,会被攻击者的服务器截获并处理。利用中间服务器进行行骗,就像罪犯驾驶着盗窃来的警车去“执行公务”,因此相当隐蔽。对于被攻击用户,几乎是不知不觉的,因为他们仍然可以自由登录、链接到该网站的所有页面。对于攻击者而言,在偷偷监视截取信息的同时,也能以受攻击者的名义发送数据到真正的Web服务器,包括以服务器的名义发送数据给受攻击者。
当用户访问某个这样的站点并进行合理的活动时,可能面对的并不是真实的目标网站,而只是一个攻击者营造的真实站点的翻版,或者说虚拟的镜像,它们之间如此雷同并不会让我们感到潜在的威胁,而此时你的所有注册信息和登录账号口令,甚至一切活动,就源源不断地从这个镜像的入口进入到攻击者控制着的Web服务器。攻击者可以监视、记录、修改所有信息并进行破坏活动。
例如,在线填写表单时,填入表单的用户密码账号等信息将被获取,从而泄密。在访问网上银行时,你可能根据你所见的银行Web页面,从该行的账户中提取或存入一定数量的存款。因为你相信你所访问的Web页面就是你所需要的银行的Web页面。无论是页面的外观布局、图片标识、链接地址,文字内容还是其它一些相关内容,都让你感到非常熟悉,没有理由不相信。但是,你确实是处在攻击者建立的伪造页面中。
二、实施过程
1.诱使用户进入攻击者控制的中间服务器
攻击者在Web服务器需要提供关于某个Web站点的错误Web页面时,他只需要在自己的服务器上建立一个该站点的拷贝,而不必存储整个真实服务器站点的内容,然后改写这个拷贝中所有的链接获得真实服务器上的所有页面镜像。
首先,攻击者改写拷贝中所有链接地址(URL),使它们指向了攻击者的服务器而不是真正的服务器。假定攻击者所处的Web服务器是www.???.com,攻击者通过在所有链接前增加www.???.com来改写URL。例如,abc.efg.com将变为www.???.com/ abc.efg.com。当用户点击改写过的abc.efg.com,进入的确是:www.???.com,然后由该中间服务器向abc.efg.com发出请求并获得真正的文档,然后改写文档中的所有链接,最后经过http://www.???.com返回给用户的浏览器。
可见,用户通过改写后的链接登录目标站点时,实际上先是经由中间服务器,然后才向目标服务器请求文档,而目标服务器返回的文档必须经由中间服务器,改写所有链接后才传回给用户浏览器。很显然,修改过的文档中的所有URL都指向了www.???.com,当用户点击任何一个链接都会直接进入这个页面,而不会直接进入真正的网站。只要用户由此进入其它网页,那么他们是永远不会摆脱掉受攻击的可能的。
伪造网页中的表单,如果被填写就构成了表单欺骗,同样神不知鬼不觉。表单的确定信息被编码到链接地址行中,内容会以HTML形式返回。前面讲到,所有页面的URL都已经被改写,那么表单欺骗将是很自然的事情了。当受攻击者提交表单后,所提交的数据进入了攻击者的服务器。攻击者的服务器能够观察,甚至是修改所提交的数据。同样地,在得到真正的服务器返回信息后,攻击者将向受攻击者返回信息。
2.发布欺骗页
Web攻击者必须设法引诱用户去访问并点击他设定的Web陷阱,黑客往往使用下面几种方法:
(1)把错误的Web链接放到一个热门Web站点上;
(2)如果受攻击者使用基于HTML的邮件,通过电子邮件发送伪造的Web页面给用户;
(3)创建错误的Web索引,指示给搜索引擎;
(4)在网络公众场合,如BBS、OICQ,论坛或聊天室散播包含错误链接的网站网址。
三、如何防范
1.对于个人用户
(1)查看源文件
攻击者并不是不留丝毫痕迹,HTML源文件会使这种欺骗暴露无遗。通过点击鼠标右键或者在浏览器中点击菜单“查看”“源文件”,用户可以阅读当前的HTML源文件。可以发现当前页URL地址的信息并同网页上的真实地址相对照,你能够发现被改写的URL,因此可以觉察到危险。
例如,你收到一封263邮局的HTML格式信件,查看源文件,根据前面的介绍,很容易发现是否有伪造的痕迹。因此,建议不要通过来历不明的Web站点登录安全站点,如通过某个个人站点登录263服务器。对于搜索引擎或从其它场合得到的站点,应仔细甄别,防止受骗。
(2)禁止浏览器中的JavaScript功能各类攻击者的服务器,页面都包含大量的JavaScript脚本以实现其不可告人的目的,此时可将JavaScript功能禁止或者改为使用前提示。
方法是:在IE浏览器中,点击菜单“工具”“Internet选项”,切换到“安全”选项卡?“自定义级别”,弹出“安全设置”框,在里面对JavaScript功能选择“禁止”。(3)确保浏览器的连接提示状态可见,它会给你提供当前位置的各类信息;
(4)仔细观察你所点击的URL链接,一般会在状态栏中或地址栏得到正确的显示。
2.对于服务器
个人用户对于服务器端是无能为力的,此处我们仅给大家提供一些服务器端安全预防措施,希望会给个人站点的管理者一些有益的提示。
Web服务器端安全预防措施:限制在Web服务器开账户,定期删除一些久不登录的用户;对在Web服务器上开的账户,对注册用户口令长度作出要求并提示定期更改,防止被盗用造成隐患;尽量使Ftp, Mail等服务器与Web服务器分开;定期查看服务器中的日志文件,分析一切可疑事件;设置好Web服务器上系统文件的权限和属性;不要把Web服务器与FTP目录指在同一目录;必要时限制访问用户IP或DNS;如果采用CGI程序,应放在独立于HTML存放目录之外的CGI-BIN下;在用C来编写CGI程序时尽量少用popen()、system()和所有涉及/bin/sh的shell命令。
此外,编译语言(CGI、PERL等)比解释语言(PHP、JSP等)更安全。至于许多Web服务器本身都存在的一些安全漏洞,不是本文探讨的范畴,有兴趣的读者可参阅相关资料。