DGA 域名与APT 攻击技术研究
2022-03-02赵煜尹川铭向媛媛
◆赵煜 尹川铭 向媛媛
(国家计算机网络应急技术处理协调中心山东分中心 山东 250002)
随着网络安全防护技术的不断发展,传统的恶意程序很难逃出安全防护设施的监测,传统的恶意程序将C2 服务器的地址直接嵌入程序中,通过逆向分析后阻断C2 服务器地址即可阻断整个僵尸网络。
速变Domain-flux 与Fast-flux 技术的诞生,解决了C2 服务器的隐藏问题,受控主机中的恶意程序通过快速变化的域名与C2 服务器建立网络连接,给网络安全威胁监测与阻断带来了挑战。尤其是近年来具有政治属性的APT 组织越来越活跃,DGA 域名已经成为APT攻击过程中内外网通信与隐藏C2 服务器的常用手段。本文通过对DGA 域名生成算法,Domain-flux 与Fast-flux 技术,及APT 攻击的常用攻击方式研究,提出了一种通过深度神经网络学习识别出DGA域名,结合威胁情报分析研判,用以实现对APT 攻击的有效感知的方法。
1 DGA 算法与AGD 域名技术
DGA(Domain Generation Algorithm)域名生成算法,是一种算法机制,主要用来生成大量的随机域名 AGD(Algorithmically Generated Domain),以便逃避安全设施的检测[1]。DGA 域名常常被僵尸网络用来隐藏受控主机与C2 服务器间的通信行为,攻击者与受控主机使用同一套DGA 算法,生成相同的大量备选AGD 域名,选择个别的域名进行注册解析,就可以实现受控主机与C2 服务器间网络连接的建立,进而发起进一步的攻击[2]。因为只有阻断所有的AGD域名才能有效阻断受控主机与C2 服务器的通信,大量动态变化的随机域名使得传统的基于黑名单的安全防护手段无法有效发挥作用。
DGA 算法可以通过多种特殊的域名生成算法来生成AGD 域名,主要有算术、哈希、排列组合等。
(1)算术方式:该方式根据ASCII 编码的数值进行算术运算生成AGD 域名,该方式较为容易实现。
(2)哈希方式:该方式使用哈希算法,如MD5、SHA-1、SHA-256等,截取一定长度的哈希数值形成AGD 域名。
(3)排列组合方式:该方式从字符集或字典中选取一定的字符或单词进行复制排列组合生成AGD 域名,字符集或字典可以内嵌在恶意程序中也可以从网络中获取,若使用字典则可以模拟出与正常域名相似度很高的AGD 域名,具有很强的迷惑性。
DGA 算法除了特殊的域名生成算法外,通常还需要种子变量作为DGA 算法的输入参数,以保持攻击者与受控主机间生成相同的AGD 域名集合。种子分为两类,时间类的种子和确定类的种子[3]。
(1)时间类的种子:使用时间作为DGA 算法的输入,如:系统时间、网络时钟时间、HTTP 响应中的时间信息等。
(2)确定的种子:使用特定的字符或信息作为DGA 算法的输入,如固定的ASCII 字符串、某种货币的汇率、微博上的关键词等。
2 Domain-flux 与Fast-flux 技术
Domain-flux 及速变域名技术,受控主机中的恶意程序通过快速变化的域名与C2 服务器建立网络连接,以达到隐藏C2 服务器与逃避安全防护手段检测的目标,其核心算法是内嵌在恶意程序中的DGA 域名生成算法[4]。
Fast-flux 技术的核心功能是实现域名解析IP 的不断变化,以达到隐藏真实C2 服务器的目的。为了实现域名与IP 地址间映射关系的快速变化,攻击者需要维护一个IP 地址列表从中周期性的选取IP与域名形成映射关系,并且为了更好实现映射关系的快速变化攻击者往往需要搭建自己的域名解析服务器。
(1)Single-flux 网络。在此网络中,攻击者为了将C2 服务器隐藏,IP 地址列表中的IP 地址往往并不是具有命令控制功能的C2 服务器,而是代理节点(称为:flux-agent,通常由被控主机组成)。flux-agent 在收到被控主机的数据后,最终会转发给具有命令控制功能的C2 服务器(称为:mothership),由mothership 服务器响应被控主机的请求,并通过flux-agent 转发给被控主机[5]。
(2)Double-flux 网络。在此网络中,攻击者为了进一步隐藏自己搭建的DNS 解析服务器,将DNS 解析服务器纳入Fast-flux 网络中。攻击者需要搭建多个DNS 解析服务器,并不断修改顶级域名服务器中对应底层服务器的IP 地址与NS 记录,以实现负责解析域名的解析DNS 服务器的不断变化,由于顶级域名服务器非攻击者所有,为避免被监测发现,解析DNS 服务器的变化往往较慢。
3 APT 攻击
APT(Advanced Persistent Threat)高级持续威胁,往往由于特定的组织发起(称为:APT 组织),利用各种先进的攻击手段,对高价值目标进行的有组织、长期持续性网络攻击行为。有的APT 组织具有国家背景,用以窃取他国的国家机密,破坏网络基础设施,扰乱正常的经济持续,具有较强的政治属性。APT 攻击具有高级性、持续性、威胁性、隐秘性、潜伏性、多态性等特点[6],尤其是近年来APT攻击表现出强烈的跨平台属性,除了传统的Windows 与Linux 桌面平台,逐渐向物联网、移动网络、工控系统、车载智能平台等方面渗透,这就使得传统的监测防御体系很难对APT 攻击进行有效的防御。
APT 攻击的常用手法有:鱼叉攻击、水坑攻击、零日漏洞、路过式下载、社会工程学等[7]。
(1)鱼叉攻击(Spear Phishing),这种类型的攻击对象一般是特定组织机构的成员,根据目标特点属性,发生包含木马程序的具有迷惑性的邮件,诱使其感染木马程序,以便开展进一步的攻击。
(2)水坑攻击(Water Holing),这种类型的攻击需要分析被攻击者的网络访问习惯,通过在被攻击者经常访问的网站上植入木马,在被攻击者访问网站时实现对攻击者的攻击,最终达到入侵的目的。
(3)零日漏洞(Zero-day Exploit,0day),零日漏洞没有被公开,通常没有有效的监测防御手段,具有很高的隐蔽性不易被发现,可以实现安全防护软件的免杀,APT 攻击者可利用零日漏洞可以入侵目标网络,进而开展数据窃取等进一步攻击。
(4)路过式下载(Drive-by download),这种类型的攻击通常由于被攻击者的主机安全策略设置存在漏洞,或者使用的浏览器存在漏洞,恶意程序不需要用户同意即可自行下载运行。另一种情况是恶意程序伪装成正常的弹窗诱骗用户点击下载并运行。
(5)社会工程学,这类攻击通常是利用被攻击者的社会心理属性,通过分析或者欺骗的方式获取重要敏感数据。
APT 的攻击过程可以分为四个阶段,探测、入侵、潜伏、退出[8]。
(1)探测阶段,该阶段主要的目的是完成信息的收集,APT 组织通过网络安全技术、社会工程学等技术手段,收集目标资产的IP、端口及被攻击机构与员工的信息等,分析目标资产可能的风险点,为进一步攻击做好准备。
(2)入侵阶段,该阶段主要的目的是使用各种手段入侵目标资产,在用户不知情的情况下部署木马或后门程序,获取主机的控制权,为数据的窃取做好准备。
(3)潜伏阶段,该阶段主要为窃取信息做准备并等候最佳的攻击时机。APT 组织会进行必要的内网渗透,并具备向外传输数据的条件,当接到指令后,部署在目标主机的恶意程序会使用隐蔽隧道向APT 代理节点传输数据,完成数据的窃取,必要时会破坏目标资产的服务,导致设施运行异常或中断。
(4)退出阶段,该阶段主要为隐藏攻击来源,恶意程序会清除系统日志数据,恢复修改过的相关配置,消除运行痕迹并进行自我销毁,防止被取证分析隐藏真实的攻击来源。
4 一种基于DGA 域名检测的APT 攻击感知方法
为了绕过安全防护手段的监测,目前绝大多数的僵尸网络都使用了Domain-flux 的DGA 技术,僵尸网络又是APT 组织常用的攻击手段,因此可以基于DGA 域名监测结合威胁情报数据,可以实现对APT 攻击进行快速有效的检测感知。
DGA 技术的检测技术可以分为主动与被动两种方式。主动方式主要通过内容识别实现,但是因为DGA 域名大多无法解析,因此,该方法大多情况不适用。被动方式有黑名单、机器学习等。目前通常采用机器学习的被动方式对域名进行分类,实现恶意域名的检查。在机器学习的算法中CNN 深度神经网络因可以处理图像与词语间关系,且在二分类中表现出色,可以用来进行DGA 监测。
CNN 神经网络的诞生主要是为了解决图像处理问题。CNN 检测的图像通常是二维数据,而作为DGA 域名的子域名虽是一维的文本数据,但同样可以用CNN 进行处理。在DGA 域名检测中,使用一维的卷积函数处理DGA 域名片段,以提炼高级特征进一步分析。
DGA 域名检测阶段,DGA 域名检测模型主要由卷积层、池化层、全连接层等部分组成,卷积层分别使用长度为3,4,5 的卷积核进行过滤,池化层采用最大池化的方式进行组合,通过对正常域名与DGA域名训练样本的学习,得到一个可以区分DGA 域名的分类模型,用以实现对DGA 域名的检测。
DGA 域名分析研判阶段,将检测出的疑似DGA 域名进行DNS解析,若可以成功解析出IP 地址,并且随着时间的推移IP 地址不断变化,说明使用了Fast-flux 技术。需要将DGA 域名、域名Whois信息、子域名、IP、IP 域名解析记录、与威胁情报库(如VirusTotal、微步在线、360 威胁情报中心等)进行关联分析研判,确定该DGA域名是否为恶意域名,进而确定是否为APT 攻击。
APT 威胁情报建立阶段,将确定的与APT 攻击有关的DGA 域名、IP 地址纳入APT 威胁情报库,用来进行APT 威胁感知。
APT 攻击感知阶段,通过镜像的方式获取组织机构的互联网出口流量镜像,从中筛选出DNS 解析日志数据,进而分离出DNS 解析域名,使用训练好的CNN 神经网络模型进行检查,若存在多个GDA 域名,则说明该组织机构存在被控主机风险,若DNS 解析日志数据中存在APT 威胁情报中的域名,说明存在被APT 攻击的风险。
5 结束语
本文研究了DGA 域名生成算法,Domain-flux 与Fast-flux 技术,及APT 攻击的常用攻击方式,并提出了一种基于DGA 域名检测的APT 攻击感知方法,用于分析DGA 域名与APT 攻击间的关系,实现对机构内APT 攻击的风险隐患的实时监测。DGA 域名作为APT攻击的常用手段,现有的检测感知技术存在一定的滞后性,仍需进一步研究提升检测准确率与效率。