【相关博客链接】
【期末复习】北京邮电大学《网络安全》课程期末复习笔记(1. 网络安全概述)
【期末复习】北京邮电大学《网络安全》课程期末复习笔记(2. 恶意代码)
【期末复习】北京邮电大学《网络安全》课程期末复习笔记(3. ARP攻击)
【期末复习】北京邮电大学《网络安全》课程期末复习笔记(4. 拒绝服务攻击)
【期末复习】北京邮电大学《网络安全》课程期末复习笔记(6. 网络安全扫描)
【期末复习】北京邮电大学《网络安全》课程期末复习笔记(7. 防火墙)
【期末复习】北京邮电大学《网络安全》课程期末复习笔记(8. 入侵检测系统)
【期末复习】北京邮电大学《网络安全》课程期末复习笔记(9. 虚拟专用网络)
【期末复习】北京邮电大学《网络安全》课程期末复习笔记(10. 应用安全PGP)
【期末复习】北京邮电大学《网络安全》课程期末复习笔记(11. 社会工程学)
5. DNS安全
5.1. DNS 工作流程
- 递归查询:一般客户机和服务器之间是递归查询,DNS服务器如果未能在本地找到相应的信息,就代替用户向其它服务器进行查询,这时它是代替用户扮演了解析器(resolver)的角色,直到最后把结果找到,也可能根本没有结果,那就返回错误,并返回给用户为止
- 反复查询(迭代查询):一般服务器之间属于反复查询。DNS服务器返回的要么是本地存在的结果信息,要么是一个错误码,告诉查询者你要的信息这里没有,然后再返回一个可能会有查询结果的DNS服务器地址,让查询者到那里去查一查
5.2. DNS安全威胁
-
dns协议报文格式
-
-
DNS应答包被客户端接受需要满足以下五个条件
- 应答包question域和请求包question域的域名信息一致
- Questions: 表示查询问题区域节的数量
- 应答包的Transaction ID和请求包中的Transaction ID一致
- 会话标识(2字节):是DNS报文的ID标识,对于请求报文和其对应的应答报文,这个字段是相同的,通过它可以区分DNS应答报文是哪个请求的响应
- 应答包的源IP地址与请求包的目的IP地址一致(指定对方IP地址)
- 应答包的目的IP地址和端口与请求包的源IP地址和端口一致(指定自己的IP和端口)
- 第一个到达的符合以上四个条件的应答包
- 应答包question域和请求包question域的域名信息一致
-
从以上五个条件可以看出,最初设计DNS时没有考虑它的安全问题,这导致DNS协议存在很多漏洞,这使得DNS很容易受到攻击
-
DNS的安全漏洞主要体现在以下三个方面
- DNS报文只使用序列号来进行有效性鉴别,序列号由客户程序设置并由服务器返回结果,客户程序通过它来确定响应与查询是否匹配,这就引入了序列号攻击的危险
- 从协议定义上来看,在DNS应答报文中可以附加信息,该信息可以和所请求的信息没有直接关系,这样,攻击者就可以在应答中随意添加某些信息,如:指示某域的权威域名服务器的域名及IP,导致在被影响的域名服务器上查询该域的请求都会被转向攻击者所指定的域名服务器上去,从而对网络的完整性构成威胁
- DNS的缓存机制,当一个客户端/DNS服务器,收到有关域名和IP的映射信息时,它会将该信息存放在缓存中,当再次遇到对此域名的查询请求时就直接使用缓存中的结果而无需重新查询。可以通过ipconfig /displaydns命令查看本地DNS缓存信息
-
DNS欺骗攻击流程
- 针对某个客户端进行攻击,伪造answer,使得这个客户端访问我们指定的IP地址
-
DNS下毒攻击流程
- 针对本地DNSserver,伪造其他DNS服务器的answer,从而该DNSserver缓存了这个伪造的answer,这样,在其他客户机向本地DNSserver查询这个域名的时候,就会访问我们指定的IP地址
-
缓冲区溢出攻击
-
攻击者构造特定的畸形数据包来对DNS服务器进行缓冲区溢出攻击
-
危害
- 更改MX记录,造成邮件被截获、修改或删除
- 更改A记录,将www服务器的域名指向黑客具有的同样www 内容的主机,诱使访问者登陆,获取访问者的密码等相关信息
- 利用这台主机作为攻击其他机器的跳板
-
拒绝服务攻击: 域名无法解析为IP地址,用户无法访问互联网
-
-
DNS安全防范
- 选择安全的没有缺陷的BIND版本
- DNS服务器配置正确可靠
- 隔离DNS服务器: DNS服务器上不应该再运行其他服务
- 为BIND创建chroot: chroot是指更改某个进程所能看到的根目录,即将某进程限制在指定的目录中,保证该进程只能对该目录及其子目录有所动作,从而保证整个服务器的安全
- 隐藏BIND版本号
- 请求限制
- 限制区传送
- 关闭动态更新