DNS安全 -月宫吴刚
DNS面临的安全隐患:
- DNS欺骗(DNS Spoffing)
- 缓存感染:
- 修改DNS缓存数据
- DNS信息劫持:通过监听,在DNS之前将客户请求的信息劫持下来,并响应虚假数据给客户。
- DNS重定向:将DNS名称查询重定向到恶意DNS服务器上。
- 拒绝服务攻击(Denial ofService):在短时间里,向DNS服务器发起成千上万的请求包,并保持“半开连接”状态,耗尽服务器资源,导致服务停止工作或机器宕机。
- 分布式拒绝服务攻击:和拒绝服务器攻击类似,但是分布式是攻击者利用控制几十台或上百台计算机同时攻击DNS服务器。
- 缓冲区漏洞溢出攻击(bufferOverflow):利用服务器存在的漏洞对DNS进行缓存区溢出攻击,造成服务停止或直接获取root密码。
如何提升DNS的安全性(BIND为例)?
- 选择安全性高的版本:看需求而定,一般选用稳定版,经常给DNS软件打漏洞补丁。
- 保持DNS服务器配置的正确性和可靠性:可使用相关的工具进行安全漏洞检查。
- 隔离DNS服务器:DNS服务器尽量不运行其它服务(非DNS服务),缩小服务器被攻击的可能性。
- 隐藏bind版本号:黑客可通过查询到的版本,利用版本的漏洞进行攻击。
- 避免透露服务器信处:建议不使用HINFO和TXT两个资源记录。
- 关闭DNS服务器的glue fetching选项
- 使用非root用户运行DNS服务(bind)
- 控制区域传输(zero-transfer):如果允许任何人对区域进行传输,主机的主机名、主机IP、路由器名、路由器IP列表等等很容易被入侵者获取。
- 请求限制(allow-query):限制DNS服务范围和递归询问。
- 其它强化措施:使用存取控件列表(ACL)、使用forwarders代询服务器机制、使用allow-transfer、使用allow-update来控制访问权限。
- 使用DNSSEC(公钥技术):防止DNS欺骗。新版的BIND已经针对这问题,完整加以设计并完成。
- 配置DNS Flood Detector:监控用的。
- 建立完整的域名服务器:合理建立惟高速缓存域名服务器、主域名服务器、辅助域名服务器。
- 增强DNS服务器的Dos/DDos防范功能:可以使用SYNCookie功能、增大backlog、缩短retries次数、限制SYN频率。
- 使用分布式DNS服务负载均衡
- 及时更新系统补丁
总结:
DNS 是网络服务的基础建设,要长期不断地保持其正常运作,每一个DNS 服务器都应该定期检测。为了保证DNS服务器的安全运行,不仅要使用可靠的服务器软件版本,而且要对DNS服务器进行安全配置,同时还要跟踪服务器软件和操作系统的各种漏洞。