发布信息

僵尸网络控制端检测方法及装置、存储介质、电子设备与流程

作者:admin      2022-09-30 20:36:14     567



电子通信装置的制造及其应用技术1.本公开涉及网络安全技术领域,具体而言,涉及一种僵尸网络控制端检测方法、僵尸网络控制端检测装置、计算机可读存储介质及电子设备。背景技术:2.随着互联网技术越来越广泛的应用,网络系统也越来越容易遭到各种恶意攻击,网络安全问题日益突出。当前,僵尸网络已经成为互联网最大的安全威胁之一。僵尸网络通过c&c(command and control)控制端向受控端发起攻击指令,从而实施ddos(distributed denial of service)攻击、垃圾邮件、钓鱼网站等恶意攻击行为。因此,有效识别僵尸网络的控制端,是实时准确感知ddos攻击情况,有效处理网络攻击的关键。3.在现有技术中,依赖样本的捕获或逆向工程识别僵尸网络控制端。比如,蜜罐技术,蜜罐技术通过刻意布局被攻击的目标引诱攻击,一旦攻击者入侵后,就可以跟踪攻击如何实施、分析攻击者之间的相互联系,获取攻击者之间的社交网络。但是,蜜罐技术需要大量部署,检测效率较低。4.鉴于此,本领域亟需开发一种新的僵尸网络控制端检测方法及装置。5.需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。技术实现要素:6.本公开的目的在于提供一种僵尸网络控制端检测方法、僵尸网络控制端检测装置、计算机可读存储介质及电子设备,进而至少在一定程度上讲师网络控制端检测的效率和准确率。7.本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。8.根据本公开的一个方面,提供一种僵尸网络控制端检测方法,所述方法包括:获取dns日志记录,其中,所述dns日志记录包括请求ip、与所述请求ip对应的域名、以及与所述域名对应的时间信息;将所述请求ip对应的域名按照所述时间信息进行排序,以形成域名信息序列,根据所述域名信息序列确定所述域名的域名向量;计算僵尸网络域名的域名向量与所述域名的域名向量之间的相似度,并根据所述相似度确定所述域名的目标概率。9.在本公开的一个示例性实施例中,所述域名包括多个;计算僵尸网络域名的域名向量与所述域名的域名向量之间的相似度,包括:获取僵尸网络域名库中的僵尸网络域名,根据所述僵尸网络域名在多个所述域名中确定待检测域名;计算所述僵尸网络域名的域名向量与所述待检测域名的域名向量之间的相似度。10.在本公开的一个示例性实施例中,计算所述僵尸网络域名的域名向量与所述待检测域名的域名向量之间的相似度,包括:计算所述僵尸网络域名的域名向量与所述待检测域名的域名向量之间的余弦相似度,将所述余弦相似度配置为所述僵尸网络域名的域名向量与所述待检测域名的域名向量之间的相似度。11.在本公开的一个示例性实施例中,根据所述相似度确定所述域名的目标概率,包括:配置与所述僵尸网络域名对应的评估因子,根据所述评估因子和所述相似度计算所述域名的目标概率。12.在本公开的一个示例性实施例中,所述域名包括多个;配置与所述僵尸网络域名对应的评估因子,包括:分别计算所述僵尸网络域名的域名向量与各所述域名的域名向量之间的相似度,将所述相似度的最小值配置为所述僵尸网络域名对应的评估因子。13.在本公开的一个示例性实施例中,所述域名包括多个;配置与所述僵尸网络域名对应的评估因子,包括:分别计算所述僵尸网络域名的域名向量与各所述域名的域名向量之间的相似度,将所述相似度的平均值配置为所述僵尸网络域名对应的评估因子。14.在本公开的一个示例性实施例中,根据所述评估因子和所述相似度计算所述域名的目标概率,包括:所述目标概率的计算公式如下:[0015][0016]其中,pe表示所述域名的目标概率,score表示所述域名的域名向量与所述僵尸网络域名的域名向量之间的相似度,scoreth表示与所述僵尸网络域名对应的评估因子,α表示调节因子,α∈[0,1]。[0017]在本公开的一个示例性实施例中,根据所述域名信息序列确定所述域名的域名向量,包括:根据所述域名信息序列提取所述域名在时间维度上的语义特征,并根据所述域名在时间维度上的语义特征得到所述域名的域名向量。[0018]在本公开的一个示例性实施例中,所述方法还包括:判断所述域名的目标概率是否大于目标概率阈值;在所述域名的目标概率大于目标概率阈值时,确定所述域名对应的僵尸网络家族;获取所述僵尸网络家族的僵尸网络通信协议,根据所述僵尸网络通信协议检测所述域名是否为所述僵尸网络域名。[0019]在本公开的一个示例性实施例中,根据所述僵尸网络通信协议检测所述域名是否为所述僵尸网络域名,包括:根据所述僵尸网络通信协议向所述域名发送连接请求;若接收到所述域名返回的响应信息,则判定所述域名为所述僵尸网络域名,并将所述域名添加至僵尸网络域名库中。在本公开的一个示例性实施例中,[0020]在本公开的一个示例性实施例中,获取dns日志记录,包括:判断所述dns日志记录中是否存在响应信息;若所述dns日志记录中存在响应信息,则获取所述dns日志记录。[0021]在本公开的一个示例性实施例中,所述方法还包括:获取白名单域名,在所述dns日志记录中删除与所述白名单域名对应的dns日志记录。[0022]根据本公开的一个方面,提供一种僵尸网络控制端检测装置,所述僵尸网络控制端检测装置包括:信息获取模块,用于获取dns日志记录,其中,所述dns日志记录包括请求ip、与所述请求ip对应的域名、以及与所述域名对应的时间信息;向量获取模块,用于将所述请求ip对应的域名按照所述时间信息进行排序,以形成域名信息序列,并根据所述域名信息序列确定所述域名的域名向量;概率计算模块,用于计算僵尸网络域名的域名向量与所述域名的域名向量之间的相似度,并根据所述相似度确定所述域名的目标概率。[0023]根据本公开的一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中所述的僵尸网络控制端检测方法。[0024]根据本公开的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中所述的僵尸网络控制端检测方法。[0025]由上述技术方案可知,本公开示例性实施例中的僵尸网络控制端检测方法及装置、计算机可读存储介质、电子设备至少具备以下优点和积极效果:[0026]本公开的僵尸网络控制端检测方法,首先获取dns日志记录,dns日志记录包括请求ip、与请求ip对应的域名、以及与域名对应的时间信息;然后,将请求ip对应的域名按照时间信息进行排序,以形成域名信息序列,根据域名信息序列确定域名的域名向量;最后,计算僵尸网络域名的域名向量与域名的域名向量之间的相似度,并根据相似度确定域名的目标概率。本公开中的僵尸网络控制端检测方法,一方面,充分利用了僵尸网络会集中批量向dns发起域名请求的行为特征,根据时间信息对域名进行排序得到域名信息序列,提取域名信息序列中域名的域名向量,嵌入了域名共现的特征,提供了域名的向量化表征,提高了检测效率;另一方面,通过计算已知的僵尸网络域名的域名向量与域名的域名向量之间的相似度,进一步确定目标概率,提高了检测的准确率。[0027]本公开应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明[0028]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。[0029]图1示意性示出了根据本公开的一实施例的僵尸网络控制端检测方法的流程示意图;[0030]图2示意性示出了根据本公开的一实施例的获取dns日志记录的方法流程示意图;[0031]图3示意性示出了根据本公开的一实施例的计算相似度的方法流程图;[0032]图4示意性示出了根据本公开的一实施例的计算目标概率的方法流程示意图;[0033]图5示意性示出了根据本公开的一实施例的根据目标概率检测域名的流程示意图;[0034]图6示意性示出了根据本公开的一实施例的具体实施例中僵尸网络控制端检测方法的流程示意图;[0035]图7示意性示出了根据本公开的一实施例的僵尸网络控制端检测装置的框图;[0036]图8示意性示出了根据本公开的一实施例的电子设备的模块示意图;[0037]图9示意性示出了根据本公开的一实施例的程序产品示意图。具体实施方式[0038]现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。[0039]此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。[0040]附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。[0041]附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。[0042]在现有技术中,一种是通过分析域名系统(domain name systen,dns)日志记录,提取攻击活动使用的c&c域名,进而分析寄生木马的类型,锁定c&c服务器已控制的僵尸主机。并利用分析每类c&c域名发生的泊松参数,分析僵尸网络活动的趋势,以实现及时制定有效的抑制措施。但是,这种方法是在僵尸网络已经发起攻击之后,捕获攻击行为,通过分析寄生木马的类型锁定僵尸主机,检测到的僵尸网络控制端的数量极其有限,并且检测效率低。[0043]基于相关技术中存在的问题,在本公开的一个实施例中提供了一种僵尸网络控制端检测方法,该方法基于dns(domain name system,域名系统),dns是互联网的一项服务,dns作为将域名和ip地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。互联网上的节点都可以用ip地址唯一标识,并且可以通过ip地址被访问,但即使将32位的二进制ip地址写成4个0~255的十位数形式,也依然太长、太难记。因此,人们发明了域名,域名可将一个ip地址关联到一组有意义的字符上去。用户访问一个网站的时候,既可以输入该网站的ip地址,也可以输入其域名,对访问而言,两者是等价的。[0044]在创建网站时,会事先注册域名,注册域名需要将该网站对应的域名和ip地址登记至域名注册方,域名注册方将域名和ip地址对应存储至域名系统中。在创建网站之后,用户访问网站的过程如下:首先,用户的终端上运行着带有dns应用的客户端,用户想要在终端上访问网站时,只需要在终端的浏览器中输入该网站对应的网址;接着,浏览器将接收到的网址中抽取出域名字段,并将域名传送给带有dns应用的客户端,带有dns应用的客户端向dns服务器发送一份查询报文,查询报文中包括要访问的域名字段;然后,通过dns服务器对该域名字段进行域名解析,得到域名对应的ip地址,dns服务器向带有dns应用的客户端返回带有ip地址的回答报文;最后,带有dns应用的客户端将该ip地址发送至浏览器,该浏览器接收到ip地址之后,就可以向该ip地址定位的http服务器发起tcp连接,用户就可以在浏览器中访问网站。[0045]该僵尸网络控制端检测方法也以自然语言处理(nature language processing,nlp)为基础,自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系。自然语言处理技术通常包括文本处理、语义理解、机器翻译、机器人问答、知识图谱等技术。[0046]自然语言处理分为有监督学习算法、半监督学习算法和无监督学习算法,比如,word2vec(word to vector)模型就是一种无监督学习算法。其中,无监督学习不需要进行人工标记数据,直接从无标记的数据样本里学习到数据的内在性质和规律。常用聚类的方式对数据规律进行提取。代表模型有:k均值算法(k-means)。由于标记数据的成本很高,现实中很多数据是没有标签的,这使得无监督学习有很广的应用场景,例如组织计算机集群,社交网络分析,市场划分,天文数据分析,推荐系统,搜索引擎等。[0047]本公开实施例首先提供了一种僵尸网络控制端检测方法,图1示出了僵尸网络控制端检测方法的流程示意图,如图1所示,该僵尸网络控制端检测方法至少包括以下步骤:[0048]步骤s110:获取dns日志记录,其中,dns日志记录包括请求ip、与请求ip对应的域名、以及与域名对应的时间信息;[0049]步骤s120:将请求ip对应的域名按照时间信息进行排序,以形成域名信息序列,根据域名信息序列确定域名的域名向量;[0050]步骤s130:计算僵尸网络域名的域名向量与域名的域名向量之间的相似度,并根据相似度确定域名的目标概率。[0051]本公开实施例中的僵尸网络控制端检测方法,一方面,充分利用了僵尸网络会集中批量向dns发起域名请求的行为特征,根据时间信息对域名进行排序得到域名信息序列,提取域名信息序列中域名的域名向量,嵌入了域名共现的特征,提供了域名的向量化表征,提高了检测效率;另一方面,通过计算已知的僵尸网络域名的域名向量与域名的域名向量之间的相似度,进一步确定目标概率,提高了检测的准确率。[0052]需要说明的是,本公开示例性实施方式的僵尸网络控制端检测方法可以由服务器执行,僵尸网络控制端检测方法对应的僵尸网络控制端检测装置也可以被配置在该服务器中。此外,应当理解的是,终端设备(例如,手机、平板等)也可以实现僵尸网络控制端检测方法的各个步骤,对应的装置也可以配置在终端设备中。[0053]为了使本公开的技术方案更清晰,接下来对僵尸网络控制端检测方法的各步骤进行说明。[0054]在步骤s110中,获取dns日志记录,其中,dns日志记录包括请求ip、与请求ip对应的域名、以及与域名对应的时间信息。[0055]在本公开的示例性实施例中,dns服务器在根据域名字段进行域名解析的过程,就是根据域名查询域名系统中的域名数据库的过程,根据域名在域名数据库中查询到该域名对应的ip地址。在域名解析的过程中,dns服务器会根据查询过程形成dns日志记录。[0056]其中,dns日志记录可以包括请求ip,请求ip表示用户的终端对应的终端ip地址。dns日志记录还可以包括用户在终端上输入的网址信息,该网址信息中包括域名。dns日志记录还可以包括时间信息,该时间信息可以包括用户在终端上输入网址信息对应的访问请求时间,还可以包括dns服务器向用户终端发送域名对应的ip地址的响应时间。当然,该dns日志记录还可以包括域名对应的ip地址等,本公开对此不作具体限定。[0057]具体地,dns日志记录可以是从dns服务器的数据库中获取的passive dns数据集,该dns服务器可以包括本地dns服务器、dns根服务器、.com域服务器、.163.com域服务器等一个或多个服务器,本公开对此不作具体限定。[0058]另外,可以从dns服务器的数据库中获取预设时间段内的dns日志记录,也可以实时获取dns服务器的数据库中的dns日志记录。其中,预设时间段可以根据实际情况进行设定,比如,可以是每隔两小时获取一次dns日志记录,与可以是每隔一小时获取一次dns日志记录,本公开对此不作具体限定。[0059]在本公开的示例性实施例中,由于用户在发出域名访问请求之后,会存在dns服务器无响应的情况,但此次域名访问请求还是会存在dns日志记录中,只不过对应的dns日志记录中没有响应时间和ip地址。其中,无响应的情况可能是用户输入的域名有误,域名系统中不存在该域名。通常情况下,在dns日志记录中存在大部分无响应的情况,但由于僵尸网络的受控端在访问僵尸网络控制端时,不会存在无响应的情况。因此,为了提高针对性和提高检测效率,本实施例在获取dns日志记录时,可以只获取存在响应的dns日志记录。[0060]具体地,在dns数据库中获取所有的dns日志记录,并过滤掉不存在响应信息的dns日志记录,包括:判断dns日志记录是否存在响应信息,若该dns日志记录存在响应信息,则获取dns日志记录。其中,响应信息包括dns服务器返回的ip地址或dns服务器的响应时间等。[0061]另外,还可以在该dns日志记录中配置响应标签和无响应标签,若域名访问请求中的域名不存在域名数据库中,则在该域名访问请求对应的dns日志记录中添加无响应标签;若域名访问请求中的域名存在域名数据库中,则在该域名访问请求对应的dns日志记录中添加响应标签。在获取dns日志记录之前,判断dns日志记录中是否存在响应标签;若dns日志记录中存在响应标签,则获取该dns日志记录。[0062]在本公开的示例性实施例中,在获取dns日志记录之后,获取白名单域名,在dns日志记录中删除与白名单域名对应的dns日志记录。[0063]其中,该白名单域名可以是来自中国互联网络信息中心(china internet network information center,cnnic)发布的域名白名单中的域名。还可以是在alxea排名中排在前预设名次的域名,其中,该前预设名次可以根据实际情况进行设定,比如,可以是top10000,还可以是top56982,本公开对此不作具体限定。[0064]举例而言,图2示出了获取dns日志记录的方法流程示意图,如图2所示,在步骤s210中,判断dns日志记录中是否存在响应信息;在步骤s220中,若dns日志记录中存在响应信息,则获取dns日志记录;在步骤s230中,获取白名单域名,并在dns日志记录中删除与白名单域名对应的dns日志记录。[0065]本实施例中通过过滤到dns响应记录中含有白名单域名的dns响应记录,减少无关数据量,提高了僵尸网络域名的检测效率。[0066]在步骤s120中,将请求ip对应的域名按照时间信息进行排序,以形成域名信息序列,根据域名信息序列确定域名的域名向量。[0067]在本公开的示例性实施例中,获取多个dns日志记录,每条日志记录中对应一请求ip、一域名、以及一时间信息。在一个请求ip对应的多个dns日志记录中,存在多个相同或不同的域名,每个相同或不同的域名均对应一时间信息。因此,将dns日志记录中所有的请求ip对应的域名按照时间信息进行排序,得到域名信息序列。具体地,获取各请求ip对应的多个dns日志记录,将多个dns日志记录中的域名按照各dns日志记录中的时间信息进行排序,以形成域名信息序列。在域名信息序列中,包括一个或多个请求ip对应的一个或多个按照时间信息排序的域名。[0068]举例而言,以表格形式示意性地标识域名信息序列,表1示意性示出了域名信息序列,如表1所示,此表为根据一个小时内获取到的部分dns日志记录生成的域名信息序列。[0069]表1域名信息序列[0070]请求ip域名域名域名域名域名域名请求ip1域名12域名29域名315域名16域名41 请求ip2域名15域名20域名60域名58ꢀꢀ请求ip3域名541域名25域名20域名25域名30域名68请求ip4域名256域名78域名12ꢀꢀꢀ请求ip5域名12域名26域名45域名05域名12域名02[0071]在该域名信息序列中可以看出,同一请求ip可能在不同的时间点访问相同的域名,比如,请求ip3在一个小时内依次访问了域名541、域名25、域名20、域名25、域名30、域名68。在该域名信息序列中,若存在多个请求ip,多个请求ip可以根据该请求ip的注册时间进行排序,也可以随机排序,本公开对此不作具体限定。[0072]在本公开的示例性实施例中,根据域名信息序列提取域名在时间维度上的语义特征,并根据域名在时间维度上的语义特征得到域名的域名向量。[0073]具体地,将域名信息序列输入域名向量模型,通过域名向量模型提取域名信息序列中各域名在时间维度上的语义特征,并根据各域名在时间维度上的语义特征确定各域名对应的域名向量。[0074]其中,域名向量模型可以为word2vec模型,word2vec模型是一种将文本内容向量化的自然语言处理模型。word2vec模型可以将文本内容的处理简化为k维向量空间中的向量运算,而向量在向量空间上的相似度可以用来表示文本内容在语义上的相似度。[0075]另外,还可以根据域名信息序列提取域名的频率、域名长度、域名类型等一个或多个维度上的语义特征,并根据域名在不同维度上的语义特征得到域名的域名向量。[0076]本实施例通过域名向量模型降维重构域名的共现矩阵,将单一域名表征为含有域名共现信息的低维向量。域名向量模型包括输入层、隐藏层和输出层,根据域名向量模型得到域名向量的方法可以包括以下步骤:首先,将域名信息序列中的域名用one-hot(one-hot code,独热编码)编码表示,该编码方式是指仅通过设置一位为“1”,其余位均为“0”的向量表示一个域名,将编码后的域名作为输入层的输入向量;然后,在隐藏层,通过域名向量模型的权重矩阵对输入向量进行线性变换,得到域名对应的低维向量,即域名向量;最后,在输出层输出该域名向量。[0077]在本公开的示例性实施例中,可以通过调用gensim库中的word2vec模型,将域名信息序列输入word2vec模型,通过word2vec模型提取域名信息序列中各域名在时间维度上的语义特征,并根据各域名在时间维度上的语义特征确定各域名的域名向量。其中,可以根据实际场景设置word2vec模型的参数。比如,可以设置word2vec模型的训练算法为cbow(continuous bag-of-word model)算法,也可以设置特征向量的维度为300,还可以设置低频域名截断次数为6,即去除在域名信息序列中出现次数为6次的域名。当然,还可以设置迭代次数等参数,本公开对此不作具体限定。[0078]将请求ip对应的域名按照时间信息进行排序,以形成域名信息序列,根据域名信息序列确定域名的域名向量。[0079]在本公开的示例性实施例中,根据域名的域名向量构建域名向量库。随着不断地获取dns日志记录,根据dns日志记录形成域名信息序列,并根据域名信息序列确定域名信息序列中各域名的域名向量,可以不断地对该域名向量库进行更新。该域名向量库中即包括已知的僵尸网络域名的域名向量,还包括待检测域名的域名向量。[0080]在步骤s130中,计算僵尸网络域名的域名向量与域名的域名向量之间的相似度,并根据相似度确定域名的目标概率。[0081]在本公开的示例性实施例中,由于在dns日志记录中可能存在与僵尸网络域名对应的日志记录,因此,由dns日志记录形成的域名信息序列中可能包括僵尸网络域名,进而在得到的域名的域名向量中,有可能包括僵尸网络域名对应的域名向量。[0082]若域名中包括僵尸网络域名,则将域名中除过僵尸网络域名之外的域名配置为待检测域名,计算待检测域名的域名向量与僵尸网络域名的域名向量之间的相似度。[0083]若域名中不包括僵尸网络域名,则先获取僵尸网络域名对应的域名向量,再计算僵尸网络域名的域名向量与域名的域名向量之间的相似度。其中,可以将僵尸网络域名输入域名向量模型中,以获得该僵尸网络域名对应的域名向量。[0084]在本公开的示例性实施例中,图3示出了计算相似度的方法流程图,如图3所示,该流程至少包括步骤s310至步骤s320,详细介绍如下:[0085]在步骤s310中,获取僵尸网络域名库中的僵尸网络域名,根据僵尸网络域名在多个域名中确定待检测域名。[0086]在本公开的示例性实施例中,僵尸网络域名库中包括一个或多个僵尸网络域名,分别将一个或多个僵尸网络域名与多个域名进行匹配;若域名与僵尸网络域名相匹配,则表明该域名为僵尸网络域名;若域名与僵尸网络域名不匹配,则表明该域名为待检测域名,需要进一步检测该待检测域名是否为僵尸网络域名。[0087]在步骤s320中,计算僵尸网络域名的域名向量与待检测域名的域名向量之间的相似度。[0088]在本公开的示例性实施例中,计算两个域名向量之间的相似度可以是通过向量之间的余弦相似度(cosine similarity)、欧几里德距离(euclidean distance)、皮尔逊相关系数(pearson correlation coefficient)等确定,本公开对此不作具体限定。[0089]举例而言,计算僵尸网络域名的域名向量与待检测域名的域名向量之间的余弦相似度,将余弦相似度配置为僵尸网络域名的域名向量与待检测域名的域名向量之间的相似度。[0090]具体地,两个向量之间的余弦相似度计算公式如公式(1)所示:[0091][0092]其中,score为余弦相似度,ai和bi分别为向量a和向量b的各分量。将僵尸网络域名的域名向量作为向量a,以及将待检测域名的域名向量作为向量b代入公式(1)中进行计算,得到僵尸网络域名的域名向量和待检测域名的域名向量之间的余弦相似度。[0093]本公开的实施例,能够计算待检测域名的域名向量与僵尸网络域名的域名向量之间的相似度,通过域名向量之间的相似度表征待检测域名与僵尸网络域名之间的相似度。可以根据待检测域名与僵尸网络域名之间的相似度表征该待检测域名为僵尸网络域名的概率,待检测域名与僵尸网络域名之间的相似度越大,则该待检测域名为僵尸网络域名的概率就越大。[0094]在本公开的示例性实施例中,图4示出了计算目标概率的方法流程示意图,如图4所示,该流程至少包括步骤s410至步骤s420,详细介绍如下:[0095]在步骤s410中,配置与僵尸网络域名对应的评估因子。[0096]在本公开的示例性实施例中,域名包括多个,分别计算僵尸网络域名的域名向量与各域名的域名向量之间的相似度,将相似度的最小值配置为僵尸网络域名对应的评估因子。[0097]另外,若僵尸网络域名包括多个,则分别计算各僵尸网络域名的域名向量与各域名的域名向量之间的相似度,各僵尸网络域名对应多个相似度,分别将各僵尸网络域名对应的多个相似度中的最小值配置为各僵尸网络域名对应的评估因子。也就是说,僵尸网络域名与评估因子相关联。[0098]在本公开的示例性实施例中,域名包括多个,分别计算僵尸网络域名的域名向量与各域名的域名向量之间的相似度,将相似度的平均值配置为僵尸网络域名对应的评估因子。[0099]另外,若僵尸网络域名包括多个,则分别计算各僵尸网络域名的域名向量与各域名的域名向量之间的相似度,各僵尸网络域名对应多个相似度,分别将各僵尸网络域名对应的多个相似度中的最小值配置为各僵尸网络域名对应的评估因子。也就是说,僵尸网络域名与评估因子相关联。[0100]需要说明的是,当有新的域名时,需要根据本实施例或上述实施例中的方法重新配置各僵尸网络域名对应的评估因子。[0101]在步骤s420中,根据评估因子和相似度计算域名的目标概率。[0102]在本公开的示例性实施例中,由于僵尸网络域名包括多个,相似度计算的是域名与某一僵尸网络域名之间的相似度,最终,一个域名对应多个相似度,多个相似度分别表征该域名与多个僵尸网络域名之间的相似度。若用该域名与某一僵尸网络域名之间的相似度表征域名为僵尸网络域名的概率,则准确率较低。[0103]因此,本实施例根据评估因子和相似度计算域名的目标概率,即通过计算目标概率的方法将该域名与多个僵尸网络域名的相似度映射在同一标准下。具体地,目标概率的计算公式(2)如下所示:[0104][0105]其中,pe表示所述域名的目标概率,score表示所述域名的域名向量与所述僵尸网络域名的域名向量之间的相似度,scoreth表示与所述僵尸网络域名对应的评估因子,α表示调节因子,α∈[0,1]。调节因子的取值可以根据实际情况进行设定,本公开对此不作具体限定。[0106]在本公开的示例性实施例中,获取僵尸网络域名库中的僵尸网络家族,该僵尸网络家族包括一个或多个僵尸网络域名。分别计算僵尸网络家族中各僵尸网络域名的域名向量与待检测域名的域名向量之间的相似度,计算僵尸网络家族中各僵尸网络域名对应的相似度的平均相似度,将该平均相似度配置为待检测域名与僵尸网络家族的相似度。[0107]若僵尸网络家族包括多个,则得到待检测域名与各僵尸网络家族的相似度。将每个僵尸网络家族中对应的最小相似度作为评估因子,根据公式(2)计算该待检测域名为僵尸网络家族的目标概率。[0108]其中,僵尸网络域名库可以来自于威胁情报等数据源,该僵尸网络域名库中存储有截止当前时刻,被检测出来的所有的僵尸网络域名信息,该僵尸网络域名信息包括僵尸网络域名,该僵尸网络域名所属的僵尸网络家族,该僵尸网络家族对应的僵尸网络通信协议等。[0109]在本公开的示例性实施例中,图5示出了根据目标概率检测域名的流程示意图,该流程至少包括步骤s510至步骤s530,详细介绍如下:[0110]在步骤s510中,判断域名的目标概率是否大于目标概率阈值。[0111]在本公开的示例性实施例中,存在多个僵尸网络域名,则每一域名均存在与各僵尸网络域名对应的目标概率,分别判断每一域名中各目标概率是否大于目标概率阈值。其中,目标概率阈值可以根据实际情况进行设定,比如,目标概率阈值可以取值为0.6,还可以取值为0.8,本公开对此不作具体限定。[0112]在步骤s520中,在域名的目标概率大于目标概率阈值时,确定域名对应的僵尸网络家族。[0113]在本公开的示例性实施例中,若域名对应的所有的目标概率中,存在一个或多个目标概率均大于目标概率阈值,则分别获取一个或多个目标概率对应的一个或多个僵尸网络域名。根据一个或多个僵尸网络域名在僵尸网络域名库中确定各僵尸网络域名对应的僵尸网络家族。[0114]其中,多个僵尸网络域名可能对应同一僵尸网络家族,也可能对应不同的僵尸网络家族。一个僵尸网络家族中包括一个或多个僵尸网络域名。因此,域名对应的僵尸网络家族可能包括一个僵尸网络家族,也可能包括多个僵尸网络家族。[0115]在步骤s530中,获取僵尸网络家族的僵尸网络通信协议,根据僵尸网络通信协议检测域名是否为僵尸网络域名。[0116]在本公开的示例性实施例中,分别获取一个或多个僵尸网络家族对应的一个或多个僵尸网络通信协议,根据各僵尸网络通信协议检测该域名是否为僵尸网络域名,以及该域名属于哪一僵尸网络家族。[0117]具体地,根据僵尸网络通信协议向域名发送连接请求;若接收到域名返回的响应信息,则判定域名为僵尸网络域名,并将域名添加至僵尸网络域名库中。其中,该连接请求可以是根据僵尸网络通信协议访问该域名,响应信息可以是该域名返回的任意信息,比如,可以是连接成功信息,还可以是域名对应的网页信息等,本公开对此不作具体限定。[0118]分别根据一个或多个僵尸网络通信协议向域名发送连接请求,若接收到任意根据僵尸网络通信协议返回的响应信息,则判定该域名为僵尸网络域名。另外,还可以根据该响应信息对应的僵尸网络通信协议确定该域名所属的僵尸网络家族。[0119]举例而言,若根据僵尸网络家族a对应的僵尸网络通信协议aaa向域名发送连接请求,并接收到域名返回的连接成功信息,则表明该域名为僵尸网络域名,并且该域名属于僵尸网络家族a,将该域名添加至僵尸网络库中的僵尸网络家族a对应的僵尸网络域名中。[0120]下面结合具体场景对本示例实施方式中的僵尸网络控制端检测方法进行详细的说明,图6示出了本公开的具体实施例中僵尸网络控制端检测方法的流程示意图,如图6所示,该流程至少包括步骤s601至步骤s611,详细介绍如下:[0121]在步骤s601中,获取passive dns数据集,该passive dns数据集包括多条dns日志记录,在多个dns日志记录中获取存在响应信息的dns日志记录。[0122]其中,每条dns日志记录中均包括一请求ip、一域名和一时间信息。多个dns日志记录中包括多个请求ip、与各请求ip对应的一个或多个域名、以及与一个或多个域名对应的时间信息。[0123]在步骤s602中,将在alxea排名中排在top10000的域名配置为白名单域名,在dns日志记录中过滤掉白名单域名对应的dns日志记录。[0124]在步骤s603中,将多个请求ip对应一个或多个域名按照时间信息进行排序,以形成域名信息序列。[0125]其中,该域名信息序列的每一行包括某一请求ip的一个或多个域名,该一个或多个域名在域名信息序列中的顺序是按照该请求ip访问域名的时间信息进行排序的。[0126]在步骤s604中,将该域名信息序列输入word2vec模型中,以得到各域名对应的域名向量。[0127]在步骤s605中,在僵尸网络域名库中获取已知的多个僵尸网络域名,并根据已知的多个僵尸网络域名在多个域名中确定多个待检测域名。[0128]在步骤s606中,分别计算各僵尸网络域名的域名向量与各待检测域名的域名向量之间的相似度。[0129]在步骤s607中,将各僵尸网络域名的域名向量与多个待检测域名的域名向量之间的最小相似度,配置为各僵尸网络域名对应的评估因子。[0130]在步骤s608中,根据各僵尸网络域名对应的评估因子和各僵尸网络域名与多个待检测域名的域名向量之间的相似度,计算各待检测域名的多个目标概率。[0131]其中,多个目标概率表征的是待检测域名为各僵尸网络域名的概率。[0132]在步骤s609中,在待检测域名的目标概率大于目标概率阈值时,确定该待检测域名的僵尸网络家族。[0133]在步骤s610中,获取待检测域名对应的僵尸网络家族的僵尸网络通信协议,根据僵尸网络通信协议向待检测域名发送连接请求。[0134]在步骤s611中,若接收到待检测域名返回的响应信息,则判定域名为僵尸网络域名,并将域名添加至僵尸网络域名库中。[0135]其中,若待检测域名为僵尸网络域名,可以根据待检测域名在dns数据库中查询该待检测域名对应的ip地址,该ip地址对应的终端或服务器为僵尸网络的控制端。并且,可以在dns响应记录中查询到该僵尸网络对应的请求ip,该请求ip对应的终端或服务器为僵尸网络的受控端。[0136]本实施例的僵尸网络控制端检测方法,首先,充分利用了僵尸网络会集中批量向dns发起域名请求的行为特征,根据时间信息对域名进行排序得到域名信息序列,提取域名信息序列中域名的域名向量,嵌入了域名共现的特征,提供了域名的向量化表征,提高了检测效率;其次,使用无监督学习的word2vec模型提取域名被不同请求ip访问时在时序维度的特征,不需要事先标注样本标签;最后,通过计算已知的僵尸网络域名的域名向量与域名的域名向量之间的相似度,进一步确定目标概率,提高了检测的准确率。[0137]本领域技术人员可以理解实现上述实施方式的全部或部分步骤被实现为由cpu执行的计算机程序。在该计算机程序被cpu执行时,执行本发明提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。[0138]此外,需要注意的是,上述附图仅是根据本发明示例性实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。[0139]以下介绍本公开的装置实施例,可以用于执行本公开上述的僵尸网络控制端检测方法。对于本公开装置实施例中未披露的细节,请参照本公开上述的僵尸网络控制端检测方法的实施例。[0140]图7示意性示出了根据本公开的一个实施例的僵尸网络控制端检测装置的框图。[0141]参照图7所示,根据本公开的一个实施例的僵尸网络控制端检测装置700,僵尸网络控制端检测装置700包括:信息获取模块701、向量获取模块702和概率计算模块703。具体地:[0142]信息获取模块701,用于获取dns日志记录,其中,所述dns日志记录包括请求ip、与请求ip对应的域名、以及与域名对应的时间信息;[0143]向量获取模块702,用于将请求ip对应的域名按照时间信息进行排序,以形成域名信息序列,并根据域名信息序列确定域名的域名向量;[0144]概率计算模块703,用于计算僵尸网络域名的域名向量与域名的域名向量之间的相似度,并根据相似度确定域名的目标概率。[0145]在本公开的示例性实施例中,信息获取模块601还可以用于判断dns日志记录中是否存在响应信息;若dns日志记录中存在响应信息,则获取dns日志记录。[0146]在本公开的示例性实施例中,信息获取模块601还可以用于获取白名单域名,在dns日志记录中删除与白名单域名对应的dns日志记录。[0147]在本公开的示例性实施例中,向量获取模块602还可以用于根据域名信息序列提取域名在时间维度上的语义特征,并根据域名在时间维度上的语义特征得到域名的域名向量。[0148]在本公开的示例性实施例中,概率计算模块603还可以用于获取僵尸网络域名库中的僵尸网络域名,根据僵尸网络域名在多个域名中确定待检测域名;计算僵尸网络域名的域名向量与待检测域名的域名向量之间的相似度。其中,域名包括多个。[0149]在本公开的示例性实施例中,概率计算模块603还可以用于计算僵尸网络域名的域名向量与待检测域名的域名向量之间的余弦相似度,将余弦相似度配置为僵尸网络域名的域名向量与待检测域名的域名向量之间的相似度。[0150]在本公开的示例性实施例中,概率计算模块603还可以用于配置与僵尸网络域名对应的评估因子,根据评估因子和相似度计算域名的目标概率。[0151]在本公开的示例性实施例中,概率计算模块603还可以用于分别计算僵尸网络域名的域名向量与各域名的域名向量之间的相似度,将相似度的最小值配置为僵尸网络域名对应的评估因子。[0152]在本公开的示例性实施例中,概率计算模块603还可以用于分别计算僵尸网络域名的域名向量与各域名的域名向量之间的相似度,将相似度的平均值配置为僵尸网络域名对应的评估因子。[0153]在本公开的示例性实施例中,概率计算模块603还可以用于目标概率的计算公式如下:[0154][0155]其中,pe表示域名的目标概率,score表示域名的域名向量与僵尸网络域名的域名向量之间的相似度,scoreth表示与僵尸网络域名对应的评估因子,α表示调节因子,α∈[0,1]。[0156]在本公开的示例性实施例中,僵尸网络控制端检测装置700还包括域名检测模块(图中未示出),该域名检测模块用于判断域名的目标概率是否大于目标概率阈值;在域名的目标概率大于目标概率阈值时,确定域名对应的僵尸网络家族;获取僵尸网络家族的僵尸网络通信协议,根据僵尸网络通信协议检测域名是否为僵尸网络域名。[0157]在本公开的示例性实施例中,该域名检测模块还可以用于根据僵尸网络通信协议向域名发送连接请求;若接收到域名返回的响应信息,则判定域名为僵尸网络域名,并将域名添加至僵尸网络域名库中。[0158]上述各僵尸网络控制端检测装置的具体细节已经在对应的僵尸网络控制端检测方法中进行了详细的描述,因此此处不再赘述。[0159]应当注意,尽管在上文详细描述中提及了用于执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。[0160]在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。[0161]所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。[0162]下面参照图8来描述根据本发明的这种实施方式的电子设备800。图8显示的电子设备800仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。[0163]如图8所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:上述至少一个处理单元810、上述至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810)的总线830、显示单元840。[0164]其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元810可以执行如图1中所示的步骤s110:获取dns日志记录,其中,dns日志记录包括请求ip、与请求ip对应的域名、以及与域名对应的时间信息;步骤s120:将请求ip对应的域名按照时间信息进行排序,以形成域名信息序列,根据域名信息序列确定域名的域名向量;步骤s130:计算僵尸网络域名的域名向量与域名的域名向量之间的相似度,并根据相似度确定域名的目标概率。[0165]存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(rom)8203。[0166]存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。[0167]总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。[0168]电子设备800也可以与一个或多个外部设备1000(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得观众能与该电子设备800交互的设备通信,和/或与使得该电子设备800能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口850进行。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器860通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。[0169]通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。[0170]在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。[0171]参考图9所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品900,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。[0172]所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。[0173]计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。[0174]可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。[0175]可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。[0176]此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。[0177]本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。[0178]应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部