恶意域名的检测方法和装置与流程

文档序号:27823550发布日期:2021-12-07 18:45阅读:401来源:国知局
恶意域名的检测方法和装置与流程

1.本公开涉及通信技术领域,特别涉及一种恶意域名的检测方法、恶意域名的检测装置和非易失性计算机可读存储介质。


背景技术:

2.近年来,越来越多的网络非法活动通过滥用域名系统,以达到其恶意目的。例如,网络诈骗犯注册外观与知名合法域名极其相似的新域名,并搭载钓鱼网站来欺骗网络用户。僵尸网络利用dga(domain generation algorithm,域名生成算法)批量生成大量用于僵尸网络命令与控制信道通信的域名,来逃避权威安全防御机构的封杀和屏蔽。
3.在相关技术中,从dns(domain name system,域名系统)流量、网页信息等数据中为每一个域名人为手动匹配特征,基于这些性特征进行恶意域名的检测。


技术实现要素:

4.本公开的发明人发现上述相关技术中存在如下问题:手动匹配的特征缺乏很好的鲁棒性,攻击者可以通过调整特征逃避检测,导致网络安全性差。
5.鉴于此,本公开提出了一种恶意域名的检测技术方案,能够提高提取的恶意域名的特征的鲁棒性,从而提高网络安全性。
6.根据本公开的一些实施例,提供了一种恶意域名的检测方法,包括:根据各域名的网络请求的时间顺序,对所述各域名进行排序,生成域名序列;根据所述域名序列中相邻域名的网络请求的时间间隔,对所述各域名进行聚类,获取各域名集合;以所述各域名的特征向量为变量,根据所述各域名集合的联合概率分布,利用最大似然估计方法计算所述各域名的特征向量;根据所述各域名的特征向量,利用机器学习模型,判断所述各域名是否为恶意域名。
7.在一些实施例中,所述以所述各域名的特征向量为变量,根据所述各域名集合的联合概率分布,利用最大似然估计方法计算所述各域名的特征向量包括:根据所述各域名集合的联合概率分布,确定所述域名序列的概率分布;根据所述域名序列的概率分布,确定目标函数;利用最大似然估计方法求解所述目标函数,获取所述各域名的特征向量。
8.在一些实施例中,所述根据所述各域名集合的联合概率分布,确定所述域名序列的概率分布包括:在所述域名序列的各域名集合中,分别将所有排序距离小于阈值的两个域名组合为域名对;根据各域名对的联合概率分布,计算所述各域名集合的联合概率分布。
9.在一些实施例中,所述根据所述各域名集合的联合概率分布,确定所述域名序列的概率分布包括:根据所述各域名对的联合概率分布的对数的加权和,计算所述各域名集合的联合概率分布的对数;根据所述各域名集合的联合概率分布的对数的加权和,计算所述域名序列的概率分布的对数。
10.在一些实施例中,所述根据所述域名序列的概率分布,确定目标函数包括:根据所述域名序列的概率分布的对数,确定所述目标函数。
11.在一些实施例中,所述根据各域名对的联合概率分布,计算所述各域名集合的联合概率分布包括:以域名对中一个域名的特征向量的转置与另一个域名的特征向量的向量积,作为sigmoid函数的变量,确定该域名对的联合概率分布。
12.在一些实施例中,所述根据所述域名序列中相邻域名的网络请求的时间间隔,对所述各域名进行聚类,得到各域名集合包括:将时间间隔小于阈值的相邻域名,划分到一个域名集合。
13.根据本公开的另一些实施例,提供一种恶意域名的检测装置,包括:生成单元,用于根据各域名的网络请求的时间顺序,对所述各域名进行排序,生成域名序列;聚类单元,用于根据所述域名序列中相邻域名的网络请求的时间间隔,对所述各域名进行聚类,获取各域名集合;计算单元,用于以所述各域名的特征向量为变量,根据所述各域名集合的联合概率分布,利用最大似然估计方法计算所述各域名的特征向量;判断单元,用于根据所述各域名的特征向量,利用机器学习模型,判断所述各域名是否为恶意域名。
14.在一些实施例中,所述计算单元根据所述各域名集合的联合概率分布,确定所述域名序列的概率分布,根据所述域名序列的概率分布,确定目标函数,利用最大似然估计方法求解所述目标函数,获取所述各域名的特征向量。
15.在一些实施例中,所述计算单元在所述域名序列的各域名集合中,分别将所有排序距离小于阈值的两个域名组合为域名对,根据各域名对的联合概率分布,计算所述各域名集合的联合概率分布。
16.在一些实施例中,所述计算单元根据所述各域名对的联合概率分布的对数的加权和,计算所述各域名集合的联合概率分布的对数,根据所述各域名集合的联合概率分布的对数的加权和,计算所述域名序列的概率分布的对数,根据所述域名序列的概率分布的对数,确定所述目标函数。
17.在一些实施例中,所述计算单元以域名对中一个域名的特征向量的转置与另一个域名的特征向量的向量积,作为sigmoid函数的变量,确定该域名对的联合概率分布。
18.在一些实施例中,所述聚类单元将时间间隔小于阈值的相邻域名,划分到一个域名集合。
19.根据本公开的又一些实施例,提供一种恶意域名的检测装置,包括:存储器;和耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器装置中的指令,执行上述任一个实施例中的恶意域名的检测方法。
20.根据本公开的再一些实施例,提供一种非易失性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一个实施例中的恶意域名的检测方法。
21.在上述实施例中,从网络请求中挖掘各域名潜在的时间伴随关系,并基于这种伴随关系提取作为检测依据的各域名的特征向量。这样,提高了提取的恶意域名的特征的鲁棒性,从而提高网络安全性。
附图说明
22.构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
23.参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
24.图1示出本公开的恶意域名的检测方法的一些实施例的流程图;
25.图2示出本公开的恶意域名的检测方法的一些实施例的示意图;
26.图3示出本公开的恶意域名的检测方法的另一些实施例的示意图;
27.图4示出本公开的恶意域名的检测方法的另一些实施例的流程图;
28.图5示出本公开的恶意域名的检测装置的一些实施例的框图;
29.图6示出本公开的恶意域名的检测装置的另一些实施例的框图;
30.图7示出本公开的恶意域名的检测装置的又一些实施例的框图。
具体实施方式
31.现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
32.同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
33.以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
34.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
35.在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
36.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
37.如前所述,为了解决人工提取的恶意域名特征鲁棒性差,导致网络安全性下降的技术问题,本公开的发明人经研究发现,域名的网络请求之间不是彼此独立的,而是存在时间相似、伴随共现的特性。即彼此具有时间伴随性的域名之间存在紧密关联。
38.因此,本公开基于域名的网络请求之间的时间伴随关系,提出一种恶意域名的检测技术方案,以提高恶意域名的特性鲁棒性,从而提高网络安全性。例如,可以通过下面的实施例来实现上述技术方案。
39.图1示出本公开的恶意域名的检测方法的一些实施例的流程图。
40.如图1所示,该方法包括:步骤110,生成域名序列;步骤120,获取域名集合;步骤130,计算特征向量;和步骤140,判断恶意域名。
41.在步骤110中,根据各域名的网络请求的时间顺序,对各域名进行排序,生成域名序列。例如,可以从dns流量中获取各域名的网络请求,按照网络请求的时间顺序将各域名排列为域名序列s。
42.在步骤120中,根据域名序列中相邻域名的网络请求的时间间隔,对各域名进行聚类,获取各域名集合。例如,将时间间隔小于阈值的相邻域名,划分到一个域名集合。即将具有时间伴随关系的域名划分到同一簇中。
43.在一些实施例中,可以通过图2中的实施例将各域名划分到不同的域名集合中。
44.图2示出本公开的恶意域名的检测方法的一些实施例的示意图。
45.如图2所示,可以从dns流量中获取各域名d
i
的网络请求及其请求时间t
i
。例如,在一段时间内共有10个域名(d1~d
10
)发出了网络请求。
46.计算每两个域名的网络请求之间的时间间隔,将时间间隔小于与值的域名划分到一个域名集合s
j
。例如,可以生产具有时间伴随关系的域名集合s1={d1,d2}和s2={d4,d5,d6,d7,d8,d9}。还可以将与其他任一个域名都不具有时间伴随关系的域名划分到非时间伴随的域名集合中,如{d3,d
10
}。
47.在划分了域名集合后,就可以通过图1中的其他步骤检测恶意域名。
48.在步骤130中,以各域名的特征向量为变量,根据各域名集合的联合概率分布,利用最大似然估计方法计算各域名的特征向量。
49.在一些实施例中,根据各域名集合的联合概率分布,确定域名序列的概率分布。根据域名序列的概率分布,确定目标函数。利用最大似然估计方法求解目标函数,获取各域名的特征向量。
50.例如,域名序列s={s1,s2,

,s
j


,s
j
},每个s
j
均包含若干个具有时间伴随关系的域名d
i
。可以根据如下公式设置最大似然估计方法的目标函数:
[0051][0052]
p(s)为域名序列的概率分布,p(s
j
)为各域名集合的联合概率分布,p(s
j
)以s
j
中包含的d
i
的特征向量v
i
为变量。利用最大似然估计方法求解目标函数,计算使得p(s)取得最大值时的各v
i

[0053]
在一些实施例中,在域名序列的各域名集合中,分别将所有排序距离小于阈值的两个域名组合为域名对;根据各域名对的联合概率分布,计算各域名集合的联合概率分布。例如,可以通过图3中的实施例组合域名对。
[0054]
图3示出本公开的恶意域名的检测方法的另一些实施例的示意图。
[0055]
如图3所示,对于域名集合s2={d4,d5,d6,d7,d8,d9},可以根据排序距离的阈值设置一个滑动窗口。例如,滑动窗口的长度为2,即排序距离的阈值为2,将s2中d
i
前后距离小于等于2的域名d
k
与d
i
组合成域名对。
[0056]
在一些实施例中,可以按照域名集合s2中d
i
的排列顺序,依次确定当前域名(图中斜线阴影方框),然后以当前域名为中心,将当前域名所在的前后滑动窗口内的其他域名(图中点状阴影方框)与当前域名组合成域名对。
[0057]
例如,当前域名为d4,滑动窗口内包含域名为d5、d6,则域名对为(d4,d5)、(d4,d6)。按照顺序,当前域名变为d5,滑动窗口内包含域名为d4、d6、d7,则域名对为(d5,d4)、(d5,d6)、(d5,d7)。以此类推,可以确定s2中所有的域名对。
[0058]
在一些实施例中,根据各域名对的联合概率分布的对数的加权和,计算各域名集合的联合概率分布的对数。根据各域名集合的联合概率分布的对数的加权和,计算域名序列的概率分布的对数。根据域名序列的概率分布的对数,确定目标函数。例如,目标函数可以根据如下公式设置:
[0059][0060]
p(d
i
,d
k
)为一个域名对中d
i
、d
k
的联合概率分布,

为正比例关系符号。
[0061]
在一些实施例中,以域名对中一个域名的特征向量的转置与另一个域名的特征向量的向量积,作为sigmoid函数(也可以是其他s形函数)的变量,确定该域名对的联合概率分布。例如,可以利用如下的公式作为激活函数计算p(d
i
,d
k
):
[0062][0063]
例如,可以通过迭代方式计算目标函数最大化时,域名d
i
在r
d
空间的特征向量v
i

[0064]
求解目标函数后,即可得到各域名的特征向量,可以通过图1中的其他步骤检测恶意域名。
[0065]
在步骤140中,根据各域名的特征向量,利用机器学习模型,判断各域名是否为恶意域名。例如,可以训练机器学习模型作为分类器,用于检测恶意域名。
[0066]
图4示出本公开的恶意域名的检测方法的另一些实施例的流程图。
[0067]
如图4所示,在步骤410中,从dns流量数据中,获取各域名的网络请求及其请求时间。
[0068]
在一些实施例中,步骤420、430可以由域名序列时间关系聚类模块执行。
[0069]
在步骤420中,利用各域名的网络请求的先后时间顺序,对各域名进行排序生成域名序列。
[0070]
在步骤430中,按照时间间隔,对域名序列中的各域名进行聚类操作,将有时间伴随关系的域名划分到同一簇中,形成时间伴随域名集合。
[0071]
在一些实施例中,d是通过dns服务器监听到的dns流量数据。d可以分解为不同终端用户的dns请求集合,即d={u
n
,d
n
}。u
n
为终端用户,d
n
={(d1,t1),(d2,t2),

,(d
i
,t
i
),

(d
i
,t
i
)}为各域名的dns请求在时间轴上分布的集合,(d
i
,t
i
)代表用户u
n
在时间t
i
的域名d
i

[0072]
在一些实施例中,可以基于dns请求的时间聚类性质,和域名的dns请求的时间伴随性质,对域名序列进行聚类分割。
[0073]
例如,如果相邻的2个域名的dns请求的时间间隔大于阈值,则将这2个域名划分到不同的域名集合中;反之,则划分到同一个域名集合中。这样,可以将域名序列划分为时间相关的多个域名集合,即为从dns流量d中提取的时间伴随域名集合。
[0074]
在一些实施例中,步骤440~460可以由时空伴随域名特征学习模块执行。
[0075]
在步骤440中,利用滑动窗口方式将时间伴随域名集合划分为具有时间伴关系的随域名对。
[0076]
在一些实施例中,为了降低域名集合的极大似然概率求取的复杂度,可以采用滑动窗口方式将域名集合划分为多个域名对。例如,可以设定窗口大小为2,将域名集合划分为多个域名对。可以根据图3中的方式,将包含5个域名的域名集合的滑动窗口大小设定为2(以当前域名为中心,前后距离均为2的窗口),并划分域名对。
[0077]
在步骤450中,利用激活函数表示域名对联合概率,以确定最大似然估计方法的目
标函数。
[0078]
在步骤460中,通过迭代最大化联合概率求取域名的特征向量。
[0079]
在步骤470中,结合有标记的域名样本数据,训练恶意域名检测分类器(机器学习模型),用于检测更多未知恶意域名。
[0080]
上述实施例中,基于时间间隔的域名序列分割算法,能有效地从dns流量中提取具有伴随关系的域名集合。利用无监督的域名张量化算法,将每一个域名映射为低维空间的特征向量,并保留域名彼此之间的伴随关系。基于具有伴随关系的与铭记和,能够自动地从原始dns流量挖掘域名的潜在时间伴随关系,用于检测恶意域名。
[0081]
这样,能够自动从dns流量中挖掘潜在的域名伴随关系,并映射为特征向量,无需人工专家经验,省去人工设计特征的繁杂工作。利用网络请求的时间顺序挖掘伴随关系,无需额外的附加信息。而且,这样能够处理不具有正常应答的恶意域名;将具有伴随关系的域名进行了聚类,可以用于恶意域名团伙发现。
[0082]
图5示出本公开的恶意域名的检测装置的一些实施例的框图。
[0083]
如图5所示,恶意域名的检测装置5包括生成单元51、聚类单元52、计算单元53和判断单元5。
[0084]
生成单元51根据各域名的网络请求的时间顺序,对各域名进行排序,生成域名序列。
[0085]
聚类单元52根据域名序列中相邻域名的网络请求的时间间隔,对各域名进行聚类,获取各域名集合。
[0086]
在一些实施例中,聚类单元52将时间间隔小于阈值的相邻域名,划分到一个域名集合。
[0087]
计算单元53以各域名的特征向量为变量,根据各域名集合的联合概率分布,利用最大似然估计方法计算各域名的特征向量。
[0088]
在一些实施例中,计算单元53根据各域名集合的联合概率分布,确定域名序列的概率分布;计算单元53根据域名序列的概率分布,确定目标函数;计算单元53利用最大似然估计方法求解目标函数,获取各域名的特征向量。
[0089]
在一些实施例中,计算单元53在域名序列的各域名集合中,分别将所有排序距离小于阈值的两个域名组合为域名对;计算单元53根据各域名对的联合概率分布,计算各域名集合的联合概率分布。
[0090]
在一些实施例中,计算单元53根据各域名对的联合概率分布的对数的加权和,计算各域名集合的联合概率分布的对数;计算单元53根据各域名集合的联合概率分布的对数的加权和,计算域名序列的概率分布的对数;计算单元53根据域名序列的概率分布的对数,确定目标函数。
[0091]
在一些实施例中,计算单元53以域名对中一个域名的特征向量的转置与另一个域名的特征向量的向量积,作为sigmoid函数的变量,确定该域名对的联合概率分布。
[0092]
判断单元54根据各域名的特征向量,利用机器学习模型,判断各域名是否为恶意域名。
[0093]
图6示出本公开的恶意域名的检测装置的另一些实施例的框图。
[0094]
如图6所示,该实施例的恶意域名的检测装置6包括:存储器61以及耦接至该存储
器61的处理器62,处理器62被配置为基于存储在存储器61中的指令,执行本公开中任意一个实施例中的恶意域名的检测方法。
[0095]
其中,存储器61例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(boot loader)、数据库以及其他程序等。
[0096]
图7示出本公开的恶意域名的检测装置的又一些实施例的框图。
[0097]
如图7所示,该实施例的恶意域名的检测装置7包括:存储器710以及耦接至该存储器710的处理器720,处理器720被配置为基于存储在存储器710中的指令,执行前述任意一个实施例中的恶意域名的检测方法。
[0098]
存储器610例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(boot loader)以及其他程序等。
[0099]
恶意域名的检测装置7还可以包括输入输出接口730、网络接口740、存储接口750等。这些接口730、740、750以及存储器710和处理器720之间例如可以通过总线760连接。其中,输入输出接口730为显示器、鼠标、键盘、触摸屏、麦克、音箱等输入输出设备提供连接接口。网络接口740为各种联网设备提供连接接口。存储接口750为sd卡、u盘等外置存储设备提供连接接口。
[0100]
本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0101]
至此,已经详细描述了根据本公开的恶意域名的检测方法、恶意域名的检测装置和非易失性计算机可读存储介质。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
[0102]
可能以许多方式来实现本公开的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和系统。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
[0103]
虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改。本公开的范围由所附权利要求来限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1