CN109756510B - 一种基于N-Gram的恶意域名检测方法 - Google Patents
一种基于N-Gram的恶意域名检测方法 Download PDFInfo
- Publication number
- CN109756510B CN109756510B CN201910070765.5A CN201910070765A CN109756510B CN 109756510 B CN109756510 B CN 109756510B CN 201910070765 A CN201910070765 A CN 201910070765A CN 109756510 B CN109756510 B CN 109756510B
- Authority
- CN
- China
- Prior art keywords
- domain name
- gram
- legal
- substrings
- malicious
- 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.)
- Active
Links
Images
Landscapes
- Complex Calculations (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于N‑Gram的恶意域名检测方法,包括步骤:选择访问频次较高的合法域名,在去除顶级域名后,利用N‑Gram方法将域名按层进行分割,形成合法域名子串集;根据子串在对合法域名进行N‑Gram分割时出现的频次,给合法域名子串集中子串赋予权值,将域名词法特征的提取转化为数值计算;将待测域名进行N‑Gram分割,将得到的子串按照合法域名子串权值计算待测域名的信誉值;恶意域名检测,根据待测域名信誉值的大小和预设判定条件,判断待测域名是否为恶意域名。与现有技术相比,本发明具有检测时间开销小,检测准确率高、误报与漏报率低的优点,为恶意域名的检测提供了一种新思路,丰富了恶意域名的检测手段。
Description
技术领域
本发明涉及网络安全领域,尤其涉及一种基于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 (3)
1.一种基于N-Gram的恶意域名检测方法,其特征在于,包括步骤
S1:合法域名子串集构造,选择Alexa中排名前100,000的合法域名,在去除顶级域名后,利用N-Gram方法将域名按层进行分割,形成合法域名子串集;
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分割,将得到的子串按照合法域名子串权值计算待测域名的信誉值,所述信誉值计算如公式(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个域名信誉值的平均值作为预设判定条件,并将计算得到的待测域名信誉值与预设判定条件进行比较,当待测域名的信誉值小于该预设判定条件时,则判定该域名为恶意域名,否则为合法域名。
2.如权利要求1所述的基于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}。
3.如权利要求1所述的基于N-Gram的恶意域名检测方法,其特征在于,步骤S4中所述的预设判定条件是通过计算Alexa排名前100,000的合法域名中最小的80个域名信誉值的平均值作为预设判定条件,所述的恶意域名检测是根据待测域名的信誉值和预设判定条件,判断待测域名是否为恶意域名。
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 CN109756510A (zh) | 2019-05-14 |
CN109756510B true 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) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110798481A (zh) * | 2019-11-08 | 2020-02-14 | 杭州安恒信息技术股份有限公司 | 基于深度学习的恶意域名检测方法及装置 |
CN113645173A (zh) * | 2020-04-27 | 2021-11-12 | 北京观成科技有限公司 | 一种恶意域名的识别方法、系统和设备 |
CN113141370B (zh) * | 2021-04-30 | 2022-09-16 | 国家计算机网络与信息安全管理中心山西分中心 | 一种内部网络流量的恶意dns隧道识别方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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流量的自适应恶意域名检测方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9560074B2 (en) * | 2014-10-07 | 2017-01-31 | Cloudmark, Inc. | Systems and methods of identifying suspicious hostnames |
-
2019
- 2019-01-25 CN CN201910070765.5A patent/CN109756510B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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流量的自适应恶意域名检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109756510A (zh) | 2019-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109756510B (zh) | 一种基于N-Gram的恶意域名检测方法 | |
US8990936B2 (en) | Method and device for detecting flood attacks | |
CN105024969B (zh) | 一种实现恶意域名识别的方法及装置 | |
US8260914B1 (en) | Detecting DNS fast-flux anomalies | |
US8611219B2 (en) | Method of detecting anomalies in a communication system using symbolic packet features | |
US7930413B2 (en) | System and method for controlling access to a network resource | |
US7854001B1 (en) | Aggregation-based phishing site detection | |
CN109274632B (zh) | 一种网站的识别方法及装置 | |
CN111131260B (zh) | 一种海量网络恶意域名识别和分类方法及系统 | |
CN108696543B (zh) | 基于深度森林的分布式反射拒绝服务攻击检测、防御方法 | |
WO2003003236A1 (en) | Apparatus and method for handling electronic mail | |
CN106850647B (zh) | 基于dns请求周期的恶意域名检测算法 | |
CN111245784A (zh) | 多维度检测恶意域名的方法 | |
Musashi et al. | Detection of Kaminsky DNS cache poisoning attack | |
Sharma et al. | BotMAD: Botnet malicious activity detector based on DNS traffic analysis | |
Bao et al. | Using passive dns to detect malicious domain name | |
US8612523B1 (en) | Methods and apparatus for detecting botnet attacks | |
CN109120733B (zh) | 一种利用dns进行通信的检测方法 | |
CN112583827B (zh) | 一种数据泄露检测方法及装置 | |
CN110650157B (zh) | 基于集成学习的Fast-flux域名检测方法 | |
CN117424743A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
US9450982B1 (en) | Email spoofing detection via infrastructure machine learning | |
Nakamori et al. | Detecting dynamic IP addresses and cloud blocks using the sequential characteristics of PTR records | |
EP2749001A2 (en) | Determining validity of sip messages without parsing | |
Shomura et al. | Analyzing the number of varieties in frequently found flows |
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 |