异常域名的检测方法及装置与流程

文档序号:14942853发布日期:2018-07-13 21:29阅读:197来源:国知局

本发明涉及互联网领域,具体而言,涉及一种异常域名的检测方法及装置。



背景技术:

近些年来,随着云计算业务的蓬勃发展,诸多站点为了节省成本,都将其架设在云服务器上,由此造成云服务器上承载有众多各式各样的站点,然而,云服务器无法确定其中哪些站点为异常站点,例如:钓鱼网站、黄色网站、病毒网站,因此,作为云服务器提供方,需要采取特定的检测方法对这些不良站点进行检测分析,进而识别出异常域名,此种检测方式被称为异常域名检测,又被称为异常域名检测。

目前,相关技术中所提供的检测方案主要分为以下两种:

(1)基于人工配置规则进行检测,例如:某一时间流量异常,通过人工经验进行主观判断等;

然而,此种检测方式的缺陷在于:由于判定规则无法穷举,因此,只能在发现每一个异常域名后增加其对应的检测规则;而且,基于规则的检测方式的泛化能力较差,使其无法检测历史上未存在的异常;另外,基于规则的检测方式无法识别异常模式,只能依赖于人工经验来进行判断。因为存在上述缺陷,因此,基于规则的检测方式的检测效果欠佳,存在遗漏或者大量误判。

(2)基于流量数据提取部分特征(例如:访问者的互联网协议(ip)信息、查询信息等)来识别异常信息。

然而,此种检测方式的缺陷在于:仅能够利用域名的部分离线信息,而无法充分考虑其他更多的离线信息,例如:生存时间(ttl)信息、子域名信息、域名ip特征、请求特征以及域名字符串本身的特征,进而会导致漏判或者误判。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种异常域名的检测方法及装置,以至少解决相关技术中所提供的异常域名检测方案的检测手段单一,缺乏全面性,易导致异常域名检测的误判与漏判的技术问题。

根据本发明实施例的一个方面,提供了一种异常域名的检测方法,包括:

获取待检测域名集合中每个待检测域名的离线特征和在线特征,其中,离线特征是通过对每个待检测域名关联的历史访问数据进行分析后提取得到的,在线特征是根据每个待检测域名的自身属性确定的;将离线特征和在线特征进行融合组成每个待检测域名的特征向量;对组成后的全部特征向量进行聚类分析,从待检测域名集合中检测出异常域名。

可选地,离线特征包括以下至少之一:待检测域名下的子域名的生存时间ttl特征;待检测域名下的子域名的访问量特征;待检测域名下的子域名的自身属性特征;待检测域名对应的互联网协议ip地址特征。

可选地,在线特征包括以下至少之一:根据预设规则对每个待检测域名包含的部分或全部字符进行统计分析得到的特征;通过对预设数量的域名进行训练,获取一个或多个连续字符的排列规律或者每相邻多个字符之间的转移概率,并根据排列规律或转移概率对每个待检测域名包含的部分或全部字符进行统计分析得到的特征。

可选地,将离线特征和在线特征进行融合组成每个待检测域名的特征向量包括:对离线特征和在线特征进行融合处理,组成每个待检测域名的待处理特征向量,其中,待处理特征向量的向量维度由离线特征和在线特征所包含的总体特征数量确定的;对待处理特征向量进行归一化处理,得到每个待检测域名的特征向量。

可选地,对组成后的全部特征向量进行聚类分析,从待检测域名集合中检测出异常域名包括:根据组成后的全部特征向量相互间的相似度对组成后的全部特征向量进行聚类处理,将组成后的全部特征向量划分为多个簇;从多个簇中检测出第一部分特征向量和/或第二部分特征向量,其中,第一部分特征向量所归属的簇中包含的特征向量的数量小于第一预设阈值,第二部分特征向量中的每个特征向量与该特征向量所归属的簇中心之间的距离大于第二预设阈值;根据第一部分特征向量和/或第二部分特征向量确定异常域名。

可选地,在获取待检测域名集合中每个待检测域名的离线特征和在线特征之前,还包括:接收来自于终端的访问请求,其中,访问请求中携带有待访问域名;从访问请求中提出待访问域名,添加至待检测域名集合。

可选地,在从待检测域名集合中检测出异常域名之后,还包括:向终端发送通知消息,其中,通知消息用于将待访问域名为异常域名的事件通知给终端。

根据本发明实施例的另一方面,还提供了一种异常域名的检测装置,包括:

获取模块,用于获取待检测域名集合中每个待检测域名的离线特征和在线特征,其中,离线特征是通过对每个待检测域名关联的历史访问数据进行分析后提取得到的,在线特征是根据每个待检测域名的自身属性确定的;融合模块,用于将离线特征和在线特征进行融合组成每个待检测域名的特征向量;检测模块,用于对组成后的全部特征向量进行聚类分析,从待检测域名集合中检测出异常域名。

可选地,离线特征包括以下至少之一:待检测域名下的子域名的ttl特征;待检测域名下的子域名的访问量特征;待检测域名下的子域名的自身属性特征;待检测域名对应的互联网协议ip地址特征。

可选地,在线特征包括以下至少之一:根据预设规则对每个待检测域名包含的部分或全部字符进行统计分析得到的特征;通过对预设数量的域名进行训练,获取一个或多个连续字符的排列规律或者每相邻多个字符之间的转移概率,并根据排列规律或转移概率对每个待检测域名包含的部分或全部字符进行统计分析得到的特征。

可选地,融合模块包括:第一处理单元,用于对离线特征和在线特征进行融合处理,组成每个待检测域名的待处理特征向量,其中,待处理特征向量的向量维度由离线特征和在线特征所包含的总体特征数量确定的;第二处理单元,用于对待处理特征向量进行归一化处理,得到每个待检测域名的特征向量。

可选地,检测模块包括:第三处理单元,用于根据组成后的全部特征向量相互间的相似度对组成后的全部特征向量进行聚类处理,将组成后的全部特征向量划分为多个簇;检测单元,用于从多个簇中检测出第一部分特征向量和/或第二部分特征向量,其中,第一部分特征向量所归属的簇中包含的特征向量的数量小于第一预设阈值,第二部分特征向量中的每个特征向量与该特征向量所归属的簇中心之间的距离大于第二预设阈值;确定单元,用于根据第一部分特征向量和/或第二部分特征向量确定异常域名。

在本发明实施例中,采用获取待检测域名集合中每个待检测域名的离线特征和在线特征的方式,该离线特征通过对待检测域名关联的历史访问数据进行分析后提取得到,而该在线特征则是根据待检测域名的自身属性加以确定的方式,通过将离线特征和在线特征进行融合组成每个待检测域名的特征向量并对组成后的全部特征向量进行聚类分析,进而从待检测域名集合中检测出异常域名,达到了通过融合域名的离线特征与在线特征并使用聚类分析的方式对云服务器上的众多域名进行检测的目的,从而实现了提高异常域名检测的成功率和准确率的技术效果,进而解决了相关技术中所提供的异常域名检测方案的检测手段单一,缺乏全面性,易导致异常域名检测的误判与漏判的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种用于实现异常域名的检测方法的服务器的硬件结构框图;

图2是根据本发明实施例的异常域名的检测方法的流程图;

图3是根据本发明优选实施例的异常域名检测实施过程的示意图;

图4是根据本发明实施例的异常域名的检测装置的结构框图。

具体实施方式

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

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:

(1)域名,即通常所称的网址,其具有全球唯一特性,为了便于记忆,人们往往使用域名来访问站点,域名服务器会找到其映射的互联网协议(ip)地址。

(2)主域名,即域名拥有者购买的域名,例如:map.google.com的主域名便是google.com。

(3)子域名,即为在主域名下的下级域名,例如:map.google.com自身便是一个子域名。在通常情况下,一个主域名下可以拥有多个子域名,而每个子域名分别对应不同的服务与应用。

(4)n-gram,即字符串中的连续n个字符所构成的集合。

(5)生存时间(timetolive,简称为ttl),各地的域名系统(dns)服务器在接收到解析请求后,会向域名指定的域名服务器(ns)转发解析请求从而获得解析记录。域名系统在获取到该解析记录后,该解析记录会在dns服务器中保存一段时间。在这段时间内如果再次接收到解析请求,dns服务器将直接返回前一次已经获得的解析记录;而该解析记录在dns服务器上保留的时间即为ttl值。

(6)离线特征,是指在一定时间范围内,根据访问域名的历史数据提取出的特征。

(7)在线特征,是指根据域名自身属性提取到的特征,其不需要分析域名的历史访问数据。经过大量试验研究表明,异常域名具有命名方式不符合正常域名的命名习惯、长度较长等特征。

实施例1

根据本发明实施例,还提供了一种异常域名的检测方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本申请实施例一所提供的方法实施例可以在服务器端执行。图1是根据本发明实施例的一种用于实现异常域名的检测方法的服务器的硬件结构框图。如图1所示,服务器10可以包括一个或多个处理器102(处理器102可以包括但不限于:微处理器(mcu)或可编程逻辑器件(fpga)等处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置。除此以外,还可以包括:输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为i/o接口的端口中的一个端口被包括)、网络接口。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到服务器10中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。

存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的异常域名的检测方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的异常域名的检测方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至服务器10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器10的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(networkinterfacecontroller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(radiofrequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。

在一种可选的实施例中,服务器10可以是安全服务器、资源服务器等。

在上述运行环境下,本申请提供了如图2所示的异常域名的检测方法。图2是根据本发明实施例的异常域名的检测方法的流程图。如图2所示,该方法可以包括以下处理步骤:

步骤s10,获取待检测域名集合中每个待检测域名的离线特征和在线特征,其中,离线特征是通过对每个待检测域名关联的历史访问数据进行分析后提取得到的,在线特征是根据每个待检测域名的自身属性确定的;

步骤s12,将离线特征和在线特征进行融合组成每个待检测域名的特征向量;

步骤s14,对组成后的全部特征向量进行聚类分析,从待检测域名集合中检测出异常域名。

通过上述步骤,采用获取待检测域名集合中每个待检测域名的离线特征和在线特征的方式,该离线特征通过对待检测域名关联的历史访问数据进行分析后提取得到,而该在线特征则是根据待检测域名的自身属性加以确定的方式,通过将离线特征和在线特征进行融合组成每个待检测域名的特征向量并对组成后的全部特征向量进行聚类分析,进而从待检测域名集合中检测出异常域名,达到了通过融合域名的离线特征与在线特征并使用聚类分析的方式对云服务器上的众多域名进行检测的目的,从而实现了提高异常域名检测的成功率和准确率的技术效果,进而解决了相关技术中所提供的异常域名检测方案的检测手段单一,缺乏全面性,易导致异常域名检测的误判与漏判的技术问题。

下面将以图3所示的优选实施方式对本发明实施例所提供的技术方案做进一步详细地阐述。

图3是根据本发明优选实施例的异常域名检测实施过程的示意图。该实施过程可以由上述处理器和存储器来配合完成,即下面提到的各个操作指令(或模块化指令)可以存储于该存储器,而处理器用于执行存储器内存储的各个操作指令。如图3所示,首先需要分别获取离线特征和在线特征。

具体地,上述离线特征可以包括但不限于以下至少之一:

1)待检测域名下的子域名的生存时间ttl特征;

在通常情况下,一个主域名下会存在多个子域名,而不同的子域名之间存在着不同的ttl,对于异常域名而言,一般其ttl较小,因此,ttl可以作为异常域名离线特征,其具体可以包括但不限于以下至少之一:

(1)最大ttl:子域名中ttl最大值。

(2)最小ttl:子域名中ttl最小值。

(3)ttl之差:子域名中ttl最大值与最小值之差。

(4)ttl平均值:所有不同子域名的ttl平均值。

(5)ttl方差:所有不同子域名的ttl的方差。

(6)不同ttl的个数:子域名中不同ttl的数量。

(7)ttl熵:所有不同子域名中的ttl信息熵。

2)待检测域名下的子域名的访问量特征;

在通常情况下,异常域名的访问量会在一段时间内急剧增大,因此,访问量也可作为异常域名离线特征,其具体可以包括但不限于以下至少之一:

(1)综合访问量(pageview,简称为pv):这段时间内其所有子域名的总访问量。

(2)用户访问量(userview,简称为uv):这段时间内其所有子域名的不同用户访问量,可以使用ip地址来标识不同用户。

(3)每天请求pv平均值:这段时间内其所有子域名的每天访问量的平均值。

(4)每天请求uv平均值:这段时间内其所有子域名的每天访问用户数的平均值。

(5)每天请求pv方差:这段时间内其所有子域名的每天访问量的方差。

(6)每天请求uv方差:这段时间内其所有子域名的每天访问用户数的方差。

(7)最大活跃度:在通常情况下,异常域名活跃周期仅约半个小时,即在特定半个小时内,其访问量占全天访问量的绝大部分,因此,统计这段时间内,每天的访问量最大的半个小时(按照自然时间划分)与全天访问量之间的比值,然后再选取连续多天中活跃度最大的那一天的活跃度。

3)待检测域名下的子域名的自身属性特征;

在通常情况下,主域名下都会存在多个子域名,那么其子域名的特征也可以作为异常域名离线特征,其具体可以包括但不限于以下至少之一:

(1)子域名数量:这段时间内该主域名出现的不同子域名的个数。

(2)子域名长度的平均值:这段时间内该主域名出现的不同子域名长度的平均值。

(3)子域名长度的方差:这段时间内该主域名出现的不同子域名长度的方差。

(4)子域名中包含的数字百分比的平均值:这段时间内该主域名出现的不同子域名包含的数字百分比的平均值。

(5)子域名包含的数字百分比的方差:这段时间内该主域名出现的不同子域名包含的数字百分比的方差。

(6)子域名长度熵:这段时间内该主域名出现的不同子域名的长度的信息熵。

4)待检测域名对应的互联网协议ip地址特征。

在通常情况下,异常域名所包含的ip数量较少,因此,其ip特征也可以作为异常域名离线特征的数据源,其具体可以包括但不限于以下至少之一:

(1)不同ip的数量:这段时间内该主域名出现的ip个数。

(2)不同ip的前16位熵:这段时间内该主域名出现的ip的前16位的信息熵。

上述提取的22个异常域名离线特征都是基于一段时间内的访问数据来提取的,例如:使用连续七天的访问数据来进行提取。

另外,上述在线特征可以包括但不限于以下至少之一:

1)根据预设规则对每个待检测域名包含的部分或全部字符进行统计分析得到的特征,其具体可以包括但不限于以下至少之一:

(1)主域名长度。

(2)主域名的顶级域名(topleveldomain,简称为tld)长度。

(3)主域名的字符信息熵。

(4)主域名的字符正则信息熵,即采用主域名的字符信息熵除以其长度。

(5)主域名的元音字母比例。

(6)主域名的数字比例。

(7)主域名的重复字符的字符数。

(8)主域名的连续数字个数。

(9)主域名的连续辅音字符个数。

(10)主域名的tld是否为私有tld。

2)通过对预设数量的域名进行训练,获取一个或多个连续字符的排列规律或者每相邻多个字符之间的转移概率,并根据排列规律或转移概率对每个待检测域名包含的部分或全部字符进行统计分析得到的特征。

首先,可以使用alexa上对全球所有网站排名中排在前列的预设数量(例如:前100万)的域名进行训练,由于该排名不会经常发生大范围变化,因此可以在一段时间内仅需要训练一次,例如:一个月训练一次。训练的数据可以包括但不限于以下至少之一:

(1)1-gram、2-gram与3-gram

统计这100万域名的字母组成的1-gram、2-gram与3-gram每个元素的计数,并计算各1-gram、2-gram与3-gram每个元素的排名。

(2)2-gram-hmm

统计这100万域名的2-gram的隐马尔可夫转移概率矩阵,即统计每两个不同的2-gram之间的跳转概率,即条件概率,例如:xy→yz的转移概率可以通过如下公式来计算获得:

其中,count(xyz)为序列xyz出现的次数,·为任意字符。

其次,基于上述训练模型对每一个域名计算其在线特征,其可以包括但不限于以下特征至少之一:

(1)主域名的2gram的隐马尔可夫转移概率的log值。

(2)主域名的1gram排名平均值。

(3)主域名的2gram排名平均值。

(4)主域名的3gram排名平均值。

(5)主域名的1gram排名方差。

(6)主域名的2gram排名方差。

(7)主域名的3gram排名方差。

综上可知,本发明优选实施例所提供的技术方案不仅根据域名的历史访问数据提取了7种ttl特征、7种请求特征、6种子域名特征、2种域名ip特征共22种离线特征,同时还提取了基于alexa网站上的全球前100万的域名并结合域名本身字符串的17种在线特征,并且将22种离线特征与17种在线特征进行融合对域名进行表征,更好地对域名进行刻画,最终检测效果更好,能够发现更多地、隐藏更深的异常域名以及减少域名异常误判。

可选地,在步骤s12中,将离线特征和在线特征进行融合组成每个待检测域名的特征向量可以包括以下执行步骤:

步骤s121,对离线特征和在线特征进行融合处理,组成每个待检测域名的待处理特征向量,其中,待处理特征向量的向量维度由离线特征和在线特征所包含的总体特征数量确定的;

如上述图3所示,在获取到离线特征和在线特征之后,需要对离线特征和在线特征进行融合处理。具体地,可以使用当天的数据来计算在线特征以及使用过往预设时间段内(例如:过去七天)的访问数据来计算离线特征,然后结合这两种特征作为主域名的特征向量,总共22+17=39个人工特征,即,特征向量的维度为38维。

步骤s122,对待处理特征向量进行归一化处理,得到每个待检测域名的特征向量。

如上述图3所示,在对离线特征和在线特征进行融合处理,得到每个待检测域名的待处理特征向量之后,还需要进一步对待处理特征向量进行归一化处理。具体地,考虑到需要基于对象的相似度来进行异常检测,而对象的每个特征又存在着不同的变异程度和不同的值域,因此,在计算相似度时,每个特征的地位不同。为了消除特征自身变异大小和值域不同的影响,因此,需要进行归一化处理,以便将每个特征的值域调整到[0,1]区间。在优选实施例中,可以使用max-min归一化方法对每天的所有域名的特征向量集进行归一化处理,具体地,max-min归一化公式如下:

其中,xi为第i维特征的值,mini为该维特征的最小值,maxi为该维特征的最大值。

可选地,在步骤s14中,对组成后的全部特征向量进行聚类分析,从待检测域名集合中检测出异常域名可以包括以下执行步骤:

步骤s141,根据组成后的全部特征向量相互间的相似度对组成后的全部特征向量进行聚类处理,将组成后的全部特征向量划分为多个簇;

步骤s142,从多个簇中检测出第一部分特征向量和/或第二部分特征向量,其中,第一部分特征向量所归属的簇中包含的特征向量的数量小于第一预设阈值,第二部分特征向量中的每个特征向量与该特征向量所归属的簇中心之间的距离大于第二预设阈值;

步骤s143,根据第一部分特征向量和/或第二部分特征向量确定异常域名。

如上述图3所示,在对上述待处理特征向量进行归一化处理之后,还需要对组成后的全部特征向量进行聚类分析,并基于聚类分析结果进行异常域名检测。在优选实施例中,可以使用kmeans进行聚类处理,由于聚类需要提供一个特定参数(即簇的个数),因此需要经过不断测试,以便选取一个较好的参数。通过使用欧式距离来度量特征向量间的相似性,可以将相似对象归属到同一个簇中,而不同的对象归属到不同的簇中。

在通常情况下,异常对象与正常对象存在不同的表现形式,正常对象通常数量较多,其形成的簇的成员数目较大或者离簇中心较近。因此,将簇成员个数少于预设阈值的簇中所有对象确定为异常簇(异常簇中的每个成员均被视为异常对象)以及那些与自身所在簇的簇中心的距离较远(例如:超过99.9%置信区间中的成员)为异常对象,即:

其中,cj为簇j,为簇j的成员个数,t为传入参数,di为对象i与其所属簇中心对象的距离,为簇j中每个成员到中心对象的距离的平均值,为簇j中每个成员到中心对象的距离的标准差。

可选地,在步骤s10,获取待检测域名集合中每个待检测域名的离线特征和在线特征之前,还可以包括以下执行步骤:

步骤s15,接收来自于终端的访问请求,其中,访问请求中携带有待访问域名;

步骤s16,从访问请求中提出待访问域名,添加至待检测域名集合。

服务器中待检测域名集合的域名来源可以从终端的访问请求中获得,当用户使用终端上安装的浏览器对远端服务器进行访问时,需要输入相应的网址以发起访问请求。而一天之内每个终端可以需要向不同类型的网站(例如:腾讯新闻、搜狐体育、网易邮箱)发送多个访问请求,当然也不能排除用户因利益驱使或个人喜好登录一些钓鱼网站或黄色网站,因此,需要通过本发明实施例所提供的服务器对这些传播不良信息或附带病毒的恶意网站的异常域名进行检测,以便及时提醒用户。

可选地,在步骤s14,从待检测域名集合中检测出异常域名之后,还可以包括以下执行步骤:

步骤s17,向终端发送通知消息,其中,通知消息用于将待访问域名为异常域名的事件通知给终端。

在服务器通过异常域名检测发现用户准备访问的网站的域名属于异常域名的情况下,服务器应当及时向终端返回通知消息,以警示使用该终端的用户是否还需要继续访问该网站。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的异常域名的检测方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例2

根据本发明实施例,还提供了一种用于实施上述异常域名的检测方法的装置实施例。图4是根据本发明实施例的异常域名的检测装置的结构框图,如图4所示,该装置可以应用于服务端,该装置包括:获取模块10,用于获取待检测域名集合中每个待检测域名的离线特征和在线特征,其中,离线特征是通过对每个待检测域名关联的历史访问数据进行分析后提取得到的,在线特征是根据每个待检测域名的自身属性确定的;融合模块20,用于将离线特征和在线特征进行融合组成每个待检测域名的特征向量;检测模块30,用于对组成后的全部特征向量进行聚类分析,从待检测域名集合中检测出异常域名。

通过上述装置,能够有效地检测云服务器上存在的异常域名,其通过对云服务器上的众多主域名进行检测,融合了主域名的离线特征与在线特征,使用聚类这种无监督算法来进行检测,进而显著提升异常域名检测的成功率与准确率。

在优选实施过程中,上述离线特征可以包括但不限于以下至少之一:

1)待检测域名下的子域名的生存时间ttl特征;

在通常情况下,一个主域名下会存在多个子域名,而不同的子域名之间存在着不同的ttl,对于异常域名而言,一般其ttl较小,因此,ttl可以作为异常域名离线特征,其具体可以包括但不限于以下至少之一:

(1)最大ttl:子域名中ttl最大值。

(2)最小ttl:子域名中ttl最小值。

(3)ttl之差:子域名中ttl最大值与最小值之差。

(4)ttl平均值:所有不同子域名的ttl平均值。

(5)ttl方差:所有不同子域名的ttl的方差。

(6)不同ttl的个数:子域名中不同ttl的数量。

(7)ttl熵:所有不同子域名中的ttl信息熵。

2)待检测域名下的子域名的访问量特征;

在通常情况下,异常域名的访问量会在一段时间内急剧增大,因此,访问量也可作为异常域名离线特征,其具体可以包括但不限于以下至少之一:

(1)综合访问量(pageview,简称为pv):这段时间内其所有子域名的总访问量。

(2)用户访问量(userview,简称为uv):这段时间内其所有子域名的不同用户访问量,可以使用ip地址来标识不同用户。

(3)每天请求pv平均值:这段时间内其所有子域名的每天访问量的平均值。

(4)每天请求uv平均值:这段时间内其所有子域名的每天访问用户数的平均值。

(5)每天请求pv方差:这段时间内其所有子域名的每天访问量的方差。

(6)每天请求uv方差:这段时间内其所有子域名的每天访问用户数的方差。

(7)最大活跃度:在通常情况下,异常域名活跃周期仅约半个小时,即在特定半个小时内,其访问量占全天访问量的绝大部分,因此,统计这段时间内,每天的访问量最大的半个小时(按照自然时间划分)与全天访问量之间的比值,然后再选取连续多天中活跃度最大的那一天的活跃度。

3)待检测域名下的子域名的自身属性特征;

在通常情况下,主域名下都会存在多个子域名,那么其子域名的特征也可以作为异常域名离线特征,其具体可以包括但不限于以下至少之一:

(1)子域名数量:这段时间内该主域名出现的不同子域名的个数。

(2)子域名长度的平均值:这段时间内该主域名出现的不同子域名长度的平均值。

(3)子域名长度的方差:这段时间内该主域名出现的不同子域名长度的方差。

(4)子域名中包含的数字百分比的平均值:这段时间内该主域名出现的不同子域名包含的数字百分比的平均值。

(5)子域名包含的数字百分比的方差:这段时间内该主域名出现的不同子域名包含的数字百分比的方差。

(6)子域名长度熵:这段时间内该主域名出现的不同子域名的长度的信息熵。

4)待检测域名对应的互联网协议ip地址特征。

在通常情况下,异常域名所包含的ip数量较少,因此,其ip特征也可以作为异常域名离线特征的数据源,其具体可以包括但不限于以下至少之一:

(1)不同ip的数量:这段时间内该主域名出现的ip个数。

(2)不同ip的前16位熵:这段时间内该主域名出现的ip的前16位的信息熵。

上述提取的22个异常域名离线特征都是基于一段时间内的访问数据来提取的,例如:使用连续七天的访问数据来进行提取。

在优选实施过程中,上述在线特征可以包括但不限于以下至少之一:

1)根据预设规则对每个待检测域名包含的部分或全部字符进行统计分析得到的特征,其具体可以包括但不限于以下至少之一:

(1)主域名长度。

(2)主域名的顶级域名(topleveldomain,简称为tld)长度。

(3)主域名的字符信息熵。

(4)主域名的字符正则信息熵,即采用主域名的字符信息熵除以其长度。

(5)主域名的元音字母比例。

(6)主域名的数字比例。

(7)主域名的重复字符的字符数。

(8)主域名的连续数字个数。

(9)主域名的连续辅音字符个数。

(10)主域名的tld是否为私有tld。

2)通过对预设数量的域名进行训练,获取一个或多个连续字符的排列规律或者每相邻多个字符之间的转移概率,并根据排列规律或转移概率对每个待检测域名包含的部分或全部字符进行统计分析得到的特征。

首先,可以使用alexa上对全球所有网站排名中排在前列的预设数量(例如:前100万)的域名进行训练,由于该排名不会经常发生大范围变化,因此可以在一段时间内仅需要训练一次,例如:一个月训练一次。训练的数据可以包括但不限于以下至少之一:

(1)1-gram、2-gram与3-gram

统计这100万域名的字母组成的1-gram、2-gram与3-gram每个元素的计数,并计算各1-gram、2-gram与3-gram每个元素的排名。

(2)2-gram-hmm

统计这100万域名的2-gram的隐马尔可夫转移概率矩阵,即统计每两个不同的2-gram之间的跳转概率,即条件概率,例如:xy→yz的转移概率可以通过如下公式来计算获得:

其中,count(xyz)为序列xyz出现的次数,·为任意字符。

其次,基于上述训练模型对每一个域名计算其在线特征,其可以包括但不限于以下特征至少之一:

(1)主域名的2gram的隐马尔可夫转移概率的log值。

(2)主域名的1gram排名平均值。

(3)主域名的2gram排名平均值。

(4)主域名的3gram排名平均值。

(5)主域名的1gram排名方差。

(6)主域名的2gram排名方差。

(7)主域名的3gram排名方差。

综上可知,本发明优选实施例所提供的技术方案不仅根据域名的历史访问数据提取了7种ttl特征、7种请求特征、6种子域名特征、2种域名ip特征共22种离线特征,同时还提取了基于alexa网站上的全球前100万的域名并结合域名本身字符串的17种在线特征,并且将22种离线特征与17种在线特征进行融合对域名进行表征,更好地对域名进行刻画,最终检测效果更好,能够发现更多地、隐藏更深的异常域名以及减少域名异常误判。

可选地,融合模块20可以包括:第一处理单元(图中未示出),用于对离线特征和在线特征进行融合处理,组成每个待检测域名的待处理特征向量,其中,待处理特征向量的向量维度由离线特征和在线特征所包含的总体特征数量确定的;第二处理单元(图中未示出),用于对待处理特征向量进行归一化处理,得到每个待检测域名的特征向量。

可选地,检测模块30可以包括:第三处理单元(图中未示出),用于根据组成后的全部特征向量相互间的相似度对组成后的全部特征向量进行聚类处理,将组成后的全部特征向量划分为多个簇;检测单元(图中未示出),用于从多个簇中检测出第一部分特征向量和/或第二部分特征向量,其中,第一部分特征向量所归属的簇中包含的特征向量的数量小于第一预设阈值,第二部分特征向量中的每个特征向量与该特征向量所归属的簇中心之间的距离大于第二预设阈值;确定单元(图中未示出),用于根据第一部分特征向量和/或第二部分特征向量确定异常域名。

实施例3

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的异常域名的检测方法所执行的程序代码。

可选地,在本实施例中,上述存储介质可以位于计算机网络中服务器集群中的任意一个服务器中。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

s1,获取待检测域名集合中每个待检测域名的离线特征和在线特征,其中,离线特征是通过对每个待检测域名关联的历史访问数据进行分析后提取得到的,在线特征是根据每个待检测域名的自身属性确定的;

s2,将离线特征和在线特征进行融合组成每个待检测域名对应的特征向量;

s3,对组成后的全部特征向量进行聚类分析,从待检测域名集合中检测出异常域名。

可选地,在本实施例中,上述存储介质还被设置为存储用于执行以下步骤的程序代码:对离线特征和在线特征进行融合处理,组成每个待检测域名的待处理特征向量,其中,待处理特征向量的向量维度由离线特征和在线特征所包含的总体特征数量确定的;对待处理特征向量进行归一化处理,得到每个待检测域名的特征向量。

可选地,在本实施例中,上述存储介质还被设置为存储用于执行以下步骤的程序代码:根据组成后的全部特征向量相互间的相似度对组成后的全部特征向量进行聚类处理,将组成后的全部特征向量划分为多个簇;从多个簇中检测出第一部分特征向量和/或第二部分特征向量,其中,第一部分特征向量所归属的簇中包含的特征向量的数量小于第一预设阈值,第二部分特征向量中的每个特征向量与该特征向量所归属的簇中心之间的距离大于第二预设阈值;根据第一部分特征向量和/或第二部分特征向量确定异常域名。

可选地,在本实施例中,上述存储介质还被设置为存储用于执行以下步骤的程序代码:接收来自于终端的访问请求,其中,访问请求中携带有待访问域名;从访问请求中提出待访问域名,添加至待检测域名集合。

可选地,在本实施例中,上述存储介质还被设置为存储用于执行以下步骤的程序代码:向终端发送通知消息,其中,通知消息用于将待访问域名为异常域名的事件通知给终端。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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