CN114897127A - 检测域生成算法的系统和方法 - Google Patents

检测域生成算法的系统和方法 Download PDF

Info

Publication number
CN114897127A
CN114897127A CN202111552199.5A CN202111552199A CN114897127A CN 114897127 A CN114897127 A CN 114897127A CN 202111552199 A CN202111552199 A CN 202111552199A CN 114897127 A CN114897127 A CN 114897127A
Authority
CN
China
Prior art keywords
dga
module
sequence
domain
sfc
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
CN202111552199.5A
Other languages
English (en)
Other versions
CN114897127B (zh
Inventor
L.J.瑟恩
Y.G.P.大卫
Q.H.杨
C.J.郝
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.)
Anxin Information Security Pte Ltd
Original Assignee
Anxin Information Security Pte Ltd
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 Anxin Information Security Pte Ltd filed Critical Anxin Information Security Pte Ltd
Publication of CN114897127A publication Critical patent/CN114897127A/zh
Application granted granted Critical
Publication of CN114897127B publication Critical patent/CN114897127B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2415Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • 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/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • 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/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/10Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols with particular housing, physical features or manual controls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • H04L9/16Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3026Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to polynomials generation, e.g. generation of irreducible polynomials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/304Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy based on error correction codes, e.g. McEliece
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/36Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols with means for detecting characters not meant for transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/121Timestamp
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/30Managing network names, e.g. use of aliases or nicknames

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Virology (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Algebra (AREA)
  • Probability & Statistics with Applications (AREA)
  • Medical Informatics (AREA)
  • Discrete Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Alarm Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本文档描述了一种系统和方法,用于从域名系统(DNS)记录流中检测表现出类似域生成算法(DGA)行为的域名。具体而言,该文档描述了一种系统,该系统包括深度学习分类器(DL‑C)模块,用于接收和过滤域名系统记录流。然后,SFC模块确定整个分析时间段内的DGA突发的数量。然后,自动编码器‑分类器(AE‑C)为每个DGA记录序列分配相干性分数。然后使用频谱分析器(FSA)模块将DGA发生事件的时间序列转换为频谱,然后识别在每个DGA记录序列中发生事件的周期性DGA突发。FSA和AE‑C模块生成的信息以及SFC模块生成的可能的DGA域名序列和其他丰富的详细信息随后被传递给警报模块,该模块随后使用该信息来呈现丰富的DGA警报并对其进行优先排序。

Description

检测域生成算法的系统和方法
技术领域
本发明涉及一种用于从域名系统(DNS)记录流中检测表现出类似域生成算法(DGA)行为的域名的系统和方法。具体而言,本发明涉及一种系统,该系统包括深度学习分类器(DL-C)模块,用于在已过滤的DNS记录被提供给序列过滤器-分类器(SFC)模块之前,接收并过滤DNS记录流,其中已过滤的DNS记录被确定为拥有表现出DGA行为的域名(在下文中,这些域名将可互换地称为DGA域名或可能的DGA域名)。
对于每个源互联网协议(IP)、目的地IP和分析时间段三元组,SFC模块随后将相关联的DGA记录分组为各种序列。然后,对于每个序列,它会过滤掉如由DL-C模块确定地、不会表现出类似DGA特征的DGA域名及其相应的DNS记录。接下来,SFC模块为存在于每个源IP、目的地IP和分析的时段之间的每个剩余DGA记录序列打标(tag)标记。最后,SFC模块利用DNS记录的时间戳来生成DGA发生事件的时间序列,使用该发生事件的时间序列,确定整个分析时间段内的DGA突发的数量。
然后,自动编码器-分类器(AE-C)通过基于DGA发生事件的DGA记录序列的相应时间序列,分析时间段内的相关性(correlation),为每个DGA记录序列分配相干性分数。然后使用频谱分析器(FSA)模块将DGA发生事件的时间序列转换为频谱,然后其识别在每个DGA记录序列内发生的周期性DGA突发。并行地,查找成功解析(FSR)模块利用如由SFC模块确定的每个序列的特征来查找解析到可能的命令和控制(C2)服务器的DGA域名。然后,由FSR、FSA和AE-C模块生成的信息连同由SFC模块产生的可能的DGA域名序列和其他丰富的细节被传递到警报模块,该警报模块然后使用该信息向用户呈现和优先化用文本和时间信息丰富的DGA警报,允许用户将注意力更好地集中在具有如下这些的那些警报上:经评估表现出DGA行为的域名序列中明显的文本相似性、由AE-C模块评估的更高相干性分数、由我们的FSA模块评估的周期性以及由FSR模块评估的对可能的C2服务器的可能解析。
背景技术
域生成算法(DGA)是恶意软件广泛使用的、用于在受感染的网络和恶意方的命令与控制(C2)服务器之间建立通信链路的算法。这种攻击很难检测和防止,因为恶意方的C2服务器通常没有静态域名,而是通常利用随机的动态域名,该随机的动态域名会随着时间不断变化。
因此,恶意软件需要在一段时间内和不同时刻查询多个域名(即类似突发的行为),以进行“暴力”搜索,从而确定攻击者的C2服务器当前所在的域。由于由DGA生成的域名可以动态生成,因此使用简单的域名黑名单对于阻止DGA威胁是无效的,因为相对于由DGA生成的域名而言,黑名单可能并不穷举。
DGA算法的一个有趣的副产品是,受感染的计算机发出的许多DNS请求都会用响应代码(“rcode”)NXDOMAIN进行回复,这指示该域不存在。这是因为在恶意软件进行的所有查询中,只有少数选定的域是正确的,这些域将以NOERROR rcode进行回复。这些就是C2服务器基础设施所在的域。由于接收到的NXDOMAIN rcode数量很大,大多数反DGA算法集中在这些DNS查询上,以确定网络中是否正在使用DGA。如果大量检测到这样的DNS查询,这将指示计算机/服务器正被恶意软件感染的可能性,因为恶意软件将试图与其C2服务器通信。
当前检测DGA的行业实践是使用机器学习方法和广泛的特征工程学来确定由网络查询的NXDOMAIN域名是否是由DGA创建的。常用特征的例子包括字符的归一化熵、n-gram、符号字符比、元音字符比等。最近,研究人员进一步完善了这些实践,他们开始在字符级别上使用深度学习技术,特别是递归神经网络(RNN)和卷积神经网络(CNN)架构,来确定NXDOMAIN域串(string)是否包含DGA。
其他人试图利用机器学习算法,特别是随机森林,以首先标记出可能是潜在DGA的串。特别地,手工设计的特征(hand engineered feature),如基于熵的特征(例如顶级域、二级域、三级域等的熵)和结构域特征(例如域名的长度、域级别的数量等)被随机森林算法用来确定特定的串是否是DGA。接下来,相似的串随时间而被相关。如果串表现出相似的基于熵的和结构的域特征,则它们被定义为相似的。那些随时间相关的串随后被声明为DGA,并存储在数据库中,用于随时间进一步完善随机森林算法。
其他人试图研究DGA的发生事件,然后试图确定是否可以从这些研究中观察到任何有意义的时间结构。本领域技术人员已经表明,采用DGA、特别是Conficker和Kraken类型的DGA的恶意软件样本表现出一些时间行为。研究表明,通过手动设计的特征训练的决策树能够在非常小的样本集内检测到DGA行为,该决策树是从恶意软件触发DGA时的时间序列中获得的。然而,值得注意的是,他们无法从频谱分析中提取有用的特征,因此他们的分析侧重于提取手工设计的时域特征。此外,他们无法实现工作系统,因为他们的分析需要实际的恶意软件样本,这些样本不容易获得,并且如果可见性仅局限于网络流量数据,则无法工作。因此,他们用于分析的数据集相当小。最后,他们还得出结论,他们使用时域特征检测DGA的方法导致高误报率,使其不适合大规模部署或实施。
上面提出的方法仅仅涉及关于一个域名或域名序列是否构成DGA的二元(binary)分类,并且没有对由所识别的域名所显示的DGA特征的类型进行任何分析。此外,当机器学习算法和/或方法与聚类一起使用时,用于训练这些模型的特征往往是手工设计的,并且这给输出设置了软约束,因为聚类的输出的结果将受到手工设计的特征类型的约束。换句话说,虽然聚类的输出可能更易于人工解释,但生成的聚类通常更受约束,因此,这阻碍了对DGA的可能的新变异的发现。此外,据我们所知,迄今还远没有任何系统成功地利用时间特征来检测DGA。
出于上述原因,本领域的技术人员一直在努力提出一种可扩展的系统和方法,该系统和方法能够提供更多的上下文信息和对表现出类DGA(DGA-like)行为的可疑DNS记录的自动分析,从而可以对这些DNS记录进行更彻底的分析,从而允许准确地检测到DGA。
发明内容
通过根据本发明的实施例所提供的系统和方法,解决了上述和其他问题,并且实现了本领域的进步。
根据本发明的系统和方法的实施例的第一个优点是,给定单个域名,本发明能够同时分类它是否是可能的DGA,并且如果它被认为是可能的DGA,则本发明将基于当前已知的DGA族确定该域名表现出各种已知的DGA族中的哪些特征。这种处理完全是自动完成的,不需要任何手工设计的特征和人为定义的规则。
根据本发明的系统和方法的实施例的第二个优点是,本发明能够回顾特定源和目的地IP之间的分析时间段(在我们的实施例中,1天),以检测表现出相似特征的可能的DGA,并丢弃其他的,而不需要任何手工设计的特征和人为定义的规则。
根据本发明的系统和方法的实施例的第三个优点是,本发明能够自动和有效地识别看起来相似但具有不同顶级域(Top Level Domain)的可能DGA序列,而不需要任何手工设计的特征和人为定义的规则。
根据本发明的系统和方法的实施例的第四个优点是,除了向用户提供一可能的DGA域名序列之外,本发明还能够提供行业中任何其他系统或研究没有提供的其他丰富的信息源。
根据本发明的系统和方法的实施例的第五个优点是,本发明使用观察到相关联的DNS记录时的时间戳来计算每个可能的DNS序列的相干性分数。这为用户提供了任何DGA序列的时间特征在相关性时间段(在我们的实施例中,1个月)内重复的频率的想法。较高的相干性分数指示相似的时间特征在相关性时间段内显示多次,指示更可疑的行为。
根据本发明的系统和方法的实施例的第六个优点是,本发明能够利用频谱分析器(FSA)模块来确定可能的DGA的相关联的DNS记录的时间戳是否表现出某种周期性行为,从而提供对存在自动软件/恶意软件的更多确认,因为人类行为往往是非周期性的。
根据本发明的系统和方法的实施例的第七个优点是,本发明能够利用本发明的串分析和时间分析能力来识别表现出尚不常见的行为的新的非DGA威胁。
根据本发明的系统和方法的实施例的第八个优点是,本发明能够通过确定与给定的可能的DGANXDOMAIN DNS记录序列相对应的每个可能的DGA NOERROR DNS记录在源IP、目的地IP和分析时间段方面是否具有与给定的可能的DGA NXDOMAIN DNS记录序列中相似的DGA特征,来识别DGA恶意软件的实际成功DNS解析。成功的解析不仅为用户提供了对结果更高的信心,还帮助他们确定工作的优先级,因为成功的解析意味着更高的紧急状态,因为它指示可能的数据泄露已经在发生。
根据本发明的方法的实施例以下列方式操作,提供了上述优点。
根据本发明的第一方面,公开了一种用于检测域生成算法(DGA)行为的系统,该系统包括:深度学习分类器(DL-C)模块,被配置为:接收域名系统(DNS)记录流;识别具有与DGA相关联的域名和与DGA相关联的域名中的每一个相关联的DGA特征的DNS记录,序列过滤器-分类器(SFC)模块,被配置为:基于与每个识别的DGA DNS记录相关联的源IP、目的地IP和分析时间段,将来自DL-C模块的识别的DNS记录分组为序列;对于每个序列,对于每个序列,识别并选择NXDOMAIN DGA相关联的域名,NXDOMAIN DGA相关联的域名表现出该序列的最多的c个发生的DGA特征中的至少一个作为其最多的k个特征之一,并基于最多的c个发生的DGA特征标记该序列;基于每个序列的相关联的时间戳对每个序列进行排序,并且基于该序列的第一记录对每个序列中的时间戳进行归一化,以获得在分析时间段内DGA发生事件的时间序列;向寻找成功解析(FSR)模块提供与识别的NXDOMAIN DGA DNS记录不相关联的NOERROR DNS记录,FSR模块被配置为从接收的DNS记录中识别与命令和控制服务器相关联的DGA域;自动编码器-分类器(AE-C)模块,包括合并成单个神经网络的自动编码器和分类器,该AE-C模块被配置为:对于从SFC模块获得的DGA发生事件的每个时间序列,为每个标记的序列生成相干性分数;移除相干性分数在预定阈值以下的序列;其中使用从SFC模块获得的发生事件的标记时间序列、和基于从序列的标记导出的单热向量
Figure BDA0003418054260000051
的分量、分类器的softmax输出
Figure BDA0003418054260000052
的维度和由系数α加权的重构损失的损失函数来训练自动编码器-分类器模块;频谱分析器(FSA)模块,被配置为:识别与DGA发生事件的每个时间序列相关联的DGA频域峰值,以便确定DGA发生事件的每个时间序列内的周期性信号;为DGA发生事件的每个时间序列内的每个周期性信号确定频率和相应的周期;识别对于每个确定的频率存在的相移信号的数量;警报模块,被配置为基于由SFC模块产生的DGA发生事件的时间序列、由AE-C模块产生的时间序列、由FSA模块确定的相移信号的识别的数量以及由FSR模块确定的识别的DGA域来对DGA警报进行优先排序。
关于本发明的第一方面,该系统还包括:平滑过滤器和离散傅立叶变换模块,被配置为:将平滑过滤器应用于由SFC模块输出的DGA发生事件的时间序列;和使用离散傅立叶变换算法将DGA发生事件的过滤后的时间序列从时域转换到频域,使得AE-C模块的神经网络的输入包括频谱。
关于本发明的第一方面,该系统还包括:机器学习串分析器(ML-SA)模块,其中在深度学习分类器模块识别具有DGA及其相关联的特征的DNS记录之前,ML-SA模块被配置为:使用机器学习算法过滤DNS记录,以从DNS记录中移除与已知的DGA不相关联的域名,由此使用以下标记的特征中的至少一个来训练机器学习算法:域名的长度、域名的熵、域名的字符n-gram、域名的不同字符计数、网络图或单词图相似性分数,以及由此使用标记的开源数据集、内部数据库和第三方数据库来训练机器学习算法。
关于本发明的第一方面,深度学习分类器模块包括:只看一次(YOLO)架构,被配置为:基于字符级令牌化来训练自身,以产生一组嵌入,该组嵌入通过神经网络来产生二元决策,以确定域名串是否包括DGA,以及如果确定域名串包括DGA,则生成指示该域名串属于哪个已知的DGA族的概率分布。
关于本发明的第一方面,其中YOLO架构包括通信连接到深度神经网络的嵌入层,由此嵌入层被配置为将字符令牌(token)的列表转换为矩阵,并且其中深度神经网络被配置为使用基于二元交叉熵损失和分类交叉熵损失的复合损失函数,其中复合损失函数被定义为:
Figure BDA0003418054260000061
其中b被定义为指示特定串是否包括DGA的标记,B被定义为指示特定串是否是DGA的神经网络的sigmoid输出,ti被定义为仅在与特定DGA串的族标记相对应的位置处被激活的单热向量的特定维度,
Figure BDA0003418054260000062
被定义为由神经网络输出的softmax激活向量,n被定义为
Figure BDA0003418054260000063
的维度的总数,其对应于用于训练模型的已知的DGA族的总数,并且γ被定义为可调谐系数,其用于加权二元交叉熵损失和softmax交叉熵损失之间的相对重要性。
关于本发明的第一方面,其中在SFC模块被DL-C模块应用于已经与DGA域串相关联的DNS记录之前,基于黑名单和规则的过滤模块被配置为:使用黑名单移除与类DGA算法相关联的合法域;并移除具有无效域和顶级域(TLD)特征的域名。
关于本发明的第一方面,其中用于训练自动编码器-分类器模块的损失函数被定义为:
Figure BDA0003418054260000071
其中,IX被定义为与SFC模块输出的DGA发生事件的时间序列相关的输入信号,该输入信号作为输入被馈送到自动编码器,IY是自动编码器的输出信号,pi是从由SFC模块打标到该序列的标记中导出的单热点向量
Figure BDA0003418054260000073
的第i维度,Pi是分类器的softmax输出
Figure BDA0003418054260000072
的第i维度,以及α是用于加权分类损失相对于重构损失的相对重要性的重构损失系数。
关于本发明的第一方面,在用于计数DGA突发的数量的SFC以及用于检测频谱中的峰值的FSA模块中使用的峰值检测和分层聚类算法包括用于峰值检测的恒定虚警率(Constant False Alarm Rate,CFAR)检测算法和用于分层聚类的凝聚聚类。
关于本发明的第一方面,FSR模块还被配置为:从深度学习分类器模块获得具有DGA相关联的域名但被DNS服务器打标有NOERROR返回码的DNS记录;从SFC模块获得由SFC模块输出的每个序列的最多的c个DGA特征;从具有DGA相关联的域名的NOERROR DNS记录中,识别就源IP、目的地IP和分析时间段而言、对应于每个序列的DNS记录,DNS记录表现出相应的序列的最多的c个DGA特征中的至少一个,作为它们的最多的k个DGA特征之一,如SFC模块所确定的;以及向警报模块提供对应于每个序列的识别的域名。
根据本发明的第二方面,一种使用系统来检测域生成算法(DGA)行为的方法,其中系统包括深度学习分类器(DL-C)模块;序列过滤器-分类器(SFC)模块;寻找成功解析(FSR)模块;自动编码器-分类器(AE-C)模块,包括合并成单个神经网络的自动编码器和分类器;频谱分析器模块(FSA)和警报模块,所述方法包括:使用DL-C模块接收域名系统(DNS)记录流;使用DL-C模块识别具有DGA相关联的域名和与DGA相关联的域名中的每一个相关联的DGA特征的DNS记录,使用SFC模块,基于与每个识别的DGA DNS记录相关联的源IP、目的地IP和分析时间段,将来自DL-C模块的识别的DNS记录分组为序列,由此对于每个序列,识别并选择NXDOMAIN DGA相关联的域名,NXDOMAIN DGA相关联的域名表现出该序列的最多的c个发生的DGA特征中的至少一个作为其最多的k个特征之一,并基于最多的c个发生的DGA特征标记该序列;使用SFC模块,基于每个序列的相关联时间戳对每个序列进行排序,并且基于该序列的第一记录对每个序列中的时间戳进行归一化,以获得在分析时间段内DGA发生事件的时间序列;使用SFC模块向寻找成功解析(FSR)模块提供与识别的NXDOMAIN DGA DNS记录不相关联的NOERROR DNS记录,FSR模块被配置为从接收的DNS中识别与命令和控制服务器相关联的DGA域;使用AE-C模块,为从SFC模块获得的DGA发生事件的每个时间序列生成,每个标记序列的相干性分数,以及移除相干性分数在预定阈值以下的序列,其中使用从SFC模块获得的发生事件的标记时间序列、和基于从序列的标记导出的单热向量
Figure BDA0003418054260000081
的分量、分类器的softmax输出
Figure BDA0003418054260000082
的维度和由系数α加权的重构损失的损失函数来训练自动编码器-分类器模块;使用FSA模块识别与DGA发生事件的每个时间序列相关联的DGA频域峰值,以便确定DGA发生事件的每个时间序列内的周期性信号;使用FSA模块确定DGA发生事件的每个时间序列内的每个周期性信号的频率和相应的周期;使用FSA模块识别对于每个确定的频率存在的相移信号的数量;以及使用警报模块,基于由SFC模块产生的DGA发生事件的时间序列、由AE-C模块产生的时间序列、由FSA模块确定的相移信号的识别的数量以及由FSR模块确定的识别的DGA域来对DGA警报进行优先排序。
根据本发明的第二方面,该方法还包括以下步骤:使用平滑过滤器和离散傅立叶变换模块,将平滑过滤器应用于由SFC模块输出的DGA发生事件的时间序列;和使用离散傅立叶变换算法将DGA发生事件的过滤后的时间序列从时域转换到频域,使得AE-C模块的神经网络的输入包括频谱。
根据本发明的第二方面,在深度学习分类器模块识别具有DGA及其相关联的特征的DNS记录的步骤之前,所述方法还包括以下步骤:使用机器学习串分析器(ML-SA)模块,基于机器学习算法,过滤DNS记录,以从DNS记录中移除与已知的DGA不相关联的域名,由此使用以下标记的特征中的至少一个来训练机器学习算法:域名的长度、域名的熵、域名的字符n-gram、域名的不同字符计数、网络图或单词图相似性分数,以及由此使用标记的开源数据集、内部数据库和第三方数据库来训练机器学习算法。
根据本发明的第二方面,深度学习分类器模块包括:只看一次(YOLO)架构,被配置为:基于字符级令牌化来训练自身,以产生一组嵌入,该组嵌入通过神经网络来产生二元决策,以确定域名串是否包括DGA,以及如果确定域名串包括DGA,则生成指示该域名串属于哪个已知的DGA族的概率分布。
根据本发明的第二方面,YOLO架构包括通信连接到深度神经网络的嵌入层,由此嵌入层被配置为将字符令牌的列表转换为矩阵,并且其中深度神经网络被配置为使用基于二元交叉熵损失和分类交叉熵损失的复合损失函数,其中复合损失函数被定义为:
Figure BDA0003418054260000091
其中b被定义为指示特定串是否包括DGA的标记,B被定义为指示特定串是否是DGA的神经网络的sigmoid输出,ti被定义为仅在与特定DGA串的族标记相对应的位置处被激活的单热向量的特定维度,
Figure BDA0003418054260000092
被定义为由神经网络输出的softmax激活向量,n被定义为
Figure BDA0003418054260000093
的维度的总数,其对应于用于训练模型的已知的DGA族的总数,并且γ被定义为可调谐系数,其用于加权二元交叉熵损失和softmax交叉熵损失之间的相对重要性。
根据本发明的第二方面,其中在通过DL-C模块将SFC模块应用于已经与DGA域串相关联的DNS记录的步骤之前,所述方法包括以下步骤:使用基于黑名单和规则的过滤模块移除与类DGA算法相关联的合法域;并移除具有无效域和顶级域(TLD)特征的域名。
根据本发明的第二方面,其中用于训练自动编码器-分类器模块的损失函数被定义为:
Figure BDA0003418054260000094
其中,IX被定义为与SFC模块输出的DGA发生事件的时间序列相关的输入信号,该输入信号作为输入被馈送到自动编码器,IY是自动编码器的输出信号,pi是从由SFC模块打标到该序列的标记中导出的单热点向量
Figure BDA0003418054260000095
的第i维度,Pi是分类器的softmax输出
Figure BDA0003418054260000096
的第i维度,以及α是用于加权分类损失相对于重构损失的相对重要性的重构损失系数。
根据本发明的第二方面,在用于计数DGA突发的数量的SFC以及用于检测频谱中的峰值的FSA模块中使用的峰值检测和分层聚类算法包括用于峰值检测的恒定虚警率(CFAR)检测算法和用于分层聚类的凝聚聚类。
根据本发明的第二方面,该方法还包括以下步骤:使用FSR模块从深度学习分类器模块获得具有DGA相关联的域名但被DNS服务器打标有NOERROR返回码的DNS记录;使用FSR模块从SFC模块获得由SFC模块输出的每个序列的最多的c个DGA特征;使用FSR模块从具有DGA相关联的域名的NOERROR DNS记录中,识别就源IP、目的地IP和分析时间段而言、对应于每个序列的DNS记录,DNS记录表现出相应的序列的最多的c个DGA特征中的至少一个,作为它们的最多的k个DGA特征之一,如SFC模块所确定的;和使用FSR模块向警报模块提供对应于每个序列的识别的域名。
附图说明
根据本发明的系统和方法的特征和优点解决了上述和其他问题,该系统和方法在详细描述中描述并且在以下附图中示出。
图1示出了可用于实现根据本发明的实施例的用于检测域生成算法(DGA)行为的系统的模块的框图;
图2示出了代表提供根据本发明的实施例的实施例的处理系统的框图;
图3示出了可用于实现根据本发明的实施例的深度学习分类器模块的模块的框图;
图4示出了根据本发明的实施例的绘制图,该绘制图示出了从可能的DGA序列中提取的、由序列过滤器-分类器模块(SFC)输出的、被认为表现出相似的串特征的可能的DGA发生事件的数量相对于时间的时间序列;
图5示出了可用于实现根据本发明的实施例的自动编码器-分类器(AE-C)模块的框图;
图6示出了根据本发明的实施例的、当周期T为0.1和0.05秒时、在时域及其相应的频域中表现出狄拉克(Dirac)梳状属性的信号的绘制图;
图7示出了根据本发明的实施例的时域中的多个相移信号的绘制图及其对应的频域绘制图;
图8示出了根据本发明的实施例的用于检测DGA行为的系统的多个实施例;
图9示出了根据本发明的实施例的使用深度学习分类器模块、序列过滤器-分类器模块、自动编码器-分类器模块、频谱分析器模块、寻找成功解析模块和警报模块来检测DGA行为的示例性过程;
图10示出了时间分析在为现实生活中的DGA警报提供更高可信度方面的重要性;和
图11示出了尽管缺乏规则和手工设计的特征、本发明仍能检测到的新威胁。
具体实施方式
本发明涉及一种用于从域名系统(DNS)记录流中检测表现出类似域生成算法(DGA)行为的域名的系统和方法。具体而言,本发明涉及一种系统,该系统包括深度学习分类器(DL-C)模块,用于在已过滤的DNS记录被提供给序列过滤器-分类器(SFC)模块之前,接收并过滤DNS记录流,其中已过滤的DNS记录被确定为拥有表现出DGA行为的域名(在下文中,这些域名将可互换地称为DGA域名或可能的DGA域名)。
对于每个源互联网协议(IP)、目的地IP和分析时间段三元组,SFC模块随后将相关联的DGA记录分组为各种序列。然后,对于每个序列,它会过滤掉如由DL-C模块确定的、不会表现出类似DGA特征的DGA域名及其相应的DNS记录。接下来,SFC模块为存在于每个源IP、目的地IP和分析时间段之间的每个剩余DGA记录序列打标标记。
最后,SFC模块利用DNS记录的时间戳来生成DGA发生事件的时间序列,然后,使用这些发生事件的时间序列,确定整个分析时间段内DGA突发的数量。
然后,自动编码器-分类器(AE-C)通过根据DGA发生事件的相应时间序列,分析相关性时间段内的相关性,为每个DGA记录序列分配相干性分数。然后使用频谱分析器(FSA)模块将DGA发生事件的时间序列转换为频谱,然后识别在每个DGA记录序列内发生的周期性DGA突发。并行地,查找成功解析(FSR)模块利用如由SFC模块确定的每个序列的特征来查找解析到可能的命令和控制(C2)服务器的DGA域名。然后,由FSR、FSA和AE-C模块生成的信息连同由SFC模块产生的可能的DGA域名序列和其他丰富的细节被传递到警报模块,该警报模块然后使用该信息向用户呈现和优先化用文本和时间信息丰富的DGA警报,允许用户将注意力更好地集中在具有如下那些的警报上:经评估呈现出DGA行为的域名序列中明显的文本相似性、由AE-C模块评估的更高相干性分数、由我们的FSA模块评估的周期性以及由FSR模块评估的对可能的C2服务器的可能解析。
现在将参考如附图所示的几个实施例详细描述本发明。在以下描述中,阐述了许多具体特征,以便提供对本发明的实施例的透彻理解。然而,对于本领域的技术人员来说,显而易见的是,实施例可以在没有一些或全部特定特征的情况下实现。这样的实施例也应该落入本发明的范围内。此外,下文中的某些过程步骤和/或结构可能没有详细描述,读者将参考相应的引用,以免不必要地模糊本发明。
此外,本领域技术人员将认识到,本说明书中的许多功能单元在整个说明书中都被标记为模块。本领域技术人员还将认识到,模块可以实现为电路、逻辑芯片或任何种类的分立组件,并且多个模块可以根据需要组合成单个模块或者分成子模块,而不脱离本发明。此外,本领域技术人员还将认识到,模块可以用软件来实现,然后可以由各种处理器来执行。在本发明的实施例中,模块还可以包括计算机指令或可执行代码,其可以指示计算机处理器基于接收到的指令执行一系列事件。模块实现的选择留给本领域技术人员作为设计选择,并不以任何方式限制本发明的范围。
图1示出了根据本发明的实施例的用于检测表现出域生成算法(DGA)行为的DNS记录序列的系统。如图所示,系统100包括深度学习分类器(DL-C)模块110、序列过滤器-分类器(SFC)模块115、自动编码器-分类器(AE-C)模块120、频谱分析器(FSA)模块125、寻找成功解析(FSR)模块119、警报模块130以及可选的平滑过滤器和离散傅立叶变换(DFT)模块117。
在操作中,在感兴趣的时间段内收集DNS记录流105,并将其提供给深度学习分类器模块110。该时间段可以包括任意数量的天、周或月,并且留给本领域技术人员作为设计选择。随后,该感兴趣的时间段将被称为相关性时间段,因为我们基本上试图在该时间段内找到相关性,以确定应该被赋予更高置信度的警报。在本发明的实施例中,该时间段可以包括一个月或30天。
深度学习分类器模块(DL-C)110然后分析包含在DNS记录105中的每个域名,以确定该域名是否是DGA域名,并确定该域名表现出的DGA特征。换句话说,模块110将识别具有可能与DGA相关联的域名的DNS记录,并且对于这些识别的可能的DGA域名,量化它们与每个已知的DGA族的相似程度。例如,如果有87个已知的DGA族,被DL-C模块认为是可能的DGA域名的每个域名将具有相关联的87维向量,其中,向量的每个元素指示域名和特定族之间的相似性百分比。然后,模块110从DNS记录中移除被DL-C模块认为不是DGA的DNS记录。参考图3,在后面的部分中更详细地描述预先训练的深度学习分类器模块110的详细工作(并且可选地可以随着其训练数据集的更新而更新)。剩余的DNS记录然后被提供给SFC模块115。
在模块115,剩余的DNS记录基于源互联网协议(IP)、目的地IP和分析时间段(例如几天)被分组,并且该时间段被任意选择,使得时间序列特征可以在固定的时间段内被确定。在我们的实施例中,我们使用1天作为分析时间段。请注意,此分析时间段不同于相关性时间段。具体而言,将从该分析时间段中提取特征,以确定它们是否在相关性时间段内相关。因此,分析时间段是相关性时间段的子集。在此过程结束时,已被认为具有DGA特征的各种DNS记录将根据源-目的地IP对和分析时间段进行分组。这最终为我们提供了每个相关联的源-目的地IP对和分析时间段的可能的DGA DNS记录序列。该DNS记录序列包含域名串及其相关联的时间戳,允许我们进行基于串和基于时间的分析。
然后对每个潜在的DGA DNS记录序列应用过滤器,以过滤掉包含没有被DNS服务器(未示出)用NXDOMAIN响应代码(rcode)标记的域名的记录。模块115然后识别由用NXDOMAINrcode打标的各种可能的DGA域名序列显示的DGA特征的主要类型。然后,不表现出至少一个主要识别特征的NXDOMAIN域名及其相关联的DNS记录也会从相应序列中移除。到本模块结束时,每个域名序列也将被打标到已知的DGA族之一。此外,应当注意,每个序列中的每个剩余项目也将显示由模块110确定的彼此相似的特征,因为模块110的输出被用于识别每个序列的主要DGA特征。换句话说,只有表现出发生最多的几个DGA特征(top few occurringDGA characteristics)中的至少一个DGA特征的可能的DGA域名将被选择保留在每个序列中,然后每个序列基于与聚类相关联的发生最多的DGA特征(top occurring DGAcharacteristic)被标记。
在本发明的示例性实施例中,序列过滤器-分类器可以被配置为执行以下方法:
1.最初,由深度学习分类器模块110确定的每个序列中的每个域名表现出的最多的k个已知的DGA特征被选择。例如,如果特定的序列包括Ntotal个DNS记录、以及相应的Ntotal个域名串,将选择已知的DGA类的Ntotal×k矩阵。
2.没有打标为NXDOMAIN的DNS记录将被过滤掉,从而形成DGA类的NNXDOMAIN×k矩阵。
3.然后,NNXDOMAIN×k矩阵的模式M被用来将该序列标记为DGAM。
4.然后我们可以找到NNXDOMAIN×k矩阵中发生频率最多的c个特征,m1m2,…mc
5.然后,在它们的最多的k个类中没有m1m2,…mc中的至少一个的所有域都被过滤掉。
在该过程结束时,每个DNS记录序列将被标记为其相应的标记M,深度学习分类器模块110认为该标记是每个DNS记录序列所显示的主要特征。此外,每个DNS记录序列现在只包含NXDOMAIN DNS记录,这些记录表现该序列的最多的c个特征中的至少一个作为其最多的k个特征之一。在本发明的实施例中,k的值可以任意设置为5(并且通常基于DL-C模块在试图实现任意分类精度时的性能),c可以任意设置为1并且必须小于或等于k。
然后基于每个序列的相关联的时间戳对每个序列进行排序(sort),然后在分析时间段对每个序列中的时间戳进行归一化。在本发明的实施例中,可以在将序列过滤器-分类器应用于每个序列之前,基于它们的相关联的时间戳对每个序列进行排序,并对时间戳进行归一化。在本发明的实施例中,这种排序是在序列内完成的,以确保记录是按时间顺序排序的。这是通过使用时间戳属性来完成的,时间戳属性是典型的DNS记录结构的字段之一。
因此,将生成多个DNS记录序列,并且每个DNS记录序列内的记录将在分析时间段内(例如1天)按时间顺序排序,并且将由深度学习分类器模块110分类,以将每个序列中发生频率最多的c个DGA特征显示为它们的最多的k个特征之一。
总之,到目前为止,每个DNS记录序列都有标记M,并且该序列的每个元素都包含NXDOMAIN类型的DNS记录。然后,与每个序列中的每个DNS记录相关联的时间戳被用于制定发生事件的时间序列,即DGA发生事件的数量相对于时间的绘制图。为此,首先计算相对时间(即序列中的每个记录和序列中的第一记录之间的时间差-时间戳的归一化)。相对时间然后被分格为预定的时间间隔(即时间间隔分格被称为采样周期),由此在本发明的示例性实施例中,采样周期可以被设置为1分钟(即60秒)。
如图4所示的绘制图400示出了相对于1天分析时间段绘制的可能的DGA发生事件的数量,由此在该绘制图中,x轴被设置为1440分钟,这相当于1天的时间段。对于每一分钟(就相对时间而言),相对于第一记录,在该分钟内发生的记录数量被合并(即被分格)、计数和绘制。
模块115的最后一步是利用典型的峰值检测和聚类算法来计算在整个分析时间段中发生的DGA突发的数量。我们将DGA突发定义为DGA发生事件组,这些发生事件组可以相互链接,其中链的每个元素之间的间隔最多为tc分钟。这意味着,在下一次DGA发生事件之前的至少tc分钟内,我们必须没有DGA发生事件,才能宣布2次突发(即,在这tc分钟内发生的任何DGA发生事件都将与第一次突发的其他元素链接在一起)。在一些实施例中,tc可以任意设置为5分钟。在我们的实施例中,该附加信息用于进一步丢弃在整个分析时间段中仅表现出单个突发的序列。在本发明的实施例中,恒定虚警率(CFAR)算法和分层聚类被用于确定在整个分析时间段发生的DGA突发的数量。由于CFAR和分层聚类的使用在合成孔径雷达应用中被广泛使用和记录,为了简洁起见,将不再详细描述。
这些时间序列然后被提供给自动编码器-分类器(AE-C)模块120,由此DGA发生事件的各种时间序列和与每个可能的DGA DNS记录序列相关联的标记M被用于训练该模块。AE-C模块120的详细工作将在后面的部分中参照图5进行更详细的描述。一旦模块120已经使用这些序列被训练,训练的自动编码器-分类器模块120随后被应用于这些序列中的每一个,以生成相干性分数。模块120的目的是确定学习与每个被标记序列相关联的时域(或者在一些实施例中,频域)特征的容易程度,并且相应地,确定模块115已经给予相同标记的各序列之间是否存在相干性。较高的相干性分数指示,与相同标记的其他序列相比,特定序列具有更相干的一组时域/频域特征。这指示,观察到与相同标记的其他序列相似的时间序列结构,增加了特定序列的可疑性。
接下来,从模块115的输出获得的各种可能的DGA DNS记录序列和它们相关联的发生事件的时间序列、连同由AE-C模块120生成的它们相关联的相干性分数、然后被提供给频谱分析(FSA)模块125。FSA模块125旨在确定是否存在由与可能的DGA DNS记录序列(即每个序列中各种DGA DNS记录的发生事件的时间序列)相关联的时间戳显示的任何强时间上周期性的行为。FSA模块125对DGA发生事件的时间序列应用平滑过滤器,随后进行离散傅立叶变换(DFT),以将其从时域转换到频域。在本发明的实施例中,平滑过滤器可以包括但不限于Hanning(汉宁)过滤器、Blackman(布莱克曼)过滤器或任何其他类似类型的平滑过滤器,以在内容从时域转换到频域时防止砖墙(brick wall)效应。
FSA模块125然后识别频谱中的峰值(即DGA频域峰值),指示可能的周期性和相应可能的自动恶意软件行为。对于频谱中的这些DGA频域峰值中的每一个,FSA模块125将首先评估它是否应该声明周期性信号的存在。如果是这样,它还将评估每个频率上发生的可能的相移信号的数量,以便用户即使只查看网络地址转换(NAT)后的流量数据(即网络地址转换后的流量数据),也能估计受感染计算机的数量。参考图6和7,在后面的部分中更详细地描述了FSA模块125的详细工作。
并行地,寻找成功解析(FSR)模块119获取被模块115丢弃的可能的DGA NOERRORDNS记录,以找到解析到可能的C2服务器的可能的DGA域。具体而言,对于与每个可能的DGANXDOMAIN DNS记录序列相关联的每个可能的DGA NOERROR DNS记录序列,模块119确定与每个记录相关联的域名所表现的最多的k个特征。如果m1m2,…mc中的至少一个特征作为可能的DGANOERROR DNS记录的最多的k个特征之一存在,则保留该记录,以便随后将其相关联的域名和DNS记录呈现给系统的用户。
在本发明的示例性实施例中,对于与特定源IP、目的地IP和分析时间段相关联的每个DNS记录序列,FSR模块119被配置为从深度学习分类器模块110获得Ntotal×k类矩阵,并且保留具有NOERROR的响应代码的那些DNS记录(即具有成功解析的DNS记录)以产生NNOERROR×k矩阵。如前所述,对于与特定源IP、目的地IP和分析时间段相关联的每个DNS记录序列,SFC模块115还被配置为获得类的Ntotal×k矩阵。然后,模块115过滤掉不具有NXDOMAIN的响应代码的DNS记录,用于其所有后续分析。然后,每个序列都用标记M打标,标记M是每个可能的DGA NXDOMAIN DNS记录序列的最多发生的DGA特征)。此外,还确定了每个可能的DGANXDOMAIN DNS记录序列中发生频率最多的c个特征m1,m2,…mc。使用来自模块115的输出,FSR模块119然后识别具有(1)NOERROR(无误差)响应代码和(2)m1,m2,…mc中的至少一个特征作为最多的k个特征之一的那些记录。换句话说,FSR模块119仅识别NNOERROR×k矩阵的行,在其k列中具有m1,m2,…mc特征之一。该模块背后的思想是:假设每个NXDOMAIN DNS记录序列已经被确定表现出某些特征,则该模块将识别也具有类似特征的那些NOERROR记录。这些附加的信息对于威胁分析师非常有用,因为发现此类已解析的DGA域指示攻击者的基础架构已经设置好。因此,这些DGA域是威胁分析师特别感兴趣和关注的重点。
警报模块130然后接收各种可能的DGA DNS记录序列,每个序列都富含以下信息:(1)标记M,其描述了在每个可能的DGA DNS记录序列中存在的最常见的DGA特征,(2)在整个分析时间段中DGA突发的数量,(3)由AE-C模块计算的相干性分数,(4)在与每个可能的DGANXDOMAIN DNS记录序列相关联的每个可能的DGA发生事件时间序列中存在的可能的频率和每个频率的相关联的信号的数量,以及(5)DNS服务器解析的可能的NOERROR DGA域名,指示可能的C2域。通过在这些附加的丰富数据字段中的每一个上设置阈值,DGA警报可以被优先化并呈现给系统的用户,使得更高置信度的警报可以被快速地采取行动。
在本发明的实施例中,来自警报模块130的输出可以包括如下NXDOMAIN域名的列表或序列,该列表或序列已经被分类以显示:作为它们的最多的k个特征之一的特征m1,m2,…mc中的至少一个(其中mi是与已知的DGA族相关联的标记)、在分析时间段内发生的DGA突发的数量、指示独特的可学习的可以与由SFC模块115打标到每个DNS记录序列的标记相关联的特征的存在的相干性分数、基于DGA发生事件的时间序列计算的频率和每个频率处的信号的数量的列表(其中这种频率的存在指示自动化进行DGA突发的软件的存在,因此可以用于指示恶意软件存在的增加的概率)、以及最后的相关联的已解析的NOERROR DGA域名序列(其指示解析到可能的C2服务器的可能的DGA域名)。
在本发明的另一个实施例中,平滑过滤器和离散傅立叶变换(DFT)模块117可以被配置为将与模块115输出的每个可能NXDOMAIN DGA DNS记录序列相关联的可能NXDOMAINDGA发生事件的时间序列从时域转换到频域(即频谱)。然后,自动编码器-分类器模块120将利用频谱来计算相干性分数,以代替可能的DGA发生事件的时间序列。
根据本发明的实施例,在图2中示出了表示处理系统200的组件的框图,该组件可以设置在模块110、115、120、125、130、117、119和用于实现根据本发明的实施例的实施例的系统的任何其他模块内。本领域技术人员将认识到,在这些模块中提供的每个处理系统的确切配置可能不同,并且处理系统200的确切配置可能不同,并且图2仅作为示例提供。
在本发明的实施例中,系统100中的每个模块可以包括控制器201和用户接口202。用户接口202被设置成能够根据需要在用户和这些模块中的每一个之间进行手动交互,并且为此目的包括用户输入指令以向这些模块中的每一个提供更新所需的输入/输出组件。本领域的技术人员将认识到,用户接口202的组件可以因实施例而异,但是通常包括显示器240、键盘235和跟踪板236中的一个或多个。
控制器201经由总线215与用户接口202进行数据通信,并且包括存储器220、安装在电路板上的处理用于执行本实施例的方法的指令和数据的处理器205、操作系统206、用于与用户接口202通信的输入/输出(I/O)接口230以及通信接口,在该实施例中,通信接口是网卡250的形式。例如,网卡250可以用于通过有线或无线网络从这些模块向其他处理设备发送数据,或者通过有线或无线网络接收数据。网卡250可以使用的无线网络包括但不限于无线保真(Wi-Fi)、蓝牙、近场通信(NFC)、蜂窝网络、卫星网络、电信网络、广域网(WAN)等。
存储器220和操作系统206通过总线210与CPU 205进行数据通信。存储器组件包括易失性和非易失性存储器以及每种类型的存储器中的一种以上,包括随机存取存储器(RAM)220、只读存储器(ROM)225和大容量存储设备245,后者包括一个或多个固态驱动器(SSD)。存储器220还包括安全存储器246,用于安全地存储密钥或私钥。本领域技术人员将认识到,上述存储器组件包括非暂时性计算机可读介质,并且应当被认为包括除暂时性传播信号之外的所有计算机可读介质。通常,指令作为程序代码存储在存储器组件中,但也可以硬连线。存储器220可以包括内核和/或编程模块,例如可以存储在易失性或非易失性存储器中的软件应用。
这里,术语“处理器”用于泛指能够处理这种指令的任何设备或组件,并且可以包括:微处理器、微控制器、可编程逻辑设备或其他计算设备。也就是说,处理器205可以由任何合适的逻辑电路提供,用于接收输入,根据存储在存储器中的指令处理它们并产生输出(例如到存储器组件或在显示器240上)。在该实施例中,处理器205可以是具有存储器可寻址空间的单核或多核处理器。在一个示例中,处理器205可以是多核的,包括例如8核CPU。在另一个例子中,它可以是并行运行以加速计算的CPU核的聚类。
图3示出了根据本发明的实施例的可用于实现深度学习分类器模块110的模块。在操作中,模块110被配置为接收一批域名串305,并从该批中识别哪些域名包括可能的DGA域名。对于这些识别出的可能的DGA域名,模块110然后确定这些域名所表现的已知的DGA族中的特征。通常,模块110利用修改的只看一次(You-Only-Look-Once,YOLO)架构和修改的损失函数来预训练深度学习模型。这是使用从标记的开源数据集、内部数据库和第三方数据库收集的数据来完成的。这些数据包括以下内容:(1)域名串,(2)域名串是否是DGA,以及(3)如果域名串是DGA,则相关联的DGA族可以用于经由从YOLO算法导出的复合损失函数来训练深度神经网络。
如图3所示,域名串305首先被提供给令牌化和填充模块310。根据本发明的实施例,在模块310,域名串在字符级被令牌化,其中每个字符被分配整数。在该实施例中,以下字符可以被令牌化:
a.26个小写字母:“a”到“z”
b.10个数字:“0”到“9”
c.1个子域分隔符:“.”
d.1个未登录(out-of-vocab)令牌,用于其他任何东西
e.1个,用于填充
本领域技术人员将认识到,在不脱离本发明的情况下,其他类型的字符也可以被令牌化。作为上述令牌化方法的结果,可以生成多达38个令牌,每个令牌对应于上述字符之一。然后向令牌中添加附加的令牌,以根据需要填充令牌。下面的表1说明了示例性的令牌化和填充过程,由此在串中的字符和它们对应的令牌之间进行映射:
字符 填充 ‘a’ ‘b’ ‘z’ ‘0’ ‘1’ ‘2’ ‘’ 其他任何东西
令牌 0 1 2 26 27 28 29 37 38
表1
作为令牌化过程的示例,串“ab.ab”将根据表1中的映射转换为整数列表,如下所示[1,2,37,1,2]。在令牌化过程之后,每个整数列表将被预填充或截断到80(任意选择)的长度。这意味着包含少于80个令牌的整数列表将在列表前面添加令牌0,直到总长度为80。对于超过80个令牌的列表,将只考虑最后80个令牌。
然后,各种列表被提供给嵌入层315。嵌入层315包括可训练层,并且其被配置为将32维向量分配给38个令牌中的每一个。本领域技术人员将认识到,在不脱离本发明的情况下,可以使用其他尺寸的维度向量。当每个列表通过嵌入层315时,该列表将被转换成32×80矩阵(行×列),由此80列中的每一列对应于32维向量,该向量由嵌入层315根据在特定字符位置找到的令牌来分配。
该32×80矩阵然后被提供给深度学习神经网络317,包括序列模型320,序列模型320可以包括但不限于递归神经网络(RNN)、卷积神经网络(CNN)、变换器神经网络(Transformer Neural Network,TNN)或三者的组合。序列模型320的输出然后可以被展平成单个向量,该向量然后可以被传递到多层感知器(MLP)层模型325以产生以下输出:
1.由sigmoid函数激活的单个神经元,其指示域串是否为DGA(1代表DGA,
0代表非DGA),用符号B表示;或者
2.由softmax函数共同激活的87个神经元的组合,其提供了在87个已知的DGA类中,域串表现出哪些特征的指示。这个维度向量被表示为
Figure BDA0003418054260000201
很明显,对于MLP 325模型的多个输出,需要复合损失函数。为了确定复合损失函数,二元交叉熵损失和分类交叉熵损失定义如下:
二元交叉熵损失=-b log(B)-(1-b)log(1-B)
Figure BDA0003418054260000202
其中b被定义为特定串是否为DGA的标记,即对于DGA串为1,对于非DGA串为0,B被定义为指示特定串是否为DGA的神经网络的sigmoid输出,
Figure BDA0003418054260000203
被定义为单热点向量,1对应于被标记的DGA类,并且ti表示单热点向量的特定维度。
在本发明的一个实施例中,在假设已知的87个DGA类/族的情况下,单热点向量
Figure BDA0003418054260000204
和维度向量
Figure BDA0003418054260000205
都将包括87个维度向量,并且n表示维度的总数。因此,复合损失函数可定义如下:
Figure BDA0003418054260000206
其中γ是系数,该系数可以被调谐以加权两个损失函数的相对重要性。值得注意的是,在第二项中,b、作为布尔地面真值(Boolean ground truth)标记(关于特定串是否为DGA)也被用作系数。这个公式指示,分类交叉熵损失只有当域串被标记为DGA时才被优化,否则只有二元交叉熵损失被优化。这类似于YOLO算法的公式。这种方法是有利的,因为它允许神经网络经由神经网络的单个前向通路同时输出(1)特定串是DGA的概率和(2)如果该特定串被确定为DGA,则由该特定串显示的已知的DGA的特征。
一旦定义了复合损失函数,就可以使用如ADAM、随机梯度下降(SGD)等优化算法来训练模型。在本发明的实施例中,随机加权平均(SWA)算法与不连续的循环学习速率一起用于训练深度学习模型317和嵌入层315。基于变换器的架构也用于降低损失函数的过拟合。
一旦模型317和嵌入层315被训练,DGA确定模块330可以使用模型317的二元输出B来确定域串是否是DGA,并且DGA族分类器335可以使用其输出向量
Figure BDA0003418054260000211
来确定DGA可能属于的DGA族。此外,由于输出由于其softmax激活层而包括离散的概率分布,因此输出可以被解释为加权的特征,由此加权与输入域串表现出的DGA特征成比例(相对于87个已知的DGA类)。简而言之,在深度学习分类器模块110结束时,只有具有被模块110的DGA确定模块330认为是DGA的域串的DNS记录将保留,而其他记录将被丢弃。
图5示出了可用于实现根据本发明的实施例的自动编码器-分类器(AE-C)模块120的模块。特别地,AE-C模块120包括复合自动编码器和分类器550,复合自动编码器包括模块510和520中的序列模型,分类器550包括模块530和535中的序列模型和多层感知器(MLP)的组合。编码515只是由编码器模块510输出的IX 505的低维表示。解码器模块520将使用该低维表示来产生重构的输出IY,其理想地等同于IX。在本发明的实施例中,当输入IX 505包括作为输入的时间序列(并且输出IY包括重构的时间序列)时,模块510、520、530和535可以包括基于存储器的模块、无存储器模块或者基于存储器/无存储器模块的组合。在本发明的另一个实施例中,当输入IX 505包括经由DGA发生事件的时间序列的离散傅立叶变换(DFT)获得的频谱作为输入(并且输出IY包括重构的频谱)时,模块510、520、530和535可以包括多层感知器(MLP)。
概括地说,来自SFC模块115的输出被提供给AE-C模块120。这些输出包括包含DGA相关联的域名序列,这些域名表现出该序列的至少一个最多发生的c个DGA特征作为其最多的k个特征之一。此外,这些序列中的每个序列中的DNS记录已经基于它们的相关联的时间戳被排序,并且基于每个序列的第一记录被归一化,以产生在分析时间段内DGA发生事件的次数的相关联的时间序列(例如,如图4所示的绘制图400)。这些序列中的每一个也被确定为在分析时间段内具有比预设阈值更多的DGA突发,并且还基于与该序列相关联的最多发生的DGA特征被标记。然后,自动编码器-分类器120被配置为使用这些序列作为标记数据集,以经由传统的监督学习技术训练深度学习模型。
自动编码器-分类器120旨在确定在接收到的序列数据集中是否存在可学习的结构,特别是,如果使用模块117,则确定与每个DNS记录序列或其相应的频谱相关联的DGA发生事件的时间序列。换句话说,给定各种序列及其相关联的标记,自动编码器-分类器120将确定数学模型是否可能学习和区分各种标记之间的模式,如果可能,学习和区分到什么程度。这背后的想法是确定每个标记是否存在唯一的可辨别的数据结构。如果没有,数学模型的可信度就会很低,因为它本质上是在类似噪声的输入上进行训练。
如图5所示,低维编码515被提供给分类器550。分类器550然后将确定模块120的输入是否具有结构,并且如果它确定存在结构,分类器550将继续学习输入的每个类的定义。
在本发明的实施例中,训练自动编码器-分类器120的损失函数L可以定义如下:
Figure BDA0003418054260000221
其中pi是从与每个输入Ix相关联的标记M导出的单热向量
Figure BDA0003418054260000222
的第i分量,IY是解码器模块520的输出,其理想地是输入IX的重构,Pi是分类器550的softmax输出
Figure BDA0003418054260000223
的第i维度,并且α是重构损失的系数。
在本发明的示例性实施例中,假设存在87个已知的DGA类。因此,
Figure BDA0003418054260000224
Figure BDA0003418054260000225
都将包含87维向量。在本发明的一些实施例中,可以仅使用分类器550和编码器510,而不需要解码器520。这实质上把它变成了一个简单的分类问题。然而,在本发明的大多数实施例中,需要包括解码器520的自动编码器损失被用作一种正则化形式,以确保神经网络将其分类基于较小维度的嵌入515,从该嵌入可以重构IX,而不是简单地记忆输入505。
一旦自动编码器-分类器120使用损失函数L针对特定数量的时期(在我们的实施例的情况下为1000个时期)被训练,训练的自动编码器-分类器120然后可以被应用于用于训练它的相同数据。然后,自动编码器-分类器120为模块115产生的每个可能的DGA序列产生作为其输出的相干性分数。相干性分数表示由自动编码器-分类器120给出的置信度分数,由此置信度分数越高,应该对特定DNS记录序列给予的关注就越多,因为这意味着在分析时间段(在我们的实施例中为1天)内分析的其时间/频率特征已经被认为在相关性时间段(在我们的实施例中为1个月)内被多次观察到。
重要的是要注意,在自动编码器-分类器120中训练的模型的目的是评估是否有任何时间特征(以及相应的频谱特征)可以与仅在相关性时间段内被打标到每个可能的DGADNS记录序列的每个DGA标记相关联。这样,自动编码器-分类器120中使用的模型并不意味着推广到其他相关性时间段(在我们的实施例中,其他月份的数据)。因此,一旦它在当前相关性时间段中输出每个序列的其置信度和分类,它就被丢弃。
根据本发明的实施例,由SFC模块115输出并随后经由自动编码器-分类器120用相干性分数来丰富的序列然后被提供给FSA模块125。如前所述,FSA模块125旨在确定是否存在由与可能的DGA DNS记录序列相关联的时间戳显示的任何强时间上周期性的行为。FSA模块125对DGA发生事件的时间序列应用平滑过滤器,随后是离散傅立叶变换(DFT),以在进行深度频率分析之前将其从时域转换到频域,以列举信号内的可能频率和每个频率处相移信号的数量。
值得注意的是,在此描述的方法不仅限于分析DGA时间戳序列中的周期性,还可以用于检测显示类似特征的其他威胁,诸如信标(beaconing),信标被定义为源目的地IP对之间的周期性通信(即心跳)。
根据本发明的实施例,FSA模块125如下工作:
1.该模块的输入包括发生事件的时间序列。然后,通过将窗口函数/平滑过滤器(在我们的实施例中,汉宁过滤器)应用于发生事件的时间序列,可以获得经过过滤的发生事件的时间序列。
2.当使用发生事件的时间序列时,周期性信号将在时域中显示其自身,如图6的绘制图605和615所示。可以看出,绘制图605和615描绘了分别每0.1和0.05秒重复一次的信号,每次一个发生事件。
3.上述信号实际上类似于狄拉克梳(Dirac comb)(也称为狄拉克列(Diractrain))。狄拉克梳具有非常有用的性质,即以f1赫兹的频率重复(即,每
Figure BDA0003418054260000241
秒重复一次)的狄拉克梳的傅里叶变换的幅度也是其狄拉克函数在频域中每f1赫兹重复的狄拉克梳。作为绘制图605的傅立叶变换的绘制图610和作为绘制图615的傅立叶变换的绘制图620说明了这个概念。
4.数学上,它可以描述如下:
Figure BDA0003418054260000242
其中F()代表傅里叶变换,δ是狄拉克函数,T1是狄拉克序列的周期。
5.在上面的等式中,有两件事需要注意:
a.首先,狄拉克梳在时域中的频率可以通过观察狄拉克函数在频域中何时重复来确定。
b.第二,狄拉克梳在频域中的幅度是
Figure BDA0003418054260000243
这实际上是狄拉克函数在时域中的频率。
6.使用以上两个推导,很明显,对于单个频率处的单个信号,可以通过识别狄拉克函数在频域中重复的位置来确定信号频率,并确保以f1(在频域中)的信号的幅度为
Figure BDA0003418054260000244
7.接下来,应该注意的是:
a.傅立叶变换是累加的。因此,时域中的多个信号(即,时域中多个信号的累加和)将仅仅是频域中的
b.最后,应该指出:
Figure BDA0003418054260000245
上述等式表明,如果信号在时域中时移,它将在频域中表现为相移形式。因此,如果两个信号存在于相同的频率f1,但在不同的相位,频域幅度的幅度将不是2f1,而是
Figure BDA0003418054260000246
下文阐述了FSA模块125的示例性伪代码。
Figure BDA0003418054260000247
Figure BDA0003418054260000251
(中文翻译:
1.输入:
xt:汉宁过滤发生事件的时间序列2.计算xf=F(xt)
3.对xf进行CFAR和分层聚类,以确定峰值的位置。假设Pf
{p0,p1,p2,…}是由CFAR和分层聚类过程输出的频率的集合(按升序排序)。设Mf={m0,m1,m2,…}是Pf集合中每个频率的对应频谱幅度的集合。
4.如果p0≠0Hz,跳出算法,就此结束
5.如果:p0=0Hz
zero_freq_mag=m0
分别从Pf和Mf的集合中移除p0和m0
6.初始化对象以存储最终输出:
·possible_freqs(可能的频率)=[]
·possible_freq_amplitude(可能的频率幅度)=[]
·possible_signal_count(可能的信号计数)=[]
·设min_num_sig为阈值最小信号数
7.对于Pf中的每个pn
使用
Figure BDA0003418054260000261
计算频率pn下的信号数量Ns,tent
如果:Ns,tent>min_num_sig
如果possible_freqs==[]:
附加pn到possible_freqs
附加mn到possible_freq_amplitude
附加Ns,tent到possible_signal_count
否则:
如果pn不能被possible_freqs中的任何项目整除:
附加pn到possible_freqs
附加mn到possible_freq_amplitude
附加Ns,tent到possible_signal_count
否则:
设div_freq是pn可被除尽的频率,并且Ns,tent,div是div_freq上估计存在的信号数。
如果:mn>divfreq×Ns,tent,div
附加pn到possible_freqs
附加mn-(divfreq×Ns,tent,div)到possible_freq_amplitude
附加
Figure BDA0003418054260000271
到possible_signal_count
8.
Figure BDA0003418054260000273
其中
Figure BDA0003418054260000272
表示按元素划分的向上取整功能。
9.unaccounted_magnitude=zero_freqs_mag-sum(possible_signal_count_rounded×possible_freqs)
10.利用unaccount_magnitude以迭代地确定与unaccount_magnitude相加的possible_freqs中的pn的最佳组合,并将附加信号添加到相应的possible_signal_count_rounded的索引中。这个步骤可以通过众所周知的背包(knapsack)问题算法来解决,为了简洁起见,这里不再描述。
11.在算法的最后,
a.possible_freqs是一组可能的频率
b.possible_signal_count_rounded是一个数组,它包含了possible_freqs中每个相应频率处的信号的数量
本领域技术人员将认识到,在不脱离本发明的情况下,可以使用其他形式的伪代码来执行FSA模块125的功能。利用上述算法和伪码,FSA模块将能够确定存在哪些周期性信号以及每个频率处的信号的数量。
应该强调的是,即使狄拉克梳中存在多个频率,并且在每个频率上存在多个相移信号,上述方法也能够列举出存在的周期性信号。图7的绘制图705示出了这样一种情况,其中存在3个频率,多个信号处于其中一个频率。尽管如图7的绘制图710所示的傅立叶变换绘制图不再像图6的绘制图610和620那样一致,但是上述方法能够正确地列举和识别所有信号。
图8示出了本发明的多个其他实施例,由此系统100可以包括但不限于附加模块的各种组合,诸如机器学习串分析器805和基于黑名单和规则的过滤模块810。
在本发明的实施例中,机器学习串分析器(ML-SA)805可以被配置为在处理后的DNS记录被提供给深度学习分类器模块110之前处理DNS记录105。分析器805的主要目的是最初过滤大量的电信级DNS记录,目的是移除显然不是DGA的域名。为了执行该过滤步骤,本领域已知的任何基本机器学习模型,诸如随机森林算法,可以被预先训练并应用于DNS记录的文本特征,以输出关于该串是否是可能的DGA的二元决策。用于在ML-SA模块中训练模型的文本特征可以包括但不限于:
I.长度
II.熵
III.字符N-Gram(3,4,5)
IV.不同字符计数
V.网络图相似性分数:一个域与合法网络域的相似性
VI.单词图相似性分数:一个域与词典单词的相似性
需要注意的是,该模型的主要目的是减少系统的下游计算负荷。因此,设置了低阈值,使得真阳性被过滤掉的概率很低。随着越来越多的DGA族为人所知,该模型可能会根据需要进行重新训练和更新。
在本发明的其他实施例中,在序列过滤器-分类器模块115之前,基于黑名单和规则的过滤模块810被配置为使用黑名单来移除与类DGA算法相关联的合法域和具有无效顶级域(TLD)特征的域名。除了黑名单之外,模块810还将基于以下规则移除记录:
1.与每个DNS记录相关联的域名串查询必须是有效的域名。例如,必须至少有一个“.”在域名串查询中。
2.域名串必须包含有效的TLD。
3.域名串中必须有有效字符。
4.域名串中必须有有效的字符数。
模块810使用的黑名单可以基于算法在延长的时间段内运行时获得的附加发现而随时间更新。此外,这些规则本质上非常简单,也可以根据用户的喜好进行修改。
根据本发明的实施例的用于检测DNS记录中的域生成算法(DGA)行为的示例性系统或方法在以下步骤中阐述。由图1所示的系统实现的方法步骤如下:
步骤1:使用深度学习分类器模块接收域名系统(DNS)记录流;以及识别具有DGA相关联的域名和与每个DGA相关联的域名相关联的DGA特征的DNS记录;
步骤2:使用序列过滤器-分类器(SFC)模块,基于与每个识别的可能的DGA DNS记录相关联的源IP、目的地IP和分析时间段,将来自深度学习分类器模块的识别的可能的DGADNS记录分组为序列;将序列过滤器-分类器应用于每个序列,以选择表现出该序列的至少一个最多发生的c个DGA特征的NOERROR DGA相关联的域名作为它们各自的最多的k个特征之一,并基于该最多发生的c个DGA特征标记该序列;基于每个序列的相关联的时间戳对每个序列进行排序,并且基于该序列的第一记录对每个序列中的时间戳进行归一化,以获得在分析时间段内DGA发生事件的时间序列;以及对DGA发生事件的时间序列应用峰值检测方法和分层聚类,以确定分析时间段内的DGA突发的数量,并过滤掉DGA突发少于特定预设量的相应序列。
步骤3:对于从SFC模块获得的每个序列,使用包括合并在单个网络中的自动编码器和分类器的自动编码器-分类器模块来为由SFC模块用标记M打标的每个序列生成相干性分数,其中自动编码器-分类器模块使用从SFC模块获得的序列和标记以及基于从序列的标记导出的单热向量
Figure BDA0003418054260000291
的分量、分类器的softmax输出
Figure BDA0003418054260000292
的维度和按系数α加权的重构损失来训练;
步骤4:使用频谱分析器(FSA)模块识别存在于DGA发生事件时间序列中的周期性狄拉克梳信号、它们的相关联的频率以及每个频率处的相移信号的数量。
步骤5:使用FSR模块识别解析到可能的C2服务器的可能的DGA域名。
步骤6:使用警报模块产生丰富的DGA警报并对其进行优先排序,该警报具有数据字段,该数据字段包括从SFC模块获得的NXDOMAIN DGA DNS记录序列及其相关联的突发的数量、从AE-C模块获得的相干性分数、从FSA模块获得的可能的周期性信号以及从FSR模块获得的解析到可能的C2服务器的可能的DGA域。
图9示出了根据本发明的实施例的检测DNS记录中的DGA行为的过程。过程900开始于步骤905,由此深度学习分类器模块被配置为接收DNS记录流。然后,在步骤910,识别具有DGA相关联的域名和与DGA相关联的域名中的每一个相关联的DGA特征的DNS记录。过程900然后使用SFC模块基于与每个识别的DGA DNS记录相关联的分析时间段、源互联网协议(IP)和目的地IP,将识别的DNS记录分组为序列。这在步骤915进行。
在步骤920,过程900然后利用SFC模块来遍历每个序列,并选择表现出该序列的最多发生的c个DGA特征中至少一个作为其最多的k个特征之一的DGA相关联的域名;并基于最多发生的DGA特征来标记该序列。这在步骤920进行。
过程900然后再次利用SFC模块基于它们的相关联的时间戳对每个序列进行排序;以及基于聚类的第一记录来归一化每个序列中的时间戳,以获得在分析时间段内DGA发生事件的数量的时间序列;并且经由典型的峰值检测和分层聚类算法来确定DGA发生事件的每个时间序列的DGA突发的数量;且过滤掉DGA突发少于预设量的那些序列被丢弃。这在步骤925进行。
过程900然后使用包括单个神经网络内的自动编码器和分类器的自动编码器-分类器模块,来为每个序列生成相干性分数。这在步骤930进行。
在步骤935,过程900然后使用FSA模块识别存在于DGA发生事件时间序列内的可能狄拉克梳信号,并根据确定它们的频率和每个频率处的信号的数量来列举它们。它首先对发生事件的时间序列应用适当的窗口函数,然后将其转换到频域进行深度频谱分析。
在步骤940,使用FSR模块,过程900利用由SFC模块识别的序列的最多的c个特征来找到DGA NOERROR DNS记录,该记录也表现出这些特征中的至少一个作为它们的最多的k个特征之一,并且将它们声明为解析到C2服务器的DGA域。
过程900然后前进到步骤945,由此它使用警报模块,基于每个相关联的丰富数据字段的用户定义的阈值,产生具有丰富数据字段的DGA警报并对其进行优先排序,丰富数据字段包括所有上述分析的结果。过程900然后结束。
实验结果
如图1所示,通过使用系统100对几个月的电信级流量数据进行的实验,发现系统100能够识别相似的DGA记录并将这些DGA记录分组在一起,从而显著减少威胁分析师的工作。对于文献中的大多数算法,DNS记录被简单地分类,不管它是否是DGA。这样做会导致大量的DGA警报。与本领域技术人员已经提出的解决方案不同,系统100能够将电信数据月内的警报总数从900万个减少到227个,并且发现227个警报中的每一个都包含被认为具有相似串和可疑时间特征的域序列。在227个警报中,威胁分析师一眼就能确认其中85个警报是真正的阳性。其余的随后被发现是类DGA的,但本质上没有恶意,因为一些合法的程序也为特定目的使用DGA。这些可用于随后更新我们的内部数据库和黑名单。此外,发现系统100能够检测具有不同顶级域的DGA串,而无需硬编码任何规则。此外,系统100能够检测多个DGA序列,这些序列表现出如图10所示的时间行为。很明显,具有强烈的周期性信号,如频域中极其规则的模式所示,表明恶意软件行为的可能性很高。这突出了时间序列分析对于DGA检测的重要性及其向系统用户提供显著更高置信度警报的能力。
在我们的分析过程中,我们还选择了一些序列,如图11的绘制图1105所示。乍一看,本发明似乎获得了假阳性,因为这些域看起来并不相似。也有很多重复的领域。然而,在查看周期性分析后,如图11的绘制图1110所示,我们还发现了一些强周期性信号,这次是多个频率。在进行进一步深入分析后,我们的威胁分析师注意到,列表中的每个域都被独立的威胁情报源标记为恶意域。这说明了本发明能够检测新的威胁,尽管没有明确设计这样做。我们认为这源于最少使用规则和特征的手工设计,从而产生了算法,该算法可以更好地在电信级流量数据的大规模部署中进行推广。
因此,我们发现,本发明能够以高效和有效的方式从电信级DNS记录流中检测出DGA,使用了据我们所知迄今为止还没有其他系统在这种规模上开发过的时间特征。本领域的技术人员可以确定许多其他的变化、替换、变化和修改,并且本发明旨在包括落入所附权利要求范围内的所有这些变化、替换、变化和修改。
我们还展示了我们的FSA模块检测和拾取经由代码模拟(通过代码生成的周期性信号)和平台模拟(由实际生成的网络流量组成的周期性信号,这些流量在网络中连接的计算机之间传输,用于真实生活模拟)生成的周期性信号的能力。下表2显示了我们的结果。可以看出,在42个实际信号中,FSA模块能够准确检测到37个信号(准确率为88.1%)。事实上,在12个测试案例中,我们能够获得除1个案例之外的所有案例的所有频率;我们只错过了案例10中的90分钟周期性信号。这相当于92%的准确率。计算每个频率处的信号的数量是更具挑战性的任务,因为频域中的相移使计算变得复杂。然而,在所有23个正确检测到的频率中,我们能够获得其中18个频率的正确信号数。
这是78%的准确率。这个模块对其他网络应用非常有用,尤其是信标。
Figure BDA0003418054260000311
Figure BDA0003418054260000321
表2。

Claims (18)

1.一种用于检测域生成算法(DGA)行为的系统,包括:
深度学习分类器(DL-C)模块,被配置为:
接收域名系统(DNS)记录流;
识别具有DGA相关联的域名和与DGA相关联的域名中的每一个相关联的DGA特征的DNS记录,
序列过滤器-分类器(SFC)模块,被配置为:
基于与每个识别的DGA DNS记录相关联的源IP、目的地IP和分析时间段,将来自DL-C模块的识别的DNS记录分组为序列;
对于每个序列,识别并选择NXDOMAIN DGA相关联的域名,NXDOMAIN DGA相关联的域名表现出该序列的最多的c个发生的DGA特征中的至少一个作为其最多的k个特征之一,并基于最多的c个发生的DGA特征标记该序列;
基于每个序列的相关联的时间戳对每个序列进行排序,并且基于该序列的第一记录对每个序列中的时间戳进行归一化,以获得在分析时间段内DGA发生事件的时间序列;
向寻找成功解析(FSR)模块提供与识别的NXDOMAIN DGA DNS记录不相关联的NOERRORDNS记录,FSR模块被配置为从接收的DNS记录中识别与命令和控制服务器相关联的DGA域;
自动编码器-分类器(AE-C)模块,包括合并成单个神经网络的自动编码器和分类器,AE-C模块被配置为:
对于从SFC模块获得的DGA发生事件的每个时间序列,
为每个标记的序列生成相干性分数;
移除相干性分数在预定阈值以下的序列;
其中使用从SFC模块获得的发生事件的标记时间序列、和基于从序列的标记导出的单热向量
Figure FDA0003418054250000011
的分量、分类器的softmax输出
Figure FDA0003418054250000012
的维度和由系数α加权的重构损失的损失函数来训练自动编码器-分类器模块;
频谱分析器(FSA)模块,被配置为:
识别与DGA发生事件的每个时间序列相关联的DGA频域峰值,以便确定DGA发生事件的每个时间序列内的周期性信号;
为DGA发生事件的每个时间序列内的每个周期性信号确定频率和相应的周期;
识别对于每个确定的频率存在的相移信号的数量;
警报模块,被配置为基于由SFC模块产生的DGA发生事件的时间序列、由AE-C模块产生的时间序列、由FSA模块确定的相移信号的识别的数量以及由FSR模块确定的识别的DGA域来对DGA警报进行优先排序。
2.根据权利要求1所述的系统,还包括:
平滑过滤器和离散傅立叶变换模块,被配置为:
将平滑过滤器应用于由SFC模块输出的DGA发生事件的时间序列;和
使用离散傅立叶变换算法将DGA发生事件的过滤后的时间序列从时域转换到频域,使得AE-C模块的神经网络的输入包括频谱。
3.根据权利要求1或2所述的系统,其中系统还包括:
机器学习串分析器(ML-SA)模块,其中在深度学习分类器模块识别具有DGA及其相关联的特征的DNS记录之前,ML-SA模块被配置为:
使用机器学习算法过滤DNS记录,以从DNS记录中移除与已知的DGA不相关联的域名,
由此使用以下标记的特征中的至少一个来训练机器学习算法:域名的长度、域名的熵、域名的字符n-gram、域名的不同字符计数、网络图或单词图相似性分数,以及
由此使用标记的开源数据集、内部数据库和第三方数据库来训练机器学习算法。
4.根据权利要求1或2所述的系统,其中深度学习分类器模块包括:
只看一次(YOLO)架构,被配置为:
基于字符级令牌化来训练自身,以产生一组嵌入,该组嵌入通过神经网络来产生二元决策,以确定域名串是否包括DGA,以及如果确定域名串包括DGA,则生成指示该域名串属于哪个已知的DGA族的概率分布。
5.根据权利要求4所述的系统,其中YOLO架构包括通信连接到深度神经网络的嵌入层,由此嵌入层被配置为将字符令牌的列表转换为矩阵,并且其中深度神经网络被配置为使用基于二元交叉熵损失和分类交叉熵损失的复合损失函数,其中复合损失函数被定义为:
Figure FDA0003418054250000031
其中b被定义为指示特定串是否包括DGA的标记,B被定义为指示特定串是否是DGA的神经网络的sigmoid输出,ti被定义为仅在与特定DGA串的族标记相对应的位置处被激活的单热向量的特定维度,
Figure FDA0003418054250000032
被定义为由神经网络输出的softmax激活向量,n被定义为
Figure FDA0003418054250000033
的维度的总数,其对应于用于训练模型的已知的DGA族的总数,并且γ被定义为可调谐系数,其用于加权二元交叉熵损失和softmax交叉熵损失之间的相对重要性。
6.根据权利要求1或2所述的系统,其中在SFC模块被DL-C模块应用于已经与DGA域串相关联的DNS记录之前,基于黑名单和规则的过滤模块被配置为:
使用黑名单移除与类DGA算法相关联的合法域;并
移除具有无效域和顶级域(TLD)特征的域名。
7.根据权利要求1或2的系统,其中用于训练自动编码器-分类器模块的损失函数被定义为:
Figure FDA0003418054250000034
其中,IX被定义为与SFC模块输出的DGA发生事件的时间序列相关的输入信号,该输入信号作为输入被馈送到自动编码器,IY是自动编码器的输出信号,pi是从由SFC模块打标到该序列的标记中导出的单热点向量
Figure FDA0003418054250000041
的第i维度,Pi是分类器的softmax输出
Figure FDA0003418054250000042
的第i维度,以及α是用于加权分类损失相对于重构损失的相对重要性的重构损失系数。
8.根据权利要求1或2的系统,其中在用于计数DGA突发的数量的SFC以及用于检测频谱中的峰值的FSA模块中使用的峰值检测和分层聚类算法包括用于峰值检测的恒定虚警率(CFAR)检测算法和用于分层聚类的凝聚聚类。
9.根据权利要求1或2所述的系统,其中FSR模块还被配置为:
从深度学习分类器模块获得具有DGA相关联的域名但被DNS服务器打标有NOERROR返回码的DNS记录;
从SFC模块获得由SFC模块输出的每个序列的最多的c个DGA特征;
从具有DGA相关联的域名的NOERROR DNS记录中,识别就源IP、目的地IP和分析时间段而言、对应于每个序列的DNS记录,DNS记录表现出相应的序列的最多的c个DGA特征中的至少一个,作为它们的最多的k个DGA特征之一,如SFC模块所确定的;以及
向警报模块提供对应于每个序列的识别的域名。
10.一种使用系统来检测域生成算法(DGA)行为的方法,其中系统包括深度学习分类器(DL-C)模块;序列过滤器-分类器(SFC)模块;寻找成功解析(FSR)模块;自动编码器-分类器(AE-C)模块,包括合并成单个神经网络的自动编码器和分类器;频谱分析器模块(FSA)和警报模块,所述方法包括:
使用DL-C模块接收域名系统(DNS)记录流;
使用DL-C模块识别具有DGA相关联的域名和与DGA相关联的域名中的每一个相关联的DGA特征的DNS记录,
使用SFC模块,基于与每个识别的DGA DNS记录相关联的源IP、目的地IP和分析时间段,将来自DL-C模块的识别的DNS记录分组为序列,由此对于每个序列,识别并选择NXDOMAINDGA相关联的域名,NXDOMAIN DGA相关联的域名表现出该序列的最多的c个发生的DGA特征中的至少一个作为其最多的k个特征之一,并基于最多的c个发生的DGA特征标记该序列;
使用SFC模块,基于每个序列的相关联时间戳对每个序列进行排序,并且基于该序列的第一记录对每个序列中的时间戳进行归一化,以获得在分析时间段内DGA发生事件的时间序列;
使用SFC模块向寻找成功解析(FSR)模块提供与识别的NXDOMAIN DGA DNS记录不相关联的NOERROR DNS记录,FSR模块被配置为从接收的DNS中识别与命令和控制服务器相关联的DGA域;
使用AE-C模块,为从SFC模块获得的DGA发生事件的每个时间序列生成,
每个标记序列的相干性分数,以及
移除相干性分数在预定阈值以下的序列,
其中使用从SFC模块获得的发生事件的标记时间序列、和基于从序列的标记导出的单热向量
Figure FDA0003418054250000051
的分量、分类器的softmax输出
Figure FDA0003418054250000052
的维度和由系数α加权的重构损失的损失函数来训练自动编码器-分类器模块;
使用FSA模块识别与DGA发生事件的每个时间序列相关联的DGA频域峰值,以便确定DGA发生事件的每个时间序列内的周期性信号;
使用FSA模块确定DGA发生事件的每个时间序列内的每个周期性信号的频率和相应的周期;
使用FSA模块识别对于每个确定的频率存在的相移信号的数量;以及
使用警报模块,基于由SFC模块产生的DGA发生事件的时间序列、由AE-C模块产生的时间序列、由FSA模块确定的相移信号的识别的数量以及由FSR模块确定的识别的DGA域来对DGA警报进行优先排序。
11.根据权利要求10所述的方法,其中所述方法还包括以下步骤:
使用平滑过滤器和离散傅立叶变换模块,将平滑过滤器应用于由SFC模块输出的DGA发生事件的时间序列;和
使用离散傅立叶变换算法将DGA发生事件的过滤后的时间序列从时域转换到频域,使得AE-C模块的神经网络的输入包括频谱。
12.根据权利要求10或11所述的方法,其中在深度学习分类器模块识别具有DGA及其相关联的特征的DNS记录的步骤之前,所述方法还包括以下步骤:
使用机器学习串分析器(ML-SA)模块,基于机器学习算法,过滤DNS记录,以从DNS记录中移除与已知的DGA不相关联的域名,
由此使用以下标记的特征中的至少一个来训练机器学习算法:域名的长度、域名的熵、域名的字符n-gram、域名的不同字符计数、网络图或单词图相似性分数,以及
由此使用标记的开源数据集、内部数据库和第三方数据库来训练机器学习算法。
13.根据权利要求10或11所述的方法,其中深度学习分类器模块包括:
只看一次(YOLO)架构,被配置为:
基于字符级令牌化来训练自身,以产生一组嵌入,该组嵌入通过神经网络来产生二元决策,以确定域名串是否包括DGA,以及如果确定域名串包括DGA,则生成指示该域名串属于哪个已知的DGA族的概率分布。
14.根据权利要求13所述的方法,其中YOLO架构包括通信连接到深度神经网络的嵌入层,
由此嵌入层被配置为将字符令牌的列表转换为矩阵,并且其中深度神经网络被配置为使用基于二元交叉熵损失和分类交叉熵损失的复合损失函数,其中复合损失函数被定义为:
Figure FDA0003418054250000061
其中b被定义为指示特定串是否包括DGA的标记,B被定义为指示特定串是否是DGA的神经网络的sigmoid输出,ti被定义为仅在与特定DGA串的族标记相对应的位置处被激活的单热向量的特定维度,
Figure FDA0003418054250000062
被定义为由神经网络输出的softmax激活向量,n被定义为
Figure FDA0003418054250000071
的维度的总数,其对应于用于训练模型的已知的DGA族的总数,并且γ被定义为可调谐系数,其用于加权二元交叉熵损失和softmax交叉熵损失之间的相对重要性。
15.根据权利要求10或11所述的方法,其中在通过DL-C模块将SFC模块应用于已经与DGA域串相关联的DNS记录的步骤之前,所述方法包括以下步骤:
使用基于黑名单和规则的过滤模块移除与类DGA算法相关联的合法域;并移除具有无效域和顶级域(TLD)特征的域名。
16.根据权利要求10或11所述的方法,其中用于训练自动编码器-分类器模块的损失函数被定义为:
Figure FDA0003418054250000072
其中,IX被定义为与SFC模块输出的DGA发生事件的时间序列相关的输入信号,该输入信号作为输入被馈送到自动编码器,IY是自动编码器的输出信号,pi是从由SFC模块打标到该序列的标记中导出的单热点向量
Figure FDA0003418054250000073
的第i维度,Pi是分类器的softmax输出
Figure FDA0003418054250000074
的第i维度,以及α是用于加权分类损失相对于重构损失的相对重要性的重构损失系数。
17.根据权利要求10或11所述的方法,其中在用于计数DGA突发的数量的SFC以及用于检测频谱中的峰值的FSA模块中使用的峰值检测和分层聚类算法包括用于峰值检测的恒定虚警率(CFAR)检测算法和用于分层聚类的凝聚聚类。
18.根据权利要求10或11所述的方法,其中所述方法还包括以下步骤:
使用FSR模块从深度学习分类器模块获得具有DGA相关联的域名但被DNS服务器打标有NOERROR返回码的DNS记录;
使用FSR模块从SFC模块获得由SFC模块输出的每个序列的最多的c个DGA特征;
使用FSR模块从具有DGA相关联的域名的NOERROR DNS记录中,识别就源IP、目的地IP和分析时间段而言、对应于每个序列的DNS记录,DNS记录表现出相应的序列的最多的c个DGA特征中的至少一个,作为它们的最多的k个DGA特征之一,如SFC模块所确定的;和
使用FSR模块向警报模块提供对应于每个序列的识别的域名。
CN202111552199.5A 2021-01-26 2021-12-17 检测域生成算法的系统和方法 Active CN114897127B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
SG10202100813P 2021-01-26
SG10202100813PA SG10202100813PA (en) 2021-01-26 2021-01-26 A SYSTEM AND METHOD FOR DETECTING DOMAIN GENERATION ALGORITHMS (DGAs) USING DEEP LEARNING AND SIGNAL PROCESSING TECHNIQUES

Publications (2)

Publication Number Publication Date
CN114897127A true CN114897127A (zh) 2022-08-12
CN114897127B CN114897127B (zh) 2023-12-12

Family

ID=74758358

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111552199.5A Active CN114897127B (zh) 2021-01-26 2021-12-17 检测域生成算法的系统和方法

Country Status (7)

Country Link
US (1) US11436499B2 (zh)
KR (1) KR102457003B1 (zh)
CN (1) CN114897127B (zh)
AU (1) AU2021282384B2 (zh)
GB (1) GB2603279B (zh)
IL (1) IL289063B (zh)
SG (1) SG10202100813PA (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117596066A (zh) * 2023-12-06 2024-02-23 广州大学 一种基于二级域名的轻量级物联网僵尸主机检测方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12056169B1 (en) * 2021-10-28 2024-08-06 Splunk Inc. Systems and methods for DNS text classification
CN116112225B (zh) * 2022-12-28 2024-08-27 中山大学 一种基于多通道图卷积的恶意域名检测方法及系统
CN118626818A (zh) * 2024-08-14 2024-09-10 南京信息工程大学 面向开放集无人机射频信号识别的超球判别特征嵌入与自适应判决门限

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106790008A (zh) * 2016-12-13 2017-05-31 浙江中都信息技术有限公司 用于在企业网络中检测异常主机的机器学习系统
US20180351972A1 (en) * 2017-05-31 2018-12-06 Infoblox Inc. Inline dga detection with deep networks
CN110826686A (zh) * 2018-08-07 2020-02-21 艾玛迪斯简易股份公司 有属性序列的机器学习系统和方法
CN111031026A (zh) * 2019-12-09 2020-04-17 杭州安恒信息技术股份有限公司 一种dga恶意软件感染主机检测方法
CN111277603A (zh) * 2020-02-03 2020-06-12 杭州迪普科技股份有限公司 无监督异常检测系统和方法
CN112073551A (zh) * 2020-08-26 2020-12-11 重庆理工大学 基于字符级滑动窗口和深度残差网络的dga域名检测系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3225915B2 (ja) * 1998-02-19 2001-11-05 株式会社デンソー 移動通信端末及び移動通信システム
DE60330646D1 (de) * 2003-03-20 2010-02-04 Sony Ericsson Mobile Comm Ab Mobilgerät mit Zeitsteuerung für ein digitales Rechteverwaltungsverfahren (DRM)
US10958668B1 (en) * 2017-12-21 2021-03-23 Palo Alto Networks, Inc. Finding malicious domains with DNS query pattern analysis
CN109450845B (zh) * 2018-09-18 2020-08-04 浙江大学 一种基于深度神经网络的算法生成恶意域名检测方法
KR102600745B1 (ko) * 2018-11-14 2023-11-10 주식회사 디플리 신경망 분석 기반의 소리 분류용 이상 탐지 방법
KR102021138B1 (ko) 2019-05-07 2019-09-11 주식회사 에이아이스페라 인공지능 기반 악성 도메인 분류 방법 및 프로그램
US11115428B2 (en) * 2019-11-21 2021-09-07 Verizon Patent And Licensing Inc. Systems and methods for determining network data quality and identifying anomalous network behavior
CN112839012B (zh) * 2019-11-22 2023-05-09 中国移动通信有限公司研究院 僵尸程序域名识别方法、装置、设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106790008A (zh) * 2016-12-13 2017-05-31 浙江中都信息技术有限公司 用于在企业网络中检测异常主机的机器学习系统
US20180351972A1 (en) * 2017-05-31 2018-12-06 Infoblox Inc. Inline dga detection with deep networks
CN110826686A (zh) * 2018-08-07 2020-02-21 艾玛迪斯简易股份公司 有属性序列的机器学习系统和方法
CN111031026A (zh) * 2019-12-09 2020-04-17 杭州安恒信息技术股份有限公司 一种dga恶意软件感染主机检测方法
CN111277603A (zh) * 2020-02-03 2020-06-12 杭州迪普科技股份有限公司 无监督异常检测系统和方法
CN112073551A (zh) * 2020-08-26 2020-12-11 重庆理工大学 基于字符级滑动窗口和深度残差网络的dga域名检测系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
KUMAR A. D.等: "Enhanced Domain Generating Algorithm Detection Based on Deep Neural Networks", DEEP LEARNING APPLICATIONS FOR CYPER SECURITY, pages 151 - 173 *
LI Y. 等: "A Machine Learning Framework for Domain Generation Algorithm (DGA)-Based Malware Detection", IEEE ACCESS, no. 7, pages 32765 - 32782, XP011716058, DOI: 10.1109/ACCESS.2019.2891588 *
LO E. 等: "Internet of Things (IoT) Discovery Using Deep Neural Networks", 2020 IEEE WINTER CONFERENCE ON APPLICATIONS OF COMPUTER VISION (WACV), pages 806 - 814 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117596066A (zh) * 2023-12-06 2024-02-23 广州大学 一种基于二级域名的轻量级物联网僵尸主机检测方法

Also Published As

Publication number Publication date
SG10202100813PA (en) 2021-02-25
AU2021282384B2 (en) 2022-12-01
KR102457003B1 (ko) 2022-10-21
IL289063B (en) 2022-08-01
GB2603279B (en) 2023-02-22
AU2021282384A9 (en) 2022-10-27
AU2021282384A1 (en) 2022-08-11
KR20220107925A (ko) 2022-08-02
US20220245461A1 (en) 2022-08-04
US11436499B2 (en) 2022-09-06
GB202117539D0 (en) 2022-01-19
CN114897127B (zh) 2023-12-12
IL289063A (zh) 2022-01-01
GB2603279A (en) 2022-08-03

Similar Documents

Publication Publication Date Title
CN114897127B (zh) 检测域生成算法的系统和方法
Ubing et al. Phishing website detection: An improved accuracy through feature selection and ensemble learning
US20200351242A1 (en) System and method for detecting generated domain
CN112019651B (zh) 利用深度残差网络和字符级滑动窗口的dga域名检测方法
Lin et al. Character-level intrusion detection based on convolutional neural networks
CN112073551B (zh) 基于字符级滑动窗口和深度残差网络的dga域名检测系统
CN112073550B (zh) 融合字符级滑动窗口和深度残差网络的dga域名检测方法
Vajrobol et al. Mutual information based logistic regression for phishing URL detection
Drichel et al. First step towards explainable dga multiclass classification
KR20220152167A (ko) 도메인 네임 시스템(dns) 레코드들의 세트에서 피싱-도메인들을 검출하기 위한 시스템 및 방법
CN116232673A (zh) 隐蔽通道识别方法、装置、计算机设备及存储介质
Mythreya et al. Prediction and prevention of malicious URL using ML and LR techniques for network security: machine learning
CN116962047A (zh) 一种可解释的威胁情报生成方法、系统及装置
CN117792708A (zh) 一种探测网络空间资产的方法、装置及电子设备
Ruiling et al. A dns-based data exfiltration traffic detection method for unknown samples
CN114118398A (zh) 目标类型网站的检测方法、系统、电子设备及存储介质
CN114884686B (zh) 一种php威胁识别方法及装置
Saengkhunthod et al. Detection of unreliable medical articles on Thai websites
Ullah et al. Classification of cybercrime indicators in open social data
Ding et al. Detecting Domain Generation Algorithms with Bi-LSTM.
Ravinder Reddy et al. Detection of network anomaly sequences using deep recurrent neural networks
Khatun et al. An Approach to Detect Phishing Websites with Features Selection Method and Ensemble Learning
Remya et al. An Effective Detection Approach for Phishing URL Using ResMLP
Gabryel et al. Methods of searching for similar device fingerprints using changes in unstable parameters
Mumu et al. Multiclass Classification of Malicious URL Detection Using Machine Learning and Deep Learning

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40076593

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant