芒种古诗第42卷第5期通信学报V ol.42No.5 2021年5月Journal on Communications May 2021
没事爱上我做什么DNS隐蔽信道综述
刁嘉文1,方滨兴1,2,崔翔2,王忠儒3,甘蕊灵1,冯林2,姜海4 (1. 北京邮电大学可信分布式计算与服务教育部重点实验室,北京 100876;2. 广州大学网络空间先进技术研究院,广东广州 510006;
3. 中国网络空间研究院信息化研究所,北京 100010;
4. 北京丁牛科技有限公司,北京 100081)
摘 要:DNS隐蔽信道是网络安全中不容忽视的重要安全问题。利用DNS访问服务器的操作广泛存在于传统PC、智能手机及新型基础设施的联网通信中,防火墙等基础防御设施一般不会对DNS数据进行过多过滤。泛在性、隐蔽性使其成为攻击者手中较理想的秘密信道,因此关注已有研究成果及发展趋势都十分必要。首先,将DNS 隐蔽信道的发展历程概括为3个发展阶段,并分析各个阶段的情况。然后,对其进行形式化定义,深入剖析构建机理,并对其存在的不可绕过的异常点进行分析归纳,总结检测方法并将其分为传统检测方式、人工智能赋能的检测方式,提出现存问题。最后,总结当前DNS隐蔽信道的主要研究方向,并对其未来的发展趋势进行展望。
关键词:DNS隐蔽信道;命令控制;数据泄露;检测;高级持续性威胁
中图分类号:TP393
文献标识码:A
DOI: 10.11959/j.issn.1000−436x.2021090
Survey of DNS covert channel
DIAO Jiawen1, FANG Binxing1,2, CUI Xiang2, WANG Zhongru3, GAN Ruiling1, FENG Lin2, JIANG Hai4
1. Key Laboratory of Trustworthy Distributed Computing and Service (Beijing University of Posts and Telecommunications),
Ministry of Education, Beijing 100876, China
2. Cyberspace Institute Advanced Technology, Guangzhou University, Guangzhou 510006, China
3. Chine Academy of Cyberspace Studies, Institute of Information Technology, Beijing 100010, China
4. Beijing DigApis Technology Co., Ltd., Beijing 100081, China
Abstract: DNS covert channel is an important curity issue that cannot be ignored in network curity. The operation of using DNS to access the rver is widely ud in the network communication of traditional PC, smart phones and new in-frastructure. Basic defen facilities such as firewalls generally do not filter DNS data too much. The ubiquity and conceal-ment make it an ideal cret channel for attackers. It is necessary to pay attention to the existing rearch results and devel-opment trends. The development process was summarized into three stages, and the situation of each stage was analyzed.
Formally it was defined and the construction mechanism was deeply analyzed. The existing abnormal points that cannot be bypasd were analyzed and summarized, the detection methods were summarized and divided into traditional detection methods and artificial intelligence-powered detection methods, the existing problems were raid. Bad on the above classi-fication, the construction and detection frontiers of DNS covert channel was reviewed, and an in-depth analysis was con-ducted from different perspectives such as development trends, technical mechanisms, and detection methods. Finally, the main rearch direction of the current was summarized, and its future development trend was prospected.
妇好怎么读
Keywords: DNS covert channel, C&C, data exfiltration, detection, APT
收稿日期:2020−11−23;修回日期:2021−03−24
通信作者:崔翔,*****************
基金项目:广东省重点研发计划基金资助项目(No.2019B010136003, No.2019B010137004);国家重点研发计划基金资助项目(No.2018YFB0803504, No.2019YF A0706404)
Foundation Items: The Key Rearch and Development Program of Guangdong Province (No.2019B010136003, No.2019B010137004), The National Key Rearch and Development Program of China (No.2018YFB0803504, No.2019YFA0706404)
第5期刁嘉文等:DNS隐蔽信道综述·165·
曹丕台词1 引言
域名系统(DNS, domain name system)是一种将域名和IP地址相互映射的以层次结构分布的分布式数据库系统[1],也是互联网上普遍存在的基础解析服务。防火墙等基础防御设施为了保证用户体验一般不会对DNS数据进行过多过滤,使其成为攻击者手中较理想的秘密信道[2]。互联网名称与数字地址
分配机构(ICANN, Internet Corporation for Assigned Names and Number)[3]将其命名为DNS隐蔽信道(DCC, DNS covert channel)。
DCC是指利用DNS数据包中的可定义字段秘密传递信息的通道。其中,“DNS协议”是目前网络上使用的标准域名解析协议[4];“可定义字段”是DNS数据包中的QNAME字段、RDATA字段及RawUDP字段。利用DNS数据包可以构建2种信道:存储信道及时间信道。由于时间信道可传输信息较少且对应的工具及恶意软件很少,故主要研究存储信道的利用情况。DCC可以被用于数据泄露、命令控制(C&C, command & control)及绕过Wi-Fi 连接注册等恶意行为,进而可以用于远控木马(RAT, remote access trojan)、僵尸网络(Botnet)、勒索软件(Ransomeware)、高级持续性威胁(APT, advanced persistent threat)等绝大多数网络攻击。
虽然DCC早在1998年就开始出现,但在2020年仍有许多恶意软件利用其发起攻击,相关开源工具也逐渐被攻击组织恶意利用,对各个领域都产生了一定程度的影响[5-20]。在金融领域,活跃在该领域中的销售点(POS, point of sale)恶意软件(如AlinaPOS[5])经常利用DNS查询请求来泄露信息[6];在医疗领域,SentinelLabs[7]及Unit42[8]报道称Trickbot开发人员在其恶意软件中新增了Anchor_DNS模块,在针对美国医疗系统的攻击中利用该模块使用DCC进行C&C。大多数工具开源且日趋成熟,有理由相信,未来可能会有越来越多的DCC工具被恶意利用,DCC恶意软件也时刻威胁着网络空间安全。
本文主要围绕DCC构建及DCC检测2个方面进行论述,具体贡献总结如下。
1) 对DCC的威胁模型进行了归类、总结;对DCC的发展历程进行了全面梳理,概括为3个发展阶段。
2) 对DCC概念进行了形式化定义;对构建机理进行了深入剖析,为检测研究提供有价值的参考。
3) 总结DCC难以绕过的异常点,并对其异常进行了分析;对传统检测方法及人工智能赋能的检测方法涉及的具有代表性的论文进行了总结梳理,指出现存问题。
4) 对未来的发展趋势进行了展望,旨在从整体角度发现重点问题,为研究人员提供进一步研究的方向。
2 DCC威胁模型与发展历程
2.1 威胁模型
由于DNS协议具有泛在性、隐蔽性,因此可以将DCC运用于许多威胁活动中。DCC分为2种类型,若受害设备通过IP地址直接与恶意权威名称服务器(MANS, malicious authoritative name rver)相连,则称所构成的信道为直连信道,这种情况下一般使用RawUDP字段传输信息;若受害设备通过本地默认解析连接到MANS,则称所构成的信道为中继信道,这种情况下一般使用QNAME字段及RDA T
A字段传输信息。由于前者较简单,故这里主要讨论后者所涉及的命令控制、数据泄露2种威胁场景,其过程有着细微的差别,下面将进行详细阐述。
1) 命令控制
普通防火墙等基础防御设施一般不对DNS进行过多过滤,使DCC成为具有一定隐蔽性、穿透性的C&C信道,可以实现受害设备与远程攻击者搭建的MANS的双向交互,如图1所示。受害设备向MANS请求控制命令,MANS收到后,将欲下发的命令进行处理,利用DNS响应向受害设备发出命令,受害设备解码获得命令并执行。
2) 数据泄露
在这种场景下,攻击者会利用DNS查询请求将待传送数据如敏感信息、文件等传送到其搭建的MANS。由于大部分安全基础设施都更加关注来自外部网络的攻击,因此这种攻击需要主动监测内部流出流量才能发现,使数据泄露的全过程更隐蔽。受害设备向攻击者搭建的MANS发出请求,利用请求来泄露信息,如图2所示。如果待泄露文件较大,则需对其进行分片,然后将分片后的信息进行编码压缩传送。服务器收到后,按照对应格式获取信息,并适当响应。
DCC用于恶意活动一般存在于以上2种场景中。对ATT&CK[21]上实际案例的利用情况统计发
·
166· 通 信 学 报 第42卷
现,有些恶意软件仅使用DCC 进行C&C ,如Feederbot [22]、Pisloader [23]等;有些恶意软件将DCC 仅用于数据泄露,如FrameworkPOS [6]、Remc [24]等;同时也有部分复用C&C 信道进行数据泄露的案例,如RDAT [25]、BONDUPDATER [26]等。 2.2 发展历程
DCC 的发展可以概括为3个阶段:第一阶段(1998年—2010年)是以NSTX [27]、OzymanDNS [28]、Heyoka [29]、PSUDP [30]等工具为代表的攻击探索阶段;第二阶段(2011年—2013年)是以Feederbot [22]、Morto [31]等恶意软件为代表的恶意利用阶段;第三阶段(2014年—至今)是以APT34、FIN6等APT 组织为代表的组织化攻击阶段。
第一阶段,攻击探索阶段。对DCC 的最初运用由隧道协议、传输文件开始,其本质为利用DNS 数据包进行数据的秘密传输。1998年,Pearson [32]首次描述了DNS 隧道的基本情况,实现了利用DNS 数据包进行的客户端与服务器间的简单通信;2002年,由Szerb [27]完成的第一个较流行的隧道工具NSTX 使IP over DNS 成为可能,但其正常运行需要创建一个虚拟网络设备(VDN, virtual network device ),并且只能运行在Linux 系统上;2004年,在Black Hat 大会上,Kaminsky [28]演示了其编写的
OzymanDNS 工具,该工具可以利用DNS 传输文件,也可以封装SSH 隧道(SSH over DNS );2008年,Miller [16]提出了旨在利用DNS 做C&C 的Rever DNS ,其将shellcode 代码放入DNS 响应的TXT 资源记录中,受害设备收到响应并执行后可以主动与服务器建立连接;2009年,Revelli [29,33]在信道容量上进行了进一步思考提出了Heyoka ,指出许多DNS 接受域名标签中的二进制数据,利用二进制编码可以将带宽从每字符5位增加到每字符8位。同时提出可以使用EDNS0,TXT 响应最多可存储1 024 B ;2010年,Born [30,34]在Black Hat 上提出PSUDP ,使用UDP 增加信道带宽,指出可以在DNS 消息末尾注入数据而不会影响DNS 服务器解析,从而增加了信道带宽。这一阶段初步实现了利用DNS 数据包对数据的传输功能,扩宽了信道容量,但也为恶意活动提供了良好的技术基础。
第二阶段,恶意利用阶段。2011年,Dietrich 等[22]分析了第一个基于DCC 的僵尸网络Feederbot ,发现其TXT 应答数据消息块中使用RC4流密码加密(利用DNS 查询来传输密钥派生参数),同时使用循环冗余校验保证数据完整性;卡巴斯基实验室发现利用DNS 进行C&C 的蠕虫W32.Morto [31],其只请求TXT 记录,解密后得到IP
地址进而下载文
图1 命令控制流程
图2 数据泄露流程
第5期刁嘉文等:DNS隐蔽信道综述·167·
件执行;美国能源局[35]发布白皮书表示可以通过DNS查询请求泄露机密信息且难以对其进行检测。2013年,Xu等[36]论证了使用DCC作为僵尸网络C&C通道的可行性,描述并定量分析了包搭载查询、指数分布等查询策略,这些策略可用于在网络级别有效隐藏恶意DNS活动,并指出DNS是一个极有效的C&C信道。这一阶段的技术被恶意运用到僵尸网络等网络恶意行为中,对网络安全造成了较严重的威胁。
第三阶段,组织化攻击阶段。2014年,APT 组织FIN6的FrameworkPOS[37]使用DNS请求泄露了5 600万张借记卡/信用卡信息,在DNS查询中编码了IP地址、主机名、进程名等字段;2016年,Wekby(APT18)的Pisloader[23]使用DNS协议做C&C信道发起攻击;2017年,OilRig(APT34)开发人员对Helminth[38]不同变体的子域首字符进行更改,进而躲避检测,其依赖DNS请求获得具有指令含义的IP地址(A记录)应答,将欲传送的窃密文件使用DNS查询请求分块传送;2018年,OilRig将QUADAGENT用于定向攻击,初次握手时受害设备会得到C&C服务器提供的会话标识符和预共享密钥,并将其保存到注册表,不必每次通信都进行握手;2019年,Lab Dookhtegan Telegram Chanel中泄露了关于APT34的攻击工具,其中Glimp[39-40]可以利用DNS传输指定目录下的文件;2020年,
QuoIntelligence发现WINNTI(APT41)组织自定义Iodine针对德国化工企业,其DNS查询使用Ba128编码。OilRig利用RDA T[10]针对中东电信组织,与其之前样本相比,该样本仅使用DNS 进行C&C通信而无HTTP备用信道。Black Lotus Labs发现Alina POS编码信用卡信息使用DNS查询泄露,指出DNS经常不受监控,同时,为了确保在搜索设备的RAM时准确找到信用卡数据,该恶意软件引入了Luhn校验和算法。APT组织自制恶意软件或集成工具发起攻击活动,逐渐将这一技术纳入攻击中,利用其传输敏感信息及进行C&C,攻击组织化更明显。图3列出了DCC的发展历程。
3 DCC构建机理
3.1 DCC定义
定义1 VictimMachine,
DCC(DDP,
=CMD, POLICY,MANS,ConnectionType,)δ由七元组构成,反映的是攻击者利用DNS数据包中可定义字段创建的隐蔽信息传输通道。
1) VictimMachine指的是感染了DCC恶意软件进而可利用DNS数据包传输数据的受害设备集合,受害设备种类可以是PC、服务器、智能手机、物联网(IoT, Internet of things)设备等一切当前已存在的
、未来可能出现的、具备计算能力和通信能力并可发起DNS查询请求的设备,记为VictimMachine={DCCMalware,,ACTIVITY}
S。
DCCMalware表示运行在受害设备上的恶
意程序集合,记为
1
DCCMalware=dccmalware
{,
2
养老保障dccmalware,dccmal
,}
ware
n
",其中dccmalware
i
表
示运行在VictimMachine
i
上的恶意程序,n表示受害设备的规模。
儿童烟花
图3 DCC发展历程
·168· 通 信 学 报 第42卷
折小星星
S 表示DCCMalware 的状态集合,记为12{,,},n S s s s ="。
ACTIVITY 表示DCCMalware 的动作集合,记为ACTIVITY=endData,ReceiveD {S ata,ReadData, ProcessData,}"。
2) DDP (definable DNS packet )指的是可定义的DNS 数据包,记为DDP={QNAME, RDATA, RawUDP}。
QNAME 表示将待传送信息进行处理后嵌入DNS 查询区域的QNAME 字段中,可以包含编码后的待传送数据、编码方法、序列号等及其各种组合方式。
RDATA 表示将命令/信息进行处理后嵌入DNS 响应区域的RDATA 字段中。
RawUDP 表示将数据处理后嵌入DNS 分组载荷结束与UDP 分组载荷结束为止的空间中(需构造DNS 查询包)。
3) CMD 表示DCCMalware 可执行的控制命令集合(DCCMalware 可以从RDATA 字段中提取控制命令或其本身硬编码控制命令),记为CMD rdata-derived cmd,hard-coded {} cmd =。
4) POLICY 表示保证数据高效可靠传输的策略,记为POLICY=encode,encrypti {on,CRC,query structure time inter }val,",。
5) MANS 表示恶意权威名称服务器。
攻击者搭建的权威名称服务器用来托管恶意域名的名称解析,实现与受害设备集群的通信。
6) ConnectionType 表示连接类型,指的是受害设备与MANS 的连接类型。
五月八月
中继信道是指受害设备通过本地默认解析连接到MANS ;直连信道是指受害设备与MANS 通过IP 地址直接连接。
7) δ表示转换函数,反映了恶意程序收到命令后产生的相应动作及状态变迁,记为:δ DCCMalware × CMD DCCMalware S S ×−>××ACTIVITY,并满足(dccmalware cmd)(dccmalware i s δ××=activity)j s ××, i j ≠。
3.2 构建机理
深入了解恶意软件的构建机理对于防御而言十分必要,图4显示了DCC 的构建方式及通信过程。攻击者通过一定手段使VictimMachine 感染DCCMalware 后与其控制的MANS 进行信息交互,通过POLICY 定制的传输策略,将信息嵌入DDP 传输,建立起攻击者与受控设备可靠、隐蔽的通信桥梁。VictimMachine 可以通过该信道向MANS 泄露信息,MANS 可以通过该信道向VictimMachine 发送控制命令,进而使攻击者获取敏感信息/控制设备的活动状态。
通过对DNS 协议的分析发现,查询区域中除QNAME 字段外,其他字段内容特定或可变动字符极少/一般不被恶意软件利用,故QNAME 字段为该区域待传送信息嵌入的最佳位置;应答区域中RDATA 字段为该区域信息嵌入的最佳位置。对DNS 数据包进行分析发现,DNS 头中不包含资源记录或包总长度信息,解析器依赖报头中指定的资源记录数量确定解析数据,最后一条解析完成就认为到达了末尾。
因此,可在DNS 数据包末尾添加任意数量的数据,RawUDP 为信息嵌入的最佳位置。这样,就构成了对DNS
数据包的利用。本文
图4 DCC 的构建方式及通信过程