网域服务器缓存污染查看源代码讨论查看历史
网域服务器缓存污染(DNS cache pollution),又称域名服务器缓存投毒(DNS cache poisoning)、DNS缓存投毒,是指一些刻意制造或无意中制造出来的域名服务器数据包,把域名指往不正确的IP地址。一般来说,在互联网上都有可信赖的网域服务器,但为减低网络上的流量压力,一般的域名服务器都会把从上游的域名服务器获得的解析记录暂存起来,待下次有其他机器要求解析域名时,可以立即提供服务。一旦有关网域的局域域名服务器的缓存受到污染,就会把网域内的电脑导引往错误的服务器或服务器的网址。
域名服务器缓存污染可能是因为域名服务器软件的设计错误而产生,但亦可能由别有用心者透过研究开放架构的域名服务器系统来利用当中的漏洞。 .。 透过变更Windows 2003的某些域名数据包设置,可以摒除有可疑的数据包。
为防止局域的域名服务器缓存污染除了要定时更新服务器的软件以外,可能还需要人手变更某些设置,以控制服务器对可疑的域名数据包作出筛选[1]。
缓存污染攻击
一般来说,一部连上了互联网的电脑都会使用互联网服务提供商提供的域名服务器。这个服务器一般只会服务供应商的客户,通常都会将部分客户曾经请求过的域名暂存起来,这种服务器被称为非权威服务器,其应答称非权威应答。缓存污染攻击就是针对这一种服务器,以影响服务器的用户或下游服务。
中国防火长城
在中国大陆,对所有经过防火长城(英语:Great Firewall,常用简称:GFW)的在UDP的53端口上的域名查询进行IDS入侵检测,一经发现与黑名单关键词相匹配的域名查询请求,会马上伪装成目标域名的解析服务器返回虚假的查询结果。由于通常的域名查询没有任何认证机制,而且域名查询通常基于无连接不可靠的UDP协议,查询者只能接受最先到达的格式正确结果,并丢弃之后的结果。
- 对于不了解相关知识的网民来说,由于系统默认从使用的ISP所提供的域名查询服务器去查询国外的权威服务器时,即被防火长城污染,进而使其缓存受到污染,因此默认情况下查询ISP的服务器就会获得虚假IP地址;而用户直接查询境外域名查询服务器(比如 Google Public DNS)时有可能会直接被防火长城污染,从而在没有任何防范机制的情况下仍然不能获得目标网站正确的IP地址。
- 因为TCP连接的机制可靠,防火长城理论上未对TCP协议下的域名查询进行污染,故现在能透过强制使用TCP协议查询真实的IP地址。而现实的情况是,防火长城对于真实的IP地址也可能会采取其它的手段进行封锁,或者对查询行为使用连接重置的方法进行拦截,故能否真正访问可能还需要其它翻墙的手段。
- 通常情况下无论使用设置在中国大陆的DNS服务还是使用设置在海外的DNS服务,因为解析结果都需要穿过GFW,所以都会被GFW污染。但是仍有一些设置在中国大陆的小型DNS使用技术手段回避GFW的污染并提供不受污染的结果,通常使用这些小型DNS也能够访问其他被封锁的网站[2]。
另外,DNS污染的污染IP不是一成不变的,污染的无效IP在一段时间后会更新。
视频
网域服务器缓存污染 相关视频
参考文献
- ↑ 什么是DNS污染(域名服务器缓存投毒)? ,誉名网,2019-02-12
- ↑ 美媒称防火长城助中国互联网繁荣:不必与外企竞争 ,中国网,2015-7-1