笔记作者:sshruoshui@SecQuan
原文作者:Xiaoqing Sun, Mingkai Tong, Jiahai Yang, Tsinghua University;Liu Xinran, National Computer Network Emergency Response Technical Team/Coordination Center of China, Beijing, China;Liu Heng, China Electronics Cyberspace Great Wall Co., Ltd, Beijing, China
原文标题:HinDom: A Robust Malicious Domain Detection System based on Heterogeneous Information Network with Transductive Classification
原文来源:RAID 2019
原文链接:https://www.usenix.org/system/files/raid2019-sun.pdf
论文首次将异质信息网络应用于DNS分析领域,具体应用在恶意域名检测中。作者将DNS场景建模为异质信息网络,包含客户端、域名、IP三类实体,并定义了6种实体之间的关联关系。利用基于元路径的传导分类方法实现了即使数据集中只有少量的标记样本(10%),也能取得较好的检测效果(ACC:0.9626,F1:0.9116)。
论文研究的是恶意域名识别问题。随着攻击者越来越狡猾,传统的基于blacklist、sinkhole的静态检测方法,甚至基于机器学习的检测方法都能够被攻击者绕过。为此,作者基于异质信息网络和传导分类思想实现了一种高鲁棒性的、不容易绕过的恶意域名检测系统。目标是检测校园网络或企业网络中的恶意域名。
论文工作主要基于2项假设:
(1) 与已知恶意域名强相关的域名,很可能也是恶意域名(近墨者黑,恶意性传导的基础);
(2) 攻击者能够伪造单个域名的特征,但是很难伪造域名之间的关联关系。
作者将恶意域名检测的方法分为两大类:
(1) 基于对象的方法。首先,基于各种DNS相关数据提取特征,构建分类器;然后,用标记好的基准数据集进行训练,得到分类器,进而预测未标记域名。
(2) 基于关联的方法。从客户端-域名、域名-IP之间的关系等宏观视角进行检测。
论文工作依赖于一些概念和思想:
(1)HIN概念
简单地说,异质信息网络的概念是相对于同质信息网络提出的,是指节点类型>1或者节点之间的关系类型>1的网络(形式化定义见论文)。HIN广泛应用于连接预测、推荐系统和信息融合等领域。Hindroid第一个将HIN应用于信息安全领域,通过分析Android程序中API调用间的不同关系,提取高层次语义,用于检测Android恶意软件。
(2)网络模式(network schema)
网络模式描述了网络的元结构,即网络的对象集合及其关系集合。
(3)元路径(metapath)
元路径定义了两个对象之间的关系序列,用于表征节点之间复杂的关联关系。
与归纳分类(inductive classification)不同:归纳分类从训练数据中学习决策函数,传导分类从特定的训练案例推测特定的测试案例,类似于在整个网络中传播标签信息(近朱者赤,近墨者黑)。这一特性决定了,当标签数据较少时,标签仍然可以通过网络节点之间的关联关系传播,从而实现节点分类。
作者基于HIN和传导分类提出了自己的恶意域名识别系统HinDom。直接上图:HinDom主要包含5个模块:数据采集器、HIN构建模块、图形剪枝模块、元路径结合模块以及传导分类器。
数据采集器用于采集目标网络的用户流量,主要采集三类数据:
(1) DNS服务器日志,包含源IP、查询域名、时间等字段。缓存DNS服务器日志广泛用于收集“谁查询了什么域名”的信息。
(2) DNS流量,字段包括:NS、MX、TXT、PTR等。由于数据比较敏感,不公开。
(3) 被动DNS数据集,pDNS数据不含客户端信息,只有域名首次出现和最后一次出现的时间戳,以及这期间出现的域名-IP解析对的数量。
HinDom基于DNS流量即可构建HIN模型,但是pDNS数据集能够提供更丰富的域名-IP关系。此外,当DNS流量数据无法获取时(由于许可限制或技术限制),HinDom可以利用DNS服务器日志构建客户端-域名部分,利用pDNS数据构建域名-IP部分。
作者定义了3类实体:客户端、域名、IP地址;6类关系:
(1)客户端—查询—域名,记为矩阵Q,表示客户端j查询了域名i;
(2)客户端—同网段—客户端,记为矩阵N,表示客户端i和客户端j归属同一网段;
(3)域名—解析—IP,记为矩阵R,表示域名i解析到IP地址j;
(4)域名—字符相似—域名,记为矩阵S,表示域名i和域名j之间的字符相似度(如何比较?使用n-gram将域名字符串处理成字符向量,然后使用K-means算法聚类,然后将聚类结果转化成矩阵S);
(5)域名—别名—域名,记为矩阵C,表示域名i和域名j在同一CNAME记录中;
(6)IP—同域名—IP,记为矩阵D,表示IP地址i和IP地址j曾经被映射为同一域名。
为了节约计算资源,作者对采集到的数据中存在的噪声(如不规则域名、大客户端)进行剪枝,过滤掉一部分节点,规则:
(1)剔除不符合域名构成规则的域名;
(2)知名域名。作者认为知名域名倾向于是良性的。那么什么样的域名为知名域名呢?被25%以上的客户端查询的域名;
(3)大客户端。如DNS转发器,大的代理。剔除最活跃的0.1%的客户端;
(4)不活跃的客户端。查询域名数量少于3个的客户端;
(5)孤立IP地址。只映射到1个域名的IP地址。
根据定义的6类关系,生成6种元路径,可以表示节点之间的复杂关联关系。
(1)P1:语义:良性域名和恶意域名在字符分布上存在差异。而且同一家族的恶意域名在字符模式上具有相似性;
(2)P2:语义:良性域名的CNAME域名不是恶意的,反之亦然。
(3)P3:语义:被同一攻击者感染的客户端查询存在部分重合,且重合的部分普通客户不会查询。
(4)P4:语义:解析到同一IP地址的域名,类别相同。
(5)P5:语义:相邻的客户容易受到相同的攻击。
(6)P6:语义:攻击者很可能复用域名和IP地址资源。
基于元路径,PathSim算法可以衡量节点之间的相似性。不同的元路径代表从不同视角看到的关联关系,但是,每个元路径在恶意域名识别中的重要程度不同,因此,作者将各个元路径的相似性矩阵按照一定的权重加权,形成融合的元路径。那么问题来了。如何确定各个元路径的权重呢?(可选的方法有线性回归、梯度下降等)作者选用拉普拉斯分值(Laplacian Score)。理由有二:
(1)LS可用于无监督学习;
(2)作为一种过滤方法,LS独立于学习算法,能够直接从数据中的局部几何特征评估特征。LS的基本思想是依据特征的保持局部能力来评估特征,为此,构建一个最近邻图,寻找能够代表这个图形结构的特征。这里,作者将所有的元路径都编码成一个张量,那么一个域名元路径表征矩阵可作为LS的输入。
为什么要进行传导分类?解决标记样本数据较少时的分类问题。首先,作者论述了当前的标记好的数据集都不是完全可信的:
(1)良性域名数据集,如Alexa域名,存在恶意域名;
(2)恶意域名数据集,如DGArchive,存在良性域名。
那么如何降低标记数据的代价呢?传导分类的2个基本假设:
(1)平滑性假设(smoothness),关系紧密的对象趋于同一类;
(2)拟合性假设(fitting)已知节点的分类结果应该包含已经标注好的信息。
作者将传导分类的代价函数表示为平滑性和拟合性的加权和。目标是求解使得代价函数Q(F)最小的F*(域名的标签矩阵,包含每个域名的良性或恶意标签)。作者借鉴LLGC,采用迭代算法求解,能够收敛到最优解。
实验部分:
作者从性能、鲁棒性和实用性三个方面评估了HinDom。
数据集来源:
利用两个真实网络中的数据:
(1)CERNET2,中国教育科研网,清华节点抓取的流量;
(2)TUNET,清华校园网,获取到了中心DNS的解析日志。
(3)360 pDNS数据集。
评估指标:
指标 | 描述 |
TP | 恶意域名被标记为恶意域名 ,good |
FP | 良性域名被标记为恶意域名 |
TN | 良性域名被标记为良性域名,good |
FN | 恶意域名被标记为良性域名 |
accuracy | 检测率,(TP + TN) / (TP + FP +TN + FN) |
precision | 精度,TP / (TP + FP) |
recall | 召回率,TP / (TP + FP) |
F1 | 2*(precision * recall) / (precision + recall) |
ROC | 一系列TPR和FPR取值画出的曲线 |
AUC | ROC曲线下方面积,越大越好 |
首先,分析不同权重元路径下的检测结果,验证融合元路径(Meta-path Combiner)的有效性。
然后,测试HinDom在标记数据不足和多分类两种场景下的表现。标记数据不足的情况下,使用传导分类,与跟朴素贝叶斯NB、支持向量机SVM、随机森林RF等方法比较。
多分类,即判断恶意域名所属家族。通过混淆矩阵展示实验结果。
实验结果:
(1)加权融合元路径能够在整个域名集合中取得较好性能。对于单个元路径,精度越高,覆盖率越低。因此在融合元路径中,这种元路径的权重较低。
(2)利用传导分类,HinDom在标记样本只有10%的情况下,仍然能够取得较好的分类效果(accuracy: 0.9626, F1: 0.9116)。
(3)误分类主要发生在良性和样本较小的恶意类别中,作者认为这是数据倾斜造成的。解决方法是:分两步,首先识别良性还是恶意,然后再进行多分类,判断恶意域名家族。
测试HinDom处理训练数据集中的噪声的能力。随机修改Kd%的训练样本数据的标签,看分类器是否还能够正确进行分类,与跟朴素贝叶斯NB、支持向量机SVM、随机森林RF等方法比较。
实验结果:与其他方法相比,当数据噪声逐渐增大时,HinDom的accuracy和F1指标下降得缓慢一些,即抗噪声能力更强。
在只有公开标注数据(存在噪声)的情况下,在两个真实网络(CERNET2 and TUNET)中测试HinDom。其实也是处理噪声。此外,作者将HinDom与VirusTotal上的66款检测引擎做了比较。选取表现好的9款引擎进行比较。
实验结果:
(1)HinDom在只有公开标注数据集下的性能与手工标注数据集下的表现基本差不多。HinDom还有根据元路径表征的复杂关系更正初始误分类标签的能力。
(2)与VirusTotal上检测效果最好的9款引擎相比,HinDom性能排名第四。
首次将HIN应用于DNS分析,利用传导分类,实现了即使只有少量标记样本,也能取得较好的检测效果。
作者自己总结了三个限制:
(1)效率问题。不能实时检测。
(2)检测范围。只能检测与其他域名有关联的恶意域名。
(3)有待进一步分析。如分析受害主机和恶意IP。
关于安全学术圈, 有兴趣加入学术圈的请联系[email protected]