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服务器本身都存在的一些安全漏洞,不是本文探讨的范畴,有兴趣的读者可参阅相关资料。