一种域名检测方法及装置与流程

文档序号:12789608阅读:185来源:国知局
一种域名检测方法及装置与流程

本发明涉及通信领域,尤其涉及一种域名检测方法及装置。



背景技术:

随着互联网技术的不断发展,网络已经融入了人们生活的方方面面。然而,黑客入侵作为互联网技术发展的衍生物,也变得无孔不入,日益严峻地威胁着网络安全。其中,通过在接入网络的终端上植入能够被远程控制的恶意程序例如木马等,黑客可以达到控制该终端的目的。

为了应对黑客的入侵,可以通过防火墙监控并阻止黑客控制终端上被植入的恶意程序。但随着技术的发展,越来越多的恶意程序能够主动发起连接,这种连接通常使用HTTP协议的方式实现,能够绕过防火墙的阻挡连接到远程服务器,以实现黑客对终端的远程控制。为了解决上述问题,现有技术中提供了一种通过基于黑名单的域名检测方法,其中,当用户通过终端所访问的域名与黑名单中的域名匹配时,禁止用户通过终端继续访问该域名。

上述方法虽然能够阻止一部分黑客所植入恶意程序主动发起的连接,但越来越多的恶意程序开始使用特定的域名生成(英文全称:Domain Generation Algorithm,英文简称:DGA)算法生成域名。由于现有技术中基于黑名单的域名检测方法无法识别使用DGA算法生成的域名,而使用DGA算法生成域名的速度较高,每天可以自动生成超过50,000个随机的域名,黑名单中的域名通常远少于DGA算法生成的域名,因此恶意程序能够绕过现有技术中对于域名的检测,降低了现有技术中对非正常域名检测的成功率。



技术实现要素:

本申请提供一种域名检测方法及装置,能够解决现有技术中无法识别使用DGA算法生成的域名的问题。

第一方面,本发明的实施例提供了一种域名检测方法,包括:获取待检测域名的特征码以及正常域名的特征码,特征码用于指示域名中字母的分布或字母及数字的分布;计算待检测域名的特征码与正常域名的特征码之间的特征差距,特征差距用于指示待检测域名的特征码与正常域名的特征码之间的相似程度;根据特征差距确定被访问的域名是否为使用域名生成DGA算法生成的域名。

第二方面,本发明的实施例提供了一种域名检测装置。包括:处理模块,用于获取待检测域名的特征码以及正常域名的特征码,特征码用于指示域名中字母的分布或字母及数字的分布;处理模块还用于计算待检测域名的特征码与正常域名的特征码之间的特征差距,特征差距用于指示待检测域名的特征码与正常域名的特征码之间的相似程度;检测模块,用于根据特征差距确定被访问的域名是否为使用域名生成DGA算法生成的域名。

本发明的实施例提供了一种域名检测方法及装置,通过获取待检测域名的特征码以及正常域名的特征码,并计算待检测域名的特征码与正常域名的特征码之间的特征差距,由于特征码用于指示域名中字母或字母及数字的分布,因此根据待检测域名的特征码与正常域名的特征码之间的特征差距可以确定待检测域名的特征码与正常域名的特征码的相似度,由于当待检测域名的特征码与正常域名的特征码的相似度差距较大时,该待检测域名为使用域名生成DGA算法生成的域名的可能性较高,因此可以根据特征差距确定被访问的域名是否为使用域名生成DGA算法生成的域名。因此本发明实施例提供的域名检测方法解决了现有技术中无法识别使用DGA算法生成的域名的问题,提高了对非正常域名检测的成功率,改善了用户体验。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的实施例所提供的一种由DGA算法生成的域名中字符分布概率的示意图;

图2为本发明的实施例所提供的一种正常域名中字符分布概率的示意图;

图3为本发明的实施例所提供的一种域名检测方法的示意性流程图;

图4为本发明的另一实施例所提供的一种域名检测方法的示意性流程图;

图5为本发明的实施例所提供的一种域名检测装置的示意性结构图;

图6为本发明的另一实施例所提供的一种域名检测装置的示意性结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了便于清楚描述本发明实施例的技术方案,在本发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不是在对数量和执行次序进行限定。

作为互联网技术发展的衍生物,黑客主导的恶意攻击行为严重的影响着人们的生活。其中,其中,通过在接入网络的终端上植入能够被远程控制的恶意程序例如木马等,黑客可以达到控制该终端的目的。现有的恶意程序例如木马、僵尸等一般可以通过监听某个网络端口,等待远程的控制服务器对其进行连接,以接受黑客的远程控制。为了防范黑客攻击,可以通过设置防火墙阻挡恶意程序与远程服务器的连接。但随着技术的发展,恶意程序为了避免被发现或检测出来,开始从网络内部主动发起连接,上述主动发起的连接通常使用HTTP协议的方式实现,可以绕过防火墙的阻挡连接到远程服务器,达到接受远程控制的目的。

为了解决上述问题,现有技术中提供了一种通过基于黑名单的域名检测方法,其中,当用户通过终端所访问的域名与黑名单中的域名匹配时,禁止用户通过终端继续访问该域名。这种方式确实可以有效阻挡一部分恶意程序接受远程控制的问题,但由于上述域名检测方法较为简单,对黑名单的依赖性较高,同时恶意程序例如具有代表性的Zeus和Conficker逐渐开始使用特定的域名生成(英文全称:Domain Generation Algorithm,英文简称:DGA)算法定期地、自动地生成域名,并主动访问该生成的域名。由于使用DGA算法生成域名的速度较高,例如Conficker的一个变种最高每天可以自动生成超过50,000个随机的域名,与之相比,黑名单中的域名通常远少于DGA算法生成的域名,因此恶意程序能够绕过现有技术中对于域名的检测,降低了现有技术中域名检测方法的成功率。

针对上述问题,申请人注意到通常使用的域名中绝大部分的字符都是数字和字母,之所以会使用这些数字和字母来组成这样的一个域名,是为了便于记忆,并通过遍布全球的DNS服务来将这些便于记忆的域名转换成为IP地址进行访问。因此当域名并非为DGA算法生成的正常域名时,该域名中为了便于记忆而选取的字符必然是一些有实际含义的单词或者短语。而恶意程序例如木马等使用DGA算法生成域名是为了绕过现有的检测系统,由DGA算法生成的域名大多数是随机选取。因此正常域名与由DGA算法生成的域名的字符组成存在一定的差异。

如附图1所示,本发明的实施例提供了一种由DGA算法生成的域名中字符分布概率的示意图,如附图2所示,本发明的实施例提供了一种正常域名中字符分布概率的示意图,在附图1、附图2中,横轴表示的是全部数字和字母以及“-”,上述数字和字母以及“-”都是组成域名最常见的字符。纵轴表示的是在全部统计的样本中出现的概率。根据附图1以及附图2所示可知,由DGA算法生成的域名中数字和字母出现的概率相对比较平均,某些常用字母反而出现的更少,而正常域名对应的字符分布则明显的呈现出概率的分化,某些字符出现的概率远远高于其他的字符;同时由DGA算法生成的域名相对于正常域名更多的使用数字和某些不常用的字母比如“xyz”等。

根据上述特征,如附图3所示,本发明的实施例提供一种域名检测方法,包括:

101、获取待检测域名的特征码以及正常域名的特征码。

其中,特征码用于指示域名中字母的分布或字母及数字的分布。

具体的,待检测域名可以为可能包括由DGA算法生成的域名,待检测域名可以为制动的日志数据中所有被访问的域名。示例性的,带检测域名可以为网络中所有用户访问的域名,获取该待检测域名可以为使用旁路检测设备获取网络中所有用户的web访问的日志,并将日志中所有的域名都解析出来作为待检测域名。正常域名可以为已确认不包括由DGA算法生成的域名,正常域名可以为实现获取,示例性的,可以获取Alexa网站排名中前100万的域名,并将该100万的域名作为正常域名。

需要说明的是,当待检测域名或正常域名包括较多域名时,可以对待检测域名或正常域名进行分组,以获取多个待检测域名的特征码。其中对待检测域名进行分组可以基于相同目标IP地址对待检测域名进行分组,对应着相同目标IP地址的域名在分组后被归类为相同的分组;也可以基于相同子域名对待检测域名进行分组,这里子域名是指去除TLD和ccTLD以后的子域名,比如两个待检测域名hezl3.xk80p.com和14lyu.xk80p.com,在去除后缀“.com”以后的子域名为xl80p,因此可以将它们归为相同的分组。

同样的,由于正常域名可能包括较多域名,可以在正常域名中随机取一定数量的域名生成多个样本组,每个样本组包含相同数量的域名。所获取的多个样本组可以作为作为比照对象与分组后的待检测域名进行对比以发现待检测域名中潜在可能的DGA算法生成的伪造域名。示例性的,可以以Alexa中排名前100万的域名为基础,随机的生成1000个样本组,每一个样本组包含500个域名。

具体的,特征码用于指示域名中字母的分布或字母及数字的分布,其中字母可以包括a至z,数字可以包括0至9。进一步的,获取特征码可以为将域名中的字母或字母及数字按照出现次数进行排序后获取的字符串。当待检测域名或正常域名被分为多个域名组时,所获取的特征码可能包括多个,此时特征码用于指示一个域名组中每一个数字或者字母出现次数的分布情况。

示例性的,获取待检测域名的特征码可以为:

对待检测域名进行分组以获取多个域名组;

当特征码用于指示域名中字母及数字的分布时,统计域名组中数字和字母出现的次数,比如“x”出现了230次、“3”出现了59次等;选取域名组中出现次数最高的10个数字和字母,若得到的数字和字母小于10个则可以认为该域名组包含的信息不足以用来做后续的判断,直接丢弃该域名组;将选取出来的10个数字和字母按照出现次数降序排列得到一个10个字节的特征码;

当特征码用于指示域名中字母的分布时,统计域名组中字母出现的次数;选取域名组中出现次数最高的10个字母,若得到的字母小于10个则可以认为该域名组包含的信息不足以用来做后续的判断,直接丢弃该域名组;将选取出来的10个字母按照出现次数降序排列得到一个10个字节的特征码;

获取正常域名的特征码可以为:

当特征码用于指示域名中字母及数字的分布时,统计正常域名中数字和字母出现的次数。选取正常域名中出现次数最高的10个数字和字母;将选取出来的10个数字和字母按照出现次数降序排列得到一个10个字节的特征码;

当特征码用于指示域名中字母的分布时,统计正常域名中字母出现的次数;选取正常域名中出现次数最高的10个字母;将选取出来的10个字母按照出现次数降序排列得到一个10个字节的特征码。

102、计算待检测域名的特征码与正常域名的特征码之间的特征差距。

其中,特征差距用于指示待检测域名的特征码与正常域名的特征码之间的相似程度。

具体的,特征差距用于指示待检测域名的特征码与正常域名的特征码之间的相似程度,进一步的,特征差距越大说明待检测域名的特征码与正常域名的特征码的相似度越低,待检测域名是一个由DGA算法生成的伪造域名的概率较大,反之则指示待检测域名的特征码与正常域名的特征码的相似度越高,待检测域名是一个由DGA算法生成的伪造域名的概率较小。

更进一步的,当特征码用于指示域名中字母的分布或字母及数字的分布时,可以计算待检测域名的特征码与所述正常域名的特征码之间的杰卡德相似性度,并将杰卡德相似性度作为待检测域名的特征码与所述正常域名的特征码之间的特征差距。

当特征码用于指示域名中字母及数字的分布时,可以根据Damerau-Levenshtein距离算法计算待检测域名的特征码与正常域名的特征码的Damerau-Levenshtein距离,Damerau-Levenshtein距离为待检测域名的特征码与正常域名的特征码之间的特征差距。

103、根据特征差距确定被访问的域名是否为使用域名生成DGA算法生成的域名。

具体的,在获取待检测域名的特征码与正常域名的特征码之间的特征差距后,可以将该特征差距与预先设定的标准值进行对比,当对比结果满足要求时,可以确定待检测域名字母与正常域名中的字母的分布特点有着明显的不同,或确定检测域名字母和数字与正常域名中的字母和数字的分布特点有着明显的不同,从而确定该待检测域名为使用域名生成DGA算法生成的域名。

更进一步的,当确定待检测域名为使用域名生成DGA算法生成的域名时,可以对该待检测域名进行标记。

本发明的实施例提供了一种域名检测方法,通过获取待检测域名的特征码以及正常域名的特征码,并计算待检测域名的特征码与正常域名的特征码之间的特征差距,由于特征码用于指示域名中字母或字母及数字的分布,因此根据待检测域名的特征码与正常域名的特征码之间的特征差距可以确定待检测域名的特征码与正常域名的特征码的相似度,由于当待检测域名的特征码与正常域名的特征码的相似度差距较大时,该待检测域名为使用域名生成DGA算法生成的域名的可能性较高,因此可以根据特征差距确定被访问的域名是否为使用域名生成DGA算法生成的域名。因此本发明实施例提供的域名检测方法解决了现有技术中无法识别使用DGA算法生成的域名的问题,提高了对非正常域名检测的成功率,改善了用户体验。

进一步的,如附图4所示,本发明的实施例提供一种域名检测方法,包括:

201、获取web访问日志,并解析web访问日志以获取待检测域名。

具体的,获取web访问日志可以为通过旁路检测设备获取到的网络中所有用户的web访问的日志,并将日志中所有的域名都解析出来,并将其作为后续处理的基础。不同于通常的使用DNS流量作为基础来对用户访问的域名进行分析,使用用户终端实际的web访问日志作为原始数据,相较于使用DNS流量的更加有针对性也更加的准确。

202、将待检测域名以及正常域名的顶级域名后缀LTD以及国家顶级域名后缀ccTLD去除。

具体的,将待检测域名以及正常域名的顶级域名后缀(英文全称:top-level domain,英文缩写:TLD)和国家顶级域名后缀(英文全称:country-code top-level domain,英文缩写:ccTLD)都去除掉后,可以避免TLD和ccTLD强烈干扰待检测域名以及正常域名的字母或待检测域名以及正常域名的字母和数字分布统计的计算结果,并进而影响待检测域名最终的检测效果。

203、将待检测域名以及正常域名的前缀”www”去除。

具体的,将待检测域名以及正常域名的前缀”www”去除后,可以避免待检测域名以及正常域名的前缀”www”干扰待检测域名以及正常域名的字母或待检测域名以及正常域名的字母和数字分布统计的计算结果,并进而影响待检测域名最终的检测效果

204、将待检测域名以及正常域名中除0-9、a-z、“.”、“_”以及“-”以外的字符去除。

具体的,可以使用正则表达式例如^[0-9a-z._-]+$将待检测域名以及正常域名中除0-9、a-z、“.”、“_”以及“-”以外的字符去除,正则表达式的含义是只包括0-9,a-z加上“.”、“_”和“-”三个字符一共39个字符作为字符集,由上述字符集中的字符自由组合而成的域名才作为有效域名,所有不符合此条件的域名都作为无效域名被丢弃。

进一步的,由于中文域名会被浏览器转换为PunyCode(以xn-开头)域名,因此需要将待检测域名以及正常域名中的中文域名转换为PunyCode的识别,防止当作常规域名被误判为DGA域名。

进一步的,还可以将将待检测域名以及正常域名中所有的域名大小写都变为小写,以便于后续统一的数据比对。

205、获取待检测域名的特征码以及正常域名的特征码。

具体参照上述实施例中步骤101,在此不再赘述。

206、当特征码用于指示域名中字母的分布或字母及数字的分布时,计算待检测域名的特征码与正常域名的特征码之间的杰卡德相似性度。

其中,杰卡德相似性度为待检测域名的特征码与正常域名的特征码之间的特征差距。

具体的,当特征码用于指示域名中字母的分布时,可以计算分组后的带检测域名的每一个域名组的特征码与分组后的正常域名的每一个样本组的特征码之间的杰卡德相似性度,然后计算所获取的多个杰卡德相似性度的算术平均值,并将该算术平均值作为当特征码用于指示域名中字母的分布时待检测域名的特征码与正常域名的特征码之间的特征差距。

当特征码用于指示域名中字母与数字的分布时,可以计算分组后的带检测域名的每一个域名组的特征码与分组后的正常域名的每一个样本组的特征码之间的杰卡德相似性度,然后计算所获取的多个杰卡德相似性度的算术平均值,并将该算术平均值作为当特征码用于指示域名中字母的分布时待检测域名的特征码与正常域名的特征码之间的特征差距。

207、当根据用于指示域名中字母及数字的分布的特征码获取的杰卡德相似性度大于或等于0.8时,确定被访问的域名为使用DGA算法生成的域名。

上述步骤明确的指出了待检测域名的特征码和正常域名的特征码之间有明显的差距,也就意味着待检测域名中字母的分布特点与正常域名中字母的分布特点有明显的不同,或待检测域名中数字和字母的分布特点与正常域名中数字和字母的分布特点有明显的不同,因此所有满足以上条件的待检测域名都可能为潜在的由DGA算法生成的伪造域名。

208、当杰卡德差值与根据用于指示域名中字母及数字的分布的特征码获取的杰卡德相似性度的比率小于0.1时,确定被访问的域名为使用DGA算法生成的域名。

其中,杰卡德差值为根据用于指示域名中字母的分布的特征码获取的杰卡德相似性度与根据用于指示域名中字母及数字的分布的特征码获取的杰卡德相似性度之间的差值的绝对值。

上述步骤用于避免待检测域名以及正常域名中包含大量数字的域名被错误的认定为伪造域名(比如中国移动的网站10086.cn)。尽管从正常域名的数字和字母分布来看,数字使用的频率较低,但是仅仅依靠包含大量的数字就判断一个域名为伪造也是不合适的。

209、当特征码用于指示域名中字母及数字的分布时,根据Damerau-Levenshtein距离算法计算待检测域名的特征码与正常域名的特征码的Damerau-Levenshtein距离。

其中,Damerau-Levenshtein距离为待检测域名的特征码与正常域名的特征码之间的特征差距。

210、当Damerau-Levenshtein距离大于或等于0.9时,确定被访问的域名为使用DGA算法生成的域名。

上述步骤很明确的指出了待检测域名的特征码和正常域名的特征码之间有明显的差距,也就意味着待检测域名中字母的分布特点与正常域名中字母的分布特点有明显的不同,或待检测域名中数字和字母的分布特点与正常域名中数字和字母的分布特点有明显的不同,因此所有满足以上条件的待检测域名都可能为潜在的由DGA算法生成的伪造域名。

211、对终端的访问记录中的域名与确定为使用DGA算法生成的域名进行匹配。

具体的,当获取检测结果后即确定使用DGA算法生成的域名后,可以将所获取的检测结果再带回到原始的web访问的日志即是用来生成比对域名组的原始日志记录进行匹配。以便于根据匹配结果针对用户的web访问行为进行过滤从而尽可能的减少误报并且可以在行为过滤的过程中确定潜在被感染的机器,以及被感染的严重程度。

当终端的访问记录中的域名与确定为使用DGA算法生成的域名满足感染匹配条件时,执行步骤212。

当终端的访问记录中的域名与确定为使用DGA算法生成的域名满足删除匹配条件时,执行步骤213。

212、确定终端为感染终端。

213、将满足删除匹配条件的域名从确定为使用DGA算法生成的域名中删除。

示例性的,可以以过去7天的web访问日志作为基础,来和所有确定为使用DGA算法生成的域名进行比较,最终只选取那些超过3天都对确定为使用DGA算法生成的域名进行访问的访问记录,并且一共访问过至少3个不同的确定为使用DGA算法生成的域名的机器作为最终的被感染机器,以便于对最终的被感染机器尽快采取措施进行查杀或者隔离,减少进一步的危害;如果某个确定为使用DGA算法生成的域名只被一台机器访问过少于3次,则认为这个域名只是一个可能的统计噪音而不再标记为伪造域名。选用这样的行为过滤方式的原理是:一台被感染僵尸程序作为僵尸网络一部分的机器,需要周期性的去访问背后的控制机器来保持这种控制和被控制的关系,并且使用DGA算法进行域名伪造的目的也就是为了躲避可能的域名黑名单过滤,因此被感染机器访问的DGA算法伪造域名也应该是需要经常变化的。所以在发现以上行为的终端以后基本可以确定就是被感染的终端。

本发明的实施例提供了一种域名检测方法,通过获取待检测域名的特征码以及正常域名的特征码,并计算待检测域名的特征码与正常域名的特征码之间的特征差距,由于特征码用于指示域名中字母或字母及数字的分布,因此根据待检测域名的特征码与正常域名的特征码之间的特征差距可以确定待检测域名的特征码与正常域名的特征码的相似度,由于当待检测域名的特征码与正常域名的特征码的相似度差距较大时,该待检测域名为使用域名生成DGA算法生成的域名的可能性较高,因此可以根据特征差距确定被访问的域名是否为使用域名生成DGA算法生成的域名。因此本发明实施例提供的域名检测方法解决了现有技术中无法识别使用DGA算法生成的域名的问题,提高了对非正常域名检测的成功率,改善了用户体验。

如附图5所示,本发明的实施例提供了一种域名检测装置500,包括:

处理模块501,用于获取待检测域名的特征码以及正常域名的特征码。

其中,特征码用于指示域名中字母的分布或字母及数字的分布。

具体的,待检测域名可以为可能包括由DGA算法生成的域名,待检测域名可以为制动的日志数据中所有被访问的域名。示例性的,带检测域名可以为网络中所有用户访问的域名,获取该待检测域名可以为使用旁路检测设备获取网络中所有用户的web访问的日志,并将日志中所有的域名都解析出来作为待检测域名。正常域名可以为已确认不包括由DGA算法生成的域名,正常域名可以为实现获取,示例性的,可以获取Alexa网站排名中前100万的域名,并将该100万的域名作为正常域名。

需要说明的是,当待检测域名或正常域名包括较多域名时,可以对待检测域名或正常域名进行分组,以获取多个待检测域名的特征码。其中对待检测域名进行分组可以基于相同目标IP地址对待检测域名进行分组,对应着相同目标IP地址的域名在分组后被归类为相同的分组;也可以基于相同子域名对待检测域名进行分组,这里子域名是指去除TLD和ccTLD以后的子域名,比如两个待检测域名hezl3.xk80p.com和14lyu.xk80p.com,在去除后缀“.com”以后的子域名为xl80p,因此可以将它们归为相同的分组。

同样的,由于正常域名可能包括较多域名,可以在正常域名中随机取一定数量的域名生成多个样本组,每个样本组包含相同数量的域名。所获取的多个样本组可以作为作为比照对象与分组后的待检测域名进行对比以发现待检测域名中潜在可能的DGA算法生成的伪造域名。示例性的,可以以Alexa中排名前100万的域名为基础,随机的生成1000个样本组,每一个样本组包含500个域名。

具体的,特征码用于指示域名中字母的分布或字母及数字的分布,其中字母可以包括a至z,数字可以包括0至9。进一步的,获取特征码可以为将域名中的字母或字母及数字按照出现次数进行排序后获取的字符串。当待检测域名或正常域名被分为多个域名组时,所获取的特征码可能包括多个,此时特征码用于指示一个域名组中每一个数字或者字母出现次数的分布情况。

示例性的,获取待检测域名的特征码可以为:

对待检测域名进行分组以获取多个域名组;

当特征码用于指示域名中字母及数字的分布时,统计域名组中数字和字母出现的次数,比如“x”出现了230次、“3”出现了59次等;选取域名组中出现次数最高的10个数字和字母,若得到的数字和字母小于10个则可以认为该域名组包含的信息不足以用来做后续的判断,直接丢弃该域名组;将选取出来的10个数字和字母按照出现次数降序排列得到一个10个字节的特征码;

当特征码用于指示域名中字母的分布时,统计域名组中字母出现的次数;选取域名组中出现次数最高的10个字母,若得到的字母小于10个则可以认为该域名组包含的信息不足以用来做后续的判断,直接丢弃该域名组;将选取出来的10个字母按照出现次数降序排列得到一个10个字节的特征码;

获取正常域名的特征码可以为:

当特征码用于指示域名中字母及数字的分布时,统计正常域名中数字和字母出现的次数。选取正常域名中出现次数最高的10个数字和字母;将选取出来的10个数字和字母按照出现次数降序排列得到一个10个字节的特征码;

当特征码用于指示域名中字母的分布时,统计正常域名中字母出现的次数;选取正常域名中出现次数最高的10个字母;将选取出来的10个字母按照出现次数降序排列得到一个10个字节的特征码。

处理模块501还用于计算待检测域名的特征码与正常域名的特征码之间的特征差距。

其中,特征差距用于指示待检测域名的特征码与正常域名的特征码之间的相似程度。

具体的,特征差距用于指示待检测域名的特征码与正常域名的特征码之间的相似程度,进一步的,特征差距越大说明待检测域名的特征码与正常域名的特征码的相似度越低,待检测域名是一个由DGA算法生成的伪造域名的概率较大,反之则指示待检测域名的特征码与正常域名的特征码的相似度越高,待检测域名是一个由DGA算法生成的伪造域名的概率较小。

更进一步的,当特征码用于指示域名中字母的分布或字母及数字的分布时,可以计算待检测域名的特征码与所述正常域名的特征码之间的杰卡德相似性度,并将杰卡德相似性度作为待检测域名的特征码与所述正常域名的特征码之间的特征差距。

当特征码用于指示域名中字母及数字的分布时,可以根据Damerau-Levenshtein距离算法计算待检测域名的特征码与正常域名的特征码的Damerau-Levenshtein距离,Damerau-Levenshtein距离为待检测域名的特征码与正常域名的特征码之间的特征差距。

检测模块502,用于根据特征差距确定被访问的域名是否为使用域名生成DGA算法生成的域名。

具体的,在获取待检测域名的特征码与正常域名的特征码之间的特征差距后,可以将该特征差距与预先设定的标准值进行对比,当对比结果满足要求时,可以确定待检测域名字母与正常域名中的字母的分布特点有着明显的不同,或确定检测域名字母和数字与正常域名中的字母和数字的分布特点有着明显的不同,从而确定该待检测域名为使用域名生成DGA算法生成的域名。

更进一步的,当确定待检测域名为使用域名生成DGA算法生成的域名时,可以对该待检测域名进行标记。

本发明的实施例提供了一种域名检测装置,通过获取待检测域名的特征码以及正常域名的特征码,并计算待检测域名的特征码与正常域名的特征码之间的特征差距,由于特征码用于指示域名中字母或字母及数字的分布,因此根据待检测域名的特征码与正常域名的特征码之间的特征差距可以确定待检测域名的特征码与正常域名的特征码的相似度,由于当待检测域名的特征码与正常域名的特征码的相似度差距较大时,该待检测域名为使用域名生成DGA算法生成的域名的可能性较高,因此可以根据特征差距确定被访问的域名是否为使用域名生成DGA算法生成的域名。因此本发明实施例提供的域名检测方法解决了现有技术中无法识别使用DGA算法生成的域名的问题,提高了对非正常域名检测的成功率,改善了用户体验。

具体的,如附图6所示,本发明的实施例所提供的域名检测装置500还可以包括采集模块503,用于获取web访问日志,并解析web访问日志以获取待检测域名。

具体的,获取web访问日志可以为通过旁路检测设备获取到的网络中所有用户的web访问的日志,并将日志中所有的域名都解析出来,并将其作为后续处理的基础。不同于通常的使用DNS流量作为基础来对用户访问的域名进行分析,使用用户终端实际的web访问日志作为原始数据,相较于使用DNS流量的更加有针对性也更加的准确。

具体的,采集模块503还用于:

将待检测域名以及正常域名的顶级域名后缀LTD以及国家顶级域名后缀ccTLD去除;和/或,将待检测域名以及正常域名的前缀”www”去除;和/或,将待检测域名以及正常域名中除0-9、a-z、“.”、“_”以及“-”以外的字符去除。

具体的,将待检测域名以及正常域名的顶级域名后缀(英文全称:top-level domain,英文缩写:TLD)和国家顶级域名后缀(英文全称:country-code top-level domain,英文缩写:ccTLD)都去除掉后,可以避免TLD和ccTLD强烈干扰待检测域名以及正常域名的字母或待检测域名以及正常域名的字母和数字分布统计的计算结果,并进而影响待检测域名最终的检测效果。

具体的,将待检测域名以及正常域名的前缀”www”去除后,可以避免待检测域名以及正常域名的前缀”www”干扰待检测域名以及正常域名的字母或待检测域名以及正常域名的字母和数字分布统计的计算结果,并进而影响待检测域名最终的检测效果

具体的,可以使用正则表达式例如^[0-9a-z._-]+$将待检测域名以及正常域名中除0-9、a-z、“.”、“_”以及“-”以外的字符去除,正则表达式的含义是只包括0-9,a-z加上“.”、“_”和“-”三个字符一共39个字符作为字符集,由上述字符集中的字符自由组合而成的域名才作为有效域名,所有不符合此条件的域名都作为无效域名被丢弃。

进一步的,由于中文域名会被浏览器转换为PunyCode(以xn-开头)域名,因此需要将待检测域名以及正常域名中的中文域名转换为PunyCode的识别,防止当作常规域名被误判为DGA域名。

进一步的,还可以将将待检测域名以及正常域名中所有的域名大小写都变为小写,以便于后续统一的数据比对。

具体的,处理模块501具体用于:

当特征码用于指示域名中字母的分布或字母及数字的分布时,计算待检测域名的特征码与正常域名的特征码之间的杰卡德相似性度,杰卡德相似性度为待检测域名的特征码与正常域名的特征码之间的特征差距;和/或,

当特征码用于指示域名中字母及数字的分布时,根据Damerau-Levenshtein距离算法计算待检测域名的特征码与正常域名的特征码的Damerau-Levenshtein距离,Damerau-Levenshtein距离为待检测域名的特征码与正常域名的特征码之间的特征差距。

其中,杰卡德相似性度为待检测域名的特征码与正常域名的特征码之间的特征差距。

具体的,当特征码用于指示域名中字母的分布时,可以计算分组后的带检测域名的每一个域名组的特征码与分组后的正常域名的每一个样本组的特征码之间的杰卡德相似性度,然后计算所获取的多个杰卡德相似性度的算术平均值,并将该算术平均值作为当特征码用于指示域名中字母的分布时待检测域名的特征码与正常域名的特征码之间的特征差距。

当特征码用于指示域名中字母与数字的分布时,可以计算分组后的带检测域名的每一个域名组的特征码与分组后的正常域名的每一个样本组的特征码之间的杰卡德相似性度,然后计算所获取的多个杰卡德相似性度的算术平均值,并将该算术平均值作为当特征码用于指示域名中字母的分布时待检测域名的特征码与正常域名的特征码之间的特征差距。

具体的,检测模块502具体用于:

当根据用于指示域名中字母及数字的分布的特征码获取的杰卡德相似性度大于或等于0.8时,确定被访问的域名为使用DGA算法生成的域名;和/或,

当杰卡德差值与根据用于指示域名中字母及数字的分布的特征码获取的杰卡德相似性度的比率小于0.1时,确定被访问的域名为使用DGA算法生成的域名,杰卡德差值为根据用于指示域名中字母的分布的特征码获取的杰卡德相似性度与根据用于指示域名中字母及数字的分布的特征码获取的杰卡德相似性度之间的差值的绝对值;和/或,

当Damerau-Levenshtein距离大于或等于0.9时,确定被访问的域名为使用DGA算法生成的域名。

上述内容明确的指出了待检测域名的特征码和正常域名的特征码之间有明显的差距,也就意味着待检测域名中字母的分布特点与正常域名中字母的分布特点有明显的不同,或待检测域名中数字和字母的分布特点与正常域名中数字和字母的分布特点有明显的不同,因此所有满足以上条件的待检测域名都可能为潜在的由DGA算法生成的伪造域名。

其中,杰卡德差值为根据用于指示域名中字母的分布的特征码获取的杰卡德相似性度与根据用于指示域名中字母及数字的分布的特征码获取的杰卡德相似性度之间的差值的绝对值。

上述内容用于避免待检测域名以及正常域名中包含大量数字的域名被错误的认定为伪造域名(比如中国移动的网站10086.cn)。尽管从正常域名的数字和字母分布来看,数字使用的频率较低,但是仅仅依靠包含大量的数字就判断一个域名为伪造也是不合适的。

具体的,如附图6所示,本发明的实施例所提供的域名检测装置500还可以包括回溯模块504,回溯模块504用于对终端的访问记录中的域名与确定为使用DGA算法生成的域名进行匹配;当终端的访问记录中的域名与确定为使用DGA算法生成的域名满足感染匹配条件时,确定终端为感染终端;和/或,当终端的访问记录中的域名与确定为使用DGA算法生成的域名满足删除匹配条件时,将满足删除匹配条件的域名从确定为使用DGA算法生成的域名中删除。

具体的,当获取检测结果后即确定使用DGA算法生成的域名后,可以将所获取的检测结果再带回到原始的web访问的日志即是用来生成比对域名组的原始日志记录进行匹配。以便于根据匹配结果针对用户的web访问行为进行过滤从而尽可能的减少误报并且可以在行为过滤的过程中确定潜在被感染的机器,以及被感染的严重程度。

示例性的,可以以过去7天的web访问日志作为基础,来和所有确定为使用DGA算法生成的域名进行比较,最终只选取那些超过3天都对确定为使用DGA算法生成的域名进行访问的访问记录,并且一共访问过至少3个不同的确定为使用DGA算法生成的域名的机器作为最终的被感染机器,以便于对最终的被感染机器尽快采取措施进行查杀或者隔离,减少进一步的危害;如果某个确定为使用DGA算法生成的域名只被一台机器访问过少于3次,则认为这个域名只是一个可能的统计噪音而不再标记为伪造域名。选用这样的行为过滤方式的原理是:一台被感染僵尸程序作为僵尸网络一部分的机器,需要周期性的去访问背后的控制机器来保持这种控制和被控制的关系,并且使用DGA算法进行域名伪造的目的也就是为了躲避可能的域名黑名单过滤,因此被感染机器访问的DGA算法伪造域名也应该是需要经常变化的。所以在发现以上行为的终端以后基本可以确定就是被感染的终端。

本发明的实施例提供了一种域名检测装置,通过获取待检测域名的特征码以及正常域名的特征码,并计算待检测域名的特征码与正常域名的特征码之间的特征差距,由于特征码用于指示域名中字母或字母及数字的分布,因此根据待检测域名的特征码与正常域名的特征码之间的特征差距可以确定待检测域名的特征码与正常域名的特征码的相似度,由于当待检测域名的特征码与正常域名的特征码的相似度差距较大时,该待检测域名为使用域名生成DGA算法生成的域名的可能性较高,因此可以根据特征差距确定被访问的域名是否为使用域名生成DGA算法生成的域名。因此本发明实施例提供的域名检测方法解决了现有技术中无法识别使用DGA算法生成的域名的问题,提高了对非正常域名检测的成功率,改善了用户体验。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可以用硬件实现,或固件实现,或它们的组合方式来实现。当使用软件实现时,可以将上述功能存储在计算机可读介质中或作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。以此为例但不限于:计算机可读介质可以包括随机存储器(英文全称:Random Access Memory,英文简称:RAM)、只读存储器(英文全称:Read Only Memory,英文简称:ROM)、电可擦可编程只读存储器(英文全称:Electrically Erasable Programmable Read Only Memory,英文简称:EEPROM)、只读光盘(英文全称:Compact Disc Read Only Memory,英文简称:CD-ROM)或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。此外。任何连接可以适当的成为计算机可读介质。例如,如果软件是使用同轴电缆、光纤光缆、双绞线、数字用户专线(英文全称:Digital Subscriber Line,英文简称:DSL)或者诸如红外线、无线电和微波之类的无线技术从网站、服务器或者其他远程源传输的,那么同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线和微波之类的无线技术包括在计算机可读介质的定义中。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,当以软件方式实现本发明时,可以将用于执行上述方法的指令或代码存储在计算机可读介质中或通过计算机可读介质进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。以此为例但不限于:计算机可读介质可以包括RAM、ROM、电可擦可编程只读存储器(全称:electrically erasable programmable read-only memory,简称:EEPROM)、光盘、磁盘或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1