来源:https://resources.infosecinstitute.com/detection-prevention-dns-anomalies/
恶意软件和僵尸网络多年来一直是系统和网络的威胁。使用本地病毒扫描器检测病毒或使用入侵检测系统(IDS)传播病毒的通常方法都不能完全减轻威胁。流量的特征可以用来检测不同的威胁。大多数Internet通信从一个或多个域名系统(DNS)查找开始。
一、域名系统
DNS通过为每个域名指定权威名称服务器(authoritative name servers)来委托传递域名并将这些名称映射到Internet资源的责任。映射由主机名、IP地址、文本记录、邮件交换信息、名称服务器信息和密钥信息完成。DNS由一个层次域名空间组成,该空间包含链接域名(节点)的树状数据结构。
要了解DNS的功能,我们必须先了解一些基本的术语:
解析器(Resolver:):一个DNS客户端,它发送DNS消息来获取有关所请求的域名空间的信息。
递归(Recursion):当DNS服务器被要求代表DNS解析器进行查询时,执行此操作。
权威服务器(Authoritative Server):一个DNS服务器,它用存储在资源记录中的关于存储在服务器上的域名称空间的信息来响应查询消息。
递归解析器(Recursive Resolver):递归查询DNS查询中查询的信息的DNS服务器。
完全限定域名(FQDN):完全限定域名是分布式DNS数据库中设备的绝对名称。
RR:资源记录是DNS消息中使用的格式,由以下字段组成:名称、类型、类、TTL、RDLENGTH和RDATA。
专区(Zone):包含存储在权威服务器上的域名空间信息的数据库。
二、DNS是如何工作的
DNS执行的主要功能是将主机名转换为IP地址或将IP地址转换为主机名。这可以是客户端应用程序,比如web浏览器或电子邮件客户端,或者任何向DNS服务器发送DNS查询请求资源记录(RR)中定义的信息的DNS应用程序。翻译该请求的过程包括以下几个步骤:
(1)DNS解析器向递归解析器发送查询消息,询问www.ehacking.net/的地址。
(2)DNS递归器向根名称服务器发送查询消息,查找.net域名空间。
(3)根域名服务器向DNS递归器发送一个DNS引用响应消息,通知它向顶级域名服务器查询.net域名空间。
(4)DNS递归器向TLD名称服务器发送查询消息,查找.ehacking.net域名空间。
(5)TLD名称服务器向DNS递归器发送一个DNS引用响应消息,通知它询问.ehacking.net名称服务器,名称服务器1 .ehacking.net或名称服务器2 .ehacking.net,关于这个域名空间。
(6)DNS递归发送一个查询名称server1 .ehacking.net或名称server2 .ehacking.net请求www.ehacking.net。
(7).ehacking.net名称服务器、名称服务器1.ehacking.net或名称服务器2.ehacking.net向DNS递归器发送权威的DNS查询响应消息,并提供www.ehacking.net的地址RR信息。
(8)DNS递归器向DNS解析器发送一个DNS查询响应消息,其中包含www.ehacking.net的地址RR信息。
三、DNS异常检测
有蠕虫和恶意程序生成DNS数据包,违反有效的DNS头的格式。这可以在网络级别以及具有解析数据包和解码DNS流量以进行验证能力的基于主机的格式良好的脚本中检测到。一旦检测到异常,我们就可以查看源IP地址的操作项。对于DNS异常的检测,有两组。第一组方法分析DNS异常所在数据中的数据包;这些检测方法可以在数据包到达时实时执行。第二组方法对大量数据执行统计分析。这允许我们检测随时间变化的查询量或查询响应中的异常情况。
四、黑名单
通常,黑名单用于拒绝访问某些已知的恶意主机。黑名单可以通过组合不同的流行黑名单来生成,以便对查询进行检查。黑名单检查机制的原则:如果它在名单上,它是恶意的。这种方法可能会识别大部分人为触发的异常DNS流量。
黑名单方法最大的缺陷是,列表可能包含数千个条目,看起来似乎很多。可能有很多已经不存在的域名,或者多个IP地址分配给一个域名。
五、隧道DNS检测
由于DNS数据通常没有受到很好的监控,并且经常允许通过防火墙,因此它是一个理想的隐蔽通道。DNS包可以用来创建一个隐藏的数据通道(隐蔽通道)。在合法的DNS数据包中隐藏数据的方法似乎有很多。
隐蔽信道的检测是基于数据包特征分析的。隐蔽信道中使用的数据包有几个特征可以用来区分。如果使用隐蔽信道传输合理数量的数据,则可以很容易地检查查询的长度或响应记录的大小。100万个最常用域的平均长度是10个字符,其中用于复制随机文件的DNS隧道的平均查询长度超过30个字符。如果将此方法与定时分析结合使用,就可以识别出大容量DNS包流。
六、快速检测通量域名
快速通量是一种网络罪犯使用的技术,将关键的主机隐藏在一组不断变化的受损主机之后。修改后的DNS服务器将在一段时间内为给定域返回一组不同的IP地址,并将例如HTTP流量中继到托管恶意站点的服务器。
可以很容易地检测到快速通量托管服务。有三件事需要注意。第一个明显的概念是记录的数量。域名解析为10个“A”类型的记录,这对大多数网站来说是很多的。第二个概念是IP地址,第三个概念是记录的异常低生存时间(TTL)。它被设置为300秒或5分钟。这使得快速流动的服务提供商可以非常频繁地切换主机,以减轻僵尸程序是作为服务提供商不可靠的普通客户端的事实。
七、特征频率
字符频率分析方法是一个非常有前途的方法,用于检测产生的数据,其中自然语言将被期望。它在密码学中用于检测密码文本中的语言特征。该方法最初是为了可靠的隐蔽通道检测而研究的,但它能检测出更多的异常数据。
攻击者可以压缩和加密数据以优化带宽和隐藏数据。如果可以预测对手的语言,则可以将其语言特征与域名进行比较,假设域名是系统生成的还是攻击者选择的。
八、用于攻击的实现缺陷
1、DNS公开解析器
它是一个DNS服务器,允许不属于其管理域的DNS客户端使用该服务器执行递归名称解析。开放解析器的主要任务是对任何提出问题的人的查询提供响应。
恶意活动使得DNS解析器容易受到如下攻击:
DNS缓存中毒:当攻击者发送假的,通常欺骗RR信息来打开解析器,解析器进一步存储在DNS缓存的TTL(生存时间)。
DNS放大反射攻击:使用DNS公开解析器增加攻击量,隐藏攻击的真正来源。这会导致DOS和DDOS攻击。
资源利用攻击:这种攻击试图消耗所有可用资源,从而公开放解析器的操作造成负面影响。
九、DNS异常指标
增加DNS包的数量
(1)下降的缓存命中率
(2)每个源IP地址的平均DNS查询增加
(3)增加的递归查询数量
(4)在有限的时间内增加源IP地址的数量
(5)下降的已解析查询的比率
许多公司都在努力克服DNS异常和与之相关的威胁。他们正在迅速引入新的有前途的配置,但一些协议和其他缺陷使DNS易受攻击。当遇到DNS异常时,我们应该考虑采取一些应对措施,以及时避免损失。
网友评论