随着网络的逐步普及,网络安全已成为INTERNET路上事实上的焦点,它关系着INTERNET的进一步发展和普及,甚至关系着INTERNET的生存。随着网络世界的更新和发展,有越来越多的网络技术来保障我们的网络安全,下面来介绍一下网络安全中重要的一环——DNS安全。
丨DNS的工作原理:
DNS分为Client和Server,Client扮演发问的角色,也就是问Server一个Domain Name,而Server必须要回答此Domain Name的真正IP地址。而当地的DNS先会查自己的资料库。如果自己的资料库没有,则会往该DNS上所设的的DNS询问,依此得到答案之后,将收到的答案存起来,并回答客户。
DNS服务器会根据不同的授权区(Zone),记录所属该网域下的各名称资料,这个资料包括网域下的次网域名称及主机名称。
丨常见的DNS攻击包括:
1) 域名劫持
通过采用黑客手段控制了域名管理密码和域名管理邮箱,然后将该域名的NS纪录指向到黑客可以控制的DNS服务器,然后通过在该DNS服务器上添加相应域名纪录,从而使网民访问该域名时,进入了黑客所指向的内容。
这显然是DNS服务提供商的责任,用户束手无策。
2) 缓存投毒
利用控制DNS缓存服务器,把原本准备访问某网站的用户在不知不觉中带到黑客指向的其他网站上。
其实现方式有多种,比如可以通过利用网民ISP端的DNS缓存服务器的漏洞进行攻击或控制,从而改变该ISP内的用户访问域名的响应结果;或者,黑客通过利用用户权威域名服务器上的漏洞,如当用户权威域名服务器同时可以被当作缓存服务器使用,黑客可以实现缓存投毒,将错误的域名纪录存入缓存中,从而使所有使用该缓存服务器的用户得到错误的DNS解析结果。
最近发现的DNS重大缺陷,就是这种方式的。只所以说是“重大”缺陷,据报道是因为是协议自身的设计实现问题造成的,几乎所有的DNS软件都存在这样的问题。
3)ddos攻击
一种攻击针对DNS服务器软件本身,通常利用BIND软件程序中的漏洞,导致DNS服务器崩溃或拒绝服务;另一种攻击的目标不是DNS服务器,而是利用DNS服务器作为中间的“攻击放大器”,去攻击其它互联网上的主机,导致被攻击主机拒绝服务。
4) DNS欺骗
DNS欺骗就是攻击者冒充域名服务器的一种欺骗行为。
原理:如果可以冒充域名服务器,然后把查询的IP地址设为攻击者的IP地址,这样的话,用户上网就只能看到攻击者的主页,而不是用户想要取得的网站的主页了,这就是DNS欺骗的基本原理。DNS欺骗其实并不是真的“黑掉”了对方的网站,而是冒名顶替、招摇撞骗罢了。
现在的Internet上存在的DNS服务器有绝大多数都是用bind来架设的,使用的bind版本主要为bind 4.9.5+P1以前版本和bind 8.2.2-P5以前版本.这些bind有个共同的特点,就是BIND会缓存(Cache)所有已经查询过的结果,这样就容易出现一些安全方面的问题。
丨下面是基于bind的一些DNS安全方面的建议:
1.授权DNS服务器限制名字服务器递归查询功能,递归dns服务器要限制递归访问的客户(启用白名单IP段)
2.限制区传送zone transfer,主从同步的DNS服务器范围启用白名单,不在列表内的DNS服务器不允许同步zone文件
allow-transfer{ };
allow-update{ };
3.启用黑白名单
已知的攻击IP 加入bind的黑名单,或防火墙上设置禁止访问;
通过acl设置允许访问的IP网段;
通过acl设置允许访问的IP网段;通过acl设置允许访问的IP网段;
4.隐藏BIND的版本信息;
5.使用非root权限运行BIND;
4.隐藏BIND的版本信息;
5.使用非root权限运行BIND;
6.删除DNS上不必要的其他服务。创建一个DNS服务器系统就不应该安装Web、POP、gopher、NNTP News等服务。
建议不安装以下软件包:
1)X-Windows及相关的软件包;2)多媒体应用软件包;3)任何不需要的编译程序和脚本解释语言;4)任何不用的文本编辑器;5)不需要的客户程序;6)不需要的其他网络服务。确保域名解析服务的独立性,运行域名解析服务的服务器上不能同时开启其他端口的服务。权威域名解析服务和递归域名解析服务需要在不同的服务器上独立提供;
7.使用dnstop监控DNS流量
#yum install libpcap-devel ncurses-devel
9.增强DNS服务器的防范Dos/DDoS功能
使用SYN cookie
增加backlog,可以一定程度减缓大量SYN请求导致TCP连接阻塞的状况
缩短retries次数:Linux系统默认的tcp_synack_retries是5次
限制SYN频率
防范SYN Attack攻击: # echo 1 > /proc/sys/net/ipv4/tcp_syncookies 把这个命令加入"/etc/rc.d/rc.local"文件中;
10.[防中间人攻击(Man in the Middle Attack)]:对域名服务协议是否正常进行监控,即利用对应的服务协议或采用相应的测试工具向服务端口发起模拟请求,分析服务器返回的结果,以判断当前服务是否正常以及内存数据是否变动。在条件允许的情况下,在不同网络内部部署多个探测点分布式监控;
11.[防ddos攻击]提供域名服务的服务器数量应不低于2台,建议独立的名字服务器数量为5台。并且建议将服务器部署在不同的物理网络环境中; 使用入侵检测系统,尽可能的检测出中间人攻击行为; 在域名服务系统周围部署抗攻击设备,应对这类型的攻击;利用流量分析等工具检测出DDoS攻击行为,以便及时采取应急措施;
12.[防 缓存窥探(Cache Snooping)]:限制递归服务的服务范围,仅允许特定网段的用户使用递归服务;
13.[防缓存中毒(或DNS欺骗)(Cache Poisoning or DNS Spoofing)]:对重要域名的解析结果进行重点监测,一旦发现解析数据有变化能够及时给出告警提示; 部署dnssec;
14.建立完善的数据备份机制和日志管理系统。应保留最新的3个月的全部解析日志,并且建议对重要的域名信息系统采取7×24的维护机制保障,应急响应到场时间不能迟于30分钟。
——END——
原文链接:https://cloud.tencent.com/developer/news/10431
原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/21948