设为首页 | 收藏本站欢迎来到卓越网络免费免备案CDN加速,DDoS和CC攻击防御,高防CDN管理平台!

已阅读

CDN加速威胁猎杀实战(五):DNS隧道检测

作者:cdnfine      来源:cdnfine      发布时间:2019-05-02
“恶意软件利用DNS隧道现象已存在多年,将数据封装在DNS协议中传输已经是高级威胁团伙的标配工具。大部分防火墙和入侵检测设备很少会过滤DNS流量,僵尸网络和入侵攻击可几乎无限制地加以利用,实现诸如远控、文件传输等操作。同时,内部恶意员工也逐渐学会了使用类似工具盗取关键数据资产”。----DJ的札记(董靖@思睿嘉得CEO)
显然,DNS隧道检测是识别高级威胁以及未知威胁必不可少的关键技术能力之一。

目录:

1.DNS数据包格式及解析过程
2.DNS隧道技术介绍
3.DNS隧道检测的思路
4.DNS隧道检测技术及实战
Zeek(Bro)
Elastic Stack+Zeek(Bro)生成的DNS日志
NIDS规则(Snort和Suricata 9+4=13条)
机器学习
5.总结
附录A:已知利用DNS隧道的恶意软件
附录B:DNS隧道利用工具列表
附录C:DNS隧道检测工具和流量样本

1.DNS数据包格式和解析过程

CDN加速威胁猎杀实战(五):DNS隧道检测 
图一:DNS数据包格式
CDN加速威胁猎杀实战(五):DNS隧道检测 
图二:DNS解析过程

2.DNS隧道技术介绍

CDN加速威胁猎杀实战(五):DNS隧道检测 
图三:DNS隧道技术
DNS隧道是一种滥用域名系统(DNS)将[另一个协议的]数据编码为一系列DNS查询和响应消息的技术。
DNS隧道的一些限制:
1.域名限制为字符集[a-z0-9-]中的255个字符。为了使用该字段发送二进制数据,必须对数据进行编码以满足该字符集要求。
2.PRIVATE和TXT记录允许216个[a-zA-Z0-9-+]字符。
3.CNAME,MX和SRV记录的格式与DNS查询的格式相同
DNS隧道的特点:
1.不需要攻击者和受害者之间的直接连接(当然也支持直接连接的方式)。DNS流量通常通过递归解析器中继,该解析器代表客户端迭代地执行查询。所以在主机上收集的Netflow不会显示与攻击者的直接连接。
2.服务端可以非常隐秘。比如攻击者只使用DNS查询消息(使用NXDOMAIN或FORMAT_ERR)(例如数据泄露),则DNS隧道不必使用DNS响应消息。
3.DNS隧道不必使用单个域名来交换流量。它可以分布在共享同一名称服务器的多个域中。这提供了额外的隐秘性和弹性,因为在网络流量基线中不会出现任何单个域作为异常值。
4.DNS隧道将二进制数据编码为ASCII格式,然后在DNS查询或响应中作为域名进行传输。从编码的二进制数据生成的这种域名具有高熵。此外,为了实现高带宽,DNS隧道对每个分组中最大可能的二进制数据块进行编码,从而产生大的DNS分组。因此,给定来自DNS隧道的DNS流量,可以观察到注册域下的大量长子域,每个子域具有高熵。
高熵,大量子域和大数据包大小似乎是DNS隧道的可靠指标,但是存在误报。比如一些CDN或杀毒软件厂商域名的CNAME记录

3.DNS隧道检测的思路

3.1分层方法
原理:
使用一种分层方法来筛选DNS流量,每层对应DNS隧道的特定方面。这些层由记录类型和记录大小以及访问模式组成。
1.记录类型和记录大小
1.1)资源记录类型(RR)
NULL和Private RR类型使用场景比较罕见。如果DNS流量中出现这些RR应该发出警报。
域名的TXT记录的数量和大小可用于检测最简单的DNS隧道。
1.2)查询和RR大小
查询长度和单个RR大小可以是用于检测的一个很好的指标。特别是,大于180个字符的子域和两个或多个大于52个字符的标签应该被认为是高度可疑的。
2.访问模式
2.1)子域名
每个域的子域数并不总是表示DNS隧道。将DNS隧道域与具有大量子域的其他域分开的是重复查询。DNS隧道创建的子域通常只查询一次。因此,唯一子域的数量和每个域的查询数量的比率可以作为DNS隧道检测的指标。
2.2)域名解析的所有RR及是否访问最终解析的IP
;;ANSWER SECTION:
www.tianyulab.com.600 IN A 185.199.111.153
;;ANSWER SECTION:
www.qq.com.244 IN CNAME https.qq.com.
https.qq.com.360 IN A 121.51.142.21
;;ANSWER SECTION:
www.amazon.com.217 IN CNAME www.cdn.amazon.com.
www.cdn.amazon.com.217 IN CNAME www.amazon.com.edgekey.net.
www.amazon.com.edgekey.net.249 IN CNAME e15316.e22.akamaiedge.net.
e15316.e22.akamaiedge.net.9 IN A 23.37.150.135
正常情况下,DNS解析A/AAAA或CNAME(或MX、SRV)记录最终会指向一个IP地址,DNS解析完成后,客户端会对这个IP地址发起连接。DNS隧道通常不会有。
3.2机器学习
思路:
特征提取:
字符串的字符数,熵(随机性的指示)和查询名称中离散标签的长度。推荐阅读:《
云产品之CDN那些事儿
-FQDN中的字符总数
-子域中的字符数
-查询名称中的大写字符数和数字字符数
-熵(Entropy)是用于确定字符串中不可读性(或加密强度)和不确定性的程度的度量。
-标签(label)数量
-最大标签长度
-平均标签长度

4.DNS隧道检测技术及实战

Zeek(Bro)
Elastic Stack+Zeek(Bro)生成的DNS日志
NIDS规则(Snort和Suricata 9+4=13条)
机器学习
4.1 Zeek(Bro)原理:通过连接持续时间和数据量(比如,45s内请求数超过12个,则告警),请求和应答大小,DNS请求类型以及每个域名的唯一查询来检测DNS隧道,同时支持域名黑白名单机制。实现:Zeek的Anomalous-DNS包实战(视频Demo):
~]#bro-pkg install jbaggs/anomalous-dns
~]#bro-C-i ens33-U.status-p standalone/usr/share/bro/site/anomalous-dns"Site::local_nets+={192.168.8.0/24}"
~]#tcpreplay-i ens33-p 1250/root/dnscat2.pcap

5.总结

本文从DNS的原理出发,通过分析DNS隧道技术的特点,探索了检测DNS隧道的思路和主要技术手段,并通过视频演示的方式帮助读者理解。随着新技术的发展,如DoH(DNS over HTTPS)、DNS over TLS,DNS隧道检测也带来了新的挑战,安全永远是攻防对抗的过程,前路漫漫,与诸君共勉!DNS隧道技术作为高级威胁团伙的标配已存在多年,(信息安全行业)工业界和学术界有大量的研究,本文也参考了各位安全同行的经验,在此表示最诚挚的感谢!!!
Keywords: 免费CDN加速 免备案CDN加速 高防CDN加速