CN107770132A - 一种对算法生成域名进行检测的方法及装置 - Google Patents

一种对算法生成域名进行检测的方法及装置 Download PDF

Info

Publication number
CN107770132A
CN107770132A CN201610686248.7A CN201610686248A CN107770132A CN 107770132 A CN107770132 A CN 107770132A CN 201610686248 A CN201610686248 A CN 201610686248A CN 107770132 A CN107770132 A CN 107770132A
Authority
CN
China
Prior art keywords
domain name
algorithm
character
model
normal
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
CN201610686248.7A
Other languages
English (en)
Other versions
CN107770132B (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.)
ZTE Corp
Institute of Information Engineering of CAS
Original Assignee
ZTE Corp
Institute of Information Engineering of CAS
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 ZTE Corp, Institute of Information Engineering of CAS filed Critical ZTE Corp
Priority to CN201610686248.7A priority Critical patent/CN107770132B/zh
Priority to PCT/CN2017/093890 priority patent/WO2018032936A1/zh
Publication of CN107770132A publication Critical patent/CN107770132A/zh
Application granted granted Critical
Publication of CN107770132B publication Critical patent/CN107770132B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1483Countermeasures against malicious traffic service impersonation, e.g. phishing, pharming or web spoofing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种对算法生成域名进行检测的方法及装置,本发明通过概率模型生成算法,分别根据算法生成域名集和正常域名集建立随机模型和正常模型,并通过上述模型对算法生成域名进行检测,从而实现对算法生成域名进行快速检测,进而有效解决了现有技术不能对算法生成域名进行快速检测的问题。

Description

一种对算法生成域名进行检测的方法及装置
技术领域
本发明涉及通信技术领域,特别是涉及一种对算法生成域名进行检测的方法及装置。
背景技术
相对于早期的蠕虫、病毒等不受控的恶意软件,当前绝大多数攻击者都会通过一个命令与控制(C&C)信道控制他们的恶意软件,来实施其更具目的性的攻击行为。同时,由于域名系统(Domain Name System,DNS)所带来的便捷性,使用DNS来定位C&C服务器变成一种主流方式。
攻击者为了逃避检测,会采用域名生成算法(Domain Generation Algorithm,DGA),每隔一段时间生成大量的随机域名进行访问,这些域名也被称为算法生成域名,来确定真正C&C域名。以知名的僵尸网络conficker为例,其每小时生成250个域名,并随机选择其中32个进行连接尝试。
在相关研究方面,基于DNS访问行为特征的检测是对算法生成域名进行检测的一种常见方法。这种方法通过对访问算法生成域名的访问行为进行分析,提取能够对域名的进行描述的特征,建立对应的域名检测模型或者统计出特定的阈值,然后利用这个域名检测模型或阈值对未知算法生成域名进行检测。
但是,在提取DNS访问流量的时间特性时,往往需要很大的计算资源,使得这种检测方法很有可能无法对算法生成域名进行快速响应。同时,攻击者对自己控制域名更换的非常频繁,若无法对这些域名进行快速响应,对它们造成的影响将大大降低。
发明内容
本发明提供了一种对算法生成域名进行检测的方法及装置,以解决现有技术不能对算法生成域名进行快速检测的问题。
本发明一方面提供了一种对算法生成域名进行检测的方法,包括:
基于概率模型生成算法,根据算法生成域名集建立随机模型,并根据正常域名集建立正常模型;
根据所述随机模型和所述正常模型对算法生成域名进行检测。
进一步地,所述基于概率模型生成算法,根据算法生成域名集建立随机模型,并根据正常域名集建立正常模型具体包括:
基于概率模型生成算法,计算正常域名集的初始字符概率矩阵π1和字符转换概率矩阵B1,建立正常模型M1=<B1,π1>,并计算算法生成域名集的初始字符概率矩阵π2和字符转换概率矩阵B2,建立随机模型M2=<B2,π2>。
进一步地,所述基于概率模型生成算法,根据算法生成域名集建立随机模型,并根据正常域名集建立正常模型之后,还包括:
对域名系统DNS的访问数据进行噪声过滤,得到有效信息元组Info;
所述有效信息元组包括:访问ip,域名和时间戳。
进一步地,所述对域名系统DNS的访问数据进行噪声过滤具体包括:
对所述域名系统DNS的访问数据中信息记录错误和白名单列表当中的域名进行过滤。
进一步地,所述根据所述随机模型和所述正常模型对算法生成域名进行检测,具体包括:
以访问ip为单位,维护预定长度tw的待检测域名队列,当队列满时,对其中的域名进行处理,提取转换元组序列集合CharSeqSet;
对每个访问ip的转换元组序列集合CharSeqSet中的每个字符转换元组序列计算其属于正常域名的概率P1i和属于算法生成域名的概率P2i,其中:
当P1i>P2i,则标记待检测域名队列中的第i个域名为正常域名,否则,标记为算法生成域名;
对标记后的域名进行窗口投票,若待检测域名队列当中的算法生成域名的数量大于预设阈值数量tm,则将该ip和待检测域名队列中的算法生成域名标记为异常;
其中,属于初始字符概率矩阵π1属于字符转换概率矩阵B1属于初始字符概率矩阵π2属于字符转换概率矩阵B2,CharSeqi为第i个字符转换元组,为第n个字符转换元,k为自然数,n为转换元组序列的总数。
进一步地,所述提取转换元组序列集合CharSeqSet,具体包括:
对于待检测域名队列中的每个域名,提取其字符转换元组,得到字符转换元组序列形成预定大小的转换元组序列集合
本发明另一方面提供了一种对算法生成域名进行检测的装置,包括:
建立单元,用于基于概率模型生成算法,根据算法生成域名集建立随机模型,并根据正常域名集建立正常模型;
检测单元,用于根据所述随机模型和所述正常模型对算法生成域名进行检测。
进一步地,所述建立单元还用于,基于概率模型生成算法,并计算正常域名集的初始字符概率矩阵π1和字符转换概率矩阵B1,建立正常模型M1=<B1,π1>,计算算法生成域名集的初始字符概率矩阵π2和字符转换概率矩阵B2B,建立随机模型M2=<B2,π2>。
进一步地,该装置还包括:
过滤单元,用于对域名系统DNS的访问数据进行噪声过滤,得到有效信息元组Info;所述有效信息元组包括:访问ip,域名和时间戳。
进一步地,所述过滤单元还用于,对所述域名系统DNS的访问数据中信息记录错误和白名单列表当中的域名进行过滤,得到有效信息元组Info。
进一步地,所述检测单元还包括:
提取模块,用于以访问ip为单位,维护预定长度tw的待检测域名队列,当队列满时,对其中的域名进行处理,提取转换元组序列集合CharSeqSet;
计算模块,用于对每个访问ip的转换元组序列集合CharSeqSet中的每个字符转换元组序列计算其属于正常域名的概率P1i和属于算法生成域名的概率P2i,其中:
当P1i>P2i,则标记待检测域名队列中的第i个域名为正常域名,否则,标记为算法生成域名;
判断模块,用于对标记后的域名进行窗口投票,若待检测域名队列当中的算法生成域名的数量大于预设阈值数量tm,则将该ip和待检测域名队列中的算法生成域名标记为异常;
其中,属于初始字符概率矩阵π1属于字符转换概率矩阵B1属于初始字符概率矩阵π2属于字符转换概率矩阵B2,CharSeqi为第i个字符转换元组,为第n个字符转换元,k为自然数,n为转换元组序列的总数。
进一步地,所述提取模块还用于,以访问ip为单位,维护预定长度tw的待检测域名队列,当队列满时,对于待检测域名队列中的每个域名,提取其字符转换元组,得到字符转换元组序列形成预定大小的转换元组序列集合
本发明有益效果如下:
本发明通过概率模型生成算法,分别根据算法生成域名集和正常域名集建立随机模型和正常模型,并通过上述模型对算法生成域名进行检测,从而实现对算法生成域名进行快速检测,进而有效解决了现有技术不能对算法生成域名进行快速检测的问题。
附图说明
图1是本发明实施例的一种对算法生成域名进行检测的方法的流程示意图;
图2是本发明实施例的另一种对算法生成域名进行检测的方法的流程示意图;
图3是本发明实施例的再一种对算法生成域名进行检测的方法的流程示意图;
图4是本发明实施例的噪声过滤的方法的流程示意图;
图5是本发明实施例的对队列维护的方法的流程示意图;
图6是本发明实施例的异常检测的方法的流程示意图;
图7是本发明实施例的一种对算法生成域名进行检测的装置的结构示意图。
具体实施方式
由于攻击者需要在产生大量域名的同时,要避免其C&C域名与正常域名产生冲突,所以这些算法生成域名在字符特征上会与正常域名相差很大,并且具有很强的随机性,因此,本发明提供一种对算法生成域名进行检测的方法及装置,对字符转换概率建模,描述算法生成域名与正常域名的字符分布差异,使其可以对算法生成域名进行快速响应,并且能够应对环境内只存在单个ip的情况。以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
方法实施例
本发明实施例提供了一种对算法生成域名进行检测的方法,参见图1,该方法包括:
S101、基于概率模型生成算法,根据算法生成域名集建立随机模型,并根据正常域名集建立正常模型;
S102、根据所述随机模型和所述正常模型对算法生成域名进行检测。
也就是说,本发明通过概率模型生成算法,分别根据算法生成域名集和正常域名集建立随机模型和正常模型,并通过上述模型对算法生成域名进行检测,从而实现对算法生成域名进行快速检测,进而有效解决了现有技术不能对算法生成域名进行快速检测的问题。
本发明实施例所述步骤S101具体包括:
基于概率模型生成算法,并计算正常域名集的初始字符概率矩阵π1和字符转换概率矩阵B1,建立正常模型M1=<B1,π1>,计算算法生成域名集的初始字符概率矩阵π2和字符转换概率矩阵B2,建立随机模型M2=<B2,π2>。
即,本发明实施例是基于正常域名和算法生成域名在字符分布上的差异性,采用改了模型刻画域名字符的转换特征,从而实现快速有效的检测出算法生成域名。
具体实施时,本发明实施例所述的概率模型生成算法,包括计算初始字符概率矩阵π和字符转换概率矩阵B:
初始字符概率矩阵π,表示域名以字符α∈[a,b,…,z,0,…,9,others]开头的初始字符概率Pα,计算方法如下:
在训练数据中,对[a,b,…,z,0,…,9,others]中的任一字符α,统计以α开头的域名数量nα,以及所有域名的数量N,其中others代表非数字字母的字符;
计算字符α的初始概率形成初始字符概率矩阵π=[Pa,Pb,…,Pz,P0,…,P9,Pothers]。
字符转换概率矩阵B,表示字符之间的转换概率Pαβ=P(β|α)(α,β∈[a,b,…,z,0,…,9,others]),即当前出现的字符为α,下一个字符为β的概率,计算方法如下:
在训练数据中,将域名视为字符序列,提取其中的字符转换元组(α,β),并统计每一个字符转换元组出现的次数nαβ
设以α开头的字符转换元组的总数为nα*,则字符α到字符β的转换概率为:
计算所有Pαβ(α,β∈[a,b,…,z,0,…,9,others]),得到字符转换概率矩阵B=(Pαβ)37×37
本发明实施例在步骤S101之后,步骤S102之前,还包括:
对域名系统DNS的访问数据进行噪声过滤,得到有效信息元组Info;
所述有效信息元组包括:访问ip,域名和时间戳。
即,对所述域名系统DNS的访问数据中信息记录错误和白名单列表当中的域名进行过滤,得到有效信息元组Info。
需要说明的是,为了更好更准确的对算法生成域名进行检测,本领域的技术人员也可以根据需要来设置其他的有效信息元组。
本发明实施例所述的步骤S102具体包括:
以访问ip为单位,维护预定长度tw的待检测域名队列,当队列满时,对其中的域名进行处理,提取转换元组序列集合CharSeqSet;
对每个访问ip的转换元组序列集合CharSeqSet中的每个字符转换元组序列计算其属于正常域名的概率P1i和属于算法生成域名的概率P2i,其中:
当P1i>P2i,则标记待检测域名队列中的第i个域名为正常域名,否则,标记为算法生成域名;
对标记后的域名进行窗口投票,若待检测域名队列当中的算法生成域名的数量大于预设阈值数量tm,则将该ip和待检测域名队列中的算法生成域名标记为异常,以<访问ip,域名,时间戳>的格式输出。
其中,属于初始字符概率矩阵π1属于字符转换概率矩阵B1属于初始字符概率矩阵π2属于字符转换概率矩阵B2,CharSeqi为第i个字符转换元组,为第n个字符转换元,k为自然数,n为转换元组序列的总数。
具体实施例时,本发明实施例所述的方法还包括对检测域名队列维护方法,具体步骤如下;
1)对每个访问ip,维护一个大小为tw待检测域名队列,队列元素为其请求的域名;
2)当待检测域名队列满时,提取转换元组集合;
3)删除待检测域名队列队头元素,进入等待状态,当等待时间超过预设阈值时间tover时,删除队列,若ip访问了新的域名,则进入步骤1);
本发明实施例所述转换元组序列集合提取方法为,对于待检测域名队列中的每个域名,提取其字符转换元组,得到字符转换元组序列 最后形成预定大小为tw的转换元组序列集合
下面将结合附图,通过一个具体的例子对本发明所述的方法进行详细的解释和说明:
本发明实施例所述的方法,包括训练建立模型和应用模型进行检测两个过程,训练过程中要使用概率模型生成算法来对训练数据(该训练数据具体包括算法生成域名集和正常域名集)进行学习,得到正常模型M1=<B11>和随机模型M2=<B22>。检测过程中,首先,对域名系统(Domain Name System,DNS)的访问数据进行噪声过滤,得到有效信息元组;然后,对待检测域名队列中的域名提取转换元组序列集合;最后,利用模型M1和M2,结合转换元组序列集合,对待检测域名队列中的域名进行异常检测,输出检测结果,具体如图2所示。
本发明实施例所述的概率模型生成方法是对训练数据中的正常域名集和算法生成域名集进行学习,包括计算初始字符概率矩阵π和字符转换概率矩阵B,生成正常模型M1和随机模型M2,参见图3,具体流程如下:
1)初始字符概率矩阵:
a)统计以字符α∈[a,b,…z,0,…,9,others]开头的域名的数量nα,以及域名总数N;
b)对每个字符α∈[a,b,…,z,0,…,9,others],计算其初始概率
c)对正常域名集和算法生成域名集,分别计算所有在[a,b,…,z,0,…,9,others]当中的字符的初始概率Pα,得到正常初始字符概率矩阵和随机初始字符概率矩阵
2)字符转换概率矩阵:
a)将域名视为一串字符序列,将所有相邻的两个字符αβ视为转换元组(α,β),其中α,β∈[a,b,…,z,0,…,9,others]
b)对于所有的转换元组,分别计算其出现的次数nαβ
c)设以α开头的元组出现的次数为nα*,则字符α到字符β的转换概率为:
d)对正常域名集和算法生成域名集,分别计算所有Pαβ(α,β∈[a,b,…,z,0,…,9,others]),得到正常字符转换概率矩阵B1=(P1αβ)37×37,随机字符转换概率矩阵B2=(P2αβ)37×37
本发明所述的噪声过滤方法包括有效信息元组提取、记录错误过滤、白名单过滤三个步骤,参见图4,具体流程如下:
1)提取DNS访问数据中的每一条访问记录的有效信息元组Info=<访问ip,域名,时间戳>;
2)过滤掉由于信息记录错误而造成的噪声数据,这些数据满足以下条件:
a)目的端口不为53;
b)域名为空或者’-’;
3)对2)中过滤后的有效信息元组进行白名单过滤,即请求域名存在于白名单时,将其对应的有效信息元组过滤掉,其中白名单包括:
a)Alexa排名前100万的域名;
b)能够匹配下列关键字正则表达式的域名
'in-addr|dns|cdn|cache|che|download|update|tracker|weather|read|msg|yun|pan|tui|trade|name|message|session|tel|akamai|img|tag|reg|sdk|app|api|time|timing|3g|4g|wifi|msn|game|profile|file|config|cfg|device|dvs|data|check|play|mobile|mail|cloud|tool|resolver|analy|log|open|service|pay|talk|gov|ads|stat|letv|tv\.|live|radio|video|show|movie|online|air|dianshi|qzone|iie|cartoon|ip4|ipv4|ip6|ipv6|http|tcp|wpad|workgroup'
本发明实施例所述的队列维护方法,用来维护访问ip的待检测域名队列,当队列满时,提取队列中的域名转换为转换元组序列集合,删除队头元素,等待新的请求域名,并删除等待超时的队列。参见图5,具体流程如下:
1)当本模块接收到噪声过滤模块产生的Info元组时,判断该元组中的访问ip是否为新的ip地址:若是,则为其创建待检测域名队列,并将Info元组中的域名加入队尾;若不是,则判断域名是否在访问ip的待检测域名队列中,若存在,则不作处理,否则加入待检测域名队列的队尾;
2)当某ip对应的待检测域名队列满时,对于待检测队列中的每个域名,结合顶级域名数据,去掉其顶级域名,保留其域名标识得到域名标识集合
3)对于sLabelSet中的每个域名标识,提取字符转换元组序列最后形成大小为tw的转换元组序列集合
4)删除待检测队列的队头元素,进入等待状态,当等待时间超过阈值tover时,删除队列,若接收到新的访问元组,则进入步骤1)。
本发明实施例所述的异常检测方法结合了训练过程中输出的正常模型M1和随机模型M2,对转换元组序列集合中的字符转换序列进行算法生成域名判定,并采取窗口投票机制检测异常,输出检测结果,参见图6,具体流程如下:
1)对每个访问ip的转换元组序列集合CharSeqSet中的每个转换元组序列计算其属于正常域名的概率P1i和属于算法生成域名的概率P2i
a)其属于正常域名的概率P1i的计算公式如下:
其中,
b)其属于算法生成域名的概率P2i的计算公式如下:
其中,
2)若P1i>P2i,标记待检测域名队列中第i个域名为正常域名,否则,标记为算法生成域名;
3)对检测结果进行窗口投票,若待检测域名队列中的算法生成域名的数量大于阈值tm,则将其对应的ip和域名标记为异常,以<访问ip,域名,时间戳>的格式输出。
也就是说,本发明是基于正常域名和算法域名在字符分布上的差异性,采用概率模型刻画域名字符的转换特征,能够快速有效的检测出域名的随机特性;再者,我们选择以访问ip作为检测单位,可以有效应对网络环境内只有单个ip访问DGA域名的情况;在对访问ip进行异常检测时,采用了双概率模型概率比较的方法,结合窗口投票机制,大大减少了误报率。采用本发明进行DGA域名检测,在检测效率和检测性能上都能够取得很好的效果。
装置实施例
本发明实施例提供了一种对算法生成域名进行检测的装置,参见图7,该装置包括:
建立单元,用于基于概率模型生成算法,根据算法生成域名集建立随机模型,并根据正常域名集建立正常模型;
检测单元,用于根据所述随机模型和所述正常模型对算法生成域名进行检测。
也就是说,本发明通过建立单元根据概率模型生成算法,分别根据算法生成域名集和正常域名集建立随机模型和正常模型,并通过检测单元根据上述模型对算法生成域名进行检测,从而实现对算法生成域名进行快速检测,进而有效解决了现有技术不能对算法生成域名进行快速检测的问题。
进一步地,本发明实施例所述建立单元还用于,基于概率模型生成算法,并计算正常域名集的初始字符概率矩阵π1和字符转换概率矩阵B1,建立正常模型M1=<B1,π1>,计算算法生成域名集的初始字符概率矩阵π2和字符转换概率矩阵B2,建立随机模型M2=<B2,π2>。
即,本发明实施例是基于正常域名和算法生成域名在字符分布上的差异性,采用改了模型刻画域名字符的转换特征,从而实现快速有效的检测出算法生成域名。
具体实施时,本发明实施例所述的概率模型生成算法,包括计算初始字符概率矩阵π和字符转换概率矩阵B:
初始字符概率矩阵π,表示域名以字符α∈[a,b,…,z,0,…,9,others]开头的初始字符概率Pα,计算方法如下:
在训练数据中,对[a,b,…,z,0,…,9,others]中的任一字符α,统计以α开头的域名数量nα,以及所有域名的数量N,其中others代表非数字字母的字符;
计算字符α的初始概率形成初始字符概率矩阵π=[Pa,Pb,…,Pz,P0,…,P9,Pothers]。
字符转换概率矩阵B,表示字符之间的转换概率Pαβ=P(β|α)(α,β∈[a,b,…,z,0,…,9,others]),即当前出现的字符为α,下一个字符为β的概率,计算方法如下:
在训练数据中,将域名视为字符序列,提取其中的字符转换元组(α,β),并统计每一个字符转换元组出现的次数nαβ
设以α开头的字符转换元组的总数为nα*,则字符α到字符β的转换概率为:
计算所有Pαβ(α,β∈[a,b,…,z,0,…,9,others]),得到字符转换概率矩阵B=(Pαβ)37×37
进一步地,本发明所述的装置还包括:过滤单元,通过过滤单元对域名系统DNS的访问数据进行噪声过滤,得到有效信息元组Info;所述有效信息元组包括:访问ip,域名和时间戳。
具体实施时,本发明实施例所述过滤单元是通过对所述域名系统DNS的访问数据中信息记录错误和白名单列表当中的域名进行过滤,从而得到有效信息元组Info。
进一步地,本发明所述的装置的检测单元还包括:
提取模块,用于以访问ip为单位,维护预定长度tw的待检测域名队列,当队列满时,对其中的域名进行处理,提取转换元组序列集合CharSeqSet;
计算模块,用于对每个访问ip的转换元组序列集合CharSeqSet中的每个字符转换元组序列计算其属于正常域名的概率P1i和属于算法生成域名的概率P2i,其中:
当P1i>P2i,则标记待检测域名队列中的第i个域名为正常域名,否则,标记为算法生成域名;
判断模块,用于对标记后的域名进行窗口投票,若待检测域名队列当中的算法生成域名的数量大于预设阈值数量tm,则将该ip和待检测域名队列中的算法生成域名标记为异常;
其中,属于初始字符概率矩阵π1属于字符转换概率矩阵B1属于初始字符概率矩阵π2属于字符转换概率矩阵B2,CharSeqi为第i个字符转换元组,为第n个字符转换元,k为自然数,n为转换元组序列的总数。
其中,本发明的提取模块是以访问ip为单位,维护预定长度tw的待检测域名队列,当队列满时,对于待检测域名队列中的每个域名,提取其字符转换元组,得到字符转换元组序列形成预定大小的转换元组序列集合
本发明实施例中的相关内容可参照方法实施例部分进行理解,在此不再赘述。
本发明可以至少可以达到以下的有益效果:
本发明通过概率模型生成算法,分别根据算法生成域名集和正常域名集建立随机模型和正常模型,并通过上述模型对算法生成域名进行检测,从而实现对算法生成域名进行快速检测,进而有效解决了现有技术不能对算法生成域名进行快速检测的问题。
尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。

Claims (12)

1.一种对算法生成域名进行检测的方法,其特征在于,包括:
基于概率模型生成算法,根据算法生成域名集建立随机模型,并根据正常域名集建立正常模型;
根据所述随机模型和所述正常模型对算法生成域名进行检测。
2.根据权利要求1所述的方法,其特征在于,所述基于概率模型生成算法,根据算法生成域名集建立随机模型,并根据正常域名集建立正常模型具体包括:
基于概率模型生成算法,计算正常域名集的初始字符概率矩阵π1和字符转换概率矩阵B1,建立正常模型M1=<B1,π1>,并计算算法生成域名集的初始字符概率矩阵π2和字符转换概率矩阵B2,建立随机模型M2=<B2,π2>。
3.根据权利要求1所述的方法,其特征在于,所述基于概率模型生成算法,根据算法生成域名集建立随机模型,并根据正常域名集建立正常模型之后,还包括:
对域名系统DNS的访问数据进行噪声过滤,得到有效信息元组Info;
所述有效信息元组包括:访问ip,域名和时间戳。
4.根据权利要求3所述的方法,其特征在于,所述对域名系统DNS的访问数据进行噪声过滤具体包括:
对所述域名系统DNS的访问数据中信息记录错误和白名单列表当中的域名进行过滤。
5.根据权利要求3所述的方法,其特征在于,所述根据所述随机模型和所述正常模型对算法生成域名进行检测,具体包括:
以访问ip为单位,维护预定长度tw的待检测域名队列,当队列满时,对其中的域名进行处理,提取转换元组序列集合CharSeqSet;
对每个访问ip的转换元组序列集合CharSeqSet中的每个字符转换元组序列计算其属于正常域名的概率P1i和属于算法生成域名的概率P2i,其中:
<mrow> <mi>P</mi> <msub> <mn>1</mn> <mi>i</mi> </msub> <mo>=</mo> <msub> <mi>P</mi> <mrow> <mn>1</mn> <msub> <mi>&amp;alpha;</mi> <msub> <mi>i</mi> <mn>1</mn> </msub> </msub> </mrow> </msub> <msubsup> <mo>&amp;Pi;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>2</mn> </mrow> <mi>n</mi> </msubsup> <msub> <mi>P</mi> <mrow> <mn>1</mn> <msub> <mi>&amp;alpha;</mi> <msub> <mi>i</mi> <mrow> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> </msub> <msub> <mi>&amp;alpha;</mi> <msub> <mi>i</mi> <mi>k</mi> </msub> </msub> </mrow> </msub> <mo>,</mo> <mi>P</mi> <msub> <mn>2</mn> <mi>i</mi> </msub> <mo>=</mo> <msub> <mi>P</mi> <mrow> <mn>2</mn> <msub> <mi>&amp;alpha;</mi> <msub> <mi>i</mi> <mn>1</mn> </msub> </msub> </mrow> </msub> <msubsup> <mo>&amp;Pi;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>2</mn> </mrow> <mi>n</mi> </msubsup> <msub> <mi>P</mi> <mrow> <mn>2</mn> <msub> <mi>&amp;alpha;</mi> <msub> <mi>i</mi> <mrow> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> </msub> <msub> <mi>&amp;alpha;</mi> <msub> <mi>i</mi> <mi>k</mi> </msub> </msub> </mrow> </msub> <mo>;</mo> </mrow>
当P1i>P2i,则标记待检测域名队列中的第i个域名为正常域名,否则,标记为算法生成域名;
对标记后的域名进行窗口投票,若待检测域名队列当中的算法生成域名的数量大于预设阈值数量tm,则将该ip和待检测域名队列中的算法生成域名标记为异常;
其中,属于初始字符概率矩阵π1属于字符转换概率矩阵B1属于初始字符概率矩阵π2属于字符转换概率矩阵B2,CharSeqi为第i个字符转换元组,为第n个字符转换元,k为自然数,n为转换元组序列的总数。
6.根据权利要求5所述的方法,其特征在于,所述提取转换元组序列集合CharSeqSet,具体包括:
对于待检测域名队列中的每个域名,提取其字符转换元组,得到字符转换元组序列形成预定大小的转换元组序列集合
7.一种对算法生成域名进行检测的装置,其特征在于,包括:
建立单元,用于基于概率模型生成算法,根据算法生成域名集建立随机模型,并根据正常域名集建立正常模型;
检测单元,用于根据所述随机模型和所述正常模型对算法生成域名进行检测。
8.根据权利要求6所述的装置,其特征在于,
所述建立单元还用于,基于概率模型生成算法,并计算正常域名集的初始字符概率矩阵π1和字符转换概率矩阵B1,建立正常模型M1=<B1,π1>,计算算法生成域名集的初始字符概率矩阵π2和字符转换概率矩阵B2,建立随机模型M2=<B2,π2>。
9.根据权利要求6所述的装置,其特征在于,还包括:
过滤单元,用于对域名系统DNS的访问数据进行噪声过滤,得到有效信息元组Info;所述有效信息元组包括:访问ip,域名和时间戳。
10.根据权利要求9所述的装置,其特征在于,
所述过滤单元还用于,对所述域名系统DNS的访问数据中信息记录错误和白名单列表当中的域名进行过滤,得到有效信息元组Info。
11.根据权利要求9所述的装置,其特征在于,所述检测单元还包括:
提取模块,用于以访问ip为单位,维护预定长度tw的待检测域名队列,当队列满时,对其中的域名进行处理,提取转换元组序列集合CharSeqSet;
计算模块,用于对每个访问ip的转换元组序列集合CharSeqSet中的每个字符转换元组序列计算其属于正常域名的概率P1i和属于算法生成域名的概率P2i,其中:
<mrow> <mi>P</mi> <msub> <mn>1</mn> <mi>i</mi> </msub> <mo>=</mo> <msub> <mi>P</mi> <mrow> <mn>1</mn> <msub> <mi>&amp;alpha;</mi> <msub> <mi>i</mi> <mn>1</mn> </msub> </msub> </mrow> </msub> <msubsup> <mo>&amp;Pi;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>2</mn> </mrow> <mi>n</mi> </msubsup> <msub> <mi>P</mi> <mrow> <mn>1</mn> <msub> <mi>&amp;alpha;</mi> <msub> <mi>i</mi> <mrow> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> </msub> <msub> <mi>&amp;alpha;</mi> <msub> <mi>i</mi> <mi>k</mi> </msub> </msub> </mrow> </msub> <mo>,</mo> <mi>P</mi> <msub> <mn>2</mn> <mi>i</mi> </msub> <mo>=</mo> <msub> <mi>P</mi> <mrow> <mn>2</mn> <msub> <mi>&amp;alpha;</mi> <msub> <mi>i</mi> <mn>1</mn> </msub> </msub> </mrow> </msub> <msubsup> <mo>&amp;Pi;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>2</mn> </mrow> <mi>n</mi> </msubsup> <msub> <mi>P</mi> <mrow> <mn>2</mn> <msub> <mi>&amp;alpha;</mi> <msub> <mi>i</mi> <mrow> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> </msub> <msub> <mi>&amp;alpha;</mi> <msub> <mi>i</mi> <mi>k</mi> </msub> </msub> </mrow> </msub> <mo>;</mo> </mrow>
当P1i>P2i,则标记待检测域名队列中的第i个域名为正常域名,否则,标记为算法生成域名;
判断模块,用于对标记后的域名进行窗口投票,若待检测域名队列当中的算法生成域名的数量大于预设阈值数量tm,则将该ip和待检测域名队列中的算法生成域名标记为异常;
其中,属于初始字符概率矩阵π1属于字符转换概率矩阵B1属于初始字符概率矩阵π2属于字符转换概率矩阵B2,CharSeqi为第i个字符转换元组,为第n个字符转换元,k为自然数,n为转换元组序列的总数。
12.根据权利要求6所述的装置,其特征在于,
所述提取模块还用于,以访问ip为单位,维护预定长度tw的待检测域名队列,当队列满时,对于待检测域名队列中的每个域名,提取其字符转换元组,得到字符转换元组序列形成预定大小的转换元组序列集合
CN201610686248.7A 2016-08-18 2016-08-18 一种对算法生成域名进行检测的方法及装置 Active CN107770132B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610686248.7A CN107770132B (zh) 2016-08-18 2016-08-18 一种对算法生成域名进行检测的方法及装置
PCT/CN2017/093890 WO2018032936A1 (zh) 2016-08-18 2017-07-21 一种对算法生成域名进行检测的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610686248.7A CN107770132B (zh) 2016-08-18 2016-08-18 一种对算法生成域名进行检测的方法及装置

Publications (2)

Publication Number Publication Date
CN107770132A true CN107770132A (zh) 2018-03-06
CN107770132B CN107770132B (zh) 2021-11-05

Family

ID=61196330

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610686248.7A Active CN107770132B (zh) 2016-08-18 2016-08-18 一种对算法生成域名进行检测的方法及装置

Country Status (2)

Country Link
CN (1) CN107770132B (zh)
WO (1) WO2018032936A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109241483A (zh) * 2018-08-31 2019-01-18 中国科学院计算技术研究所 一种基于域名推荐的网站发现方法和系统
CN109450845A (zh) * 2018-09-18 2019-03-08 浙江大学 一种基于深度神经网络的算法生成恶意域名检测方法
CN110213255A (zh) * 2019-05-27 2019-09-06 北京奇艺世纪科技有限公司 一种对主机进行木马检测的方法、装置及电子设备
WO2020014916A1 (zh) * 2018-07-19 2020-01-23 华为技术有限公司 一种用户识别方法和相关设备
CN111314291A (zh) * 2020-01-15 2020-06-19 北京小米移动软件有限公司 网址安全性检测方法及装置、存储介质
CN111340574A (zh) * 2020-05-15 2020-06-26 支付宝(杭州)信息技术有限公司 风险用户的识别方法、装置和电子设备
CN112771523A (zh) * 2018-08-14 2021-05-07 北京嘀嘀无限科技发展有限公司 用于检测生成域的系统和方法
CN113572770A (zh) * 2021-07-26 2021-10-29 清华大学 检测域名生成算法生成的域名的方法及装置
CN114666077A (zh) * 2020-12-08 2022-06-24 北京中科网威信息技术有限公司 Dga域名检测方法及系统、电子设备及存储介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113545020B (zh) * 2019-03-29 2022-07-22 华为技术有限公司 一种数据处理方法及其装置
CN110233830A (zh) * 2019-05-20 2019-09-13 中国银行股份有限公司 域名识别和域名识别模型生成方法、装置及存储介质
CN110392064B (zh) * 2019-09-04 2022-03-15 中国工商银行股份有限公司 风险识别方法、装置、计算设备以及计算机可读存储介质
CN112995360B (zh) * 2021-04-30 2021-07-30 新华三技术有限公司 一种域名检测方法、装置、dga服务设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103957191A (zh) * 2014-04-03 2014-07-30 中国科学院计算机网络信息中心 一种中文域名仿冒攻击的检测方法
CN105024969A (zh) * 2014-04-17 2015-11-04 北京启明星辰信息安全技术有限公司 一种实现恶意域名识别的方法及装置
CN105119876A (zh) * 2015-06-29 2015-12-02 中国科学院信息工程研究所 一种自动生成的域名的检测方法及系统
CN105577660A (zh) * 2015-12-22 2016-05-11 国家电网公司 基于随机森林的dga域名检测方法
CN105610830A (zh) * 2015-12-30 2016-05-25 山石网科通信技术有限公司 域名的检测方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103957191A (zh) * 2014-04-03 2014-07-30 中国科学院计算机网络信息中心 一种中文域名仿冒攻击的检测方法
CN105024969A (zh) * 2014-04-17 2015-11-04 北京启明星辰信息安全技术有限公司 一种实现恶意域名识别的方法及装置
CN105119876A (zh) * 2015-06-29 2015-12-02 中国科学院信息工程研究所 一种自动生成的域名的检测方法及系统
CN105577660A (zh) * 2015-12-22 2016-05-11 国家电网公司 基于随机森林的dga域名检测方法
CN105610830A (zh) * 2015-12-30 2016-05-25 山石网科通信技术有限公司 域名的检测方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
RAGHURAM, JAYARAM ET AL.: "Unsupervised, low latency anomaly detection of algorithmically generated domain names by generative probabilistic modeling"", 《JOURNAL OF ADVANCED RESEARCH》 *
YADAV, S., REDDY, A. K. K., REDDY, A. L., & RANJAN, S.: ""Detecting algorithmically generated malicious domain names"", 《IN PROCEEDINGS OF THE 10TH ACM SIGCOMM CONFERENCE ON INTERNET MEASUREMENT》 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020014916A1 (zh) * 2018-07-19 2020-01-23 华为技术有限公司 一种用户识别方法和相关设备
CN112771523A (zh) * 2018-08-14 2021-05-07 北京嘀嘀无限科技发展有限公司 用于检测生成域的系统和方法
CN109241483B (zh) * 2018-08-31 2021-10-12 中国科学院计算技术研究所 一种基于域名推荐的网站发现方法和系统
CN109241483A (zh) * 2018-08-31 2019-01-18 中国科学院计算技术研究所 一种基于域名推荐的网站发现方法和系统
CN109450845B (zh) * 2018-09-18 2020-08-04 浙江大学 一种基于深度神经网络的算法生成恶意域名检测方法
CN109450845A (zh) * 2018-09-18 2019-03-08 浙江大学 一种基于深度神经网络的算法生成恶意域名检测方法
CN110213255A (zh) * 2019-05-27 2019-09-06 北京奇艺世纪科技有限公司 一种对主机进行木马检测的方法、装置及电子设备
CN110213255B (zh) * 2019-05-27 2022-03-04 北京奇艺世纪科技有限公司 一种对主机进行木马检测的方法、装置及电子设备
CN111314291A (zh) * 2020-01-15 2020-06-19 北京小米移动软件有限公司 网址安全性检测方法及装置、存储介质
CN111340574A (zh) * 2020-05-15 2020-06-26 支付宝(杭州)信息技术有限公司 风险用户的识别方法、装置和电子设备
CN111340574B (zh) * 2020-05-15 2020-08-25 支付宝(杭州)信息技术有限公司 风险用户的识别方法、装置和电子设备
CN114666077A (zh) * 2020-12-08 2022-06-24 北京中科网威信息技术有限公司 Dga域名检测方法及系统、电子设备及存储介质
CN114666077B (zh) * 2020-12-08 2022-11-15 北京中科网威信息技术有限公司 Dga域名检测方法及系统、电子设备及存储介质
CN113572770A (zh) * 2021-07-26 2021-10-29 清华大学 检测域名生成算法生成的域名的方法及装置
CN113572770B (zh) * 2021-07-26 2022-09-02 清华大学 检测域名生成算法生成的域名的方法及装置

Also Published As

Publication number Publication date
CN107770132B (zh) 2021-11-05
WO2018032936A1 (zh) 2018-02-22

Similar Documents

Publication Publication Date Title
CN107770132B (zh) 一种对算法生成域名进行检测的方法及装置
CN109951500B (zh) 网络攻击检测方法及装置
CN109600363B (zh) 一种物联网终端网络画像及异常网络访问行为检测方法
CN109194680B (zh) 一种网络攻击识别方法、装置及设备
WO2019136953A1 (zh) 基于c&c域名分析的僵尸网络检测方法、装置、设备及介质
CN108429651B (zh) 流量数据检测方法、装置、电子设备及计算机可读介质
WO2022083353A1 (zh) 异常网络数据检测方法、装置、计算机设备和存储介质
CN110213212B (zh) 一种设备的分类方法和装置
US8483056B2 (en) Analysis apparatus and method for abnormal network traffic
US9038178B1 (en) Detection of malware beaconing activities
WO2016006520A1 (ja) 検知装置、検知方法及び検知プログラム
US20090271865A1 (en) Method and device for detecting flood attacks
US20140189867A1 (en) DDoS ATTACK PROCESSING APPARATUS AND METHOD IN OPENFLOW SWITCH
WO2009135396A1 (zh) 网络攻击处理方法、处理装置及网络分析监控中心
CN113206860B (zh) 一种基于机器学习和特征选择的DRDoS攻击检测方法
JPWO2016194123A1 (ja) 中継装置、ネットワーク監視システム及びプログラム
CN110944016A (zh) DDoS攻击检测方法、装置、网络设备及存储介质
US20220263846A1 (en) METHODS FOR DETECTING A CYBERATTACK ON AN ELECTRONIC DEVICE, METHOD FOR OBTAINING A SUPERVISED RANDOM FOREST MODEL FOR DETECTING A DDoS ATTACK OR A BRUTE FORCE ATTACK, AND ELECTRONIC DEVICE CONFIGURED TO DETECT A CYBERATTACK ON ITSELF
KR100950079B1 (ko) 은닉마코프 모델을 이용한 확률적인 네트워크 이상징후탐지 장치 및 그 방법
JP2022000987A (ja) 通信装置
CN110061998B (zh) 一种攻击防御方法及装置
US11863584B2 (en) Infection spread attack detection device, attack origin specification method, and program
CN108512816B (zh) 一种流量劫持的检测方法及装置
CN111131309A (zh) 分布式拒绝服务检测方法、装置及模型创建方法、装置
US11916942B2 (en) Automated identification of false positives in DNS tunneling detectors

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