dns缓存投毒的防范措施

dns投毒是指攻击者伪造权威DNS的回包,向递归DNS发送查询应答包.因为UDP本身是无状态的.递归dns在发送请求时会随机产生1个ID做标识,当自己发送出去请求包后,如果伪造满足下列条件一个UDP包就可以让递归DNS缓存到自己设置的一个记录:
1. 目标IP/端口为递归dns发请求时使用的源IP/端口一致
2. 报文里的TXID一致
3. 查询的记录一致
为了尽量减少缓存投毒可以使用的方案:
1. 递归出去的IP和自己的服务IP分开,递归使用一个网段出去,并且把递归源端口范围设置的尽量大.
2. 校验权威DNS的TTL(指的是IP包里的TTL,到自己需要经过多少跳路由)
3. 递归DNS发请求的时候把查询的记录大小写随机,校验response报文里是否和请求的一致.

此条目发表在dns分类目录。将固定链接加入收藏夹。

发表回复