更改路由器密码,防止DNS劫持攻击

在Web安全广受关注的今天,DNS成为网络安全比较薄弱的一环。DNS将域名解析为IP地址,引导浏览器等客户端访问域名指定的网站,但如果DNS服务器将域名故意解析到错误的IP地址,后果则十分严重。比如,未加密的用户名和密码等信息会通过这个途径泄露给第三方。如果配合证书伪造等手段,则可能对银行网站实行劫持。

目前许多普通的家庭用户都拥有iPad等无线设备,通过一个路由器共同联网,而DNS的设置则由路由器来决定。如果修改路由器的DNS设定,将造成DNS劫持。近一段时间网络上类似的攻击开始增多,如果不及时修改路由器的登陆密码,则会给黑客可乘之机。目前流行的攻击方法如下:

  1. 通过XSS跨站脚本注入用户正在访问的网站A
  2. 用户正常访问网站A,但浏览器向用户所用的路由器发送HTTP请求,比如”http://%username%:%password%@192.168.1.1/userRpm/LanDhcpServerRpm.htm?dhcpserver=1&ip1=192.168.1.100&ip2=192.168.1.199&Lease=120&gateway=192.168.1.1&domain=&dnsserver=&dnsserver=%bad_dns1%&dnsserver2=%bad_dns2%&Save=%B1%A3+%B4%E6″
  3. 如果失败,脚本则替换%username%和%password%这两个参数,进行暴力破解,直到路由器返回成功的信号,这时DNS替换成了黑客设置的%bad_dns1%和%bad_dns2%
  4. 如果重启路由器,则DNS替换生效,攻击成功

幸运的是,现在的很多路由器都做了这方面的防范,比如验证HTTP请求中的referer标头,而主流的浏览器也禁止了通过js更改referer的行为,这使得这种纯js方法无法进行。但由于这种方法理论上仍然奏效,所以通过浏览器的插件就能实现。

因此,最简单和有效的防护方法是立刻更改路由器的用户名和密码,让暴力破解无法成功。另外也要将浏览器升级至较新版本,同时谨慎安装浏览器插件。

4 comments

Comments are closed.