基于DNS映射关联图的僵尸网络检测方法
技术领域
本发明涉及网络安全的检测方法,具体讲是基于DNS映射关联图的僵尸网络检测方法。
背景技术
僵尸网络是在传统的计算机病毒、特洛伊木马、网络蠕虫、间谍软件等恶意代码基础上发展而来的一种综合性攻击方法的平台。近些年,新型的僵尸网络程序还能够将0DAY漏洞、网络钓鱼、p2p等技术应用到其传播中,能够使得传统主机、移动设备甚至云设备、路由器感染而成为僵尸网络控制的主机,俗称“肉鸡”。而僵尸网络仍然是当前互联网重大威胁之一,再加上其不断变化发展。对僵尸网络的检测成为了安全领域人员一直以来的重大挑战。
DNS是域名***(Domain Name System)的缩写,它是现在互联网***中的一项重要服务,也是一个能够将域名与IP地址关联映射的分布式数据库,类似与电话簿,记录域名与IP地址的对应关系。
Fast-flux技术是指域名和IP地址之间的关联关系会不断发生变化的一种技术,使用Fast-flux技术部署的网络简称为FFSN(Fast-flux Service Network),FFSN通过不断改变DNS记录,能够为一个合法域名分配多个(甚至上千)IP地址,保证了域名的较高可用性。
Domain-flux则是指僵尸网络的控制者动态改变域名从而逃避检测。这其中的关键就是域名生成算法(DGA),它利用种子随机生成大量的域名,然后僵尸主机逐个发起DNS请求尝试通信连接,而这其中只有部分请求才会被响应。攻击者与受控主机的通信节点也是动态变化,能够很好的逃避检测。
发明内容
本发明提供了一种基于DNS映射关联图的僵尸网络检测方法,针对Fast-flux与Domain-flux两种僵尸网络的检测,具有较高的检测准确率。
本发明基于DNS映射关联图的僵尸网络检测方法,包括:
A.DNS流量过滤与预处理:根据待测网络出口处设备的流量镜像,按照预定的规则过滤DNS流量,再过滤包含A记录(A(Address)记录是用来指定主机名(或域名)对应的IP地址记录)的响应数据包流量,然后对该过滤后的响应数据包流量进行预处理;
B.图映射关联处理:对预处理后的响应数据包流量,根据DNS查询响应,分别以全域名(FQDN,Fully Qualified Domain Name)和IP为关键字(key),提取其中的关联映射关系,分别构建以全域名和IP为中心节点的二部图组件集,并对每个二部图组件集里的图组件分别进行合并;
C.图组件特征分析与提取:分析所述二部图组件集中的元素,结合预处理得到的信息,提取图特征向量;
D.图组件分类:将已公开的Fast-flux与Domain-flux僵尸网络集作为数据输入,执行步骤A~步骤C,根据提取的图特征向量,完成数据的标准化,将所述标准化后的数据划分训练集与测试集,使用LightGBM算法,得到分类模型;LightGBM是一种快速、高性能、分布式的优秀梯度提升框架,它是由微软在2017年开源,可用于排序、分类、回归等机器学习任务。它是基于决策树算法,采用最优的叶明智策略***叶子节点,在不降低准确率的前提下,相比主流的分类算法速度提升了10倍左右,占用的内存反而下降了3倍左右。
E.将待测流量的信息输入到分类模型中,通过分类模型计算出该待测流量是否为恶意流量,如果计算出待测流量为恶意流量,则通过分类模型计算得出恶意流量的类别(Fast-flux或Domain-flux僵尸网络)。
经测试,本发明的方法能够同时覆盖Fast-flux与Domain-flux两种类型僵尸网络的检测,并且具备较高的检测准确率。
进一步的,步骤A所述的预处理包括根据全域名和IP的白名单对A记录的响应数据包流量进行二次过滤,并以流量的时间戳为ID,提取A记录中每条记录的多个字段信息,包括时间戳、源MAC地址、目的MAC地址、源IP、目的IP、TTL数值、源端口和目的端口等。
进一步的,步骤B中对二部图组件集里的图组件进行合并时,对以全域名为中心的二部图组件集和以IP为中心节点的二部图组件集分别采用各自对应的方式进行图组件的合并。
具体的,对以全域名为中心节点的图组件进行合并时,先根据全域名的分层特性,计算相似域名之间的差异度DD,然后采用k均值聚类算法合并相似的两个图组件,其中计算相似域名之间的差异度DD为:
其中,ωλ为域名差异度计算的一个中间值,λ为域名的层级,X和Y分别表示一个全域名,Xλ表示全域名X的第λ层,Yλ表示全域名Y的第λ层,例如全域名www.***.com,第一层为com,|Xλ|表示Xλ的长度,|Yλ|表示Yλ的长度,|X|表示X的层级数,|Y|表示Y的层级数,α是预设参数,初始化α为2。α的作用为平衡权重,初始值为经验值,后续可进行优化调整。ddλ和Ω分别为计算过程的中间值。
具体的,对以IP为中心节点的图组件进行合并时,以该中心节点邻近的IP地址提供类似的服务为条件,并在满足特定时间跨度的条件下,计算这两个IP的相似度IS,达到阈值则合并该相似的图组件;所述的时间跨度指的是实际实施中数据处理的时间间隔,通常初始值为12小时,其中计算两个IP的相似度IS为:
在上式中,X表示图组件中心节点的IP地址,Y表示所述邻近的IP地址,Xm表示X的数值,Ym表示Y的数值,Xt表示X的时间戳,Yt表示Y的时间戳,α和β分别表示预设参数,初始值分别为1.8和0.2,λ表示两个IP地址的类别差值,例如A类IP地址与B类IP地址的类别差值为1,A类IP与C类IP的类别差值为2。
在此基础上,步骤C中所述的图组件特征分析包括:
C1.分析图组件的结构特征:计算图组件中的节点数量,包括全域名节点与IP节点,计算所有中心节点的最大度数和平均度数;
C2.分析全域名节点特征:以步骤A的流量预处理后的信息,根据Whois数据库的公开数据,计算全域名的Whois信息;Whois信息是域名和IP的***息,表明其基本的相关信息。
C3.分析IP节点特征:以步骤A的流量预处理后的信息,根据Whois数据库的公开数据,计算IP节点的Whois信息;
C4.分析连接边特征:图组件中节点与节点之间通过连接边连接,一条连接边即为一次DNS查询响应,选取连接边中包括其平均值与方差值的TTL信息(Time To Live,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量)作为连接边特征;
C5.计算黑名单特征:黑名单包括全域名黑名单与IP黑名单,分析图组件的黑名单特征时,结合已公开的黑名单库,计算图组件的全域名标记的数量,二级域名+顶级域名(2-LD+TLD)被标记的数量,全域名节点被标记的最大度数,被标记的IP节点的数量,IP节点被标记的最大度数,被标记节点占总节点的比值。
进一步的,步骤C2中所述的全域名的Whois信息,包括全域名的创建时间、更新次数、完整度、全域名的最大层数、平局层数、顶级域名(TLD)种类数量、二级域名(2-LD)种类数量,以及二级域名(2-LD)字符的最大长度、平均长度、包含单词数量和字符重复度。
进一步的,步骤C3中所述的IP节点的Whois信息,包括IP节点的状态、更新时间、所属国家、节点IP的自治***号码(ASN)数量、以及自治***号码(ASN)的数量与IP的比值。
本发明基于DNS映射关联图的僵尸网络检测方法,有益效果包括:
1、能够同时覆盖对Fast-flux与Domain-flux两种僵尸网络的检测。
2、针对DNS流量过滤A记录的响应包流量,极大较少后续处理的数据量。
3、通过构建以全域名与IP为中心节点的二部图集,提供了一种新的DNS流量处理思路。
4、对全域名与IP分别进行不同算法的合并,极大减少了图组件数据集,同时也更好符合Fast-flux与Domain-flux的技术特性。
5、通过对DNS映射关联图的特征分析,大幅度提高了僵尸网络检测的准确度,同时还能够适用于高速网络的海量数据的处理。
以下结合实施例的具体实施方式,对本发明的上述内容再作进一步的详细说明。但不应将此理解为本发明上述主题的范围仅限于以下的实例。在不脱离本发明上述技术思想情况下,根据本领域普通技术知识和惯用手段做出的各种替换或变更,均应包括在本发明的范围内。
附图说明
图1为本发明基于DNS映射关联图的僵尸网络检测方法的流程图。
具体实施方式
本实施例采用基于Linux的发行版操作***CentOS***,版本号为7.6.1810。
如图1所示本发明基于DNS映射关联图的僵尸网络检测方法,包括:
A.DNS流量过滤与预处理:待测网络出口处的设备,包括交换机、路由器等,通过配置端口镜像,将流量导入特定的服务器网口,并在该服务器上安装PF_RING包,如果数据量较大,还可以采用PF_RING+Zero Copy的方式,实现10Gbps级别的流量采集,根据BPF(柏克莱封包过滤器,Berkeley Packet Filter)规则过滤DNS流量,再过滤包含A记录(A(Address)记录是用来指定主机名(或域名)对应的IP地址记录)的响应数据包流量。
然后对该过滤后的响应数据包流量进行预处理,包括根据全域名和IP的白名单对A记录的响应数据包流量进行二次过滤,并以流量的时间戳为ID,提取A记录中每条记录的多个字段信息,包括时间戳、源MAC地址、目的MAC地址、源IP、目的IP、TTL数值、源端口和目的端口等。
B.图映射关联处理:对预处理后的响应数据包流量,根据DNS查询响应,分别以全域名(FQDN,Fully Qualified Domain Name)和IP为关键字(key),提取其中的关联映射关系,分别构建以全域名和IP为中心节点的二部图组件集,并对全域名为中心的二部图组件集和IP为中心节点的二部图组件集分别采用各自对应的方式进行图组件的合并。
其中,对以全域名为中心节点的图组件进行合并时,先根据全域名的分层特性,计算相似域名之间的差异度DD,然后采用k均值聚类算法合并相似的两个图组件,其中计算相似域名之间的差异度DD为:
其中,ωλ为域名差异度计算的一个中间值,λ为域名的层级,X和Y分别表示一个全域名,Xλ表示全域名X的第λ层,Yλ表示全域名Y的第λ层,|Xλ|表示Xλ的长度,|Yλ|表示Yλ的长度,|X|表示X的层级数,|Y|表示Y的层级数,α是预设参数,初始化α为2。α的作用为平衡权重,初始值为经验值,后续可进行优化调整。ddλ和Ω分别为计算过程的中间值。
对以IP为中心节点的图组件进行合并时,以该中心节点邻近的IP地址提供类似的服务为条件,并在满足特定时间跨度的条件下,计算这两个IP的相似度IS,达到阈值则合并该相似的图组件;所述的时间跨度指的是实际实施中数据处理的时间间隔,通常初始值为12小时,其中计算两个IP的相似度IS为:
在上式中,X表示图组件中心节点的IP地址,Y表示所述邻近的IP地址,Xm表示X的数值,Ym表示Y的数值,Xt表示X的时间戳,Yt表示Y的时间戳,α和β分别表示预设参数,初始值分别为1.8和0.2,λ表示两个IP地址的类别差值,例如A类与B类差值为1。
C.图组件特征分析与提取:分析所述二部图组件集中的元素,结合预处理得到的信息,提取图特征向量。其中所述的图组件特征分析包括:
C1.分析图组件的结构特征:计算图组件中的节点数量,包括全域名节点与IP节点,计算所有中心节点的最大度数和平均度数;
C2.分析全域名节点特征:以步骤A的流量预处理后的信息,根据Whois数据库的公开数据,计算全域名的Whois信息,包括全域名的创建时间、更新次数、完整度、全域名的最大层数、平局层数、TLD(顶级域名)种类数量、2-LD(二级域名)种类数量,以及2-LD(二级域名)字符的最大长度、平均长度、包含单词数量和字符重复度等;
C3.分析IP节点特征:以步骤A的流量预处理后的信息,根据Whois数据库的公开数据,计算IP节点的Whois信息,包括IP节点的完整状态、更新时间、所属国家、所属个人、所属地区、节点IP的ASN(自治***号码)数量、以及ASN(自治***号码)数量与IP的比值等;
C4.分析连接边特征:图组件中节点与节点之间通过连接边连接,一条连接边即为一次DNS查询响应,选取连接边中包括其平均值与方差值的TTL信息(Time To Live,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量)作为连接边特征;
C5.计算黑名单特征:黑名单包括全域名黑名单与IP黑名单,分析图组件的黑名单特征时,结合已公开的黑名单库,计算图组件的全域名标记的数量,2-LD+TLD(二级域名+顶级域名)被标记的数量,全域名节点被标记的最大度数,被标记的IP节点的数量,IP节点被标记的最大度数,被标记节点占总节点的比值。
D.图组件分类:将已公开的Fast-flux与Domain-flux僵尸网络集作为数据输入,在实验室环境下通过TCPReplay的流量重放,构建包含真实流量的混合数据集。其中Fast-flux公开数据集为CTU-13中的纯Fast-flux恶意流量以及ISOT中Strom、Waledoc及Zeus僵尸网络的样本流量。Domain-flux公开数据集为Alenazi A等人构建的ISOT HTTP Botnet数据集。执行步骤A~步骤C,根据提取的图特征向量,完成数据的标准化,将所述标准化后的数据划分训练集与测试集,使用LightGBM算法,得到分类模型。
E.将待测流量的信息输入到分类模型中,通过分类模型计算出该待测流量是否为恶意流量,如果计算出待测流量为恶意流量,则通过分类模型计算得出恶意流量的类别,是Fast-flux或Domain-flux僵尸网络。