恶意域名检测方法、设备、电子设备及存储介质转让专利

申请号 : CN202111177451.9

文献号 : CN114070819B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 秦素娟夏方龙高飞金正平赵春辉

申请人 : 北京邮电大学

摘要 :

本公开提供的一种恶意域名检测方法、设备、电子设备及存储介质,包括:确定待检测域名的域名信息及绝对路径信息;对域名信息进行特征统计,对绝对路径信息进行数据切分;基于参照域名列表,进行域名差异判断,判断待检测域名是否为相似域名;若是,基于第三方检测工具对待检测域名进行恶意判断;输出判断结果,并对待检测域名执行信任操作或隔离操作。本公开利用了恶意相似域名的判定特征,为待检测域名和参照域名列表设计匹配规则,让待检测域名能够快速的匹配出可能被仿冒的合法域名,为实时检测网络流量中的恶意相似域名提供了快速检测方案,适用于大部分的恶意相似流量检测工程,覆盖程度高,且方法简单有效,高效率的同时便于实施操作。

权利要求 :

1.一种恶意域名检测方法,包括:

获取待检测域名,确定所述待检测域名对应的域名信息及绝对路径信息;

对所述域名信息进行特征统计,生成特征数据,对所述绝对路径信息进行数据切分,生成切分数据;

基于预设的参照域名列表,对所述特征数据及所述切分数据进行域名差异判断,判断所述待检测域名是否为相似域名;

响应于所述待检测域名为相似域名,基于第三方检测工具对所述待检测域名进行恶意判断;

输出判断结果,并基于所述判断结果对所述待检测域名执行信任操作或隔离操作;

其中,所述对所述域名信息进行特征统计,生成特征数据,包括:统计所述域名信息中字符的字符长度、每个字符的种类及字符间的相对位置关系,以此生成所述特征数据;

所述基于预设的参照域名列表,对所述特征数据及所述切分数据进行域名差异判断,判断所述待检测域名是否为相似域名,包括:确定所述特征数据与所述参照域名列表中的每个参照域名之间的字符长度差异、字符变换差异及最小编辑距离;

当所述字符长度差异、所述字符变换差异和/或所述最小编辑距离小于设定阈值时,确定所述待检测域名为当前参照域名的相似域名。

2.根据权利要求1所述的方法,其中,所述获取待检测域名,包括:判断当前时间是否在预设时间段内;

响应于当前时间在预设时间段内,监控超文本传输协议流量,在所述超文本传输协议流量中抓取所述待检测域名。

3.根据权利要求2所述的方法,其中,所述获取待检测域名之后,还包括:基于预设的白名单列表及黑名单列表,检测所述待检测域名是否属于所述白名单列表或所述黑名单列表;

响应于所述待检测域名属于所述白名单列表,对所述待检测域名执行信任操作;

响应于所述待检测域名属于所述黑名单列表,对所述待检测域名执行隔离操作。

4.根据权利要求1所述的方法,其中,所述对所述绝对路径信息进行数据切分,生成切分数据,包括:通过神经语言程序学算法对所述绝对路径信息进行切分生成对应的字符数组,以此生成所述切分数据。

5.根据权利要求4所述的方法,其中,所述基于预设的参照域名列表,对所述特征数据及所述切分数据进行域名差异判断,判断所述待检测域名是否为相似域名,包括:确定所述参照域名列表中每个参照域名的参照数组,比对所述参照数组与所述字符数组,响应于比对成功,确定所述待检测域名为当前参照域名的相似域名。

6.一种恶意域名检测设备,包括:

获取模块,用于获取待检测域名,确定所述待检测域名对应的域名信息及绝对路径信息;

处理模块,用于对所述域名信息进行特征统计,生成特征数据,对所述绝对路径信息进行数据切分,生成切分数据;

判断模块,用于基于预设的参照域名列表,对所述特征数据及所述切分数据进行域名差异判断,判断所述待检测域名是否为相似域名;

检测模块,用于响应于所述待检测域名为相似域名,基于第三方检测工具对所述待检测域名进行恶意判断;

输出模块,用于输出判断结果,并基于所述判断结果对所述待检测域名执行信任操作或隔离操作;

其中,所述对所述域名信息进行特征统计,生成特征数据,包括:统计所述域名信息中字符的字符长度、每个字符的种类及字符间的相对位置关系,以此生成所述特征数据;

所述基于预设的参照域名列表,对所述特征数据及所述切分数据进行域名差异判断,判断所述待检测域名是否为相似域名,包括:确定所述特征数据与所述参照域名列表中的每个参照域名之间的字符长度差异、字符变换差异及最小编辑距离;

当所述字符长度差异、所述字符变换差异和/或所述最小编辑距离小于设定阈值时,确定所述待检测域名为当前参照域名的相似域名。

7.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1至5任一项所述的方法。

8.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机实现权利要求1至5任一项所述的方法。

说明书 :

恶意域名检测方法、设备、电子设备及存储介质

技术领域

[0001] 本公开涉及计算机技术领域,尤其涉及一种恶意域名检测方法、设备、电子设备及存储介质。

背景技术

[0002] 恶意域名是指具有恶意链接的网址,这种网址通常利用应用软件或浏览器的漏洞,在网站内植入木马、病毒程序等恶意代码,并利用伪装的网站服务内容来诱导用户访问,从而攻击用户的终端设备,获取用户的隐私信息;因此,恶意域名具有较大的网络安全隐患,需要对其进行检测。
[0003] 恶意域名对网络用户和知名互联网品牌的危害比较大,随着科技的发展,恶意域名的相似种类越来越多,但现有的检测方法能够检测的恶意域名种类数量少,覆盖程度不高,检测的效率也较为低下。

发明内容

[0004] 有鉴于此,本公开的目的在于提出一种恶意域名检测方法、设备、电子设备及存储介质。
[0005] 基于上述目的,本公开提供了一种恶意域名检测方法,包括:
[0006] 获取待检测域名,确定所述待检测域名对应的域名信息及绝对路径信息;
[0007] 对所述域名信息进行特征统计,生成特征数据,对所述绝对路径信息进行数据切分,生成切分数据;
[0008] 基于预设的参照域名列表,对所述特征数据及所述切分数据进行域名差异判断,判断所述待检测域名是否为相似域名;
[0009] 响应于所述待检测域名为相似域名,基于第三方检测工具对所述待检测域名进行恶意判断;
[0010] 输出判断结果,并基于所述判断结果对所述待检测域名执行信任操作或隔离操作。
[0011] 基于同一构思,本公开还提供了一种恶意域名检测设备,包括:
[0012] 获取模块,用于获取待检测域名,确定所述待检测域名对应的域名信息及绝对路径信息;
[0013] 处理模块,用于对所述域名信息进行特征统计,生成特征数据,对所述绝对路径信息进行数据切分,生成切分数据;
[0014] 判断模块,用于基于预设的参照域名列表,对所述特征数据及所述切分数据进行域名差异判断,判断所述待检测域名是否为相似域名;
[0015] 检测模块,用于响应于所述待检测域名为相似域名,基于第三方检测工具对所述待检测域名进行恶意判断;
[0016] 输出模块,用于输出判断结果,并基于所述判断结果对所述待检测域名执行信任操作或隔离操作。
[0017] 基于同一构思,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上任一项所述的方法。
[0018] 基于同一构思,本公开还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机实现如上任一项所述的方法。
[0019] 从上面所述可以看出,本公开提供的一种恶意域名检测方法、设备、电子设备及存储介质,包括:获取待检测域名,确定待检测域名的域名信息及绝对路径信息;对域名信息进行特征统计,生成特征数据,对绝对路径信息进行数据切分,生成切分数据;基于参照域名列表,对特征数据及切分数据进行域名差异判断,判断待检测域名是否为相似域名;响应于所述待检测域名为相似域名,基于第三方检测工具对待检测域名进行恶意判断;输出判断结果,并对待检测域名执行信任操作或隔离操作。本公开利用了恶意相似域名的判定特征,为待检测域名和参照域名列表设计匹配规则,让待检测域名能够快速的匹配出可能被仿冒的合法域名,为实时检测网络流量中的恶意相似域名提供了快速检测方案,适用于大部分的恶意相似流量检测工程,覆盖程度高,且方法简单有效,高效率的同时便于实施操作。

附图说明

[0020] 为了更清楚地说明本公开实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0021] 图1为本公开实施例提出的一种恶意域名检测方法的流程示意图;
[0022] 图2为本公开实施例提出的一种恶意域名检测方法在具体应用场景中的工作过程流程示意图;
[0023] 图3为本公开实施例提出的一种恶意域名检测设备的结构示意图;
[0024] 图4为本公开实施例提出的电子设备结构示意图。

具体实施方式

[0025] 为使本说明书的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本说明书进一步详细说明。
[0026] 需要说明的是,除非另外定义,本公开实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件、物件或者方法步骤涵盖出现在该词后面列举的元件、物件或者方法步骤及其等同,而不排除其他元件、物件或者方法步骤。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
[0027] 如背景技术部分所述,HTTP(Hyper Text Transfer Protocol,超文本传输协议)使用统一资源定位符来和服务器建立连接和传输数据。一条符合规范的统一资源定位符对应的是某一服务器的特定资源,而统一资源定位符中的服务器地址和文件路径是用户经常关注的部分。恶意攻击者就是利用以上两个部分与合法域名制造差异创建恶意相似域名来迷惑普通用户上当受骗。比如域名抢注行为,就是注册和现有品牌和商标混淆的域名行为,这种域名抢注行为已非常普遍,例如冒充原始网站以窃取流量、获取用户的敏感信息、分发广告和恶意软件,从而给用户和目标品牌造成麻烦。另外还有恶意组合抢注域名,恶意域名制造者通过向目标域名字符(也就是服务器的地址)添加其他关键词的方式注册新的域名,又或者将目标域名的字符添加在URL(Uniform Resource Locator,统一资源定位器)的文件路径中来迷惑普通用户访问恶意相关域名。这种域名可以用于钓鱼、恶意软件传播、APT攻击(Advanced Persistent Threat,定向威胁攻击)和品牌滥用等行为,这样的域名规模庞大、达到了百万量级,并且活跃的时间不短。案例分析表明,已有一些恶意相似域名被用于恶意攻击行为。
[0028] 从恶意相似域名的现状来看,恶意相似域名的检测方法,具体如下。
[0029] 根据待检测域名利用模型生成可疑相似域名字符来检测的方法。这类检测方法通常根据待检测域名的二级域名信息,进行指定编辑距离的字符替换、删除、重复、互换顺序和少点操作来生成可疑抢注域名列表,再根据可疑抢注域名列表信息进行域名的验证工作。一方面该方法的变化方式固定,不能够检测灵活多变的组合抢注域名,另一方面由于该方法使用待检测域名做相似字符变化,所以随着域名字符的增长,所需要验证的DNS数量也会不断的增加,耗费的时间也要增加,所以这类检测方法的效率较低。
[0030] 根据待检测域名利用参照域名列表配合相似字符对列表的检测方法。此类检测方法主要针对Homoglyph类型的恶意相似域名,检测那些利用视觉上相似的Unicode字符替换知名域中字符的现象。由于此类检测方案采用逐字符比对检测,所以检测的效率较低,另外只能检测同形异义一种类型的恶意相似域名。
[0031] 利用单位时间内被捕捉到的域名做彼此间相似判定的检测方法。选取服务器固定时间段内的所有的域名信息,其认为用户访问到错误的域名网站后,会接着访问正确的域名网站,在访问正确的域名网站后不会再查找错误的域名网站,基于这个思想该文献划分目标域名集和错拼抢注域名集。由于该方案依赖于用户的自主纠错,若用户不能察觉使用了错误网站,此方法就检测不出这条恶意流量。
[0032] 结合上述实际情况,本公开实施例提出了一种恶意域名检测方案,利用了恶意相似域名的判定特征,为待检测域名和参照域名列表设计匹配规则,让待检测域名能够快速的匹配出可能被仿冒的合法域名,为实时检测网络流量中的恶意相似域名提供了快速检测方案,适用于大部分的恶意相似流量检测工程,覆盖程度高,且方法简单有效,高效率的同时便于实施操作。
[0033] 参考图1所示,为公开的一种恶意域名检测方法的流程示意图,具体包括以下步骤:
[0034] 步骤101,获取待检测域名,确定所述待检测域名对应的域名信息及绝对路径信息。
[0035] 本步骤旨在,得到需要检测的待检测域名,并在其中解析出对应的域名信息及绝对路径信息,方便之后步骤针对域名信息及绝对路径信息进行相似性检测,以确定待检测域名是否是相似域名。
[0036] 其中,域名(Domain Name),又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。之后,域名信息及绝对路径信息可以理解为用户访问目标网站的域名信息与用户访问资源的具体路径信息两个字段信息,即requestHost和requestURL。
[0037] 在具体应用场景中,利用shell脚本文件配合crontab定时工具来监控网卡的HTTP流量。通过crontab定时工具抓取指定时间段的HTTP流量,并将保存的pcap包以抓取的时间命名保存在输出的路径中。之后,解析pcap数据包,解析流程中主要解析的核心字段是srcIP(源IP地址)、srcPort(源端口)、distIP(目的IP地址)、distPort(目的端口)、requestTimestamp(HTTP抓包时间戳)、requestHost(初始url中的主机和端口)、requestURL(访问的资源绝对路径)等。进而跟进待检测域名确定对应的域名信息及绝对路径信息。
[0038] 步骤102,对所述域名信息进行特征统计,生成特征数据,对所述绝对路径信息进行数据切分,生成切分数据。
[0039] 本步骤旨在,对域名信息及绝对路径信息分别进行处理,生成能够进行域名相似度确认的特定数据。
[0040] 本步骤的作用是根据恶意相似域名的种类划分对前一步骤获取到的信息进行处理,以生成对应的用于鉴定的数据。在具体应用场景中,总结恶意相似域名大致种类的字符特征,可分为:(1)字符突变:指恶意相似域名的某一位和被仿冒的合法域名不同,如:“baido.com”相对于“baidu.com”;(2)添加字符:指恶意相似域名比被仿冒的合法域名多一位字符,如:“baiduo.com”相对于“baidu.com”;(3)删除字符:指恶意相似域名比被仿冒的合法域名少一位字符,如:“baid.com”相对于“baidu.com”;(4)交换字符:指恶意相似域名和被仿冒的合法域名相比有两个字符交换了位置,如“baiud.com”相对于“baidu.com”;(5)组合抢注:指恶意相似域名比被仿冒的合法域名多一串不相干的字符,如“baidu‑book.com”相对于“baidu.com”。针对上述不同种类的恶意相似域名,对于域名信息,提取该字段中的二级域名信息,然后根据二级域名的字符特征统计出他的字符长度和所包含的字符种类,以此生成特征数据;对于绝对路径信息,为了检测出组合抢注这种情况,可以通过NLP(Neuro‑Linguistic Programming,神经语言程序学)一元算法学习参照域名列表中域名的核心字符,使用学习后的N‑gram算法对绝对路径信息进行切分,将切分出来的结果保存为字符数组,以此生成切分数据。
[0041] 步骤103,基于预设的参照域名列表,对所述特征数据及所述切分数据进行域名差异判断,判断所述待检测域名是否为相似域名。
[0042] 本步骤旨在,基于参照域名列表对特征数据及切分数据进行差异判断,以此确定是否为相似域名,以此判断待检测域名是否需要进行恶意相似域名检测。
[0043] 其中,参照域名列表即为合法域名列表,也就是恶意相似域名容易仿冒的对象。可以选取流行域中常被访问的域名作为参照域名列表,再提取域名关键信息,为了后期相似域名筛选工作做准备。其中可以统计参照域名列表中每一个域名的排名、域名全称、二级域名、顶级域名、二级域名的长度及字符种类等等信息。并按长度保存为list数组和按核心字符保存为map映射对,以此方便进行字符差异判断。
[0044] 之后,进行域名差异判断,对于特征数据可以通过核心字符与参照域名列表中核心字符之间的长度差异、字符差异、最小编辑距离来确定为相似域名的何种种类,其中域名长度差异是根据待检测核心字符长度减去参照域名长度所得。其具体的检测逻辑如表1所示。
[0045] 表1.特征数据具体检测逻辑表
[0046]
[0047] 对于切分数据可以通过使用参照域名列表保存的map来逐一查询切分数据的字符数组,若map查询成功则确定为相似域名。
[0048] 步骤104,响应于所述待检测域名为相似域名,基于第三方检测工具对所述待检测域名进行恶意判断。
[0049] 本步骤旨在,对确定为相似域名的待检测域名,利用第三方检测工具对其是否为恶意相似进行判断,进而最终确定该待检测域名是否为恶意域名。此步骤根据步骤103检测出的相似域名对来检测待检测域名是否包含恶意相似行为,根据第三方检测工具从网页相似度计算和待检测域名信息查毒两个方面进行恶意判断,如果网页相似度计算判定为相似或者查毒工具判定为危害,就判定为恶意相似域名。
[0050] 步骤105,输出判断结果,并基于所述判断结果对所述待检测域名执行信任操作或隔离操作。
[0051] 本步骤旨在,输出判断结果,以对待检测域名进行对应的操作,若为正常域名则列入白名单,进行正常访问、连接等常规操作;若为恶意域名则列入黑名单,进行隔离、监控、删除等查杀操作。
[0052] 其中,输出判断结果。其可以用以存储、展示、使用或再加工该判断结果。根据不同的应用场景和实施需要,具体的对于该判断结果的输出方式可以灵活选择。
[0053] 例如,对于本实施例的方法在单一设备上执行的应用场景,可以将判断结果直接在当前设备的显示部件(显示器、投影仪等)上以显示的方式输出,使得当前设备的操作者能够从显示部件上直接看到判断结果的内容。
[0054] 又如,对于本实施例的方法在多个设备组成的系统上执行的应用场景,可以将判断结果通过任意的数据通信方式(有线连接、NFC、蓝牙、wifi、蜂窝移动网络等)发送至系统内的其他作为接收方的预设设备上,即同步终端上,以使得同步终端可以对其进行后续处理。可选的,该同步终端可以是预设的服务器,服务器一般设置在云端,作为数据的处理和存储中心,其能够对判断结果进行存储和分发;其中,分发的接收方是终端设备,该些终端设备的持有者或操作者可以是终端使用者、恶意域名检测的数据统计监管人员、网络监管部门的负责人员、恶意域名检测工具的工程人员等等。
[0055] 再如,对于本实施例的方法在多个设备组成的系统上执行的应用场景时,可以将判断结果通过任意的数据通信方式直接发送至预设的终端设备,终端设备可以是前述段落列举中的一种或多种。
[0056] 从上面所述可以看出,本公开提供的一种恶意域名检测方法,包括:获取待检测域名,确定待检测域名的域名信息及绝对路径信息;对域名信息进行特征统计,生成特征数据,对绝对路径信息进行数据切分,生成切分数据;基于参照域名列表,对特征数据及切分数据进行域名差异判断,判断待检测域名是否为相似域名;响应于所述待检测域名为相似域名,基于第三方检测工具对待检测域名进行恶意判断;输出判断结果,并对待检测域名执行信任操作或隔离操作。本公开利用了恶意相似域名的判定特征,为待检测域名和参照域名列表设计匹配规则,让待检测域名能够快速的匹配出可能被仿冒的合法域名,为实时检测网络流量中的恶意相似域名提供了快速检测方案,适用于大部分的恶意相似流量检测工程,覆盖程度高,且方法简单有效,高效率的同时便于实施操作。
[0057] 需要说明的是,本公开实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本公开实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本公开实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
[0058] 需要说明的是,上述对本公开特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0059] 在具体应用场景中,为了契合使用者的使用时间段,提高检测方法的检测效率。所述获取待检测域名,包括:判断当前时间是否在预设时间段内;响应于当前时间在预设时间段内,监控超文本传输协议流量,在所述超文本传输协议流量中抓取所述待检测域名。
[0060] 在具体应用场景中,流量采集工作是使用Linux的shell脚本文件配合crontab定时工具来监控网卡的HTTP流量。该脚本文件通过指定网卡名称,设置监听的端口号,控制pcap文件包保存的大小,通过crontab定时工具抓取指定时间段的HTTP流量,并将保存的pcap包以抓取的时间命名保存在输出的路径中。
[0061] 当然,在具体应用场景中,还可以根据具体情况,直接将待检测的域名表直接进行手动输入,还可以进行24小时的实时监控等等。
[0062] 在具体应用场景中,为了提高检测效率,在检测之前先对待检测域名进行初步筛选,以过滤掉已经在白名单或黑名单中的域名。所述获取待检测域名之后,还包括:基于预设的白名单列表及黑名单列表,检测所述待检测域名是否属于所述白名单列表或所述黑名单列表;响应于所述待检测域名属于所述白名单列表,对所述待检测域名执行信任操作;响应于所述待检测域名属于所述黑名单列表,对所述待检测域名执行隔离操作。
[0063] 其中,白名单即为已经通过检测的或认定没有问题的域名名单;黑名单即为认定为存在恶意的域名名单。在具体应用场景中,解析流量和过滤黑白名单的功能是通过Java语言实现的,并且通过多线程并发操作提高解析的效率。将流量过滤黑名单和白名单,若检测结果判黑则直接将检测结果及对应待检测域名存入隔离数据库,例如MySQL数据库;判白则直接结束,跳过检测过程,直接执行信任操作;若既不属于黑名单也不属于白名单则需要进行恶意检测。
[0064] 在具体应用场景中,为了准确生成特征数据。所述对所述域名信息进行特征统计,生成特征数据,包括:统计所述域名信息中字符的字符长度、每个字符的种类及字符间的相对位置关系,以此生成所述特征数据。
[0065] 其中,字符长度即为域名信息包含的整体字符的长度,例如“baidu.com”的字符长度为9。每个字符的种类即为每个字符的具体类型,例如“baidu.com”第一个字符为b,第二个字符为a等等。字符间的相对位置关系即为确定每个字符的位置及前后关系,例如“baidu.com”第二个字符为a,前一字符为b后一字符为i等等。以此通过上述几种特征数据进而可以判断待检测域名与参照域名之间是否存在字符突变、添加字符、删除字符、交换字符等恶意行为。即,所述基于预设的参照域名列表,对所述特征数据及所述切分数据进行域名差异判断,判断所述待检测域名是否为相似域名,包括:确定所述特征数据与所述参照域名列表中的每个参照域名之间的字符长度差异、字符变换差异及最小编辑距离;当所述字符长度差异、所述字符变换差异和/或所述最小编辑距离小于设定阈值时,确定所述待检测域名为当前参照域名的相似域名。
[0066] 在具体应用场景中,为了准确生成切分数据。所述对所述绝对路径信息进行数据切分,生成切分数据,包括:通过神经语言程序学算法对所述绝对路径信息进行切分生成对应的字符数组,以此生成所述切分数据。
[0067] 其中,神经语言程序学算法即为NLP一元算法,在具体应用场景中,通过NLP一元算法学习参照域名列表中域名的核心字符,使用学习后的N‑gram算法对绝对路径信息进行切分,将切分出来的结果保存为字符数组。之后,通过与参照域名列表中每个域名切分出的字符数组映射对(map映射对)进行对比,以此判断待检测域名与参照域名之间是否存在组合抢注等恶意行为,如“baidu‑book.com”相对于“baidu.com”。即,所述基于预设的参照域名列表,对所述特征数据及所述切分数据进行域名差异判断,判断所述待检测域名是否为相似域名,包括:确定所述参照域名列表中每个参照域名的参照数组,比对所述参照数组与所述字符数组,响应于比对成功,确定所述待检测域名为当前参照域名的相似域名。
[0068] 在具体应用场景中,如图2所示,为一种恶意域名检测方法在具体应用场景中的工作过程流程示意图。
[0069] 1.用户设置好监控的网卡和监控的时间段,系统以此开始监控指定网卡的HTTP流量,并将抓取的流量保存为pcap数据包。
[0070] 2.监控抓取的pcap数据包,一旦有新的数据包就将其解析并提取出关键字段,比如源IP,目的IP,requestHost字段和requestURL字段等,并将流量过滤黑名单和白名单,若检测结果判黑则直接将检测结果存入MySQL数据库,判白直接结束,若既不属于黑名单也不属于白名单则存入Kafka相似域名筛选队列。
[0071] 3.监控Kafka相似域名筛选队列,若检测到有新的数据,则将流量信息进行预处理,主要是提取和统计requestHost字段和requestURL字段的相关信息,再通过可疑相似域名筛选模块筛选出可疑的相似域名对,若检测出可疑的相似域名对则将处理的结果发送到Kafka相似域名对检测队列,若无则发往Kafka白流量队列。
[0072] 4.监控Kafka相似域名对检测队列,若有新的流量进入,则通过网页相似度计算和第三方检测工具进行查毒,若检测出恶意行为则将检测结果存入MySQL数据库,若无则发往Kafka白流量队列。
[0073] 5.定时监控Kafka的白流量队列,若白流量队列有新的信息则另外保存在Hbase中作为备份存储,可供后期查询使用,前端Web页面通过查询MySQL数据库的检测结果对自动检测出的恶意流量进行展示。
[0074] 可以看出,本方案基于流量来判断局域网络环境内是否存在恶意相似域名,不同检测模块之间独立分工,使用Kafka作为消息队列,极大的降低系统的耦合性,方法分工明确,简单有效,便于实施。
[0075] 基于同一构思,与上述任意实施例方法相对应的,本公开还提供了一种恶意域名检测设备。
[0076] 参考图3,所述恶意域名检测设备,包括:
[0077] 获取模块310,用于获取待检测域名,确定所述待检测域名对应的域名信息及绝对路径信息;
[0078] 处理模块320,用于对所述域名信息进行特征统计,生成特征数据,对所述绝对路径信息进行数据切分,生成切分数据;
[0079] 判断模块330,用于基于预设的参照域名列表,对所述特征数据及所述切分数据进行域名差异判断,判断所述待检测域名是否为相似域名;
[0080] 检测模块340,用于响应于所述待检测域名为相似域名,基于第三方检测工具对所述待检测域名进行恶意判断;
[0081] 输出模块350,用于输出判断结果,并基于所述判断结果对所述待检测域名执行信任操作或隔离操作。
[0082] 为了描述的方便,描述以上设备时以功能分为各种模块分别描述。当然,在实施本公开实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
[0083] 上述实施例的设备用于实现前述实施例中相应的恶意域名检测方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
[0084] 作为一个可选的实施例,所述获取模块310,还包括:
[0085] 判断当前时间是否在预设时间段内;
[0086] 响应于当前时间在预设时间段内,监控超文本传输协议流量,在所述超文本传输协议流量中抓取所述待检测域名。
[0087] 作为一个可选的实施例,所述获取模块310,还包括:
[0088] 基于预设的白名单列表及黑名单列表,检测所述待检测域名是否属于所述白名单列表或所述黑名单列表;
[0089] 响应于所述待检测域名属于所述白名单列表,对所述待检测域名执行信任操作;
[0090] 响应于所述待检测域名属于所述黑名单列表,对所述待检测域名执行隔离操作。
[0091] 作为一个可选的实施例,所述处理模块320,还包括:
[0092] 统计所述域名信息中字符的字符长度、每个字符的种类及字符间的相对位置关系,以此生成所述特征数据。
[0093] 作为一个可选的实施例,所述判断模块330,还包括:
[0094] 确定所述特征数据与所述参照域名列表中的每个参照域名之间的字符长度差异、字符变换差异及最小编辑距离;
[0095] 当所述字符长度差异、所述字符变换差异和/或所述最小编辑距离小于设定阈值时,确定所述待检测域名为当前参照域名的相似域名。
[0096] 作为一个可选的实施例,所述处理模块320,还包括:
[0097] 通过神经语言程序学算法对所述绝对路径信息进行切分生成对应的字符数组,以此生成所述切分数据。
[0098] 作为一个可选的实施例,所述判断模块330,还包括:
[0099] 确定所述参照域名列表中每个参照域名的参照数组,比对所述参照数组与所述字符数组,响应于比对成功,确定所述待检测域名为当前参照域名的相似域名。
[0100] 基于同一构思,与上述任意实施例方法相对应的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的恶意域名检测方法。
[0101] 图4示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
[0102] 处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
[0103] 存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
[0104] 输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
[0105] 通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
[0106] 总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
[0107] 需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
[0108] 上述实施例的电子设备用于实现前述任一实施例中相应的恶意域名检测方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
[0109] 基于同一构思,与上述任意实施例方法相对应的,本公开还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的恶意域名检测方法。
[0110] 本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD‑ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
[0111] 上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的恶意域名检测方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
[0112] 需要说明的是,本公开的实施例还可以通过以下方式进一步描述:
[0113] 在一些实施方式中,其中,所述获取待检测域名,包括:
[0114] 判断当前时间是否在预设时间段内;
[0115] 响应于当前时间在预设时间段内,监控超文本传输协议流量,在所述超文本传输协议流量中抓取所述待检测域名。
[0116] 在一些实施方式中,其中,所述获取待检测域名之后,还包括:
[0117] 基于预设的白名单列表及黑名单列表,检测所述待检测域名是否属于所述白名单列表或所述黑名单列表;
[0118] 响应于所述待检测域名属于所述白名单列表,对所述待检测域名执行信任操作;
[0119] 响应于所述待检测域名属于所述黑名单列表,对所述待检测域名执行隔离操作。
[0120] 在一些实施方式中,其中,所述对所述域名信息进行特征统计,生成特征数据,包括:
[0121] 统计所述域名信息中字符的字符长度、每个字符的种类及字符间的相对位置关系,以此生成所述特征数据。
[0122] 在一些实施方式中,其中,所述基于预设的参照域名列表,对所述特征数据及所述切分数据进行域名差异判断,判断所述待检测域名是否为相似域名,包括:
[0123] 确定所述特征数据与所述参照域名列表中的每个参照域名之间的字符长度差异、字符变换差异及最小编辑距离;
[0124] 当所述字符长度差异、所述字符变换差异和/或所述最小编辑距离小于设定阈值时,确定所述待检测域名为当前参照域名的相似域名。
[0125] 在一些实施方式中,其中,所述对所述绝对路径信息进行数据切分,生成切分数据,包括:
[0126] 通过神经语言程序学算法对所述绝对路径信息进行切分生成对应的字符数组,以此生成所述切分数据。
[0127] 在一些实施方式中,其中,所述基于预设的参照域名列表,对所述特征数据及所述切分数据进行域名差异判断,判断所述待检测域名是否为相似域名,包括:
[0128] 确定所述参照域名列表中每个参照域名的参照数组,比对所述参照数组与所述字符数组,响应于比对成功,确定所述待检测域名为当前参照域名的相似域名。
[0129] 所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本公开实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
[0130] 另外,为简化说明和讨论,并且为了不会使本公开实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本公开实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本公开实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本公开实施例。因此,这些描述应被认为是说明性的而不是限制性的。
[0131] 尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
[0132] 本公开实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本公开实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。