掌桥专利:专业的专利平台
掌桥专利
首页

一种异常识别方法、装置、设备及计算机可读存储介质

文献发布时间:2023-06-19 19:28:50


一种异常识别方法、装置、设备及计算机可读存储介质

技术领域

本申请涉及信息处理领域,涉及但不限于一种异常识别方法、装置、设备及计算机可读存储介质。

背景技术

当前互联网应用快速增长,规模越来越大,使得网络安全威胁随之增加,并且许多传统的网络安全方法失效,僵尸网络是当前最严重的网络安全威胁之一。每一个僵尸网络都主要是由被感染主机组成的网络,这些主机通常分布在互联网上。每个僵尸程序(Bot)都会在其受感染的主机中放置一个软件代理,该主机由一个名为僵尸主控机(Botmaster)的独特个人或企业控制。Bots和Botmaster之间的通信称为命令和控制通道。主机通常会在其所有者不知情的情况下被感染,那么,Botmaster便能够使用它们在整个僵尸网络中执行恶意活动。这些恶意活动可能包括分布式拒绝服务攻击、垃圾邮件、恶意广告软件、身份盗窃、敏感信息收集、恶意软件分发和网络恐怖主义,对互联网造成了极大的安全威胁。

在相关技术中,是通过威胁情报库、聚类算法或者人工经验的特征,来进行被感染主机识别,由于威胁情报库数据存在不准确、聚类算法存在性能问题以及基于人工经验的模型鲁棒性不高,因此,会导致识别结果准确率低下甚至识别结果不准确,还会带来识别结果不够实时的问题。

发明内容

有鉴于此,本申请实施例提供一种异常识别方法、装置、设备及计算机可读存储介质。

本申请实施例的技术方案是这样实现的:

本申请实施例提供一种异常识别方法,包括:

域名服务器预设时长内的域名解析日志,并基于请求类型字段信息和应答类型字段信息从所述域名解析日志中确定异常响应数据;

基于所述异常响应数据确定各个候选主机标识,并根据各个候选主机对所述异常响应数据中二级域名的访问次数,从所述各个候选主机标识中确定异常主机标识;

获取异常主机的域名访问记录,并根据所述域名访问记录和参考异常家族规则集合,确定所述异常主机的异常类型;

将所述异常主机标识和所述异常类型确定为识别结果。

本申请实施例提供一种异常识别装置,所述异常识别装置包括:

第一获取模块,用于获取域名服务器预设时长内的域名解析日志,并基于请求类型字段信息和应答类型字段信息从所述域名解析日志中确定异常响应数据;

第一确定模块,用于基于所述异常响应数据确定各个候选主机标识,并根据各个候选主机对所述异常响应数据中二级域名的访问次数,从所述各个候选主机标识中确定异常主机标识;

第二获取模块,用于获取异常主机的域名访问记录,并根据所述域名访问记录和参考异常家族规则集合,确定所述异常主机的异常类型;

第二确定模块,用于将所述异常主机标识和所述异常类型确定为识别结果。

本申请实施例提供一种电子设备,所述电子设备包括:

处理器;以及

存储器,用于存储可在所述处理器上运行的计算机程序;

其中,所述计算机程序被处理器执行时实现上述异常识别方法。

本申请实施例提供一种计算机可读存储介质,所述计算机存储介质中存储有计算机可执行指令,该计算机可执行指令配置为执行上述异常识别方法。

本申请实施例提供一种异常识别方法、装置、设备及计算机可读存储介质,获取域名服务器在预设时长内的域名解析日志,比如一天的域名解析日志,再基于域名解析日志中的请求类型字段和应答类型字段确定出异常响应数据;接着,确定访问该异常响应数据的各个候选主机标识,再根据各个候选主机对异常响应数据中二级域名的访问次数,从各个候选主机标识中确定异常主机标识;然后,基于异常主机域名访问记录和参考异常家族规则集合,确定异常主机的异常类型;最后,将异常主机标识和异常类型确定为识别结果。在异常识别过程中,充分利用异常主机对异常域名的访问次数特性,确定出异常主机标识,还获取异常主机的访问记录,确定访问记录所匹配的参考异常家族规则,进而确定出异常主机的异常类型,从而提升异常识别效率和识别结果实时性,并简化异常识别过程。

附图说明

在附图(其不一定是按比例绘制的)中,相似的附图标记可在不同的视图中描述相似的部件。附图以示例而非限制的方式大体示出了本文中所讨论的各个实施例。

图1为本申请实施例提供的异常识别方法的一种实现流程示意图;

图2为本申请实施例提供的确定异常主机标识的一种实现流程示意图;

图3为本申请实施例提供的异常主机判断条件的一种实现流程示意图;

图4为本申请实施例提供的是否满足异常主机判断条件的一种实现流程示意图;

图5为本申请实施例提供的确定异常主机类型的一种实现流程示意图;

图6为本申请实施例提供的各个相似度值确定方法的一种实现流程示意图;

图7为本申请实施例提供的异常识别装置的一种组成结构示意图;

图8为本申请实施例提供的电子设备的组成结构示意图。

具体实施方式

为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。

在以下的描述中,所涉及的术语“第一第二第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一第二第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。

基于相关技术所存在的问题,本申请实施例提供一种异常识别方法,本申请实施例提供的方法可以通过计算机程序来实现,该计算机程序在执行的时候,完成本申请实施例提供的异常识别方法中各个步骤。在一些实施例中,该计算机程序可以在电子设备中的处理器执行。图1为本申请实施例提供的异常识别方法的一种实现流程,该方法可应用于服务器,该服务器可以是主域名服务器、辅助域名服务器、缓存域名服务器或者转发域名服务器,如图1所示,该异常识别方法包括:

步骤S101,获取域名服务器预设时长内的域名解析日志,并基于请求类型字段信息和应答类型字段信息从域名解析日志中确定异常响应数据。

这里,是先获取域名服务器中预设时长的流量,该流量包括主机所访问的域名信息;然后,通过镜像、分光或者解析服务方式对流量进行解析,从而得到域名解析日志,该域名解析日志包括请求数据和响应数据,在一些实施例中,还将域名解析日志存储到数据库中。其中,预设时长可以是1天、2天、3天等,解析日志可以是由13个字段组成,字段之间以“|”分隔。在实际中,解析日志表示为:时间戳|会话ID|源IP|源端口|目标IP|目标端口|协议|数据长度|请求或响应|域名|请求类型|应答类型|解析IP。

在获取到域名解析日志后,则获取域名解析日志中请求类型字段信息和应答类型字段信息,在实际中,请求类型字段信息可以包括地址转换请求、查询名称、为某个域名指定域名系统(Domain Name System,DNS)解析服务器、起始授权记录等,应答类型可以包括域名服务器遇到内部错误、域名不存在、请求成功、服务器不能理解请求报文等,在本申请实施例中,在确定出请求类型字段信息为地址转换且应答类型字段信息为域名不存在的情况下,则将域名解析日志中包含该请求类型字段信息和应答类型字段信息的响应数据确定为异常响应数据;此外,还在确定出请求类型字段信息为查询名称请求且应答类型为域名服务器遇到内部错误的情况下,还将域名解析日志中包含该请求类型字段信息和应答类型字段信息的响应数据确定为异常响应数据。

步骤S102,基于异常响应数据确定各个候选主机标识,并根据各个候选主机对异常响应数据中二级域名的访问次数,从各个候选主机标识中确定异常主机标识。

这里,已通过异常响应数据中的源IP字段信息直接确定为候选主机标识,也即,在本申请实施例中,候选主机标识可以为候选主机的互联网协议地址。通过各个候选主机对异常响应数据中二级域名的访问次数确定异常主机标识可通过如下方式来实现:获取异常响应数据中的各个域名字段信息,并获取该各个域名字段信息中的二级域名;接着,确定每个候选主机对各个二级域名的访问次数;然后,将候选主机访问一次的二级域名所对应的域名信息确定为该候选主机对应的异常域名,此外,还获取该候选主机访问的所有访问域名,最后,在基于异常域名和所有访问域名确定出该候选主机满足主机判断条件的情况下,将该候选主机的标识确定为异常主机标识。

在本申请实施例中,主机判断条件可以包括两个,第一个是去重后异常域名数量大于数量阈值;第二个是去重后异常域名数量在去重后所有访问域名数量的占比满足目标占比范围。

其中,针对每个候选主机的判别方法相类似,如此便能够确定出候选主机标识中哪些是异常主机标识哪些不是异常主机标识,实现从候选主机标识中确定出异常主机标识,也相当于,从所有主机中确定出感染病毒的主机。

步骤S103,获取异常主机的域名访问记录,并根据域名访问记录和参考异常家族规则集合,确定异常主机的异常类型。

这里,基于步骤S102中确定的异常主机标识便可确定出对应的异常主机,基于此,获取异常主机的域名访问记录;接着,获取该域名访问记录中二级域名的长度、顶级域名集合以及域名数量,并与参考异常家族规则集合中的各个参考异常家族规则对应的特征进行比对,从而确定出该异常主机的异常类型,其中参考异常家族规则对应的特征包括参考顶级域名集合、参考二级域名长度范围以及参考域名数量范围,相当于确定出感染病毒主机所感染病毒的类型,从而能够为后续清理病毒或者安全软件升级提供指导。

在本申请实施例中,先确定二级域名长度是否位于参考二级域名长度范围,如果二级域名长度位于参考二级域名长度范围,则将该二级域名对应的异常域名确定为目标异常域名;接着,将目标异常域名的顶级域名集合确定为目标顶级域名集合,并确定目标顶级域名集合与各个参考异常规则对应的参考顶级域名集合之间的各个相似度;最后,将相似度大于相似度阈值的参考异常家族规则确定为候选家族规则,并判断目标异常域名的域名数量是否位于候选参考域名数量范围内,并且还确定出目标异常域名的域名数量位于哪些目标候选参考域名数量范围,则将该目标候选参考域名数量范围对应的候选家族规则确定为目标家族规则,并将该目标家族规则的参考异常类型确定为异常主机的异常类型。

步骤S104,将异常主机标识和异常类型确定为识别结果。

这里,可将异常主机标识和异常类型进行拼接,从而得到拼接后的信息,并将该拼接后的信息确定为识别结果。其中,识别结果能够表征异常主机标识以及所对应的异常类型,也相当于,感染病毒主机标识以及所感染的病毒类型,从而能够实现异常主机的准确、迅速定位,并且能够基于异常类型制定后续解决方案,提升发现异常以及处理异常的效率。

本申请实施例提供一种异常识别方法,获取域名服务器在预设时长内的域名解析日志,比如一天的域名解析日志,再基于域名解析日志中的请求类型字段和应答类型字段确定出异常响应数据;接着,确定访问该异常响应数据的各个候选主机标识,再根据各个候选主机对异常响应数据中二级域名的访问次数,从各个候选主机标识中确定异常主机标识;然后,基于异常主机域名访问记录和参考异常家族规则集合,确定异常主机的异常类型;最后,将异常主机标识和异常类型确定为识别结果。在异常识别过程中,充分利用异常主机对异常域名的访问次数特性,确定出异常主机标识,还获取异常主机的访问记录,确定访问记录所匹配的参考异常家族规则,进而确定出异常主机的异常类型,从而提升异常识别效率和识别结果实时性,并简化识别过程,还能够基于异常类型为处理该异常提供解决方案。

在一些实施例中,请求类型字段信息至少包括地址转换请求和查询名称请求,其中,地址转换请求是指请求将域名转换为对应的IP地址;查询名称请求是指是指查询该域名对应的其他描述。应答类型字段信息至少包括域名服务器遇到内部错误和域名不存在,其中,域名服务器遇到内部错误是指域名服务器在处理该请求时遇到内部错误,而导致无法正常执行;域名不存在是指域名服务器无法查询到该域名对应的IP地址。

基于此,步骤S101中的“基于请求类型字段信息和应答类型字段信息从域名解析日志中确定异常响应数据”在实际实现时,可以通过以下两种方式来实现:

方式一,当请求类型字段信息为地址转换请求,且应答类型字段信息为域名不存在时,确定包含请求字段信息和应答类型字段信息的响应数据为异常响应数据。

在该方式中,域名服务器读取域名解析日志,并进一步获取域名解析日志中的请求类型字段信息和应答类型字段信息,接着,确定该请求类型字段信息是否为地址转换请求,示例地,在域名解析日志中,地址转换请求可以表示为“A”,如果判断出请求类型字段信息为地址转换请求,则继续确定应答类型字段信息是否为域名不存在,示例地,在域名解析日志中,域名不存在可表示为“NXDomain”,如果判断出应答类型字段信息为域名不存在。由于请求数据中不包含应答类型字段信息,而响应数据中包含应答类型字段信息,最终则将包含该请求类型字段信息和该应答类型字段信息的响应数据确定为异常响应数据。

方式二,当请求类型字段信息为查询名称请求,且应答类型字段信息为域名服务器遇到内部错误时,确定包含请求字段信息和应答类型字段信息的响应数据为异常响应数据。

在该方式中,域名服务器读取域名解析日志,并进一步获取域名解析日志中的请求类型字段信息和应答类型字段信息,接着,确定该请求类型字段信息是否为查询名称请求,示例地,在域名解析日志中,查询名称请求可以表示为“CNAME”,如果判断出请求类型字段信息为查询名称请求,则继续确定应答类型字段信息是否为域名服务器遇到内部错误,示例地,在域名解析日志中,域名服务器遇到内部错误可表示为“ServFail”,如果判断出应答类型字段信息为域名服务器遇到内部错误。由于请求数据中不包含应答类型字段信息,而响应数据中包含应答类型字段信息,最终则将包含该请求类型字段信息和该应答类型字段信息的响应数据确定为异常响应数据。

因此,通过上述两种方式,便能够从域名解析日志中确定出异常响应数据,从而为之后确定异常主机标识做前期准备工作。

在一些实施例中,考虑到异常主机访问异常域名的特性,如图2所示,步骤S102中的“根据各个候选主机对异常响应数据中二级域名的访问次数,从各个候选主机标识中确定异常主机标识”可通过以下步骤S1021至步骤S1025来实现:

步骤S1021,获取异常响应数据中各个域名信息对应的二级域名。

这里,获取某一异常响应数据中的域名字段信息,并将该域名字段信息确定为该异常响应数据中的域名信息,其中域名信息至少包括顶级域名和二级域名,顶级域名位于最右侧,顶级域名的左侧为二级域名,那么,则可通过二级域名的位置特点确定出域名信息对应的二级域名,基于同样的方法可获得所有异常响应数据中各个域名信息对应的二级域名。

步骤S1022,确定第i个候选主机对各个二级域名的访问次数。

其中,i=1,2,…,N,N为候选主机总数,i为其中任意一个候选主机,这里,候选主机为访问过异常响应数据的主机,也即步骤S102中候选主机标识所对应的主机;接着,由于每个异常响应数据中包括源IP字段信息和域名字段信息,选取任一候选主机,获取异常响应数据中源IP为该候选主机标识的异常响应数据;然后,获取该候选主机访问的异常响应数据中域名字段信息中的二级域名,并进行统计,从而获得该主机对异常响应数据中二级域名的访问次数。基于同样的方法,可获得每个候选主机对各个二级域名的访问次数。

步骤S1023,将访问次数唯一的二级域名所对应的域名信息确定为第i个候选主机对应的异常域名。

这里,访问次数唯一是指访问的次数为一次,那么,则将访问次数为一次的二级域名对应的域名信息确定为该候选主机对应的异常域名。相类似的,每个候选主机对应的异常域名可采用相同的方法确定。

步骤S1024,基于域名解析日志获取第i个候选主机访问的所有访问域名。

在实际中,候选主机不仅仅访问异常域名,而且还访问正常域名,也即,候选主机访问的所有访问域名包括异常域名和正常域名。针对任一候选主机,确定该候选主机对应的候选主机标识;接着,确定域名解析日志中源IP与候选主机标识相一致的标识一致域名解析日志,并继续获取该标识一致域名解析日志中的域名字段信息;最后,将获取到的域名字段信息确定为该候选主机访问的所有访问域名。

步骤S1025,根据第i个候选主机对应的异常域名和第i个候选主机访问的所有访问域名确定第i个候选主机满足异常主机判断条件时,将第i个候选主机的标识确定为异常主机标识。

这里,在实现步骤S1025中的“根据第i个候选主机对应的异常域名和第i个候选主机访问的所有访问域名确定第i个候选主机满足异常主机判断条件”时,如图3所示,可通过如下步骤S251至步骤S254来实现:

步骤S251,对第i个候选主机对应的异常域名进行去重处理,得到第i个去重后的异常域名。

这里,针对某一确定的候选主机,通过步骤S1023便能够该候选主机对应的异常域名;接着,对该候选主机的异常域名进行去重处理,也即,删除重复出现的异常域名,从而得到该候选主机去重后的异常域名。

步骤S252,对第i个候选主机访问的所有访问域名进行去重处理,得到第i个去重后的访问域名。

这里,针对某一确定的候选主机,通过步骤S1024便能够该候选主机对应的所有访问域名;接着,对该候选主机的所有访问域名进行去重处理,也即,删除重复出现的域名,从而得到该候选主机去重后的所有访问域名。

步骤S253,确定第i个去重后的异常域名的第一域名数量和第i个去重后的访问域名的第二域名数量。

这里,“i”去重后异常域名或者去重后所有访问域名的标号,用于区分不同候选主机对应的去重后异常域名或者去重后所有访问域名,可通过计数的统计方法的确定某一个确定候选主机对应的去重后异常域名中所包含的域名数量,并记为第一域名数量,还可通过计数的统计方法的确定某一个确定候选主机对应的去重后所有访问域名中所包含的域名数量,并记为第二域名数量。

步骤S254,根据第一域名数量和第二域名数量,确定第i个主机是否满足异常主机判断条件。

在本申请实施例中,是根据第一域名数量和第二域名数量来确定第i个主机是否满足主机判断条件,相类似的,通过该方法确定出每个候选主机是否满足主机异常判断条件。

在实际实现时,考虑到异常主机的访问特性,示例地,异常主机访问异常域名大于数量阈值,该数量阈值可以为200、223、250等,异常主机访问的异常域名占比在目标占比范围,该目标占比范围可以为0.1至0.5、0.2至0.6、0.3至0.7等,因此,可将第一域名数量是否大于数量阈值、第一域名数量在第二域名数量的占比是否位于目标占比范围确定为异常判断条件,用来判断候选主机是否为异常主机。

最后,如果判断出第i个候选主机满足异常主机判断条件,则将该第i个候选主机的标识确定为异常主机标识;如果判断出第i个候选主机不满足异常主机判断条件,则认为该第i个候选主机并不是异常主机。

在本申请实施例中,通过以上步骤S1021至步骤S1025,先获取异常响应数据中各个域名信息对应的二级域名;然后,确定每个候选主机对各个二级域名的访问次数,并将访问次数为一次的二级域名所对应的域名信息确定为相应候选主机对应的异常域名,还对该异常域名进行去重处理,得到去重后对应的第一域名数量;接着,还获取每个候选主机访问的所有访问域名,并对该所有访问域名进行去重处理,得到去重后对应的第二域名数量;最后,将第一域名数量大于数量阈值,且第一域名数量在第二域名数量的占比位于目标占比范围中,则认为该候选主机满足异常主机判断条件,将该候选主机的标识确定为异常主机标识,从而充分利用异常主机对异常域名的访问次数特性,确定出异常主机标识。

在一些实施例中,如图4所示,步骤S254“根据第一域名数量和第二域名数量,确定第i个主机是否满足异常主机判断条件”可通过以下步骤S2541至步骤S2545来实现:

步骤S2541,根据第一域名数量和第二域名数量,确定第i个候选主机的异常域名占比。

这里,第一域名数量表征异常域名的数量,第二域名数量表征所有访问域名的数量,因此,可将第一域名数量与第二域名数量的比值确定为该候选主机的异常域名占比。

步骤S2542,判断第一域名数量是否大于数量阈值。

这里,数量阈值可以为200、223、250等,该数量阈值的取值与异常的类型相关,如果通过大小比较的方法确定出第一域名数量大于数量阈值,则继续判断异常域名占比的情况,进入步骤S2543;如果确定出第一域名数量小于或者等于数量阈值,执行步骤S2545,也即,表明该候选主机不满足异常主机判断条件。

步骤S2543,判断第i个候选主机的异常域名占比是否在目标占比范围之内。

这里,目标占比范围可以为0.1至0.5、0.2至0.6、0.3至0.7等,该目标占比范围的取值与异常的类型相关,如果该异常占比位于目标占比范围之内,则执行步骤S2544,表征满足异常主机判断条件;如果该异常占比不位于目标占比范围之内,也即,异常占比位于目标占比范围之外,则执行步骤S2545,表征并不满足异常主机判断条件。

步骤S2544,当第一域名数量大于数量阈值且第i个候选主机的异常域名占比在目标占比范围之内时,确定第i个主机满足异常主机判断条件。

此时,异常域名的第一域名数量大于数量阈值,并且异常域名占比位于目标占比范围之内,则认为该候选主机满足异常主机判断条件。

步骤S2545,确定第i个主机不满足异常主机判断条件。

此时,异常域名的第一域名数量小于等于数量阈值或者异常域名占比位于目标占比范围之外,也有可能是异常域名的第一域名数量小于等于数量阈值且异常域名占比位于目标占比范围之外,则认为该候选主机并不满足异常主机判断条件。

在本申请实施例中,是将异常域名的第一域名数量大于数量阈值且异常域名占比位于目标占比范围之内确定为异常主机判断条件,从而基于该条件能够确定出异常主机标识。

在一些实施例中,如图5所示,上述步骤S103中的“根据域名访问记录和参考异常家族规则集合,确定异常主机的异常类型”可通过以下步骤S1031至步骤S1035来实现:

步骤S1031,获取参考异常家族规则集合中各个参考异常规则对应的参考顶级域名集合、参考二级域名长度范围和参考域名数量范围。

这里,参考异常家族可以为附带型病毒、蠕虫病毒、可变病毒等参考异常家族规则集合是指各个参考异常家族所具备的特性信息,其中,该特性信息包括顶级域名集合、二级域名长度范围、域名数量范围。以蠕虫病毒举例来说,蠕虫病毒具备的特性包括:顶级域名范围为[cc、cn、ws、com、net、org、info、biz],蠕虫病毒的二级域名长度范围为[5,11],一天异常域名的数量为200至250个。

在本申请实施例中,在选取参考异常家族之后,参考异常家族中规则集合则随之确定,这里,参考家族规则集合包括各个参考异常规则对应的参考顶级域名集合、参考二级域名长度范围和参考域名数量范围。该参考异常家族规则集合以及其中的相关信息可通过读取指令从专用服务器中所获得。

步骤S1032,根据域名访问记录获取所述异常主机访问的各个异常域名,确定各个异常域名对应的二级域名长度。

这里,基于异常主机的标识,可从域名解析日志中获取异常主机的请求数据或者异常主机的响应数据,从而将异常主机的请求数据或者异常主机的响应数据确定为域名访问记录;接着,将域名访问记录中的域名字段信息确定为异常主机的各个异常域名。

在本申请实施例中,还从各个异常域名中根据位置信息确定出对应的各个二级域名;接着,通过长度读取指令获取各个二级域名的二级域名长度。

步骤S1033,将二级域名长度在参考二级域名长度范围内的异常域名确定为目标异常域名。

示例地,以蠕虫病毒为例,参考二级域名长度范围可以为[5,11],那么,则将二级域名长度位于[5,11]的二级域名确定为目标异常域名。

步骤S1034,基于目标异常域名确定目标顶级域名集合,并确定目标顶级域名集合和各个参考异常规则对应的参考顶级域名集合之间的各个相似度。

在实现步骤S1034时,可通过以下步骤来实现:

步骤一,确定目标顶级域名集合和第j个参考顶级域集合之间的第j合集,确定目标顶级域名集合和第j个参考顶级域集合之间的第j交集。

其中,j=1,2,…,M,M为参考异常规则总数。目标顶级域名集合为各个目标异常域名中的顶级域名所组成的集合,例如该目标顶级域名集合可以为[biz、org、net、cc、info、com]。示例地,以第j个参考异常家族为蠕虫病毒为例,参考顶级域集合为[cc、cn、ws、com、net、org、info、biz],基于此,第j合集为[cc、cn、ws、com、net、org、info、biz],第j交集为[biz、org、net、cc、info、com]。

步骤二,确定第j合集中包括的顶级域名的第三域名数量,并确定第j交集中包括的顶级域名的第四域名数量。

这里,承接上面的举例,第三域名数量为8,第四域名数量为6。

步骤三,将第四域名数量与第三域名数量的比值确定为目标顶级域名集合和所述第j个参考顶级域集合之间的相似度。

这里,依旧承接上面的举例,相似度为0.75。

步骤S1035,基于各个相似度确定所述异常主机的异常类型。

在实际实现时,如图6所示,步骤S1035可通过以下步骤S351至步骤S354来实现:

步骤S351,基于各个相似度,将相似度大于相似度阈值的参考异常家族规则确定为候选家族规则。

这里,相似度阈值可以为0.7、0.75、0.8等,该相似度阈值可以为默认值,也可以为自定义值。通过大小比对方法,将相似度大于相似度阈值的参考异常家族规则确定为候选家族规则,该候选家族规则的个数可以为0、1、2、3等。也即,不存在候选家族规则,或者存在一个候选家族规则,或者存在多个候选家族规则。

步骤S352,获取目标异常域名对应的第五域名数量,获取候选家族规则对应的候选参考域名数量范围。

这里,第五域名数量是指该目标异常域名在预设时长没被访问的次数,例如,该预设时长可以为1天、2天、3天等,第五域名数量可以为203、412、523等。以候选家族规则为蠕虫病毒规则举例来说,候选参考域名数量范围可以为200至250。

步骤S353,将第五域名数量在候选参考域名数量范围内的候选家族规则确定为目标家族规则。

这里,假设第五域名数量为203,承接上面的例子,那么可将蠕虫病毒对应的规则确定为目标家族规则

步骤S354,将目标家族规则对应的参考异常类型确定为异常主机的异常类型。

这里,承接上面的例子,则会将蠕虫病毒确定为异常主机的异常类型,从而提升异常识别效率和识别结果实时性。

通过以上步骤S1031至步骤S1035,获取参考异常家族规则中各个参考异常规则对应的参考顶级域名集合、参考二级域名长度范围和参考域名数量范围;还根据异常主机的域名访问记录中获取异常主机访问的各个异常域名,并且确定出各个异常域名对应的二级域名长度;再将二级域名长度在参考二级域名长度范围内的异常域名确定为目标异常域名;接着,基于目标异常域名确定对应的目标顶级域名集合,还确定目标顶级域名集合和参考顶级域名集合之间的各个相似度;最后,将相似度大于相似度阈值的参考家族规则确定为候选家族规则,并确定候选家族规则对应的候选参考域名数量范围,将目标异常域名的被访问次数在候选参考域名数量范围内的候选家族规则,确定为目标家族规则,再将目标家族规则对应的参考异常类型确定为异常主机的异常类型,从而提升异常识别效率和识别结果实时性,并简化异常识别过程。

基于上述实施例,本申请实施例再提供一种异常识别方法,应用于僵尸主机识别,在本申请实施例中,该异常识别方法基于DNS异常行为和域名生成算法(DomainGeneration Algorithm,DGA)家族规则。

通过镜像、分光方式或DNS解析服务方式将企业的DNS解析流量获得到DNS的解析报文日志,然后存储到分布式数据库中。DNS解析日志的字段名称如下,字段以“|”分隔,共13个字段:时间戳|会话ID|源IP|源端口|目标IP|目标端口|协议|数据长度|请求或响应|域名|QTYPE|RCODE|RDATA。DNS日志根据“请求或响应”字段的不同,分为两位,一类是DNS请求,一类是DNS响应,样例如下:

DNS请求样例:

15412345677|1231231312123|10.1.1.1|3456|10.1.1.2|53|dns|80|Q|www.a.com|A||。

DNS响应样例:

15412345677|1231231312123|10.1.1.1|3456|10.1.1.2|53|dns|80|A|www.a.com|A|NoError|10.1.1.1。

然后僵尸主机识别过程分为以下的两个阶段,这两个阶段为识别异常主机的DNS行为和僵尸主机的家族识别。

阶段1,识别异常主机的DNS行为。

因为僵尸主机受到感染后,会与远端的黑客主机尝试建立通信,僵尸主机高频地查询不断由软件生成的非正常域名,黑客主机在需要时把即将出现的域名与发布指令的IP对应关系注册上就可以控制该僵尸主机。因此僵尸主机的特点是一段时间内,会出现大量响应为Nxdomain的数据(RCODE=Nxdomain),并且由于使用DGA方法建立通信的话,一段时间内某个二级域名只会出现一次响应为Nxdomain的无效响应,所以僵尸主机在一段时间内会出现大量二级域名响应仅一次且响应返回为Nxdomain的域名,该特征作为判断异常主机的显著因素。

基于以上的概念,得到识别异常主机的步骤如以下步骤1至步骤3:

步骤1,取1天的数据,取QTYPE=A和QTYPE=CNAME请求并且RCODE=Nxdomain和RCODE=ServerFail的响应数据,过滤非数值、空值,得到N1。

步骤2,将以上的数据N

步骤3,然后统计N

通过公式1使得θ

经过以上步骤1至步骤3,有效的识别出异常主机的DNS行为,并找到异常主机IP和DNS查询记录。

阶段2,僵尸主机的家族识别。

阶段1已经识别出了异常主机IP和并保留了相关的DNS查询记录。然后通过360提供的家族规则https://data.netlab.360.com/dga/,以conficker家族为例,其生成的域名的tld范围为[cc,cn,ws,com,net,org,info,biz],sld的长度范围为L属于[5,11],一天域名数量250个,通过规则和算法就可以进一步识别僵尸主机IP和感染的家族。具体的识别步骤可以参考如下步骤1至步骤3:

步骤1,异常主机IP的DNS查询二级域名长度L属于[5,11]的记录进行保留N

步骤2,从N

举例来说,某个异常主机IP的DNS查询记录的tld集合为[biz,org,net,cc,info,com],而conficker家族的tld范围为[cc,cn,ws,com,net,org,info,biz],则其J(A,B)=0.75。

步骤3,若该异常主机IP所查询的域名数量<250,并且J(A,B)>δ

该方法适用于所有的已知DGA家族,每一类家族感染的僵尸主机都按照以上步骤进行识别,上述步骤仅仅是以conficker家族为例。

本申请实施例基于DNS异常行为的异常主机识别,依据DGA感染主机的显著特征,避免了大量特征工程的反锁与干扰,识别准确率更高。还基于异常主机的DNS查询记录,以及DGA家族规则判别手段易于实现,规则简单有效,鲁棒性高,僵尸网络的识别准确率较高。

基于前述的实施例,本申请实施例提供一种异常识别装置,该装置包括的各模块、以及各模块包括的各单元,可以通过计算机设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(Central Processing Unit,CPU)、微处理器(Microprocessor Unit,MPU)、数字信号处理器(Digital SignalProcessing,DSP)或现场可编程门阵列(Field Programmable Gate Array,FPGA)等。

本申请实施例再提供一种因此识别装置,图7为本申请实施例提供的因此识别装置的组成结构示意图,如图7所示,所述异常识别装置700包括:

第一获取模块701,用于获取域名服务器预设时长内的域名解析日志,并基于请求类型字段信息和应答类型字段信息从所述域名解析日志中确定异常响应数据;

第一确定模块702,用于基于所述异常响应数据确定各个候选主机标识,并根据各个候选主机对所述异常响应数据中二级域名的访问次数,从所述各个候选主机标识中确定异常主机标识;

第二获取模块703,用于获取异常主机的域名访问记录,并根据所述域名访问记录和参考异常家族规则集合,确定所述异常主机的异常类型;

第二确定模块704,用于将所述异常主机标识和所述异常类型确定为识别结果。

在一些实施例中,所述请求类型字段信息至少包括地址转换请求和查询名称请求,所述应答类型字段信息至少包括所述域名服务器遇到内部错误和域名不存在,所述第一获取模块701包括:

第一确定子模块,用于当所述请求类型字段信息为所述地址转换请求,且所述应答类型字段信息为所述域名不存在时,确定包含所述请求字段信息和所述应答类型字段信息的响应数据为所述异常响应数据;或,

第二确定子模块,用于当所述请求类型字段信息为所述查询名称请求,且所述应答类型字段信息为所述域名服务器遇到内部错误时,确定包含所述请求字段信息和所述应答类型字段信息的响应数据为所述异常响应数据。

在一些实施例中,所述第一确定模块702包括:

第一获取子模块,用于获取所述异常响应数据中各个域名信息对应的二级域名;

第三确定子模块,用于确定第i个候选主机对各个二级域名的访问次数,其中,i=1,2,…,N,所述N为候选主机总数;

第四确定子模块,用于将所述访问次数唯一的二级域名所对应的域名信息确定为所述第i个候选主机对应的异常域名;

第二获取子模块,用于基于所述域名解析日志获取所述第i个候选主机访问的所有访问域名;

第五确定子模块,用于根据所述第i个候选主机对应的异常域名和所述第i个候选主机访问的所有访问域名确定所述第i个候选主机满足异常主机判断条件时,将所述第i个候选主机的标识确定为异常主机标识。

在一些实施例中,所述所述异常识别装置700还包括:

第一去重模块,用于对所述第i个候选主机对应的异常域名进行去重处理,得到第i个去重后的异常域名;

第二去重模块,用于对所述第i个候选主机访问的所有访问域名进行去重处理,得到第i个去重后的访问域名;

第三确定模块,用于确定所述第i个去重后的异常域名的第一域名数量和所述第i个去重后的访问域名的第二域名数量;

第四确定模块,用于根据所述第一域名数量和所述第二域名数量,确定所述第i个主机是否满足异常主机判断条件。

在一些实施例中,所述第四确定模块包括:

第六确定子模块,用于根据所述第一域名数量和所述第二域名数量,确定所述第i个候选主机的异常域名占比;

第七确定子模块,用于确定所述第一域名数量是否大于数量阈值且所述第i个候选主机的异常域名占比是否在目标占比范围之内,其中,当所述第一域名数量大于所述数量阈值且所述第i个候选主机的异常域名占比在目标占比范围之内时,确定所述第i个主机满足异常主机判断条件。

在一些实施例中,所述第二获取模块703包括:

第三获取子模块,用于获取所述参考异常家族规则集合中各个参考异常规则对应的参考顶级域名集合、参考二级域名长度范围和参考域名数量范围;

第八确定子模块,用于根据所述域名访问记录获取所述异常主机访问的各个异常域名,确定各个异常域名对应的二级域名长度;

第九确定子模块,用于将二级域名长度在所述参考二级域名长度范围内的异常域名确定为目标异常域名;

第十确定子模块,用于基于所述目标异常域名确定目标顶级域名集合,并确定所述目标顶级域名集合和所述各个参考异常规则对应的参考顶级域名集合之间的各个相似度;

第十一确定子模块,用于基于所述各个相似度确定所述异常主机的异常类型。

在一些实施例中,所述第十确定子模块包括:

第一确定单元,用于确定所述目标顶级域名集合和第j个参考顶级域集合之间的第j合集,确定所述目标顶级域名集合和所述第j个参考顶级域集合之间的第j交集,其中,j=1,2,…,M,所述M为参考异常规则总数;

第二确定单元,用于确定所述第j合集中包括的顶级域名的第三域名数量,并确定所述第j交集中包括的顶级域名的第四域名数量;

第三确定单元,用于将所述第四域名数量与所述第三域名数量的比值确定为所述目标顶级域名集合和所述第j个参考顶级域集合之间的相似度。

在一些实施例中,所述第十一确定子模块包括:

第四确定单元,用于基于所述各个相似度,将相似度大于相似度阈值的参考异常家族规则确定为候选家族规则;

获取单元,用于获取所述目标异常域名对应的第五域名数量,获取所述候选家族规则对应的候选参考域名数量范围;

第五确定单元,用于将所述第五域名数量在所述候选参考域名数量范围内的候选家族规则确定为目标家族规则;

第六确定单元,用于将所述目标家族规则对应的参考异常类型确定为所述异常主机的异常类型。

需要说明的是,本申请实施例异常识别装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。

需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的异常识别方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read OnlyMemory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。

相应地,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中提供的异常识别方法中的步骤。

本申请实施例提供一种电子设备,图8为本申请实施例提供的电子设备的组成结构示意图,如图8所示,所述电子设备800包括:一个处理器801、至少一个通信总线802、用户接口803、至少一个外部通信接口804和存储器805。其中,通信总线802配置为实现这些组件之间的连接通信。其中,用户接口803可以包括显示屏,外部通信接口804可以包括标准的有线接口和无线接口。其中,所述处理器801配置为执行存储器中存储的异常识别方法的程序,以实现以上述实施例提供的异常识别方法中的步骤。

以上电子设备和存储介质实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请电子设备和存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。

应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

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

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

另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台AC执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。

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

相关技术
  • 一种构件识别方法、装置、设备及计算机可读存储介质
  • 一种车牌识别方法、装置、计算机装置及计算机可读存储介质
  • 声纹识别方法、装置、计算机设备和计算机可读存储介质
  • 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
  • 一种基于金融时间序列特征的异常交易识别方法,设备及可读存储介质
  • 异常识别方法、装置、计算机设备及计算机可读存储介质
  • 异常识别方法、装置、计算机设备及计算机可读存储介质
技术分类

06120115923585