查看: 2519|回复: 13
收起左侧

[其他] 详解DNS 污染

 关闭 [复制链接]
ly859774502
发表于 2012-5-5 10:46:12 | 显示全部楼层 |阅读模式
本帖最后由 ly859774502 于 2012-5-5 17:22 编辑

详解DNS 污染
什么是 DNS 污染

广义上的 DNS(Domain Name System)污染是一种让一般用户由于得到虚假目标主机 IP 而不能与其通信的方法,是 G{过}F{滤}W 的主要手段之一。其手段又可以分为 DNS 劫持与狭义 DNS 污染两种:

    DNS 劫持指的是通过行政手段控制墙内的 DNS 服务器,使其对敏感查询直接返回伪造的错误结果。
    狭义 DNS 污染则是指监控经过 G{过}F{滤}W 的 DNS 查询请求,发现敏感查询时抢先向查询客户端返回伪造的错误结果。

体现在最终用户上,出现的现象就是:使用墙内 DNS 服务器必然会遭遇 DNS 劫持,而使用墙外 DNS 服务器又会遭遇 DNS 污染。前者是以行政手段实现的,无法以技术手段规避;而后者则是可以通过技术手段予以规避的。
DNS 污染的原理及应对
原理

注意到如下事实:现行标准中 DNS 查询通常使用 UDP 协议并且没有任何验证机制,并且根据惯例查询者会接受第一个返回的结果而抛弃之后的。

因此 G{过}F{滤}W 只需监控 53 端口(DNS 标准端口)的 UDP 查询数据报并分析,一旦发现敏感查询,则抢先向查询者返回一个伪造的错误结果,从而实现 DNS 污染。
应对

针对上述原理,可以提出很多针对的应对方法:

    给 DNS 查询协议增加验证机制:DNSSEC。这是最根本的解决方法,但是目前支持 DNSSEC 的服务器及客户端都还没有普及,希望在不久的将来能够用上。
    尝试在返回的查询结果辨认出伪造结果并予以抛弃:最简单的方法是抛弃第一个接收到返回结果而使用第二个,稍复杂一点的方法可以接收多个返回结果然后观察统计结果,等等。
    根据 RFC 1035,DNS 查询除了 UDP 协议之外,也可能通过 TCP 方式进行,而 TCP 协议是无法被伪造返回结果的,因此可以通过 TCP 方式的 DNS 查询来规避 DNS 污染




LisaLan
发表于 2012-5-5 10:48:44 | 显示全部楼层
请问这是楼主自己做的吗
会用就行
发表于 2012-5-5 10:54:44 | 显示全部楼层
等小白鼠
尘梦幽然
发表于 2012-5-5 12:23:29 来自手机 | 显示全部楼层
如何通过TCP方式来查询DNS呢?LZ能否详解?
wwdboy
发表于 2012-5-5 12:48:07 | 显示全部楼层
谁来试用
jefffire
头像被屏蔽
发表于 2012-5-5 14:10:27 | 显示全部楼层
LZ白费心了,这里是谈“战略”和“感觉”的,技术不受欢迎。
真水吾相
发表于 2012-5-5 15:17:35 | 显示全部楼层
谢谢分享.
zx900930
发表于 2012-5-5 15:22:35 | 显示全部楼层
这个当然不是LZ做的, Windows下32位直接改系统文件采用TCP处理DNS信息, 64位就麻烦一点
Linux下就最简单了, 直接用pdnsd彻底摆脱DNS污染
qianyuqx
头像被屏蔽
发表于 2012-5-5 19:41:14 | 显示全部楼层
功夫网
a13828565410
发表于 2012-5-6 15:17:07 | 显示全部楼层
软件区已经见到

话说很讨厌java
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-2-3 17:52 , Processed in 0.132734 second(s), 17 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表