中伊网战和DNS

今天见识到了国家级的网战较量。结果也不过于DNS攻击和DDOS。

硬件的问题是没办法说了,那个相当于军备竞赛,蛮无聊的说。DNS劫持就比较有趣。毕竟DNS只不过是一个电话簿。攻击了电话簿既没影响网站也没影响用户和中间的信道质量,其实影响力本不会这么大的。要说直接攻击一个网站,要破解服务器密码,或者通过系统漏洞拿到系统操作权限,对于成规模的企业级应用已经相当不易,更不要说国家级网站。不能钓鱼成功或者通过所谓“社会工程学”得到一些情报的话,直接攻破异常困难。像今天这样几个小时搞定一个网站估计是不太现实了。由于DNS服务器不断监听网络DNS报并且不断更新自己数据的这个“易变”的特点,才使得DNS攻击变得异常容易。

其实之前GFW不也是大量采用DNS劫持的手段嘛。那时候我就想过,如果DNS服务器能够分成动态和静态两套互补的体系,则安全性更强不易遭受攻击。(当然政府直接施压你就没辙了。。这个属于“社会工程学”范畴。。)静态DNS是记录长期稳定的DNS路由,不能轻易更新,也不会遭受突如其来的DNS污染。因为新来的DNS不会被他识别为“稳定”的,因此他会拒绝更新。而动态DNS部分则如传统DNS般不断更新。这样一旦出现DNS不稳定的情况,可以通过人工介入的方法(除了可以让管理员手动开启外,也可以考虑让访问用户举报这种方式。但是举报者又可使用DDOS来进行攻击,但攻击结果也不过是转成静态路由而已,对他们的好处不大),强制使用静态路由。当然使用了较为稳定的静态路由的缺点就是速度可能会严重下降。但这也是为了安全性而做的一点牺牲嘛。DNS机制没有仔细研究过,没办法直接在这里提出相应算法和解决方案。不过相信这个思路肯定是可行的。如果研究生期间还没出现类似产品或论文的话,我可以考虑做这方面的研究哈哈。。

另外,除了公共DNS服务可以静态化之外,个人host也可以静态化。这个我也很早就在想了,可惜一直没实际做出来。就是不断读取浏览器访问的域名和IP,然后全都记录下来。一旦发现域名劫持,可以把过去记录下来的域名/IP对导入host中去做一些尝试。一般来讲,封锁IP的速度会慢于域名劫持。所以在域名劫持之后原来的这些IP或许还有可以访问到的。当然啦,如果政府真的下力打击的话,这些IP早晚也还是会封光。。不过,至少。。还有喘息的机会嘛留一丝丝。。

对了对了,补充一点,本地记录IP,对一些公共DNS崩溃造成网络拥堵的情况也能缓解不少问题。甚至每个PC都可以成为一台小型DNS服务器。这样就像p2p的思路一样,大家互帮互助来进行DNS解析。当然大型公共DNS服务还是主力啦。

好吧今天看到DNS争夺战这么激烈,忽然想到以前想过的一些idea,算是做个记录吧。