一种多粒度DNS隧道攻击检测方法
2021-08-07陈治昊
现代计算机 2021年17期
陈治昊
(四川大学网络空间安全学院,成都 610065)
0 引言
DNS隧道攻击是指利用DNS请求建立起隧道,绕过防火墙、入侵检测系统等网络安全策略,实现信息窃取、远程命令执行等网络攻击行为。攻击者搭建一个含有恶意软件的DNS权威服务器并注册一个域名后,内网中的受控主机能通过该域名将编码后DNS请求发往攻击者的服务器建立隧道并进行交互,建立隧道后服务器能够将内网主机发送的DNS请求数据包进行解码获取传输数据,同时也能够向受控主机发送编码后的控制指令,达到远程命令执行的目的。根据RFC1034[1]和RFC1035[2]中定义的DNS格式,DNS除了通常解析域名所使用的A类型请求,还存在MX、TXT、CNAME等类型,允许填充任意类型的字符信息,这就使得攻击者能够使用DNS隧道进行信息窃取以及远程命令执行等攻击。同时由于DNS协议受到的监控力度较小,许多木马、僵尸网络和APT攻击也使用了DNS隧道进行控制通信,保持攻击服务器与内网受控主机之间的连接。在2016年5月,在Palo Alto公开的一起APT攻击事件中[3],攻击团队利用DNS请求应答机制作为攻击渗透的命令控制通道。
目前对于DNS隧道攻击的检测方法主要有两类:基于载荷分析与基于行为检测。
基于载荷是指将DNS请求与响应数据包中的有效载荷进行分析。章航等通过请求载荷的域名长度、字符占比、随机性特征和语义特征来检测DNS隧道攻击[4];Homem I等人分析了DNS隧道攻击的内部数据包结构,使用数据包内容信息熵进行检测[5];Lai C M等人使用每个DNS数据包的前512个字节进行检测[6];……
登录APP查看全文
