A Robust Malicious Domain Detection System based on Heterogeneous Information Network with Transductive Classification
标签(空格分隔): Paper
我们设计的域名检测系统 HinDom 不依赖手工选择的特征,而是将 DNS 场景建模为异构信息网络(Heterogeneous Information Network),该网络由客户端、域名、IP 地址与它们之间的关系组成。基于元路径的转换分类(Metapath-Based Transductive Classification)方法使得 HinDom 可以在只有一小部分标签的情况下检测恶意域名。在 CERNET 和 TUNET 中测试评估了性能,发现了网络中长期存在的挖矿僵尸网络。
域名是各种网络犯罪中使用的主要攻击媒介之一,攻击者使用的 Fast-Flux、Domain-Flux 和 Dobule-Flux 等技术使得黑名单类的静态防御手段失效。而后,基于特征的检测方法兴起。但需要足够大的有标签数据集以保证覆盖度和准确性,其次手工选择的特征容易被攻击者规避。另外,将 DNS 相关数据建模为“客户端-域名二分图”或者“域名-IP二分图”都最多只能表示两种类型的实体,利用一种关系,丢失了大量的信息。
异构信息网络可以表示各种组件与组件间的关系;应用转换分类方法来利用结构信息,因此减少了对数据集的依赖。为了在实际中应用,设计了一系列滤波规则提高效率、减少噪音。恶意域名检测的基本逻辑是:
- 与已知恶意域名有强关联的域名很可能是恶意的
- 攻击者可以单独伪造域名但不能轻易更改其关联
总体来说,恶意域名检测可以分为两大类:
一般方法是基于从 DNS 相关数据中提取的特征来构建分类器,然后使用真实数据集训练后检测恶意域名。
- Notos 通过分析网络与区域特征得到信誉评分,分类器基于五个打好标签的组(Popular、Common、Akamai、CDN、Dynamic DNS)
- Exposure 将检测范围扩大到垃圾邮件、网络钓鱼等恶意域名
- Kopis 利用顶级域名服务器之间的流量获得了更大的可见性
- Pleiades 分析 DNS 流量中的 NXDomain 来检测 DGA 域名
这些研究中,使用了各种资源来丰富数据,如 ASN、WHOIS、地理信息、网络流量等。但对待数据的方式是粗粒度的,同时分类器会将每个域名分别处理,依靠统计结果作为特征
利用域名之间的关系得到更大的视角:
- Manadhata 建立“客户端-域名二部图”并应用信念传播发现而已域名
- Segugio 根据客户端与解析器之间的 DNS 流量构建“客户端-域名二部图”
- Khalil 基于 PassiveDNS 构建“域名IP二部图”
- Futai 构造 DNS 查询响应图与 PassiveDNS 图来利用客户端查询和域名解析 IP 地址的关系
但是,由于同构网络分析方法的局限性,上述研究最多只能表示两种类型的节点与一种关系。这样做丢失了 DNS 相关数据中大量的信息。
以在会议上发表论文为例,可以构建一个异构信息网络
与归纳分类从训练数据中学习一般决策功能不同,转换分类从特定的训练数据推断特定的测试数据。这种情况更像在整个网络上传播标签信息,因此当测试数据很多但有标记的训练数据很少时转换分类可以利用未标记数据中的信息进行更有效的分类
异构信息网络近年来应用于链接预测、推荐系统、信息融合等领域。
- Hindroid 通过分析 Andriod 程序的 API 调用之间的关系提取更高级别的语义以精准发现 Android 恶意软件
- Scorpion 使用异构信息网络建模文件、API 与 DLL 之间的关系进行恶意软件检测
- GNetMine 将名为 LLGC 的转换分类方法从同构网络中扩展到异构网络
- HetPathMine 利用元路径为不同类型的对象设置不同的分类标准
- Grempt 为没有标签的样本生成局部估计的标签,并将转换方法从分类扩展到回归
DNS 场景可建模为三个节点:客户端、域名、IP 地址。节点间共存在六种关系:
- 客户端查询域名
- 客户端与客户端属于同一网段
- 域名解析成 IP 地址
- 域名与域名相似(字符级分布)
- 域名与域名都在 CNAME 记录中
- IP 地址与 IP 地址曾经映射到相同的域名
在域名之间建立元路径来表示连接关系,使用 PathSim 算法计算域名节点之间的相似度。根据 Laplacian Scores 将不同元路径依据相似度进行组合,从而挖掘多个 View 之间的关联。在 LLGC、GNetMine、HetPathMine 的启发下,将基于元路径的转换分类方法引入 HinDom 以充分利用未标记样本提供的信息。
HinDom 主要有五个部分:
- 数据收集
- HIN 构造
- 图修剪
- 元路径组合
- 转换分类
数据源主要有三个:
- DNS 服务器日志,包括源 IP、查询的域名与时间等信息
- DNS 流量,包含 NS、MX、TXT、PRT 等
- Passive DNS 数据,包括域名出现的首次和最后时间戳,以及绑定 IP 的关系
根据对应关系可以写出实体间的邻接矩阵,除了表示域名之间字符级相似的矩阵外都可以从 DNS 数据中提取。使用 n-gram 处理域名字符串,将整个数据集的结果视为一个词汇表将每个域名转换为特征向量。然后使用 K-Means 将这些向量聚类为 K 类,并将聚类结果转换为矩阵
单字母、双字母和三字母的测试中,三字母带来了些微改善但内存需求大幅提高,考了到性能和复杂度,将单字母和双字母连接为特征,并根据经验设置 K 为 20
HIN 可能会包含数百万节点和数十亿边,使用以下策略保守地删除噪音域名:
- 异常域名:删除不符合命名规则的域名,如 [email protected] 可能是因为错误输入、错误配置、滥用良性服务而产生的
- 唯一查询域名:仅仅由一个客户端查询的域名,专注于产生更大影响的域名
- 热门域名:通常情况下,大部分查询的流行域名都是良性的,否则发生的重大攻击事件容易被检测到。保守起见,筛选出网络中 25% 的客户端查询的域名
- “大型”客户端:通常是 DNS 转发器与代理,不能代表常规客户端的行为。保守地删除了最活跃用户的前 0.1%(依据经验)
- 不活跃的客户端:查询量少于 3 的客户端
- 稀有 IP:仅映射到一个域名的 IP 地址
为了避免丢失过多信息,基于标签信息设置了一些例外
从六个关系中导出六种类型的元路径:
- 良性域名和恶意域名在字符分布上有所不同,来自同一家族的恶意域名往往遵循相似的模式
- 良性域名的 CNAME 不太可能是恶意的,反之亦然
- 相同攻击者的受感染客户端倾向于查询部分重叠的恶意域名,而普通客户端不会与之通信
- IP 相对稳定,在一段时间内解析为相同 IP 的域名往往是一类的
- 相邻客户端容易受到类似的攻击
- 要保持灵活也要受限于资金情况,攻击者仍然会重用域名与 IP 地址
基于元路径使用 PathSim 的算法测量节点之间的相似度,另外有许多方法可以计算权重向量,例如具有梯度下降的线性回归。HinDom 使用 Laplacian Score,这带来了两个好处:
- 可用于无监督学习
- 作为一种过滤器方法,与进一步的学习算法无关
它的基本思想是根据特征的局部保存能力对其进行评估,通过构造一个最近邻图寻找关于该图的特征
使用 Alexa TOP 列表作为白名单会产生很多误报,一个公开网站可能用作恶意活动的代理,某些恶意域名也可能排名很高。黑名单尽管通常是有证据支撑的,但存在误报,如 alipay.com 位于 DGArchive 中
为了降低标记成本,基于元路径的转换分类即使使用一小部分有标记样本也可以表现很好。转换分类的两个基本假设是:
- 平滑假设:关系紧密的对象往往属于同一类
- 拟合假设:已知节点的分类结果与预先标记一致
检测结果中大于阈值的有标记域名作为局部白名单与黑名单,变成进一步检测的补充,仅在 7 天内保留本地标签信息
TUNET 中每天有超过 24 万个客户端请求约 150 万唯一域名。使用 CERNET2 的流量构建 HIN,使用 360 Passive DNS 数据集进行丰富,TUNET 和 360 Passive DNS 数据集用于构建客户端与域名-IP部分。目前 DNS 流量中仅使用 A、AAAA、CNAME 记录,未来可能扩展到 PDG、MX、SRV、NS、PTR 记录
标记了 2018 年 4 月 13 日 CERNET2 中查询的大约一百万域名,使用 Alexa TOP 1K 作为白名单、使用多方来源如 Malwaredomains.com、Malwaredomainlist.com、DGArchive、Google Safe Browsing 与 VirusTotal 等作为黑名单。此外手动调查了可疑域名
HIN 中共有大约 49 万客户端、70 万良性域名、25 万恶意域名,26 万 IP 地址,共计 170 万节点、2 亿 2870 万边
测试可用性时,通过随机保留 70% 域名的标签信息来测试每个元路径的检测性能,剩下 30% 作为测试样本,并重复十次。可以发现,在为每个元路径分配权重时,需要考虑覆盖范围和准确性,既要保证节点联通又要保证误报不高
测试鲁棒性时,随机保存 90%、70%、50%、30%、10% 的标签,在较少标签的情况下仍能保持较高的准确度。即便这样,至少也要提供 10 % 的标签,否则效果会急剧下降。说明其不仅可以从有标记的数据中进行学习,而且可以充分利用域名之间的关联,在整个网络中传播标记
通过对黑白名单增加噪声进行评估后发现,存在噪音的情况下也能获得不错的效果。同时,该方案还能纠正一开始被错误分类的域名,例如 memberprod.alipay.com 和 hosting.rediff.com 同时具有良性和恶意信息,被归类为恶意类别中,HinDom 在十一次迭代后将其标签翻转过来,因为其与良性域名存在很强的关联
考虑到性能原因,将时间窗口设置为一小时。
- 在 CERNET2 中,平均约有 4 万个客户端在一小时内发起 380 万 DNS 请求,经过图修剪后存在 25 万个唯一域名。其中 3.34% 是恶意域名,且经过专家认证结果可靠。例如,原型系统检测到未在任何公共黑名单中列出的域名,在与 360 沟通后确认该域名归属于名为 MsraMiner 的挖矿僵尸网络。
- 在 TUNET 中,约有 5 万个客户端在一小时内请求 40 万个唯一域名,其中恶意的比例占 1.21%。尽管采取了比较严格的网络安全措施,仍然检测到了 MsraMiner 的变体,域名为 ra1.kziu0tpofwf.club 和 sim.jiovt.com
- 时间窗口不能太小也不能太大,邻接矩阵之间的相乘是一项极其消耗资源的操作,建议实际部署中使用并行计算框架
- embedding 是一种以低维表示图的新方法,已经提出了一些可靠的方法如 HIN2Vec、ESim 等来表示 HIN 中的节点
- 恶意域名托管在 CDN 类的网络服务时,效果不好
- 只能检测存在直接关系或间接关系的恶意域名