CN112966713A - 基于深度学习的dga域名检测方法、装置及计算机设备 - Google Patents

基于深度学习的dga域名检测方法、装置及计算机设备 Download PDF

Info

Publication number
CN112966713A
CN112966713A CN202110142074.9A CN202110142074A CN112966713A CN 112966713 A CN112966713 A CN 112966713A CN 202110142074 A CN202110142074 A CN 202110142074A CN 112966713 A CN112966713 A CN 112966713A
Authority
CN
China
Prior art keywords
domain name
name data
training
detected
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110142074.9A
Other languages
English (en)
Other versions
CN112966713B (zh
Inventor
刘晶
范渊
黄进
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Dbappsecurity Technology Co Ltd
Original Assignee
Hangzhou Dbappsecurity Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Dbappsecurity Technology Co Ltd filed Critical Hangzhou Dbappsecurity Technology Co Ltd
Priority to CN202110142074.9A priority Critical patent/CN112966713B/zh
Publication of CN112966713A publication Critical patent/CN112966713A/zh
Application granted granted Critical
Publication of CN112966713B publication Critical patent/CN112966713B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computational Linguistics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Image Analysis (AREA)

Abstract

本申请涉及一种基于深度学习的DGA域名检测方法,其中,该基于深度学习的DGA域名检测方法包括:获取待检测域名数据;对待检测域名数据进行预处理,得到离散化的待检测域名数据,其中,预处理至少包括对待检测域名数据进行离散向量化;将离散化的待检测域名数据输入经训练的神经网络模型,并输出分类结果。通过本申请,采用首先对域名数据预处理再输入至神经网络模型的方法,解决了对DGA域名检测准确率低,误报率高的问题,可以降低域名检测的误报率,提高域名检测准确率。

Description

基于深度学习的DGA域名检测方法、装置及计算机设备
技术领域
本申请涉及域名检测领域,特别是涉及基于深度学习的DGA域名检测方法、装置及计算机设备。
背景技术
目前僵尸网络中DGA域名被广泛使用,基于DGA的网络攻击行为越来越广泛。感染DGA恶意代码的主机会周期性生成大量域名,传统的黑名单拦截手段无法显现作用。僵尸网络使大量主机感染僵尸程序,从而在控制者和被感染主机之间形成一对多控制的网络。黑客可以利用僵尸网络用来发动诸如分布式拒绝服务攻击(Distributed Denial ofServices)、海量垃圾邮件等大规模网络攻击或者盗取机密信息、个人隐私等信息,对组织和个人的信息安全造成极大的危害。目前针对DGA域名检测也有许多检测方案,但由于检测模型仍不完善,因此检测准确率低,误报率较高。
针对域名检测准确率低、误报率较高的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种基于深度学习的DGA域名检测方法、装置及计算机设备,以至少解决相关技术中域名检测准确率低、误报率较高的问题。
第一方面,本申请实施例提供了一种基于深度学习的DGA域名检测方法,其特征在于,包括:获取待检测域名数据;对所述待检测域名数据进行预处理,得到离散化的待检测域名数据,其中,所述预处理至少包括对所述待检测域名数据进行离散向量化;将所述离散化的待检测域名数据输入经训练的神经网络模型,输出分类结果。在其中一些实施例中,所述对所述待检测域名数据进行预处理,得到离散化的待检测域名数据包括:获取预设的向量化格式;基于所述向量化格式将所述待检测域名数据转化为离散化的待检测域名数据。
在其中一些实施例中,获取预设的向量化格式包括:所述获取预设的向量化格式包括:获取第一训练域名数据;基于所述第一训练域名数据的字符特征,将所述第一训练域名数据转化为第一训练域名离散向量,其中,所述字符特征至少包括字母、数字和特殊字符,所述第一训练域名离散向量由字母以及数字组成;基于所述第一训练域名数据以及所述第一训练域名离散向量获取映射关系;基于所述映射关系获取所述向量化格式。
在其中一些实施例中,所述将所述离散向量数据输入经训练的神经网络模型前包括:获取第二训练域名数据以及每个所述第二训练域名数据的训练分类结果,所述第二训练域名数据为已知的域名数据集合,其中包含正常域名和DGA域名,所述训练分类结果为所述第二训练域名数据的分类结果;对所述第二训练域名数据进行预处理,得到离散化的第二训练向量域名数据;根据所述离散化的第二训练向量域名数据以及所述第二训练向量域名数据的分类结果建立训练集;基于所述训练集训练所述神经网络模型,得到经训练的神经网络模型。在其中一些实施例中,根据基于所述训练集训练所述神经网络模型,得到经训练的神经网络模型之后包括:获取第三训练域名数据以及每个所述第三训练域名数据的训练分类结果,所述第三训练域名数据为已知的域名数据集合,其中包含正常域名和DGA域名,所述训练分类结果为所述第三训练域名数据的分类结果;对所述第三训练域名数据进行预处理,得到离散化的第三训练向量域名数据;将所述离散化的第三训练向量域名数据以及所述第三训练向量域名数据的分类结果建立验证集;基于所述验证集对所述经训练的神经网络模型进行验证,验证所述经训练的神经网络模型是否满足预设条件。
在其中一些实施例中,将对待检测域名数据进行预处理,得到离散化的待检测域名数据还包括:利用填充函数将离散化的待检测域名数据补齐到预设向量维度。
在其中一些实施例中,根据分类结果判断域名数据为正常域名或DGA域名之后还包括:将判断结果存储到存储器中。
第二方面,本申请实施例提供了一种域名检测装置,其特征在于,包括:域名获取模块,用于获取待检测域名数据;预处理模块,用于将待检测域名数据预处理为离散向量数据,其中,预处理至少包括对域名数据进行离散向量化;域名判断模块,用于将离散化的待检测域名数据输入经训练的神经网络模型,输出分类结果。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上述第一方面的基于深度学习的DGA域名检测方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面的基于深度学习的DGA域名检测方法。
相比于相关技术,本申请实施例提供的基于深度学习的DGA域名检测方法,通过首先对待检测域名数据离散向量化,接着将离散向量化的数据输入到经训练的神经网络模型,从而输出对域名检测的分类结果,可以降低域名检测的误报率,提高域名检测准确率。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本申请一个实施例中基于深度学习的DGA域名检测方法的流程示意图;
图2是本申请一个实施例中基于深度学习的DGA域名检测方法的训练神经网络模型的流程示意图;
图3是根据本申请一个实施例中基于深度学习的DGA域名检测装置的结构框图;
图4是本申请一个实施例中计算机设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
由于DGA域名的检测可以应用在恶意域名、僵尸网络等众多重要的安全场景,因而是网络安全厂商重要的基础安全能力之一,目前公开的DGA域名检测方法主要有基于word2vec与LSTM相结合的深度学习模型、ngram与语言学统计特征相合的模型、词典与LSTM相结合的深度学习模型等其他模型,但这几类方法在实际环境中进行检测的时候误报率较高,实际效果与模型训练、测试阶段高达99%以上的精确率、召回率等指标相去甚远。
在自然语言处理sequence-to-sequence(seq2seq)问题中,当没有使用注意力机制时,编码层的最后一个隐藏层担负表达整个语句的任务,因而这种模型架构存在信息瓶颈的问题,整个语句的所有信息被迫通过最后隐藏层的向量来捕捉,因为该层是解码层的唯一输入。如果原语句的一些信息不在该向量,那么解码层无法正确翻译原语句。而注意力机制能解决信息瓶颈问题,其主要思路是将解码层的每一层隐藏层同编码层关联起来,采取点乘(dot product)得到注意力打分(attention score),再使用softmax激活函数得到注意力分布(attention distribution),进而对编码层的隐藏层使用加权和得到注意力输出(attention output)。注意力机制是今年来深度学习领域理论上一个大的突破,其基本原理来源于对人类认知的基础研究,其主要有以下几大优点:1)明显提供模型的性能;2)解决信息瓶颈问题;3)有益于解决梯度消失问题;4)提供一些模型的可解释性。本申请基于深度学习注意力机制检测DGA域名,目的是大幅提高DGA域名检测精确率,降低误报率。
请参阅图1,图1为本发明一实施例的基于深度学习的DGA域名检测方法的流程示意图。
本实施例中,基于深度学习的DGA域名检测方法包括:
S101,获取待检测域名数据。
其中,待检测域名数据为域名数据集合,是需要进行检测并分类的域名数据,至少包含正常域名数据和DGA域名数据。本方法目的是将正常域名数据和DGA域名数据区分开。
S102,对待检测域名数据进行预处理,得到离散化的待检测域名数据,其中,预处理至少包括对待检测域名数据进行离散向量化。
可以理解的,在本实施例中,对域名数据进行检测之前,需要得到离散化的待检测域名数据,通过预处理可以得到离散化的域名检测数据,本申请中,通过预处理可以得到离散向量格式的域名数据集合,基于该离散向量集合再进行域名检测,可以理解的,对域名数据进行离散向量化是有特殊格式的,此向量化格式基于已知域名数据得出,且可以将其用于未知域名的离散化。
S103,将离散化的待检测域名数据输入经训练的神经网络模型,输出分类结果。
本实施例中,神经网络模型是基于深度学习注意力机制的域名检测模型,将离散化的待检测域名数据输入至该模型中,即可以得到对域名的分类结果,经训练的神经网络模型是通过对初始神经网络模型训练后得到的,该神经网络模型具有域名检测能力。
上述基于深度学习的DGA域名检测方法,首先获取待检测域名数据;对待检测域名数据进行预处理,得到离散化的待检测域名数据,其中,预处理至少包括对待检测域名数据进行离散向量化;将离散化的待检测域名数据输入经训练的神经网络模型,输出分类结果。通过这种基于深度学习的DGA域名检测方法,不仅有效的提高了DGA域名检测精确度,降低了误报率。
在另一个实施例中,对待检测域名数据进行预处理,得到离散化的待检测域名数据包括:获取预设的向量化格式;基于向量化格式将待检测域名数据转化为离散化的待检测域名数据。本实施例中,对待检测域名数据进行预处理即需要获取向量化格式,该向量化格式可以将待检测域名数据转化为离散化的待检测域名数据。
在另一个实施例中,获取预设的向量化格式包括:获取第一训练域名数据;基于第一训练域名数据的字符特征,将第一训练域名数据转化为第一训练域名离散向量,其中,字符特征至少包括字母、数字和特殊字符,第一训练域名离散向量由字母以及数字组成;基于第一训练域名数据以及第一训练域名离散向量获取映射关系;基于映射关系获取向量化格式。
在本实施例中,需要基于第一训练域名数据来获取向量化格式,并通过此向量化格式将第一训练域名数据转化为离散向量。获取向量化格式,首先需要编写一个函数,对所有第一训练域名数据的每个字母、数字和特殊符号进行映射,形成一个只有字母与数字并与第一训练域名数据的字符特征对应的词典,该词典就是向量化格式。本实施例中,通过编写函数,基于第一训练域名数据得到第一训练域名离散向量,并获取其中的映射关系,并基于映射关系获取该向量化格式,并将该向量化格式存储,可用于对其他域名数据进行离散向量化。
在其中一个实施例中,将离散向量数据输入经训练的神经网络模型前包括:获取第二训练域名数据以及每个第二训练域名数据的训练分类结果,第二训练域名数据为已知域名分类结果的域名数据集合,其中包含正常域名和DGA域名,训练分类结果为第二训练域名数据的分类结果;对第二训练域名数据进行预处理,得到离散化的第二训练向量域名数据;根据离散化的第二训练向量域名数据以及第二训练向量域名数据的分类结果建立训练集;基于训练集训练神经网络模型,得到经训练的神经网络模型。
容易理解的,在将神经网络模型投入使用前需要对搭建好的神经网络模型进行训练,首先获取第二训练域名数据,以及第二训练域名数据对应的训练分类结果,即该域名是正常域名或DGA域名,接着将第二训练域名数据预处理为离散化的第二训练向量域名数据,通过预处理,可以保证训练时输入的域名数据的数据格式与实际检测时域名数据的数据格式相同,保证检测结果更准确,接着将离散化的第二训练域名数据以及第二训练域名数据的训练分类结果划为训练集,接着将离散化的第二训练域名数据输入到神经网络模型中,并基于训练分类结果调试模型中的参数,最终得到经训练的神经网络模型,本实施例中的方法在相同硬件下能一次性输入更多的高维度向量数据,且模型在真实环境测试时将误报率从40%、20%左右大幅下降至3%以内。
在另一个实施例中,基于训练集训练神经网络模型,得到经训练的神经网络模型之后包括获取第三训练域名数据以及每个第三训练域名数据的训练分类结果,第三训练域名数据为已知的域名数据集合,其中包含正常域名和DGA域名,训练分类结果为第三训练域名数据的分类结果;对第三训练域名数据进行预处理,得到离散化的第三训练向量域名数据;将离散化的第三训练向量域名数据以及第三训练向量域名数据的分类结果建立验证集;基于验证集对经训练神经网络模型进行验证,验证优化后的神经网络模型是否满足预设条件。
可以理解的,在得到经训练神经网络模型后,需要对其进行验证以判断训练结果,基于此,首先获取第三训练向量域名数据,接着将第三训练域名数据预处理为离散化的第三训练向量域名数据,通过预处理,可以保证训练时输入的域名数据的数据格式与实际检测时域名数据的数据格式相同,保证检测结果更准确,接着获取第三训练向量域名数据的分类结果,以离散化的第三训练向量域名数据和第三训练向量域名数据的分类结果建立验证集,将离散化的第三训练向量域名数据输入到经训练的神经网络模型中,获取检测结果,将检测结果与之前获取的分类结果进行比对,通过比对可以得到该神经网络模型对域名数据的判断准确率,当判断准确率满足预设条件时,说明该神经网络模型符合预设标准,预设标准可以通过用户设定。若判断准确率不满足预设条件,则重新对该神经网络模型进行训练以及验证。
在另一个实施例中,将对待检测域名数据进行预处理,得到离散化的待检测域名数据还包括:利用填充函数将离散化的待检测域名数据补齐到预设向量维度。
在本实施例中,首先对待检测域名预处理为离散化的待检测域名数据,还需要将离散化的待检测域名数据统一向量维度以用来导入神经网络模型,因此预设了一个向量维度,并利用keras的pad_sequences函数将所有的域名数据都保持在同一预设好的向量维度。相同向量维度的域名数据可以组成离散向量域名数据集合矩阵,利用该矩阵输入至神经网络模型中可以更方便的获取域名检测分类结果。
在其中一些实施例中,根据分类结果判断域名数据为正常域名或DGA域名之后还包括:将判断结果存储到存储器中。
在其中一个实施例中,将离散化的待检测域名数据输入至经训练的神经网络模型,经过如下过程:首先需要将离散向量化的域名数据集合进行Embedding,得到连续向量,接着将连续向量域名数据输入至Bidirectional LSTM层,再输入至注意力机制层,最后Dense层采用sigmoid激活函数输出分类结果。
Embedding是一种将离散向量或变量转为连续向量表示的一种方法。在深度学习中,通过Embedding一般能够减少离散向量或变量的空间维度,特别是通过转变为连续向量,相对于以往的One-Hot方法,Embedding方法不仅大幅减小向量维度,还使得不同词之间的相似度计算成为可能,并且Embedding是可学习的。
LSTM(Long Short-Term Memory)意为长短期记忆,作为非线性模型,LSTM可作为复杂的非线性单元用于构造更大型深度神经网络,而Bidirectional LSTM是LSTM的升级,在自然语言处理(NLP)中LSTM只能处理文本的前向关系,Bidirectional LSTM不仅可以处理前向关系还可以处理后向的关系。
注意力机制(Attention Mechanism)是一种资源分配方案,将有限的计算资源用来处理更重要的信息,是解决信息超载的主要手段。其主要包括注意力打分(AttentionScore)、注意力分布(Attention Distribution)、注意力输出(Attention Output)。其有多种变体,之间的区别主要在于注意力打分环节的不同。
在另一个实施例中,如图2所示,图2为基于深度学习的DGA域名检测方法的训练神经网络模型的流程示意图,包括:
S201,导入正常域名以及DGA域名。
S202,对导入的域名进行抽取域名、新建标签、数据框合并、shuffle等数据处理操作,目的是将导入的域名打乱并对其建立分类标签,并预留10%数据。
S203利用基于训练域名数据得到的词典对域名数据进行离散整数向量化,上述词典为向量化格式中的一种,并进行padding操作,目的是保持域名具有相同的向量维度。
S204,将离散整数向量化后的离散向量域名数据分为训练集和验证集。
S205,基于Embedding、Bidirectional LSTM、注意力机制等神经网络层构建基于深度学习注意力机制的域名检测模型。
S206,使用训练集和验证集对神经网络模型进行训练和验证,当模型评价符合预定要求时保存该模型。
S207,将之前预留的一部分数据进行离散整数向量化并导入该模型,进行最终测试,当该模型满足预设要求时,即得到训练后的神经网络模型。
S208,将该模型进行部署使用。
在另一个实施例中,得到经训练的神经网络模型的步骤包括:
S301,导入正常100万域名和120万使用DGA的域名。
S302,分别抽取90万正常域名和90万DGA域名,并将正常域名标签设为0,DGA域名标签设为1,调用pandas的concat函数和sklearn的shuffle函数依次进行数据框的整合和重新排序。余下的正常域名和DGA域名用于模型的测试,这些域名对于模型是从未见的域名,该步骤是为了防止数据泄露(data leak)。
S303,编写函数对当前已有的域名的每个字母、数字和特征符合进行映射,形成一个含有39个key-value的词典,该词典即向量化格式,并将其写入一txt文档以备模型测试以及模型部署之用;设定域名离散整数向量化的最大长度为40,使用该词典对所有140万的域名数据进行向量化,因为域名有长有短,所以再使用keras(人工神经网络库)的pad_sequences函数进行自动补齐,使得所有域名的离散整数向量化的维度保持一致。
S304,使用sklearn(机器学习库)的train_text_split函数将离散整数向量化后的域名数据及对应标签划分为训练集和验证集。
S305,首先编写注意力机制层,设定embedding size为128;接着编写检测模型,采用Keras API函数式编程方法,依序依次是embedding层、Dropout层参数设置0.7;Bidirectional LSTM使用relu激活函数,recurrent_dropout设为0.5,dropout设为0.8,注意力机制层参数设置为100,Dense层使用sigmoid激活函数,然后编译模型,优化器采用Adam算法,学习率使用1e-7,损失函数使用binary_crossentropy,metrics使用accuracy,该模型采用earlystopping策略。
S306,训练模型,验证集比例为20%,batch size设置为512,epochs为8,shuffle设置为True,模型验证集准确率达到97.75%,精确率达到98.99%,召回率达到96.47%,保存模型。
S307,在新环境导入之前保存的映射词典和模型,以及模型未见的正常域名数据以及DGA域名,各10万条,安装模型训练前根据词典对这些域名进行离散整数向量化,再进行padding操作,接着使用模型进行测试,得出对未见域名预测的精确率达到97.65%。
S308,在服务器安装Python以及TensorFlow、Pandas、Numpy包,并确保版本号一致,保证部署环境与开发环境的一致性即可进行部署。
本实施例还提供了一种域名检测装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图3是根据本申请实施例的域名检测装置的结构框图,如图3所示,该装置包括:
域名获取模块10,用于获取待检测域名数据。
预处理模块20,用于将待检测域名数据预处理为离散向量数据,其中,预处理至少包括对域名数据进行离散向量化。
预处理模块20,还用于获取预设的向量化格式;基于向量化格式将待检测域名数据转化为离散化的待检测域名数据。
预处理模块20,还用于获取第一训练域名数据;基于第一训练域名数据的字符特征,将第一训练域名数据转化为第一训练域名离散向量,其中,字符特征至少包括字母、数字和特殊字符,第一训练域名离散向量由字母以及数字组成;基于第一训练域名数据以及第一训练域名离散向量获取映射关系;基于映射关系获取向量化格式。
预处理模块20,还用于利用填充函数将离散化的待检测域名数据补齐到预设向量维度。
域名判断模块30,用于将离散化的待检测域名数据输入经训练的神经网络模型,输出分类结果。
域名检测装置,还包括:
神经网络模型训练模块,用于获取第二训练域名数据以及每个第二训练域名数据的训练分类结果,第二训练域名数据为已知的域名数据集合,其中包含正常域名和DGA域名,训练分类结果为第二训练域名数据的分类结果;对第二训练域名数据进行预处理,得到离散化的第二训练向量域名数据;根据离散化的第二训练向量域名数据以及第二训练向量域名数据的分类结果建立训练集;基于训练集训练神经网络模型,得到优化后的神经网络模型。
神经网络模型检测模块,用于获取第三训练域名数据以及每个第三训练域名数据的训练分类结果,第三训练域名数据为已知的域名数据集合,其中包含正常域名和DGA域名,训练分类结果为第三训练域名数据的分类结果;对第三训练域名数据进行预处理,得到离散化的第三训练向量域名数据;将离散化的第三训练向量域名数据以及第三训练向量域名数据的分类结果建立验证集;基于验证集对优化后的神经网络模型进行验证,验证优化后的神经网络模型是否满足预设条件。
存储模块,用于将判断结果存储到存储器中。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
另外,结合图1描述的本申请实施例基于深度学习的DGA域名检测方法可以由计算机设备来实现。图4为根据本申请实施例的计算机设备的硬件结构示意图。
计算机设备可以包括处理器41以及存储有计算机程序指令的存储器42。
具体地,上述处理器41可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器42可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器42可包括硬盘驱动器(Hard Disk Drive,简称为HDD)、软盘驱动器、固态驱动器(SolidState Drive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(Universal SerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器42可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器42可在数据处理装置的内部或外部。在特定实施例中,存储器42是非易失性(Non-Volatile)存储器。在特定实施例中,存储器42包括只读存储器(Read-Only Memory,简称为ROM)和随机存取存储器(RandomAccess Memory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(Programmable Read-Only Memory,简称为PROM)、可擦除PROM(Erasable ProgrammableRead-Only Memory,简称为EPROM)、电可擦除PROM(Electrically Erasable ProgrammableRead-Only Memory,简称为EEPROM)、电可改写ROM(Electrically Alterable Read-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(Static Random-Access Memory,简称为SRAM)或动态随机存取存储器(Dynamic Random Access Memory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器(Fast Page Mode Dynamic Random Access Memory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(Extended Date Out Dynamic RandomAccess Memory,简称为EDODRAM)、同步动态随机存取内存(Synchronous Dynamic Random-Access Memory,简称SDRAM)等。
存储器42可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器41所执行的可能的计算机程序指令。
处理器41通过读取并执行存储器42中存储的计算机程序指令,以实现上述实施例中的任意一种基于深度学习的DGA域名检测方法。
在其中一些实施例中,计算机设备还可包括通信接口43和总线40。其中,如图4所示,处理器41、存储器42、通信接口43通过总线40连接并完成相互间的通信。
通信接口43用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。通信接口43还可以实现与其他部件例如:外接设备、图像/数据采集设备、数据库、外部存储以及图像/数据处理工作站等之间进行数据通信。
总线40包括硬件、软件或两者,将计算机设备的部件彼此耦接在一起。总线40包括但不限于以下至少之一:数据总线(Data Bus)、地址总线(Address Bus)、控制总线(Control Bus)、扩展总线(Expansion Bus)、局部总线(Local Bus)。举例来说而非限制,总线40可包括图形加速接口(Accelerated Graphics Port,简称为AGP)或其他图形总线、增强工业标准架构(Extended Industry Standard Architecture,简称为EISA)总线、前端总线(Front Side Bus,简称为FSB)、超传输(Hyper Transport,简称为HT)互连、工业标准架构(Industry Standard Architecture,简称为ISA)总线、无线带宽(InfiniBand)互连、低引脚数(Low Pin Count,简称为LPC)总线、存储器总线、微信道架构(Micro ChannelArchitecture,简称为MCA)总线、***组件互连(Peripheral Component Interconnect,简称为PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(Serial AdvancedTechnology Attachment,简称为SATA)总线、视频电子标准协会局部(Video ElectronicsStandards Association Local Bus,简称为VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线40可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
该计算设备可以基于获取到的计算机指令,执行本申请实施例中的基于深度学习的DGA域名检测方法,从而实现结合图1描述的基于深度学习的DGA域名检测方法。
另外,结合上述实施例中的基于深度学习的DGA域名检测方法,本申请实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种基于深度学习的DGA域名检测方法。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种基于深度学习的DGA域名检测方法,其特征在于,包括:
获取待检测域名数据;
对所述待检测域名数据进行预处理,得到离散化的待检测域名数据,其中,所述预处理至少包括对所述待检测域名数据进行离散向量化;
将所述离散化的待检测域名数据输入经训练的神经网络模型,输出分类结果。
2.根据权利要求1所述的方法,其特征在于,所述对所述待检测域名数据进行预处理,得到离散化的待检测域名数据包括:
获取预设的向量化格式;
基于所述向量化格式将所述待检测域名数据转化为离散化的待检测域名数据。
3.根据权利要求2所述的方法,其特征在于,所述获取预设的向量化格式包括:
获取第一训练域名数据;
基于所述第一训练域名数据的字符特征,将所述第一训练域名数据转化为第一训练域名离散向量,其中,所述字符特征至少包括字母、数字和特殊字符,所述第一训练域名离散向量由字母以及数字组成;
基于所述第一训练域名数据以及所述第一训练域名离散向量获取映射关系;
基于所述映射关系获取所述向量化格式。
4.根据权利要求1所述的方法,其特征在于,所述将所述离散向量数据输入经训练的神经网络模型前包括:
获取第二训练域名数据以及每个所述第二训练域名数据的训练分类结果,所述第二训练域名数据为已知的域名数据集合,其中包含正常域名和DGA域名,所述训练分类结果为所述第二训练域名数据的分类结果;
对所述第二训练域名数据进行预处理,得到离散化的第二训练向量域名数据;
根据所述离散化的第二训练向量域名数据以及所述第二训练向量域名数据的分类结果建立训练集;
基于所述训练集训练所述神经网络模型,得到经训练的神经网络模型。
5.根据权利要求4所述的方法,其特征在于,根据基于所述训练集训练所述神经网络模型,得到经训练的神经网络模型之后包括:
获取第三训练域名数据以及每个所述第三训练域名数据的训练分类结果,所述第三训练域名数据为已知的域名数据集合,其中包含正常域名和DGA域名,所述训练分类结果为所述第三训练域名数据的分类结果;
对所述第三训练域名数据进行预处理,得到离散化的第三训练向量域名数据;将所述离散化的第三训练向量域名数据以及所述第三训练向量域名数据的分类结果建立验证集;
基于所述验证集对所述经训练的神经网络模型进行验证,验证所述经训练的神经网络模型是否满足预设条件。
6.根据权利要求1所述的方法,其特征在于,将对所述待检测域名数据进行预处理,得到离散化的待检测域名数据还包括:
利用填充函数将所述离散化的待检测域名数据补齐到预设向量维度。
7.根据权利要求1所述的方法,其特征在于,所述根据所述分类结果判断所述域名数据为正常域名或DGA域名之后还包括:
将所述判断结果存储到存储器中。
8.一种域名检测装置,其特征在于,包括:
域名获取模块,用于获取待检测域名数据;
预处理模块,用于将所述待检测域名数据预处理为离散向量数据,其中,所述预处理至少包括对域名数据进行离散向量化;
域名判断模块,用于将所述离散化的待检测域名数据输入经训练的神经网络模型,输出分类结果。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至7中任一项所述的方法。
CN202110142074.9A 2021-02-02 2021-02-02 基于深度学习的dga域名检测方法、装置及计算机设备 Active CN112966713B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110142074.9A CN112966713B (zh) 2021-02-02 2021-02-02 基于深度学习的dga域名检测方法、装置及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110142074.9A CN112966713B (zh) 2021-02-02 2021-02-02 基于深度学习的dga域名检测方法、装置及计算机设备

Publications (2)

Publication Number Publication Date
CN112966713A true CN112966713A (zh) 2021-06-15
CN112966713B CN112966713B (zh) 2024-03-19

Family

ID=76271822

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110142074.9A Active CN112966713B (zh) 2021-02-02 2021-02-02 基于深度学习的dga域名检测方法、装置及计算机设备

Country Status (1)

Country Link
CN (1) CN112966713B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113726730A (zh) * 2021-07-14 2021-11-30 国网山东省电力公司信息通信公司 基于深度学习算法的dga域名检测方法及***
CN114095176A (zh) * 2021-10-29 2022-02-25 北京天融信网络安全技术有限公司 一种恶意域名检测方法及装置
CN115955457A (zh) * 2023-03-10 2023-04-11 北京升鑫网络科技有限公司 恶意域名的检测方法、装置和电子设备
CN116074081A (zh) * 2023-01-28 2023-05-05 鹏城实验室 Dga域名检测方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103152222A (zh) * 2013-01-05 2013-06-12 中国科学院信息工程研究所 一种基于主机群特征检测速变攻击域名的方法
CN105939321A (zh) * 2015-12-07 2016-09-14 杭州迪普科技有限公司 一种dns攻击检测方法及装置
WO2019136953A1 (zh) * 2018-01-15 2019-07-18 深圳市联软科技股份有限公司 基于c&c域名分析的僵尸网络检测方法、装置、设备及介质
CN110807098A (zh) * 2019-09-24 2020-02-18 武汉智美互联科技有限公司 基于BiRNN深度学习的DGA域名检测方法
CN111125700A (zh) * 2019-12-11 2020-05-08 中山大学 一种基于主机关联性的dga家族分类方法
CN111628970A (zh) * 2020-04-24 2020-09-04 中国科学院计算技术研究所 一种dga型僵尸网络的检测方法、介质和电子设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103152222A (zh) * 2013-01-05 2013-06-12 中国科学院信息工程研究所 一种基于主机群特征检测速变攻击域名的方法
CN105939321A (zh) * 2015-12-07 2016-09-14 杭州迪普科技有限公司 一种dns攻击检测方法及装置
WO2019136953A1 (zh) * 2018-01-15 2019-07-18 深圳市联软科技股份有限公司 基于c&c域名分析的僵尸网络检测方法、装置、设备及介质
CN110807098A (zh) * 2019-09-24 2020-02-18 武汉智美互联科技有限公司 基于BiRNN深度学习的DGA域名检测方法
CN111125700A (zh) * 2019-12-11 2020-05-08 中山大学 一种基于主机关联性的dga家族分类方法
CN111628970A (zh) * 2020-04-24 2020-09-04 中国科学院计算技术研究所 一种dga型僵尸网络的检测方法、介质和电子设备

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113726730A (zh) * 2021-07-14 2021-11-30 国网山东省电力公司信息通信公司 基于深度学习算法的dga域名检测方法及***
CN114095176A (zh) * 2021-10-29 2022-02-25 北京天融信网络安全技术有限公司 一种恶意域名检测方法及装置
CN114095176B (zh) * 2021-10-29 2024-04-09 北京天融信网络安全技术有限公司 一种恶意域名检测方法及装置
CN116074081A (zh) * 2023-01-28 2023-05-05 鹏城实验室 Dga域名检测方法、装置、设备及存储介质
CN116074081B (zh) * 2023-01-28 2023-06-13 鹏城实验室 Dga域名检测方法、装置、设备及存储介质
CN115955457A (zh) * 2023-03-10 2023-04-11 北京升鑫网络科技有限公司 恶意域名的检测方法、装置和电子设备
CN115955457B (zh) * 2023-03-10 2023-05-30 北京升鑫网络科技有限公司 恶意域名的检测方法、装置和电子设备

Also Published As

Publication number Publication date
CN112966713B (zh) 2024-03-19

Similar Documents

Publication Publication Date Title
CN112966713A (zh) 基于深度学习的dga域名检测方法、装置及计算机设备
Melicher et al. Fast, lean, and accurate: Modeling password guessability using neural networks
US10956477B1 (en) System and method for detecting malicious scripts through natural language processing modeling
Ndichu et al. A machine learning approach to detection of JavaScript-based attacks using AST features and paragraph vectors
Opara et al. HTMLPhish: Enabling phishing web page detection by applying deep learning techniques on HTML analysis
CN112041815B (zh) 恶意软件检测
US10621343B1 (en) Generic and static detection of malware installation packages
US11580222B2 (en) Automated malware analysis that automatically clusters sandbox reports of similar malware samples
CN111159697B (zh) 一种密钥检测方法、装置及电子设备
EP3051767A1 (en) Method and apparatus for automatically identifying signature of malicious traffic using latent dirichlet allocation
Xiang et al. A word-embedding-based steganalysis method for linguistic steganography via synonym substitution
CN111866004B (zh) 安全评估方法、装置、计算机***和介质
Al-Wesabi A smart English text zero-watermarking approach based on third-level order and word mechanism of Markov model
Trieu et al. Document sensitivity classification for data leakage prevention with twitter-based document embedding and query expansion
CN108470126A (zh) 数据处理方法、装置及存储介质
CN113810375B (zh) webshell检测方法、装置、设备及可读存储介质
KR102434899B1 (ko) 악성코드 탐지모델 학습방법 및 악성코드 탐지방법
CN105243327A (zh) 一种文件安全处理方法
CN105468972A (zh) 一种移动终端文件检测方法
CN116302961A (zh) Android应用程序密码学误用检测方法及装置
CN110263540A (zh) 一种代码标识方法及装置
Pu et al. BERT‐Embedding‐Based JSP Webshell Detection on Bytecode Level Using XGBoost
Ban et al. Augmenting Android Malware Using Conditional Variational Autoencoder for the Malware Family Classification.
KR20210024748A (ko) Gan을 이용한 문서형 악성코드 탐지 장치 및 방법
US20240211596A1 (en) Malicious vba detection using graph representation

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant