CN109756510A - 一种基于N-Gram的恶意域名检测方法 - Google Patents

一种基于N-Gram的恶意域名检测方法 Download PDF

Info

Publication number
CN109756510A
CN109756510A CN201910070765.5A CN201910070765A CN109756510A CN 109756510 A CN109756510 A CN 109756510A CN 201910070765 A CN201910070765 A CN 201910070765A CN 109756510 A CN109756510 A CN 109756510A
Authority
CN
China
Prior art keywords
domain name
substring
gram
legitimate
measured
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
CN201910070765.5A
Other languages
English (en)
Other versions
CN109756510B (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.)
Lanzhou University of Technology
Original Assignee
Lanzhou University of Technology
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 Lanzhou University of Technology filed Critical Lanzhou University of Technology
Priority to CN201910070765.5A priority Critical patent/CN109756510B/zh
Publication of CN109756510A publication Critical patent/CN109756510A/zh
Application granted granted Critical
Publication of CN109756510B publication Critical patent/CN109756510B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Complex Calculations (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于N‑Gram的恶意域名检测方法,包括步骤:选择访问频次较高的合法域名,在去除顶级域名后,利用N‑Gram方法将域名按层进行分割,形成合法域名子串集;根据子串在对合法域名进行N‑Gram分割时出现的频次,给合法域名子串集中子串赋予权值,将域名词法特征的提取转化为数值计算;将待测域名进行N‑Gram分割,将得到的子串按照合法域名子串权值计算待测域名的信誉值;恶意域名检测,根据待测域名信誉值的大小和预设判定条件,判断待测域名是否为恶意域名。与现有技术相比,本发明具有检测时间开销小,检测准确率高、误报与漏报率低的优点,为恶意域名的检测提供了一种新思路,丰富了恶意域名的检测手段。

Description

一种基于N-Gram的恶意域名检测方法
技术领域
本发明涉及网络安全领域,尤其涉及一种基于N-Gram的恶意域名检测方法。
背景技术
域名系统(Domain Name System,DNS)作为互联网中实现网络域名与IP地址相互转化的一种基础服务,得到了广泛应用,如电子商务、即时通行、网络媒体等。几乎所有的互联网应用都需要使用DNS提供的服务对域名进行解析,实现资源的定位。因而,很多网络安全设施都会允许DNS协议类型的数据包通过。正是由于这一原因,DNS受到了攻击者的广泛关注。如分布式拒绝服务(Distributed Denial of Service,DDoS)、垃圾邮件(Spare)、网络钓鱼(Phishing)以及点击欺诈(Click Fraud)等。
现有恶意域名检测方法大多是借助域名黑名单,通过明确地允许与不允许来限制用户的访问,从而实现安全性的效果。但域名黑名单的建立、维护与更新,存在开销大和实时性差的缺点,且域名黑名单中只存在已验证过的恶意域名,对于未知的恶意域名检测准确率较低,误报与漏报率较高。
发明内容
为克服现有恶意域名检测方法的不足,有效地提高恶意域名的检测效率,本发明提出一种基于N-Gram的恶意域名检测方法。
本发明的技术方案是这样实现的:
一种基于N-Gram的恶意域名检测方法,包括步骤:
S1,合法域名子串集构造,选择访问频次较高的合法域名,在去除顶级域名后,利用N-Gram方法将域名按层进行分割,形成合法域名子串集;
S2,合法域名子串权值计算,根据子串在对合法域名进行N-Gram分割时出现的频次,给合法域名子串集中子串赋予权值,将域名词法特征的提取转化为数值计算;
S3,待测域名信誉值计算,将待测域名进行N-Gram分割,将得到的子串按照合法域名子串权值计算待测域名的信誉值;
S4,恶意域名检测,根据待测域名信誉值的大小和预设判定条件,判断待测域名是否为恶意域名。
进一步地,步骤S1中所述的访问频次较高的合法域名是Alexa中排名前100,000的合法域名,所述的去除顶级域名是由于合法顶级域名数量少、长度短、知名度高,很容易识别,且顶级域名部分很少出现恶意域名,恶意域名经常出现在二级、三级或者四级域名中,所述的N-Gram方法是通过一个大小为N的滑动窗口对域名中的字符串进行分割,得到长度为N的多个子串,每个子串称为一个gram,所述的域名进行N-Gram分割所得的域名子串个数统计是将Alexa中排名前100,000的合法域名,在去除顶级域名后,利用N-Gram方法将域名按层分割得到域名子串,每级域名分割得到的子串个数计算如公式(1)所示。
count(j)=L-N+1 (1)
其中,count(j)(j=2,…,n)表示某域名第j级域名被分割后包含的域名子串数量,n表示某一域名的最大级数,L表示第j级域名长度,N表示滑动窗口大小,取值范围为{N∈N*|3≤N≤7}。
进一步地,步骤S2中所述的子串权值计算是将N-Gram分割得到的合法域名子串构造成无重复子串的合法域名子串集,并计算子串集中域名子串的权值,将域名词法特征的提取转化为数值计算。域名子串权值计算如公式(2)所示。
WN-Gram(i)=log2(CN-Gram(i)/N) (2)
其中,WN-Gram(i)表示当N=3,4,5,6,7时,序号为i的域名子串的权值,CN-Gram(i)表示序号为i的域名子串在Alexa中排名前100,000的合法域名被分割后得到的子串中出现的总次数。
进一步地,步骤S3中所述的待测域名信誉值计算是在去除待测域名的顶级域名后,利用N-Gram方法将待测域名按层分割为N=3,4,5,6,7的多个域名子串,并按照域名子串在合法域名子串集中对应的权值,计算待测域名的信誉值。信誉值计算如公式(3)所示。
其中,RV(l)表示序号为l的待测域名信誉值,{l∈N*|l>0},WN-Gram(i)表示当滑动窗口N=3,4,5,6,7时,经待测域名分割而来的序号为i的域名子串的权值,m表示待测域名l在滑动窗口N=3,4,5,6,7时,分割域名得到的子串总数。
进一步地,步骤S4中所述的预设判定条件是通过计算Alexa排名前100,000的合法域名中最小的80个域名信誉值的平均值作为预设判定条件,所述的恶意域名检测是根据待测域名的信誉值和预设判定条件,判断待测域名是否为恶意域名。
本发明的有益效果在于,与现有技术相比,本发明具有检测时间开销小,检测准确率高、误报与漏报率低的优点,为恶意域名的检测提供了一种新思路,丰富了恶意域名的检测手段。
附图说明
图1为本发明一种基于N-Gram的恶意域名检测方法流程图;
图2为本发明一种基于N-Gram的恶意域名检测方法的系统结构示意图;
图3为本发明一种基于N-Gram的恶意域名检测方法详细的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的一种基于N-Gram的恶意域名检测方法总体原理示意如图1和图2所示,本发明的技术方案思路是:通过选择高频次正常访问域名为合法域名样本集,利用N-Gram方法对合法域名样本集中的域名按层进行分割,并按照域名子串重复出现频次给子串赋予权值。然后,将待测域名进行N-Gram分割,并对照所得子串与合法域名子串集中的子串,得出待测域名是否为恶意域名。
如图3所示,本发明的一种基于N-Gram的恶意域名检测方法,详细包括步骤
S1:合法域名子串集构建,选择访问频次较高的合法域名,在去除顶级域名后,利用N-Gram方法将域名按层进行分割,形成合法域名子串集,其中,所述的访问频次较高的合法域名是Alexa中排名前100,000的合法域名,所述的去除顶级域名是由于合法顶级域名数量少、长度短、知名度高,很容易识别,且顶级域名部分很少出现恶意域名,恶意域名经常出现在二级、三级或者四级域名中,所述的N-Gram方法是通过一个大小为N的滑动窗口对域名中的字符串进行分割,得到长度为N的多个子串,每个子串称为一个gram,所述的域名进行N-Gram分割所得的域名子串个数统计是将Alexa中前100,000的合法域名,在去除顶级域名后,利用N-Gram方法将域名按层分割得到域名子串,每级域名分割得到的子串个数计算如公式(1)所示。
count(j)=L-N+1 (1)
其中,count(j)(j=2,…,n)表示某域名第j级域名被分割后包含的域名子串数量,n表示某一域名的最大级数,L表示第j级域名长度,N表示滑动窗口大小,取值范围为{N∈N*|3≤N≤7}。
S2:合法域名子串权值计算,根据子串在对合法域名进行N-Gram分割时出现的频次,给合法域名子串集中子串赋予权值,将域名词法特征的提取转化为数值计算。域名子串权值计算如公式(2)所示。
WN-Gram(i)=log2(CN-Gram(i)/N) (2)
其中,WN-Gram(i)表示当N=3,4,5,6,7时,序号为i的域名子串的权值,CN-Gram(i)表示序号为i的域名子串在Alexa中排名前100,000的合法域名被分割后得到的子串中出现的总次数。
S3:待测域名信誉值计算,利用N-Gram方法将待测域名按层分割为N=3,4,5,6,7的多个域名子串,并按照域名子串在合法域名子串集中对应的权值,计算待测域名的信誉值。信誉值计算如公式(3)所示。
其中,RV(l)表示序号为l的待测域名信誉值,{l∈N*|l>0},WN-Gram(i)表示当滑动窗口N=3,4,5,6,7时,经待测域名分割而来的序号为i的域名子串的权值,m表示待测域名l在滑动窗口N=3,4,5,6,7时,分割域名得到的子串总数。
S4:恶意域名检测,通过计算Alexa排名前100,000的合法域名中最小的80个域名信誉值的平均值作为预设判定条件,并将计算得到的待测域名信誉值与预设判定条件进行比较,当待测域名的信誉值小于该预设判定条件时,则判定该域名为恶意域名,否则为合法域名。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

Claims (6)

1.一种基于N-Gram的恶意域名检测方法,其特征在于,包括步骤
S1:合法域名子串集构造,选择访问频次较高的合法域名,在去除顶级域名后,利用N-Gram方法将域名按层进行分割,形成合法域名子串集;
S2:合法域名子串权值计算,根据子串在对合法域名进行N-Gram分割时出现的频次,给合法域名子串集中子串赋予权值,将域名词法特征的提取转化为数值计算;
S3:待测域名信誉值计算,将待测域名进行N-Gram分割,将得到的子串按照合法域名子串权值计算待测域名的信誉值;
S4:恶意域名检测,根据待测域名信誉值的大小和预设判定条件,判断待测域名是否为恶意域名。
2.如权利要求1所述的基于N-Gram的恶意域名检测方法,其特征在于,步骤S1中所述的访问频次较高的合法域名是Alexa中排名前100,000的合法域名。
3.如权利要求1或2所述的基于N-Gram的恶意域名检测方法,其特征在于,所述的N-Gram方法是通过一个大小为N的滑动窗口对域名中的字符串进行分割,得到长度为N的多个子串,每个子串称为一个gram,所述的域名进行N-Gram分割所得的域名子串个数统计是将Alexa中排名前100,000的合法域名,在去除顶级域名后,利用N-Gram方法将域名按层分割得到域名子串,每级域名分割得到的子串个数计算公式为count(j)=L-N+1,其中,count(j)(j=2,…,n)表示某域名第j级域名被分割后包含的域名子串数量,n表示某一域名的最大级数,L表示第j级域名长度,N表示滑动窗口大小,取值范围为{N∈N*|3≤N≤7}。
4.如权利要求1所述的基于N-Gram的恶意域名检测方法,其特征在于,步骤S2中所述的子串权值计算是将N-Gram分割得到的合法域名子串构造成无重复子串的合法域名子串集,并计算子串集中域名子串的权值,将域名词法特征的提取转化为数值计算,域名子串权值计算公式为WN-Gram(i)=log2(CN-Gram(i)/N),其中,WN-Gram(i)表示当N=3,4,5,6,7时,序号为i的域名子串的权值,CN-Gram(i)表示序号为i的域名子串在Alexa中排名前100,000的合法域名被分割后得到的子串中出现的总次数。
5.如权利要求1所述的基于N-Gram的恶意域名检测方法,其特征在于,步骤S3中所述的待测域名信誉值计算是在去除待测域名的顶级域名后,利用N-Gram方法将待测域名按层分割为N=3,4,5,6,7的多个域名子串,并按照域名子串在合法域名子串集中对应的权值,计算待测域名的信誉值,信誉值计算公式为其中,RV(l)表示序号为l的待测域名信誉值,{l∈N*|l>0},WN-Gram(i)表示当滑动窗口N=3,4,5,6,7时,经待测域名分割而来的序号为i的域名子串的权值,m表示待测域名l在滑动窗口N=3,4,5,6,7时,分割域名得到的子串总数。
6.如权利要求1所述的基于N-Gram的恶意域名检测方法,其特征在于,步骤S4中所述的预设判定条件是通过计算Alexa排名前100,000的合法域名中最小的80个域名信誉值的平均值作为预设判定条件,所述的恶意域名检测是根据待测域名的信誉值和预设判定条件,判断待测域名是否为恶意域名。
CN201910070765.5A 2019-01-25 2019-01-25 一种基于N-Gram的恶意域名检测方法 Active CN109756510B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910070765.5A CN109756510B (zh) 2019-01-25 2019-01-25 一种基于N-Gram的恶意域名检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910070765.5A CN109756510B (zh) 2019-01-25 2019-01-25 一种基于N-Gram的恶意域名检测方法

Publications (2)

Publication Number Publication Date
CN109756510A true CN109756510A (zh) 2019-05-14
CN109756510B CN109756510B (zh) 2021-01-08

Family

ID=66404909

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910070765.5A Active CN109756510B (zh) 2019-01-25 2019-01-25 一种基于N-Gram的恶意域名检测方法

Country Status (1)

Country Link
CN (1) CN109756510B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110798481A (zh) * 2019-11-08 2020-02-14 杭州安恒信息技术股份有限公司 基于深度学习的恶意域名检测方法及装置
CN113141370A (zh) * 2021-04-30 2021-07-20 国家计算机网络与信息安全管理中心山西分中心 一种内部网络流量的恶意dns隧道识别方法
CN113645173A (zh) * 2020-04-27 2021-11-12 北京观成科技有限公司 一种恶意域名的识别方法、系统和设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160099967A1 (en) * 2014-10-07 2016-04-07 Cloudmark, Inc. Systems and methods of identifying suspicious hostnames
CN105939340A (zh) * 2016-01-22 2016-09-14 北京匡恩网络科技有限责任公司 一种发现隐藏的蠕虫病毒的方法及系统
CN107046586A (zh) * 2017-04-14 2017-08-15 四川大学 一种基于类自然语言特征的算法生成域名检测方法
CN107786575A (zh) * 2017-11-11 2018-03-09 北京信息科技大学 一种基于dns流量的自适应恶意域名检测方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160099967A1 (en) * 2014-10-07 2016-04-07 Cloudmark, Inc. Systems and methods of identifying suspicious hostnames
CN105939340A (zh) * 2016-01-22 2016-09-14 北京匡恩网络科技有限责任公司 一种发现隐藏的蠕虫病毒的方法及系统
CN107046586A (zh) * 2017-04-14 2017-08-15 四川大学 一种基于类自然语言特征的算法生成域名检测方法
CN107786575A (zh) * 2017-11-11 2018-03-09 北京信息科技大学 一种基于dns流量的自适应恶意域名检测方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110798481A (zh) * 2019-11-08 2020-02-14 杭州安恒信息技术股份有限公司 基于深度学习的恶意域名检测方法及装置
CN113645173A (zh) * 2020-04-27 2021-11-12 北京观成科技有限公司 一种恶意域名的识别方法、系统和设备
CN113141370A (zh) * 2021-04-30 2021-07-20 国家计算机网络与信息安全管理中心山西分中心 一种内部网络流量的恶意dns隧道识别方法

Also Published As

Publication number Publication date
CN109756510B (zh) 2021-01-08

Similar Documents

Publication Publication Date Title
CN101267313B (zh) 泛洪攻击检测方法及检测装置
CN109756510A (zh) 一种基于N-Gram的恶意域名检测方法
Lee et al. Effective value of decision tree with KDD 99 intrusion detection datasets for intrusion detection system
CN105791213B (zh) 一种策略优化装置及方法
De Silva et al. Compromised or {Attacker-Owned}: A large scale classification and study of hosting domains of malicious {URLs}
CN103491069A (zh) 网络数据包的过滤方法
CN101572701A (zh) 针对DNS服务的抗DDoS攻击安全网关系统
CN109842588B (zh) 网络数据检测方法及相关设备
CN107145779B (zh) 一种离线恶意软件日志的识别方法和装置
CN108111526A (zh) 一种基于异常whois信息的非法网站挖掘方法
CN110650156B (zh) 网络实体的关系聚类方法、装置及网络事件的识别方法
CN110177123B (zh) 基于dns映射关联图的僵尸网络检测方法
WO2014059868A1 (zh) 一种ip地理信息的更新装置和方法
KR20180089479A (ko) 사용자 데이터 공유 방법 및 디바이스
CN101184097A (zh) 一种基于流量信息检测蠕虫活动的方法
CN107743128A (zh) 一种基于首页关联域名和同服务ip的非法网站挖掘方法
Feng et al. A behavior-based method for detecting distributed scan attacks in darknets
CN101299729A (zh) 一种基于拓扑行为的垃圾邮件判定方法
CN109120733B (zh) 一种利用dns进行通信的检测方法
US20240187446A1 (en) Method and system for detecting complex multi-step attack in electric power system
CN103269337B (zh) 数据处理方法及装置
CN110650157B (zh) 基于集成学习的Fast-flux域名检测方法
CN117424743A (zh) 一种数据处理方法、装置、电子设备及存储介质
CN105516164B (zh) 基于分形与自适应融合的P2P botnet检测方法
KR101648033B1 (ko) 공격 패턴이 존재하지 않는 공격 시그니처 기반의 침입 탐지 방법 및 그를 위한 장치

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