一种自动生成的域名的检测方法及系统的制作方法

文档序号:9399239阅读:330来源:国知局
一种自动生成的域名的检测方法及系统的制作方法
【技术领域】
[0001] 本发明属于网络安全检测领域,具体涉及到一种通过算法自动生成的域名的检测 方法及系统。
【背景技术】
[0002] 域名通常为人为制定,且一个站点的对应的域名通常不做频繁改动。而算法自动 生成的域名是指通过计算机根据域名生成算法,并结合当前时间自动产生的。当前,部分攻 击者采用了算法自动生成域名技术来提高僵尸网络或者fast flux网络的生存性。由于新 域名随机生成,且可每天变换,因而传统的黑名单机制无法防御,大大增加了检测与处置的 难度。
[0003] 当前对算法自动生成的检测方法主要通过机器学习的策略进行,通过训练出来的 检测模型进行检测。该方法的不足在于需要有足够多,且需要各类生成算法的恶意域名样 本(即,算法自动生成的域名样本)。该类样本不易获得,且不易覆盖各类生成情况。

【发明内容】

[0004] 针对现有技术中存在的技术问题,本发明的目的在于提供一种算法自动生成域名 的检测方法,本发明只需要正常域名作为样本,样本较易获得。与已有的基于机器学习的方 法相比,训练和检测过程更加简单快捷,能够满足在线检测的需要。
[0005] 本发明的技术方案为:
[0006] -种自动生成的域名的检测方法,其步骤为:
[0007] 1)建立一样本集合,其中,样本集合中的样本域名均为正常域名;对于样本集合 中的每一样本域名:
[0008] 11)层域名长度异常训练子模块统计该样本域名的各层域名的长度分布,然后根 据所述异常分布计算各层域名的长度异常度;
[0009] 12)字符跳转异常训练子模块统计该样本域名的各层域名内字符间的跳转概率, 然后根据所述跳转概率计算对应层域名的字符跳转异常度;
[0010] 13)熵异常训练子模块统计并计算该样本域名中各字符在各层域名中的熵异常度 值,并计算各层域名中的字符熵异常度;
[0011] 14)域名异常度综合训练子模块根据上述计算得到的长度异常度、字符跳转异常 度和字符熵异常度计算得到该样本域名的总异常度;
[0012] 2)域名异常度综合训练子模块根据所有样本域名的总异常度设定一异常度阈 值;
[0013] 3)检测模块计算待检测域名的总异常度,如果该值大于设定异常度阈值,则认为 该待检测域名为自动生成的域名。
[0014] 进一步的,所述层域名熵异常度的计算方法:设第j层域名的熵异常度为DOTtropy, CN 105119876 A 说明书 2/5 页 则
其中,M为该样本域名第j层域名中的不同字符数,P1为字符 i的统计概率。
[0015] 进一步的,所述字符跳转异常度的计算方法为:设第j层域名的字符跳转异常度 为】
·,其中,N是指该样本域名第j层域名中的字符数量,第k个 字符对的跳转异常度
MXent是第j层域名中所有字符的跳转次数最大 值,Cntu是第j层域名中第k个字符对从第i个字符到第j字符的跳转次数。
[0016] 进一步的,长度为i的层域名长度异常度
Cnt1S该样本域名中 长度为i的层域名的数量,相同长度的层域名的数量最大值为CntMAX。
[0017] 进一步的,该样本域名中第1层域名的异常度为 α +β + γ = 1〇
[0018] 进一步的,该样本域名的总体异常度Z
L为该样本域名的层域名数。
[0019] -种自动生成的域名的检测系统,其特征在于,包括训练模块和检测模块;其中, 训练模块包括层域名长度异常训练子模块、字符跳转异常训练子模块、熵异常训练子模块 和域名异常度综合训练子模块;
[0020] 层域名长度异常训练子模块,用于统计每一样本域名的各层域名的长度分布,然 后根据所述异常分布计算各层域名的长度异常度;
[0021] 字符跳转异常训练子模块,用于统计每一样本域名的各层域名内字符间的跳转概 率,然后根据所述跳转概率计算对应层域名的字符跳转异常度;
[0022] 熵异常训练子模块,用于统计并计算每一样本域名中各字符在各层域名中的熵异 常度值,并计算各层域名中的字符熵异常度;
[0023] 域名异常度综合训练子模块,用于根据上述计算得到的长度异常度、字符跳转异 常度和字符熵异常度计算得到每一样本域名的总异常度,然后根据所有样本域名的总异常 度设定一异常度阈值;
[0024] 所述检测模块用于计算待检测域名的总异常度,如果该值大于设定异常度阈值, 则认为该待检测域名为自动生成的域名。
[0025] 与现有技术相比,本发明的积极效果为:
[0026] 本发明中的技术及系统能够满足在线实时处理的需求,训练简单,检测快捷,精度 较高,具有较好的实用性,如表1。
[0027] 表1为本发明检测结果表
[0028] υ?Ν 丄 uuiidOiO λ J o/ o

【附图说明】
[0029] 图1为本发明的系统流程图;
[0030] 图2为本发明系统结构图;
[0031] 图3为本发明检测实例流程图;
[0032] 图4为本发明部署方式一结构图;
[0033] 图5为本发明部署方式二结构图。
【具体实施方式】
[0034] 以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并 非用于限定本发明的范围。
[0035] 本发明公开了一种算法自动生成的检测方法及系统。该系统基于已有正常域名, 训练得到合法域名的行为轮廓,通过对可疑域名的异常度进行计算,能够有效发现算法自 动生成的域名。
[0036] (1)该系统流程图如图1所示:系统包括两个主要的处理流程:训练过程和检测过 程。通过对合法域名的训练,得到合法域名的异常度阈值;计算待检测域名的域名可疑度, 如果该值大于异常度阈值,则认为是算法自动生成的域名。
[0037] (2)该系统模块如图2所示。该系统包括训练模块和检测模块。训练模块包括: 层域名长度异常训练子模块、字符跳转异常训练子模块、熵异常训练子模块和域名异常度 综合训练子模块。检测模块包括:层域名长度异常检测子模块、字符跳转异常检测子模块、 熵异常检测子模块和域名异常度综合检测子模块。
[0038] 具体各子模块功能如下:
[0039] (1)层域名长度异常训练子模块:统计每一样本域名的各层域名的长度分布,并 计算正常域名的各层长度异常度。我们所有的样本均是正常域名。
[0040] (2)字符跳转异常训练子模块:统计得到各字符间的跳转概率,并计算各层正常 域名中的字符跳转异常度。比如对www. sina. com. cn而言,cn是第一层,com是第二层,sina 是它的第三层域名。我们关注第三层域名,假设在统计了样本的第三层域名字符跳转后,S 后面跟着i的次数是NI,s后面跟着所有字符的次数(包括跟着i)是N,则s后跟i的跳 转概率是N1/N。对于其他的熵异常或者长度异常,也都是指在统计某层域名中的概率。
[0041] (3)熵异常训练子模块:统计并计算各字符在各层域名中的熵异常度值,并计算 各层正常域名中的字符熵的异常度。
[0042] (4)域名异常度综合训练子模块:基于字符跳转异常训练子模块、熵异常训练子 模块和域名异常度综合训练子模块的异常度计算结果,计算得到正常域名的各层域名的异 常度,进而计算得到正常域名的总异常度。最终设定域名的异常度阈值。
[0043] (5)层域名长度异常检测子模块:根据层域名长度异常训练模块训练得到的各层 域名的长度分布,计算可疑域名的各层长度异常度。
[0044] (6)字符跳转异常检测子模块:根据字符跳转异常训练子模块统计得到各字
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1