dns 安全
域名系统组织架构
DNS是全球互联网中最重要的基础服务之一,也是如今唯一的一种有中心点的服务。全球域名系统组织与管理架构如下图所示:
ICANN 互联网名称与数字地址分配机构(The Internet Corporation for Assigned Names and Numbers)。负责IP地址空间的分配、协议标识符的指派、通用顶级域名(gTLD)、国家和地区顶级域名(ccTLD)系统的管理以及根服务器系统的管理。这些职能最初是在美国政府合同下由互联网号码分配当局(Internet Assigned Numbers Authority,IANA)以及其它一些组织提供,现在都由ICANN统一行使。
ccNSO 国家和地区名称支持组(Country Code Names Supporting Organization)。负责各种ccTLD的注册。
GNSO 通用名称支持组(Generic Names Supporting Organization)。负责各种gTLD的注册。
RSSAC 根服务器系统支持委员会(Root Server System Advisory Committee)。负责根服务器系统管理。
全球DNS总共有13个根,具体信息如下表所示:
编号 | IPv4地址 | IPv6地址 | 运营组织 |
A | 198.41.0.4 | 2001:503:ba3e::2:30 | Verisign |
B | 192.228.79.201 | 2001:478:65::53 | USC-ISI |
C | 192.33.4.12 | 2001:500:2::c | Cogent Communications |
D | 199.7.91.13 | 2001:500:2d::d | University of Maryland |
E | 192.203.230.10 | -- | NASA |
F | 192.5.5.241 | 2001:500:2f::f | Internet Systems Consortium |
G | 192.112.36.4 | -- | Defense Information Systems Agency |
H | 128.63.2.53 | 2001:500:1::803f:235 | U.S. Army Research Lab |
I | 192.36.148.17 | 2001:7fe::53 | Netnod |
J | 192.58.128.30 | 2001:503:c27::2:30 | Verisign |
K | 193.0.14.129 | 2001:7fd::1 | RIPE NCC |
L | 199.7.83.42 | 2001:500:3::42 | ICANN |
M | 202.12.27.33 | 2001:dc3::35 | WIDE Project |
域名市场
1.域名交易
作为互联网最重要的轻资产之一,域名原生就具有着投资和品牌价值。围绕域名相关的交易,目前已经衍生出包括注册、买卖、中介、抢注、投资、停放、备案等的一个完整生态系统。
域名注册 向有资质的注册商申请一个域名的过程。国内知名的注册商有万网、35互联、中国数据等,可注册常见的.com、.cn、.net、.org等域名;国外知名的有godaddy、enom等。
域名买卖,域名中介、域名经纪 围绕域名的评估、分析、谈判、购买、出售等一系列过程。可类比房地产行业。
域名抢注 分两种情况,一种是抢注未被注册过的域名,一种是抢注曾经被注册过但是未能在有效期结束前及时续费的域名。国内外都有不少专门提供域名抢注服务的平台。
域名投资 注册和购买有价值的域名,然后获利转让的行为。投资者一般被称为“玉米虫”。2014年比较热门的几次投资事件一个是罗永浩的t.tt,号称成交价200万元;一个是雷军的mi.com,号称成交价360万美元;一个是莫天全的fang.com,成交价格不详。
域名停放 将未建站的域名解析到广告页面,利用域名的自然流量来获取收入的方式。提供域名停放服务依赖以下两点:优质广告资源和防作弊技术。
2.域名解析
域名市场除了包含各种类别的交易服务以外,另还包含解析服务。按照功能不同,域名解析服务可以分为如下几类:
权威DNS 国内典型的代表是dnspod,主要提供域名托管以及智能解析服务。智能解析主要解决这样一个问题:假设一个域名同时绑定了联通和电信的IP,当一个电信用户去访问时有可能会解析到一个联通的IP,从而产生跨网问题。使用智能解析后,系统将根据用户来源去智能的返回结果。
公共DNS 公共DNS类似于运营商的local dns,本质上讲是一种递归解析服务。与运营商DNS不同的是,公共DNS一般以一个或两个非常容易记住的IP方式(如百度公共DNS服务IP:180.76.76.76)给所有用户提供统一服务。公共DNS相对于运营商DNS的优势主要在无劫持、更快、更稳定、更安全等。
CDN DNS 本质上讲也是一种权威DNS,主要在CDN的业务场景中提供流量调度功能。用户将域名CNAME或者直接NS托管到CDN DNS,CDN DNS进一步做智能调度返回一个离用户最近的接入节点。用户访问接入节点,享受CDN提供的缓存、加速、以及防攻击服务。
====
域名安全威胁
1.安全事件
尽管已经有超过30年历史,DNS仍然是整个互联网中最脆弱的一环。下面盘点一下近年来比较严重的DNS安全事件。
2009年5月19日南方六省断网事件。一起由于游戏私服私斗打挂dnspod,殃及暴风影音域名解析,然后进一步殃及电信local dns,从而爆发六省大规模断网的事故。事件影响深远。
2010年1月12日百度域名劫持事件。baidu.com的NS记录被伊朗网军(Iranian Cyber Army)劫持,然后导致www.baidu.com无法访问。事件持续时间8小时,是百度成立以来最严重的故障事件,直接经济损失700万人民币。
2013年5月4日DNS劫持事件。由于主流路由器厂商安全漏洞而导致的全网劫持事件,号称影响了800万用户。
2013年8月25日CN域被攻击事件。cn域dns受到DoS攻击而导致所有cn域名无法解析事故。
2014年1月21日全国DNS故障。迄今为止,大陆境内发生的最为严重的DNS故障,所有通用顶级域(.com/.net/.org)遭到DNS污染,所有的域名全被指向了位于美国的一个IP地址(65.49.2.178)。
2.攻击手段
query flood 通过不断的发DNS请求报文来耗尽目的DNS资源,形成拒绝服务。具体分类包括源IP是否随机以及目的域名是否随机等。
response flood 通过不断的发DNS响应报文来达到拒绝服务的目的。
udp flood DNS底层协议为UDP,基于UDP的各种flood攻击也都会给DNS带来危害。
折射攻击(反射攻击) 伪造源IP为第三方,借助DNS的回包来达到DoS掉第三方的目的。属于“借刀杀人”的手段。
放大攻击 折射攻击的一种。通过恶意的构造响应报文来达到流量放大作用,从而对第三方形成带宽攻击。请求报文几十字节,响应报文几千字节,意味着可以形成百倍以上流量放大系数。
缓存投毒 每一台DNS都有缓存,缓存投毒指的是通过恶意手段污染DNS缓存,形成DNS劫持或者拒绝服务。
漏洞攻击 利用各种漏洞来达到入侵并控制DNS服务器目的。漏洞不仅仅指DNS程序本身的,也有可能是机器或者网络其它的“问题点”。
社会工程学手段 所有的系统都需要人的维护,而人永远是安全中最脆弱的一环。
3.防御手段
对于权威DNS来说,由于请求来源多是运营商或者公共DNS厂商的递归DNS,源IP相对比较固定,可以实施源IP白名单策略。该策略对于伪造源IP的攻击具有一定削弱作用。对于域名随机的攻击来说,如果权威DNS本身承载的域名量不是很大,可以考虑域名白名单策略。如果源IP就是运营商的,然后请求域名也是合法的,只能靠一定限速策略以及DNS服务器本身性能了。
对于递归DNS来说,各种白名单策略误伤都会很严重,因此也主要靠DNS服务器本身性能了。
高性能DNS服务器目前比较流行的做法是基于Intel DPDK来实施。
另外一种推荐实施的策略是RRL(Response Rate Limit),该策略对于防御折射攻击/放大攻击有一定效果。尽管折射攻击的目标不是DNS本身,但是不防御的话如果把第三方打挂仍然会产生连带责任,因此建议实施RRL。
====
状态监控
DNS服务是一项实时性要求非常高的服务,准确全面的监控系统是整个DNS服务的运营基础。为此,设计了一整套的监控体系,包括网络流量监控、服务器内核监控模块、解析监控、服务器集群监控等等。从不同层面不同角度对DNS解析服务进行监控,保证工程师能第一时间了解其运行状态。
信息告警
DNS服务运行过程中总会有各种各样的情况发生,同一个事件需要通知到不同的负责人,每个人需要知道的信息也不尽相同。例如在捕获到域名攻击事件后,会马上向运维工程师发出告警,提示各种层面的流量数据。向技术支持人员发送攻击情况概要和受影响的程度,以便用户询问情况时能得到最新信息。
事件处理
为了及时响应并处理各种事件,为用户提供持续的优质服务,我们实行24小时值班制度。任何时间都会有经验丰富的技术人员准备应对突发情况。同时,为了进一步加强响应效率,自动化运维处理必不可少。
数据记录
当然,事件处理完成并不代表着结束,还需要做好各种记录,保证可以回顾分析。基本的数据包括交换机流量数据、网卡抓包数据、事件处理记录等等,对这些数据都做了完整的记录、备份、整理、归档,这样不但任何问题都有据可查,也为进一步的统计分析做好了准备。
=======
dns 安全的更多相关文章
- 6.DNS公司PC访问外网的设置 + 主DNS服务器和辅助DNS服务器的配置
网站部署之~Windows Server | 本地部署 http://www.cnblogs.com/dunitian/p/4822808.html#iis DNS服务器部署不清楚的可以看上一篇:ht ...
- Liunx下配置DNS服务
当Ping 主机名时可以映射出该主机的IP地址,反之亦然.配置并指定DNS服务器可以快速部署集群,不需要每台主机都去修改HOSTS文件即可实现IP与主机名的相互解析.而在Linux下的DNS是用bin ...
- ★Kali信息收集~4.DNS系列
★.1host:DNS信息 参数: 一般情况下,host查找的是A,AAAA,和MX的记录 案例: DNS服务器查询 host -t ns 域名 A记录和MX记录查询 host 域名(host - ...
- Node.js:DNS模块的使用
Nodejs的DNS模块包涵有关DNS查询和操作的方法,下面介绍该模块的基本用法以及实现一个DNS查询小工具. 1.获取DNS服务器地址 使用getServers方法,该方法返回一个IP地址组成的数组 ...
- Java DNS查询内部实现
源码分析 在Java中,DNS相关的操作都是通过通过InetAddress提供的API实现的.比如查询域名对应的IP地址: String dottedQuadIpAddress = InetAddre ...
- DNS报文格式(RFC1035)
一.域名和资源记录的定义 1.Name space definitions 2.资源记录定义(RR definitions) 2.1 格式 后面分析报文的时候详细解释. ...
- DNS原理及其解析过程 精彩剖析
本文章转自下面:http://369369.blog.51cto.com/319630/812889 DNS原理及其解析过程 精彩剖析 网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址 ...
- CentOS7 查看IP、Gateway、DNS、Hostname
1.查看IP# ip addr 2.查看路由# ip route 3.查看DNS# cat /etc/resolv.conf 4.查看主机名# hostname
- linux查看本机IP、gateway、DNS
IP: ifconfig gateway:[root@localhost ~]# netstat -rnKernel IP routing tableDestination Gatew ...
- Centos6.2设置静态ip和dns
参考了如下文章:https://gist.github.com/fernandoaleman/2172388http://www.lifelinux.com/how-to-configure-stat ...
随机推荐
- oracle存储过程,sql语句执行时间
create or replace procedure sum_info is i integer; temp1 varchar2(50); temp2 varchar2(50); t1 date; ...
- Dubbo——基于Zookeeper服务框架搭建及案例演示
一.了解SOA微服务架构 在大规模服务化之前,应用可能只是通过RMI或Hessian等工具,简单的暴露和引用远程服务,通过配置服务的URL地址进行调用,通过F5等硬件进行负载均衡. (1) 当服务越来 ...
- u盘的一些理解
U盘是由主控板+FLASH+外壳组成的,当主控板焊接上空白FLASH后插入电脑,因为没有相应的数据, 量产工具 电脑只能识别到主控板,而无法识别到FLASH,所以这时候电脑上显示出U盘盘符,但是双击 ...
- 006_nginx动态upstream和安全检查模块
一.参考Tengine http://tengine.taobao.org/document_cn/http_dyups_cn.html ngx_http_dyups_module Descrip ...
- oracle 数据库链路
Oracle数据库链路的建立和使用 一.数据库链路的建立: 1.数据库链路的建立语法一般是:CREATE DATABASE LINK[db_link_name] CONNECT TO [user_na ...
- 玩树莓派(raspberry pi) 2/3 raspbian的遇到的一些问题
raspberry pi买回来玩了一段时间,现在就记录一下入门遇到的一些问题吧. 首先是烧写镜像,和安装电脑系统是一样的道理. 先要有一个制作一个U启动盘.先将SD卡格式化,再用Win32DiskIm ...
- php -- 魔术方法、魔术常量 简单介绍
魔术方法:PHP把类中所有以__(两个下划线)开头的方法当成魔术方法,一般建议用户不要将自定义的方法前面加上__作为前缀.魔术方法: 1. __construct() 类的默认构造方法,如果__con ...
- python魔法函数(二)之__getitem__、__len__、__iter__
魔法函数会增强python类的类型,独立存在 __getitem class Company: def __init__(self, employees): self.employees = empl ...
- 前端工程化-webpack-cli(官方开发中。。。)
- Inno Setup 系列之安装、卸载时调用bat
需求 想在安装的时候调用install.bat,在卸载的时候调用uninstall.bat 解决 可以这样写 Inno Setup 的脚本: [Setup] ; NOTE: The value of ...