DNS是网络服务入口,是所有业务访问必经之路。正常业务要通过DNS访问服务,恶意程序也需要通过DNS外联。数据显示,近91.3%的恶意程序被发现使用DNS作为主要入侵手段。这是因为DNS本身的协议脆弱性导致其很容易被利用,且攻击者可以很好地隐藏自己。DNS隧道攻击就是攻击者经常使用的攻击手段之一,本期云学堂解析DNS隧道攻击的原理,分享判断隧道攻击的基本思路,enjoy:
利用DNS查询过程,将非法数据压缩编码封装在DNS协议中,然后以DNS请求和响应包完成传输数据(通信)。
攻击者通过C&C服务器完成点对点数据传播,或者植入木马、蠕虫、恶意软件等完成长期隐藏式的APT攻击。
针对传统的安全设备,如网络防火墙等有较强的穿透性;DNS攻击成本相对较低,但攻击效果明显。
攻击者的流量数据封装在DNS协议中,传统安全设备较难发现,从流量数据包来看不容易被识别,不进行专业分析只会被认为是53端口DNS数据,隐蔽性较强。
恶意程序将控制指令封装在DNS协议中进行请求和响应交互,其中请求和响应中的真实控制指令均被编码成一段字符串。
通常发起请求的域名均采用Base64,Binary编码,NetBios编码、Hex编码等编码方式进行加密,为了传输更多的数据一般情况下采用TXT类型(DNS请求类型的一种)。所以防火墙和入侵检测设备处于正常递归出网的考虑很难做到对DNS流量的分析与过滤,因此,攻击者可以利用它实现诸如远程控制等攻击行为。
DNS隧道除了可以实现恶意程序与C&C端的控制指令交互,还可以为攻击者提供一种永远可用的后方隧道来泄露窃取的资料或敏感数据。虽然受限于域名长度的限制,以及UDP传输的不可靠性,利用DNS隧道对外传输大的文件较难,但是传输重要的敏感信息已经足够。上述图中就展示了通过持续的子域名请求传送到控制端,然后在控制端将这些请求按照顺序拼接起来获取敏感数据。
在试验环境中通过Wireshark等抓包工具分析,可以看出利用DNS隧道传输文件的DNS报文交互过程具备以下特点:请求一系列超长随机子域、请求的域名中包含序列号、高频率访问同一父域、请求应答包较大、请求频率加快、DNS流量剧增。
目前,DNS隧道技术已经很成熟,相关工具也很多,而且不同工具也各具特色。目前比较活跃的有iodine,dnscat2,其他的还有DeNise,dns2tcp,Heyoka等等。
通过前面的介绍,我们不难发现DNS隧道攻击有着极强的伪装性。但是它们都有一个共性——请求和响应看起来都比较奇怪;那么我们该如何去检测?为此,针对DNS隧道攻击的原理及特征,我们梳理了判断攻击的思路方法:
-
域名长度、域名合法字符、域名RFC规则,建模特征对比
通过我们对不同场景下的建模分析,不难发现我们可以针对DNS隧道流量总结出一些特点即“临界值”,例如域名label字符串长度52、域名合法字符 a-z, A-Z, 0-9、上传下载比例 %500;同时满足会话报文总数大于20个等等。通过针对DNS隧道流量的检测我们匹配临界值即可做到一定有效的防御。
除此之外我们还可以从其他DNS携带特征、流量分析等层面进行分析从而达到防护的效果。
DNS隧道是网络攻击者重要的“作案”手段,目前已经有很多公开的或未公开的利用工具。传统的安全防护手段中,没有针对DNS流量的防护策略,边界设备通常会将目标是53端口的流量放行,因此,如果对DNS流量不做任何的监管,则极有可能因忽视DNS安全防护,使企业花重金打造的安全体系成为“阿喀琉斯之踵”。
未经允许不得转载(声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:net-net@foxmail.com进行举报,并提供相关证据,工作人员会在10个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。):策信智库资讯网 » DNS云学堂 | DNS的隐秘角落,隐藏性极强的隧道攻击分析