1. 专利技术大全专利技术大全
  2. 技术专利

基于DNS流量检测受感染主机和C&C服务器的方法与流程

[导读]:本发明涉及网络安全的技术领域,特别涉及一种网络安全APT(Advanced Persistent Threat,高级持续性威胁)检测领域的基于DNS流量检测受感染主机和CC服务器的方法。 背景技术: 检测受病毒、木马感染的主机和CC服务器(远程命令和控制服务器,是对受感染主机发出指令的服务器)一直是网络安全研究的重要部分,计算机在被病毒、木马感染后,往往会回连到CC服务器,获取新的指令或将获取到的机密内容传到CC服务器。 过去,...

本发明涉及网络安全的技术领域,特别涉及一种网络安全APT(Advanced Persistent Threat,高级持续性威胁)检测领域的基于DNS流量检测受感染主机和C&C服务器的方法。



背景技术:

检测受病毒、木马感染的主机和C&C服务器(远程命令和控制服务器,是对受感染主机发出指令的服务器)一直是网络安全研究的重要部分,计算机在被病毒、木马感染后,往往会回连到C&C服务器,获取新的指令或将获取到的机密内容传到C&C服务器。

过去,病毒、木马常常使用固定的域名进行回连,这样是很容易被检测到的。然而,现在越来越多的病毒、木马使用DGA域名生成算法生成域名进行回连,在一个周期内,以日期等为种子产生数百甚至数千相对比较随机的域名进行逐个访问,然后攻击者利用其中的部分域名进行注册并指向C&C服务器,当受感染主机访问到被攻击者注册的域名时,即回连成功,以此来躲避一些检测技术。

在访问域名的过程中,就必然会产生DNS流量,而DGA域名生成算法必然会出现很多访问失败的随机域名,本发明正是基于这一点来检查受感染主机和C&C服务器。



技术实现要素:

本发明的目的及时发现受感染主机以及背后的C&C服务器,为实现上述技术问题,本发明提供一种基于DNS流量检测受感染主机和C&C服务器的方法。

本发明所采用的技术方案是,一种基于DNS流量检测受感染主机和C&C服务器的方法,所述方法包括以下步骤:

步骤1:构建训练集,训练得到识别随机域名的算法;

步骤2:利用流量采集模块采集经过任一网卡的DNS流量;

步骤3:对采集的DNS流量按照DNS协议规范进行解析,得到DNS信息;所述DNS信息包括域名、域名是否解析成功、客户端IP;

步骤4:利用步骤1得到的识别随机域名的算法判断DNS信息中的域名是否为随机域名,如是,进行下一步,如否,返回步骤2;

步骤5:判断域名是否解析成功的信息,如解析失败,进行下一步,如解析成功,进行步骤7;

步骤6:识别受感染主机;若是受感染的主机,则对信息进行保存,进行步骤8,否则返回步骤2;

步骤7:识别C&C服务器;若是C&C服务器,则对信息进行保存,进行步骤8,否则返回步骤2;

步骤8:告警,保存告警信息并展现;返回步骤2。

优选地,所述步骤1中,训练集包括正常域名和采用随机算法生成的随机域名。

优选地,所述识别随机域名的算法通过对域名长度、数字个数、字母数字交换频率、数字比例、连续字母的最大长度和特殊字符个数附以权重比例得出。

优选地,所述步骤3中,DNS信息还包括DNS服务器、请求的时间和解析成功的域名对应的实际服务器IP。

优选地,所述步骤6包括以下步骤:

步骤6.1:获得当前DNS信息的客户端IP;

步骤6.2:若客户端IP所对应的客户端在T时间段内连续出现解析失败的并且具有相同特征的随机域名,而在T时间段前后具有相同特征的解析失败的随机域名的数量很小,并且这个持续时间段T在30分钟以内,则认为该客户端已经受感染,视为受感染主机;

步骤6.3:对于受感染主机,提取解析失败的随机域名的时间段及这些域名的相同特征,进行保存;进行步骤8;否则返回步骤2。

优选地,所述步骤6.2中,相同特征包括部分字符串相同或具有相同的长度。

优选地,所述相同特征还包括二级域名完全一样但顶级域名不同。

优选地,所述步骤6中,保存的信息包括受感染主机IP、访问且失败的随机域名、访问失败的域名的时间段。

优选地,所述步骤7中,识别C&C服务器的方法为,对于解析成功的域名,同时满足客户端IP已在步骤6被识别为受感染主机、当前解析成功的域名的访问时间在受感染主机大量访问解析失败的随机域名的时间段内、与解析失败的域名具有相同特征, 则将该域名对应的实际服务器IP识别为C&C服务器。

优选地,所述保存的信息包括访问所述C&C服务器的客户端IP、访问的时间、访问的域名、C&C服务器IP,同时关联受感染主机与C&C服务器。

本发明提供了一种基于DNS流量检测受感染主机和C&C服务器的方法,通过DNS流量信息有效识别被使用DGA算法进行回连的病毒、木马感染的主机以及其背后的C&C服务器,精确度高,相比通过其他流量的检测手段,DNS流量要小很多,因而本发明的成本更低且效率更高。

附图说明

图1为本发明的获得识别随机域名的算法的流程图;

图2为本发明的基于DNS流量检测受感染主机和C&C服务器的流程图。

具体实施方式

首先需要说明的是,本发明所涉及通过DNS流量检测受感染主机和C&C服务器的方法,是计算机技术在信息安全技术领域的一种应用。申请人认为,如在仔细阅读申请文件、准确理解本发明的实现原理和发明目的以后,在结合现有公知技术的情况下,本领域技术人员完全可以运用其掌握的软件编程技能实现本发明。凡本发明申请文件提及的均属此范畴,申请人不再一一列举。

下面结合附图与具体实施方式对本发明作进一步详细描述。

本发明涉及一种基于DNS流量检测受感染主机和C&C服务器的方法,所述方法包括以下步骤。

步骤1:构建训练集,训练得到识别随机域名的算法。

所述步骤1中,训练集包括正常域名和采用随机算法生成的随机域名。

所述识别随机域名的算法通过对域名长度、数字个数、字母数字交换频率、数字比例、连续字母的最大长度和特殊字符个数附以权重比例得出。

本发明中,搜集Alexa前50万个国外网站和前10万个国内网站作为正常域名的训练集,同时收集多种DGA算法,产生10万个DGA域名作为随机域名的训练集。

本发明中,提取每个域名的二级域名,根据经验,对二级域名的长度、数字个数、数字字母切换频率、数字比例、连续字母的最大长度、特殊字符个数都添加相对合适的权重比例,然后通过一定算法,不断对这个比例进行调整,最后得到一个能区分正常域名和随机域名的算法。

本发明中,对于识别随机域名的算法给出一种实施例,在实际的操作过程中,可以根据技术人员不同的技术需求做出调整或另外设置。令,域名长度为a1,数字个数为a2,字母数字交换频率为a3,数字比例为a4,连续字母的最大长度为a5,特殊字符个数为a6,计算x=x1*a1+(x2*a2+x3*a3+x4*a4+x5*a5+x6*a6)/a1,其中,x1、x2、x3、x4、x5和x6为权重值,根据样本域名不断完善更新,最后根据得到的x是否达到拟定阈值y来判断域名是否随机。

步骤2:利用流量采集模块采集经过任一网卡的DNS流量。

本发明中,流量采集模块使用Libpcap库捕获流经网卡的DNS流量数据包。

步骤3:对采集的DNS流量按照DNS协议规范进行解析,得到DNS信息;所述DNS信息包括域名、域名是否解析成功、客户端IP。

所述步骤3中,DNS信息还包括DNS服务器、请求的时间和解析成功的域名对应的实际服务器IP。

步骤4:利用步骤1得到的识别随机域名的算法判断DNS信息中的域名是否为随机域名,如是,进行下一步,如否,返回步骤2。

步骤5:判断域名是否解析成功的信息,如解析失败,进行下一步,如解析成功,进行步骤7。

步骤6:识别受感染主机;若是受感染的主机,则对信息进行保存,进行步骤8,否则返回步骤2。

所述步骤6包括以下步骤。

步骤6.1:获得当前DNS信息的客户端IP。

步骤6.2:若客户端IP所对应的客户端在T时间段内连续出现解析失败的并且具有相同特征的随机域名,而在T时间段前后具有相同特征的解析失败的随机域名的数量很小,并且这个持续时间段T在30分钟以内,则认为该客户端已经受感染,视为受感染主机。

所述步骤6.2中,相同特征包括部分字符串相同或具有相同的长度。

所述相同特征还包括二级域名完全一样但顶级域名不同。

步骤6.3:对于受感染主机,提取解析失败的随机域名的时间段及这些域名的相同特征,进行保存;进行步骤8;否则返回步骤2。

所述步骤6中,保存的信息包括受感染主机IP、访问且失败的随机域名、访问失败的域名的时间段。

本发明中,对于解析失败的随机域名,按照步骤3获取的客户端IP进行分类保存,同一个域名只计算一次。

本发明中,一般情况下,为了防止误判的产生,将出现受感染情况的客户端作为疑似受感染主机继续观察,直到出现访问失败的随机域名的数量明显减少,如果这个持续的时间长度在事先拟定的阈值范围(如30分钟)内,则认为该客户端已经被感染,视为受感染主机。

本发明中,举例来说,若客户端IP所对应的客户端在任意5分钟时间段内连续出现解析失败的并且具有相同特征的随机域名超过20次,而在任意5分钟时间段前后具有相同特征的解析失败的随机域名的数量小于2次,并且这个持续时间段T在30分钟以内(5分钟在30分钟内),则可以认为该客户端已经受感染,视为受感染主机。

本发明中,步骤6保存的信息可以用于识别C&C服务器。

步骤7:识别C&C服务器;若是C&C服务器,则对信息进行保存,进行步骤8,否则返回步骤2。

所述步骤7中,识别C&C服务器的方法为,对于解析成功的域名,同时满足客户端IP已在步骤6被识别为受感染主机、当前解析成功的域名的访问时间在受感染主机大量访问解析失败的随机域名的时间段内、与解析失败的域名具有相同特征, 则将该域名对应的实际服务器IP识别为C&C服务器。

所述保存的信息包括访问所述C&C服务器的客户端IP、访问的时间、访问的域名、C&C服务器IP,同时关联受感染主机与C&C服务器。

本发明中,步骤7中,如果被识别为C&C服务器的客户端IP未被识别为受感染主机,则先保存一段时间,如果这段时间内该客户端IP被识别为受感染主机,则进一步判断该域名是否是C&C域名。

本发明中,原则上,对于同一条记录是不会同时进步骤6和步骤7的,但是对于不同的记录,他们的客户端IP可能是一样的,部分涉及受感染主机,部分涉及C&C服务器,而这里与该客户端IP相同的其他记录已经在步骤6中将该客户端IP识别为受感染主机,并提取了解析失败的域名特征和时间范围,通过判断当前记录中的域名是否符合提取的域名特征和时间范围来判断的是否为C&C服务器。

本发明中,关联是指通过客户端IP和受感染主机进行关联。

步骤8:告警,保存告警信息并展现;返回步骤2。

最后,需要注意的是,以上列举的仅是本发明的具体实施例。显然,本发明不限于以上实施例,还可以有很多变形。本领域的普通技术人员能从本发明公开的内容中直接导出或联想到的所有变形,均应认为是本发明的保护范围。


技术特征:

1.一种基于DNS流量检测受感染主机和C&C服务器的方法,其特征在于:所述方法包括以下步骤:

步骤1:构建训练集,训练得到识别随机域名的算法;

步骤2:利用流量采集模块采集经过任一网卡的DNS流量;

步骤3:对采集的DNS流量按照DNS协议规范进行解析,得到DNS信息;所述DNS信息包括域名、域名是否解析成功、客户端IP;

步骤4:利用步骤1得到的识别随机域名的算法判断DNS信息中的域名是否为随机域名,如是,进行下一步,如否,返回步骤2;

步骤5:判断域名是否解析成功的信息,如解析失败,进行下一步,如解析成功,进行步骤7;

步骤6:识别受感染主机;若是受感染的主机,则对信息进行保存,进行步骤8,否则返回步骤2;

步骤7:识别C&C服务器;若是C&C服务器,则对信息进行保存,进行步骤8,否则返回步骤2;

步骤8:告警,保存告警信息并展现;返回步骤2。

2.根据权利要求1所述的一种基于DNS流量检测受感染主机和C&C服务器的方法,其特征在于:所述步骤1中,训练集包括正常域名和采用随机算法生成的随机域名。

3.根据权利要求1所述的一种基于DNS流量检测受感染主机和C&C服务器的方法,其特征在于:所述识别随机域名的算法通过对域名长度、数字个数、字母数字交换频率、数字比例、连续字母的最大长度和特殊字符个数附以权重比例得出。

4.根据权利要求1所述的一种基于DNS流量检测受感染主机和C&C服务器的方法,其特征在于:所述步骤3中,DNS信息还包括DNS服务器、请求的时间和解析成功的域名对应的实际服务器IP。

5.根据权利要求1所述的一种基于DNS流量检测受感染主机和C&C服务器的方法,其特征在于:所述步骤6包括以下步骤:

步骤6.1:获得当前DNS信息的客户端IP;

步骤6.2:若客户端IP所对应的客户端在T时间段内连续出现解析失败的并且具有相同特征的随机域名,而在T时间段前后具有相同特征的解析失败的随机域名的数量很小,并且这个持续时间段T在30分钟以内,则认为该客户端已经受感染,视为受感染主机;

步骤6.3:对于受感染主机,提取解析失败的随机域名的时间段及这些域名的相同特征,进行保存;进行步骤8;否则返回步骤2。

6.根据权利要求5所述的一种基于DNS流量检测受感染主机和C&C服务器的方法,其特征在于:所述步骤6.2中,相同特征包括部分字符串相同或具有相同的长度。

7.根据权利要求6所述的一种基于DNS流量检测受感染主机和C&C服务器的方法,其特征在于:所述相同特征还包括二级域名完全一样但顶级域名不同。

8.根据权利要求1所述的一种基于DNS流量检测受感染主机和C&C服务器的方法,其特征在于:所述步骤6中,保存的信息包括受感染主机IP、访问且失败的随机域名、访问失败的域名的时间段。

9.根据权利要求1所述的一种基于DNS流量检测受感染主机和C&C服务器的方法,其特征在于:所述步骤7中,识别C&C服务器的方法为,对于解析成功的域名,同时满足客户端IP已在步骤6被识别为受感染主机、当前解析成功的域名的访问时间在受感染主机大量访问解析失败的随机域名的时间段内、与解析失败的域名具有相同特征, 则将该域名对应的实际服务器IP识别为C&C服务器。

10.根据权利要求1所述的一种基于DNS流量检测受感染主机和C&C服务器的方法,其特征在于:所述保存的信息包括访问所述C&C服务器的客户端IP、访问的时间、访问的域名、C&C服务器IP,同时关联受感染主机与C&C服务器。

技术总结
本发明涉及一种基于DNS流量检测受感染主机和C&C服务器的方法,构建训练集并训练识别随机域名的算法,采集经过任一网卡的DNS流量并解析得到DNS信息;利用识别随机域名的算法判断DNS信息中的域名是否为随机域名,是则判断域名是否解析成功的信息,解析失败则识别受感染主机,对受感染的主机进行信息保存,识别C&C服务器,对C&C服务器,进行信息保存,告警并保存告警信息、展现。本发明通过DNS流量信息有效识别被使用DGA算法进行回连的病毒、木马感染的主机以及其背后的C&C服务器,精确度高,相比通过其他流量的检测手段,DNS流量要小很多,因而本发明的成本更低且效率更高。

技术研发人员:蔡福杰;范渊;刘元;李凯
受保护的技术使用者:杭州安恒信息技术有限公司
文档号码:201710850732
技术研发日:2017.09.20
技术公布日:2018.01.19

原文标题:基于DNS流量检测受感染主机和C&C服务器的方法与流程,如若转载,请注明出处:http://www.md-power.com/jishu/2248.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「MD技术网」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。