KR102457003B1 - 딥 러닝 및 신호 처리 기술을 사용하여 dga들(domain generation algorithms)을 검출하기 위한 시스템 및 방법 - Google Patents

딥 러닝 및 신호 처리 기술을 사용하여 dga들(domain generation algorithms)을 검출하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR102457003B1
KR102457003B1 KR1020210180441A KR20210180441A KR102457003B1 KR 102457003 B1 KR102457003 B1 KR 102457003B1 KR 1020210180441 A KR1020210180441 A KR 1020210180441A KR 20210180441 A KR20210180441 A KR 20210180441A KR 102457003 B1 KR102457003 B1 KR 102457003B1
Authority
KR
South Korea
Prior art keywords
dga
module
series
domain
sfc
Prior art date
Application number
KR1020210180441A
Other languages
English (en)
Other versions
KR20220107925A (ko
Inventor
준 선 리
귀 펭 데이비드 얌
한 양 쿽
한 양 ?o
진 하오 찬
Original Assignee
엔사인 인포시큐리티 피티이. 엘티디.
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 엔사인 인포시큐리티 피티이. 엘티디. filed Critical 엔사인 인포시큐리티 피티이. 엘티디.
Publication of KR20220107925A publication Critical patent/KR20220107925A/ko
Application granted granted Critical
Publication of KR102457003B1 publication Critical patent/KR102457003B1/ko

Links

Images

Classifications

    • 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
    • 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
    • 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
    • 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
    • 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/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)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (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(Domain Name System) 레코드들의 스트림으로부터 DGA(Domain Generation Algorithm) 유사 거동들을 나타내는 도메인 명칭들을 검출하는 시스템 및 방법을 설명한다. 특히, 본 문서는, DGA 거동을 나타내는 도메인 명칭들을 갖는 것으로 결정된 필터링된 DNS 레코드들이 SFC(series filter-classifier) 모듈에 제공되기 전에 DNS 레코드들의 스트림을 수신 및 필터링하기 위한 DL-C(deep learning classifier) 모듈을 포함하는 시스템을 설명한다. 다음으로, SFC 모듈은 소스 IP, 목적지 IP 및 시간에 기초하여 레코드들을 다양한 계열로 그룹화한다. 각각의 계열에 대해, 이는 다음으로 계열의 지배적인 DGA 특성들을 나타내지 않는 레코드들을 필터링 제거한다. 마지막으로, 각각의 계열에 대해, DGA 발생의 시계열을 생성하고, 다음으로 이러한 발생의 시계열을 사용하여 분석 기간 전체에 걸쳐 DGA 버스트의 수를 결정하기 위해 나머지 DNS 레코드의 타임스탬프를 사용한다. 다음으로, AE-C(autoencoder-classifier)는 시간 기간에 걸쳐 상관들을 분석함으로써, DGA 발생들의 그 대응하는 시계열에 기초하여 DGA 레코드들의 각각의 계열에 일관성 점수들을 할당한다. 다음으로, FSA(frequency spectrum analyser) 모듈이 사용되어 DGA 발생들의 시계열을 주파수 스펙트럼으로 변환한 후, 각각의 DGA 레코드들의 계열 내에서 발생하는 주기적인 DGA 버스트들을 식별한다. 다음으로, SFC 모듈에 의해 생성되는 가능한 DGA 도메인 명칭들의 계열 및 다른 보강 상세들과 함께 FSA 및 AE-C 모듈들에 의해 생성되는 정보는 경보 모듈에 전달되고, 경보 모듈은 다음으로 이 정보를 사용하여 보강된 DGA 경보들을 제시하고 우선순위화한다.

Description

딥 러닝 및 신호 처리 기술을 사용하여 DGA들(DOMAIN GENERATION ALGORITHMS)을 검출하기 위한 시스템 및 방법{A SYSTEM AND METHOD FOR DETECTING DOMAIN GENERATION ALGORITHMS (DGAs) USING DEEP LEARNING AND SIGNAL PROCESSING TECHNIQUES}
본 발명은 DNS(Domain Name System) 레코드들의 스트림으로부터 DGA(Domain Generation Algorithm) 유사 거동들을 나타내는 도메인 명칭들을 검출하기 위한 시스템 및 방법에 관한 것이다. 특히, 본 발명은, DGA 거동을 나타내는 도메인 명칭들(이하, 이들 도메인 명칭들은 DGA 도메인 명칭들 또는 가능한 DGA 도메인 명칭들로서 상호 교환 가능하게 지칭될 것임)을 갖는 것으로 결정된 필터링된 DNS 레코드들이 SFC(series filter-classifier) 모듈에 제공되기 전에 DNS 레코드들의 스트림을 수신하고 필터링하기 위한 DL-C(deep learning classifier) 모듈을 포함하는 시스템에 관한 것이다.
각각의 소스 IP(Internet Protocol), 목적지 IP 및 분석 트리플릿의 시간 기간에 대해, SFC 모듈은 다음으로 연관된 DGA 레코드들을 다양한 계열로 그룹화한다. 다음으로, 각각의 계열에 대해, DL-C 모듈에 의해 결정되는 바와 같은 유사한 DGA 특성들을 나타내지 않는 DGA 도메인 명칭들 및 그들의 대응하는 DNS 레코드들을 필터링 제거한다. 다음으로, SFC 모듈은 각각의 소스 IP, 목적지 IP 및 분석의 기간 사이에 존재하는 나머지 DGA 레코드들의 각각의 계열에 라벨을 태깅한다. 마지막으로, SFC 모듈은 DNS 레코드의 타임스탬프를 사용하여 DGA 발생의 시계열을 생성하고, 다음으로 이러한 발생의 시계열을 사용하여 분석의 기간 전체에 걸쳐 DGA 버스트의 수를 결정한다.
다음으로, AE-C(autoencoder-classifier)는 시간 기간에 걸쳐 상관들을 분석함으로써, DGA 발생들의 그 대응하는 시계열에 기초하여 DGA 레코드들의 각각의 계열에 일관성 점수들을 할당한다. 다음으로, FSA(frequency spectrum analyser) 모듈이 사용되어 DGA 발생들의 시계열을 주파수 스펙트럼으로 변환한 후, 각각의 DGA 레코드들의 계열 내에서 발생하는 주기적인 DGA 버스트들을 식별한다. 동시에, FSR(finding successful resolutions) 모듈은 SFC 모듈에 의해 결정되는 바와 같은 각각의 계열의 특성들을 사용하여, 가능한 C2(Command and Control) 서버들로 분해된 DGA 도메인 명칭들을 찾는다. 다음으로, SFC 모듈에 의해 생성되는 가능한 DGA 도메인 명칭들의 계열 및 다른 보강 상세들과 함께 FSR, FSA 및 AE-C 모듈들에 의해 생성되는 정보가 경보 모듈에 전달되고, 경보 모듈은 다음으로 이 정보를 사용하여 텍스트 및 시간 정보 양자 모두로 보강된 DGA 경보들을 사용자에게 제시하고 우선순위화하여, DGA 거동, AE-C 모듈에 의해 평가되는 더 높은 일관성 점수들, 우리의 FSA 모듈에 의해 평가되는 주기성, 및 FSR 모듈에 의해 평가되는 가능한 C2 서버들에 대한 가능한 분해들을 나타내도록 평가된 도메인 명칭들의 계열 내의 명백한 텍스트 유사도들과 함께 사용자가 이들 경보들에 그 주의를 더 잘 집중하게 한다.
DGA들(Domain Generation Algorithms)은 감염된 네트워크와 악의적 당사자의 C2(Command and Control) 서버들 사이에 통신 링크를 확립하기 위해 악성 소프트웨어가 널리 사용하는 알고리즘들이다. 이러한 공격들은, 악의적 당사자의 C2 서버들이 전형적으로 정적 도메인 명칭을 갖지 않지만, 대신에, 전형적으로 시간에 따라 끊임없이 변화하는 랜덤 동적 명칭을 활용하기 때문에 검출 및 방지하기가 어렵다.
따라서, 멀웨어가, 공격자의 C2 서버들이 현재 위치하는 도메인을 결정하기 위해 "무차별 대입(brute-force)" 검색을 수행하기 위해 시간 기간에 걸쳐 그리고 다양한 시간 순간들(즉, 버스트형 거동)에 다수의 도메인 명칭들을 쿼리할 필요가 있다. DGA에 의해 생성되는 도메인들이 즉흥적으로(on the fly)로 생성될 수 있기 때문에, 블랙리스트가 DGA에 의해 생성될 수 있는 도메인 명칭들과 관련하여 총망라하지 않을 수 있기 때문에, 도메인 명칭들의 간단한 블랙리스트의 사용은 DGA 위협들을 차단하는 것에 대해 무효할 것이다.
DGA 알고리즘들의 흥미로운 부산물은 감염된 컴퓨터에 의해 이루어지는 DNS 요청들 중 다수가, 도메인이 존재하지 않는다는 것을 나타내는, "rcode"(response code) NXDOMAIN으로 응답될 것이라는 점이다. 이는 악성 소프트웨어에 의해 행해지는 모든 쿼리들 중에서, 몇몇 선택된 도메인들만이 정확하고 이들 도메인들이 NOERROR rcode로 응답할 것이기 때문이다. 다음으로, 이들은 C2 서버 기반구조가 위치하는 도메인일 것이다. 수신된 NXDOMAIN rcode들의 수가 많을 것이기 때문에, 대부분의 안티-DGA 알고리즘들은 DGA들이 네트워크 내에서 사용되고 있는지 여부를 결정하기 위해 이들 DNS 쿼리들에 집중한다. 이러한 DNS 쿼리들이 풍부하게 검출되면, 이는 컴퓨터/서버가 악성 소프트웨어에 의해 감염될 가능성을 나타낼 것인데, 그 이유는 악성 소프트웨어가 그 C2 서버로 다시 통신하려고 시도할 것이기 때문이다.
DGA를 검출하기 위한 현재의 산업 관행은, 네트워크에 의해 쿼리된 NXDOMAIN 도메인 명칭이 DGA에 의해 생성되었는지를 결정하기 위해, 광범위한 피처 엔지니어링(feature engineering)과 함께, 머신 러닝 방법을 사용하는 것이다. 일반적으로 사용되는 피처들의 예들은 문자들의 정규화된 엔트로피, n-그램들, 심볼 문자 비율, 모음 문자 비율 등을 포함한다. 최근에, 이들 관행은, NXDOMAIN 도메인 문자열이 DGA를 포함하는지의 여부를 결정하기 위해, 문자 레벨에서, 딥 러닝 기술, 특히, RNN(Recurrent Neural Network) 및 CNN(Convolutional Neural Network) 아키텍쳐의 사용을 이용하기 시작한 연구자들에 의해 더 개선되었다.
다른 사람들은 잠재적인 DGA들일 수 있는 문자열들을 먼저 플래그 아웃(flag out)하기 위해 머신 러닝 알고리즘들, 특히 랜덤 포레스트(random forest)들을 사용하려고 시도하였다. 특히, 엔트로피 기반 피처들(예를 들어, 최상위 레벨 도메인들, 제2 레벨 도메인들, 제3 레벨 도메인들 등의 엔트로피) 및 구조적 도메인 피처들(예를 들어, 도메인 명칭의 길이, 도메인 레벨들의 수 등)과 같은 수작업 엔지니어링된 피처들이 특정 문자열이 DGA인지 여부를 결정하기 위해 랜덤 포레스트 알고리즘에 의해 사용되었다. 다음에, 유사한 문자열들이 시간이 지남에 따라 다음으로 상관된다. 문자열들은 이들이 유사한 엔트로피 기반 및 구조적 도메인 피처들을 나타내는 경우에 유사한 것으로 정의된다. 시간이 지남에 따라 상관되는 그 문자열들은 다음으로 DGA로서 선언되고, 시간이 지남에 따라 랜덤 포레스트 알고리즘의 추가 세분화를 위해 사용되도록 데이터베이스에 저장된다.
다른 사람들은 DGA의 발생을 연구하기를 시도하고, 다음으로 이러한 연구들로부터 임의의 의미 있는 시간적 구조들이 관찰될 수 있는지를 결정하기를 시도했다. 본 기술 분야의 통상의 기술자들은 DGA, 특히 컨피커(Conficker) 및 크라켄(Kraken) 타입 DGA들을 이용하는 멀웨어 샘플들이 소정의 시간 거동을 나타낸다는 것을 밝혀내었다. DGA들이 멀웨어에 의해 해제될 때의 시계열로부터 유도된, 수작업 엔지니어링된 피처들로 훈련된 결정 트리가 매우 작은 샘플 세트에 걸쳐 DGA 거동을 검출할 수 있었다는 것이 밝혀졌다. 그러나, 이들은 주파수 스펙트럼 분석으로부터 유용한 피처들을 추출할 수 없었고, 따라서 그들의 분석은 수작업 엔지니어링된 시간 도메인 피처들의 추출에 초점을 맞추었다는 점에 유의하는 것이 유용하다. 또한, 그들은 그들의 분석이 쉽게 획득할 수 없는 실제 멀웨어 샘플들을 필요로 하고 가시성이 네트워크 트래픽 데이터로만 제약되는 경우에는 작동하지 않을 것이기 때문에 작동하는 시스템을 실현할 수 없었다. 따라서, 그들이 분석을 위해 사용한 데이터세트는 다소 작았다. 마지막으로, 그들은 또한 시간 도메인 피처들을 사용하여 DGA를 검출하는 그들의 방법이 대규모 배치 또는 구현에 부적합하게 하는 높은 위양성률(False Positive rate)을 야기한다고 결론을 내렸다.
위에서 제안된 방법들은 단지 도메인 명칭 또는 일련의 도메인 명칭들이 DGA를 구성하는지 여부에 관한 이진 분류를 수반하고, 식별된 도메인 명칭에 의해 디스플레이되는 DGA 특성들의 타입에 대한 어떠한 분석도 수행하지 않는다. 추가적으로, 머신 러닝 알고리즘들 및/또는 방법들이 클러스터링과 함께 활용될 때, 이들 모델들을 훈련시키는 데 사용되는 피처들이 수작업 엔지니어링되는 경향이 있고, 이는, 클러스터링된 출력의 결과가 수작업 엔지니어링된 피처들의 타입에 의해 제약될 것이기 때문에, 출력에 연성 제약(soft constraint)을 부과한다. 즉, 클러스터링된 출력들은 더욱 인간이 해석할 수 있는 것일 수 있는 반면, 생성된 클러스터들은 전형적으로 더 많이 제약되어 있으며, 따라서 이는 DGA들의 가능한 새로운 변형들의 발견을 방해한다. 또한, 우리가 아는 한, DGA를 검출하기 위해 시간적 피처들을 사용하는 데에 있어서 지금까지 어떠한 시스템도 성공적이지 않았다.
위의 이유들로 인해, 본 기술 분야의 통상의 기술자들은 DGA-유사 거동들을 나타내는 의심스러운 DNS 레코드들의 더 많은 컨텍스트 정보 및 자동화된 분석을 제공하여, 이들 DNS 레코드들에 대해 더 완전한 분석이 이루어질 수 있게 함으로써 DGA가 정확하게 검출될 수 있게 할 수 있는 스케일러블 시스템 및 방법을 찾기 위해 끊임없이 노력하고 있다.
본 발명에 따른 실시예들에 의해 제공된 시스템들 및 방법들에 의해 위의 그리고 다른 문제들이 해결되고 본 기술 분야의 진보가 구성된다.
본 발명에 따른 시스템들 및 방법들의 실시예들의 제1 장점은 단일 도메인 명칭이 주어지면, 본 발명은 가능한 DGA인지 여부를 동시에 분류할 수 있고, 가능한 DGA인 것으로 고려되면, 본 발명은 현재 알려진 DGA 패밀리들에 기초하여, 다양한 알려진 DGA 패밀리들 중 어느 특성들이 도메인 명칭에 의해 나타나는지를 결정할 것이다. 이러한 처리는 임의의 수작업 엔지니어링된 피처들 및 인간이 정의한 규칙들을 필요로 하지 않고 완전히 자율적으로 수행된다.
본 발명에 따른 시스템들 및 방법들의 실시예들의 제2 장점은, 본 발명이, 임의의 수작업 엔지니어링된 피처들 및 인간이 정의한 규칙들을 필요로 하지 않고, 유사한 특성들을 나타내는 가능한 DGA들을 검출하고 다른 DGA들을 드롭하기 위해, 특정 소스 및 목적지 IP 사이의 분석의 기간(우리의 실시예에서, 1일)에 걸쳐 되돌아볼 수 있다는 점이다.
본 발명에 따른 시스템들 및 방법들의 실시예들의 제3 장점은, 본 발명이 임의의 수작업 엔지니어링된 피처들 및 인간이 정의한 규칙들을 필요로 하지 않고, 자동으로 그리고 효율적으로, 시각적으로 유사하게 보이지만, 상이한 최상위 레벨 도메인들을 가지는 가능한 DGA들의 계열을 식별할 수 있다는 점이다.
본 발명에 따른 시스템들 및 방법들의 실시예들의 제4 장점은, 가능한 DGA 도메인 명칭들의 계열을 사용자에게 제공하는 것에 더하여, 본 발명은 산업에서의 임의의 다른 시스템 또는 연구에 의해 제공되지 않는 다른 보강 정보 소스들을 제공할 수 있다.
본 발명에 따른 시스템들 및 방법들의 실시예의 제5 장점은 본 발명이 연관된 DNS 레코드가 관찰된 때의 타임스탬프를 사용하여 가능한 DGA의 각각의 계열에 대한 일관성 점수를 계산한다는 것이다. 이는 상관의 기간(우리의 실시예에서, 1개월)에 걸쳐 임의의 DGA 계열의 시간적 특성들이 얼마나 자주 반복되고 있는지의 아이디어를 사용자들에게 제공한다. 더 높은 일관성 점수는 유사한 시간 특성들이 상관의 기간에 걸쳐 여러 번 디스플레이된다는 것을 나타내며, 이는 훨씬 더 의심스러운 거동을 나타낸다.
본 발명에 따른 시스템들 및 방법들의 실시예들의 제6 장점은, 인간 거동이 비-주기적인 경향이 있기 때문에, 본 발명이 가능한 DGA들의 연관된 DNS 레코드들의 타임스탬프들이 일부 종류의 주기적인 거동을 나타내는지를 결정하여 자동화된 소프트웨어/멀웨어의 존재의 더 많은 확인을 제공하기 위해 FSA(frequency spectrum analyser) 모듈을 활용할 수 있다는 것이다.
본 발명에 따른 시스템들 및 방법들의 실시예의 제7 장점은 본 발명이 아직 일반적으로 알려지지 않은 거동을 나타내는 새로운 비-DGA 위협을 식별하기 위해 본 발명의 문자열 분석 및 시간 분석 능력을 양자 모두 활용할 수 있다는 것이다.
본 발명에 따른 시스템들 및 방법들의 실시예의 제8 장점은, 소스 IP, 목적지 IP 및 분석의 시간 기간에 관하여, 주어진 가능한 DGA NXDOMAIN DNS 레코드 계열에 대응하는 각각의 가능한 DGA NOERROR DNS 레코드가 주어진 가능한 DGA NXDOMAIN DNS 레코드 계열에서와 유사한 DGA 특성을 소유하는지 여부를 결정함으로써, 본 발명이 DGA 멀웨어의 실제 성공적인 DNS 분해를 식별할 수 있다는 것이다. 성공적인 분해들은 단지 결과들의 더 높은 신뢰를 사용자들에게 제공할 뿐만 아니라, 또한 성공적인 분해들이 가능한 데이터 유출이 이미 발생하고 있다는 것을 표시하므로 더 높은 긴급 상태를 암시하므로, 사용자들이 그 작업을 우선순위화하는 것을 돕는다.
위의 장점들은 다음의 방식으로 동작하는 본 발명에 따른 방법의 실시예들에 의해 제공된다.
본 발명의 제1 양태에 따르면, DGA(Domain Generation Algorithm) 거동들을 검출하기 위한 시스템이 개시되며, 이 시스템은, DL-C(deep learning classifier) 모듈- DL-C는, DNS(Domain Name System) 레코드들의 스트림을 수신하고; DGA 연관된 도메인 명칭들 및 DGA 연관된 도메인 명칭들 각각과 연관된 DGA 특성들을 갖는 DNS 레코드들을 식별하도록 구성됨 -, SFC(series filter-classifier) 모듈- 계열 필터-분류기 모듈은, 소스 IP, 목적지 IP 및 각각의 식별된 DGA DNS 레코드와 연관된 분석의 시간 기간에 기초하여 DL-C 모듈로부터의 식별된 DNS 레코드들을 계열로 그룹화하고; 각각의 계열에 대해, 그 최상위-k 특성들 중 하나로서 계열의 최상위-c 발생 DGA 특성들 중 적어도 하나를 나타내는 NXDOMAIN DGA 연관된 도메인 명칭들을 식별 및 선택하고, 최상위 발생 DGA 특성에 기초하여 계열을 라벨링하고; 분석의 시간 기간에 걸쳐 DGA 발생들의 시계열을 획득하기 위해 각각의 계열을 그들의 연관된 타임스탬프들에 기초하여 소팅하고 계열의 제1 레코드에 기초하여 각각의 계열 내의 타임스탬프들을 정규화하고; 식별된 NXDOMAIN DGA DNS 레코드들과 연관되지 않은 NOERROR DNS 레코드들을 FSR(finding successful resolutions) 모듈- FSR 모듈은 수신된 DNS 레코드들로부터 명령 및 제어 서버들과 연관된 DGA 도메인들을 식별하도록 구성됨 -에 제공하도록 구성됨 -; 단일 신경망으로 병합되는 오토인코더 및 분류기를 포함하는 오토인코더 및 분류기를 포함하는 AE-C(autoencoder-classifier) 모듈- AE-C 모듈은, SFC 모듈로부터 획득되는 DGA 발생들의 각각의 시계열에 대해, 각각의 라벨링된 계열에 대한 일관성 점수를 생성하고; 미리 정의된 임계값 미만의 일관성 점수들을 갖는 계열을 제거하도록 구성되고; 오토인코더-분류기 모듈은 SFC 모듈로부터 획득되는 발생들의 라벨링된 시계열, 및 계열의 라벨들로부터 유도된 원-핫 벡터
Figure 112021145918083-pat00001
의 성분들, 분류기의 소프트맥스 출력
Figure 112021145918083-pat00002
의 차원들 및 계수
Figure 112021145918083-pat00003
에 의해 가중된 재구성 손실에 기초하는 손실 함수를 사용하여 훈련됨 -; FSA(frequency spectrum analyser) 모듈- FSA 모듈은, DGA 발생들의 시계열 각각 내의 주기적 신호들을 결정하기 위해 DGA 발생들의 시계열 각각과 연관된 DGA 주파수 도메인 피크들을 식별하고; DGA 발생들의 시계열 각각 내의 주기적 신호들 각각에 대한 주파수 및 대응하는 기간을 결정하고; 결정된 주파수들 각각에 대해 존재하는 페이즈-시프트된 신호들의 수를 식별하도록 구성됨 -; SFC 모듈에 의해 생성되는 DGA 발생들의 시계열, AE-C 모듈에 의해 생성되는 시계열, FSA 모듈에 의해 결정되는 식별된 페이즈 시프트된 신호들의 수, 및 FSR 모듈에 의해 결정되는 식별된 DGA 도메인들에 기초하여 DGA 경보들을 우선순위화하도록 구성되는 경보 모듈을 포함한다.
본 발명의 제1 양태에 관하여, 시스템은, 평활 필터 및 이산 푸리에 변환 모듈을 더 포함하고, 평활 필터 및 이산 푸리에 변환 모듈은, 평활 필터를 SFC 모듈에 의해 출력되는 DGA 발생들의 시계열에 적용하고; 이산 푸리에 변환 알고리즘(Discrete Fourier Transform algorithm)을 사용하여, AE-C 모듈의 신경망으로의 입력들이 주파수 스펙트럼을 포함하도록 필터링된 DGA 발생들의 시계열들을 시간 도메인으로부터 주파수 도메인으로 변환도록 구성된다.
본 발명의 제1 양태에 관하여, 시스템은, ML-SA(machine learning string analyser) 모듈을 더 포함하고, 딥 러닝 분류기 모듈이 DGA들 및 그들의 연관된 특성들을 갖는 DNS 레코드들을 식별하기 전에, ML-SA 모듈은, 머신 러닝 알고리즘을 사용하여, DNS 레코드들로부터 알려진 DGA들과 연관되지 않은 도메인 명칭들을 제거하기 위해 DNS 레코드들을 필터링하도록 구성되고, 여기서, 머신 러닝 알고리즘은 다음의 라벨링된 피처들: 도메인 명칭의 길이, 도메인 명칭의 엔트로피, 도메인 명칭의 문자 n-그램, 도메인 명칭의 구별되는 문자 카운트, 웹그램 또는 워드그램 유사도 점수들 중 적어도 하나를 사용하여 훈련되고, 머신 러닝 알고리즘은 라벨링된 오픈-소스 데이터세트, 내부 데이터베이스들 및 제3자 데이터베이스들을 사용하여 훈련된다.
본 발명의 제1 양태에 관하여, 딥 러닝 분류기 모듈은, YOLO(You-Only-Look-Once) 아키텍처를 포함하고, YOLO 아키텍처는, 도메인 명칭 문자열이 DGA를 포함하는지를 결정하고 도메인 명칭 문자열이 DGA를 포함한다고 결정되면, 도메인 명칭 문자열이 알려진 DGA의 어떤 패밀리에 속하는지를 나타내는 확률 분포를 생성하기 위해 이진 결정을 생성하도록 신경망을 통해 전달되는 임베딩들의 세트를 생성하기 위해 문자 레벨 토큰화에 기초하여 자신을 훈련하도록 구성된다.
본 발명의 제1 양태에 관하여, YOLO 아키텍처는 심층 신경망에 통신가능하게 접속되는 임베딩 계층을 포함하고, 임베딩 계층은 문자 토큰들의 목록을 행렬로 변환하도록 구성되고, 심층 신경망은 이진 교차 엔트로피 손실 및 범주적 교차 엔트로피 손실에 기초하는 복합 손실 함수를 사용하도록 구성되고, 여기서 복합 손실 함수는 다음과 같이 정의되고:
Figure 112021145918083-pat00004
여기서,
Figure 112021145918083-pat00005
은 특정 문자열이 DGA를 포함하는지를 나타내는 라벨로서 정의되고,
Figure 112021145918083-pat00006
는 특정 문자열이 DGA인지를 나타내는 신경망의 시그모이드 출력으로서 정의되고,
Figure 112021145918083-pat00007
는 원-핫 벡터의 특정 차원으로서 정의되고, 이는 특정 DGA 문자열의 패밀리 라벨에 대응하는 위치에서만 활성화되고,
Figure 112021145918083-pat00008
는 신경망에 의해 출력되는 소프트맥스 활성화 벡터로서 정의되고,
Figure 112021145918083-pat00009
는 모델을 훈련하는데 사용되는 알려진 DGA 패밀리들의 총 수에 대응하는
Figure 112021145918083-pat00010
의 차원들의 총 수로서 정의되고,
Figure 112021145918083-pat00011
는 이진 교차 엔트로피 손실과 소프트맥스 교차 엔트로피 손실 사이의 상대적 중요도를 가중하는데 사용되는 튜닝 가능 계수로서 정의된다.
본 발명의 제1 양태에 관하여, SFC 모듈이 DL-C 모듈에 의해 DGA 도메인 문자열들과 연관된 DNS 레코드들에 적용되기 전에, 블랙리스트 및 규칙 기반 필터링 모듈은, 블랙리스트를 사용하여, DGA-유사 알고리즘과 연관된 합법적 도메인들을 제거하고; 무효 도메인 및 TLD(Top-Level Domain) 피처들을 갖는 도메인 명칭들을 제거하도록 구성된다.
본 발명의 제1 양태에 관하여, 오토인코더-분류기 모듈을 훈련시키기 위해 사용되는 손실 함수는 다음과 같이 정의되고:
Figure 112021145918083-pat00012
여기서, I X 는 SFC 모듈에 의해 출력되는 DGA 발생들의 시계열과 관련된 입력 신호로서 정의되고, 이는 오토인코더에 입력으로서 공급되고, I Y 는 오토인코더의 출력 신호이고, p i 는 원-핫 벡터
Figure 112021145918083-pat00013
의 i 번째 차원이고, 이는 SFC 모듈에 의해 계열에 태깅된 라벨로부터 유도되고, P i 는 분류기의 소프트맥스 출력
Figure 112021145918083-pat00014
의 i 번째 차원이고, α는 분류 손실 대 재구성 손실의 상대적 중요도를 가중하는 데 사용되는 재구성 손실 계수이다.
본 발명의 제1 양태에 관하여, DGA 버스트들의 수를 카운트하기 위해, SFC에서 피크 검출 및 계층적 클러스터링 알고리즘이 사용되고, 주파수 스펙트럼에서 피크들을 검출하기 위해, FSA 모듈은, 피크 검출을 위한 CFAR(constant false alarm rate) 검출 알고리즘 및 계층적 클러스터링을 위한 응집형 클러스터링을 포함한다.
본 발명의 제1 양태에 관하여, FSR 모듈은, 딥 러닝 분류기 모듈로부터, DGA 연관 도메인 명칭들을 갖지만 DNS 서버에 의해 NOERROR 리턴 코드로 태깅되는 DNS 레코드들을 획득하고; SFC 모듈로부터, SFC 모듈에 의해 출력되는 계열 각각의 최상위-c DGA 특성들을 획득하고; DGA 연관 도메인 명칭들을 갖는 NOERROR DNS 레코드들로부터, 소스 IP, 목적지 IP 및 분석의 시간 기간에 관하여, 대응하는 계열의 최상위-c DGA 특성들 중 적어도 하나를, SFC 모듈에 의해 결정된, 그들의 최상위-k DGA 특성들 중 하나로서 나타내는 각각의 계열에 대응하는 DNS 레코드들을 식별하고; 각각의 계열에 대응하는 식별된 도메인 명칭들을 경보 모듈에 제공하도록 추가로 구성된다.
본 발명의 제2 양태에 따르면, 시스템을 사용하여 DGA(Domain Generation Algorithm) 거동들을 검출하기 위한 방법이 개시되고, 시스템은 DL-C(deep learning classifier) 모듈; SFC(series filter-classifier) 모듈; FSR(finding successful resolutions) 모듈; 단일 신경망으로 병합되는 오토인코더 및 분류기를 포함하는 AE-C(autoencoder-classifier) 모듈; FSA(frequency spectrum analyser) 모듈 및 경보 모듈을 포함하고, 이 방법은, DL-C 모듈을 사용하여, DNS(Domain Name System) 레코드들의 스트림을 수신하는 단계; DL-C 모듈을 사용하여, DGA 연관된 도메인 명칭들 및 DGA 연관된 도메인 명칭들 각각과 연관된 DGA 특성들을 갖는 DNS 레코드들을 식별하고, SFC 모듈을 사용하여, DL-C 모듈로부터의 식별된 DNS 레코드들을 각각의 식별된 DGA DNS 레코드와 연관된 소스 IP, 목적지 IP 및 분석의 시간 기간에 기초하여 계열로 그룹화함으로써, 각각의 계열에 대해, 계열의 최상위-c 발생 DGA 특성들 중 적어도 하나를 나타내는 NXDOMAIN DGA 연관된 도메인 명칭들을 그의 최상위-k 특성들 중 하나로서 식별하고 선택하고, 최상위 발생 DGA 특성에 기초하여 계열을 라벨링하는 단계; SFC 모듈을 사용하여, 그들의 연관된 타임스탬프들에 기초하여 각각의 계열을 소팅하고, 분석의 기간에 걸친 DGA 발생들의 시계열들을 획득하기 위해 계열의 제1 레코드에 기초하여 각각의 계열 내의 타임스탬프들을 정규화하는 단계; SFC 모듈을 사용하여, 식별된 NXDOMAIN DGA DNS 레코드들과 연관되지 않은 NOERROR DNS 레코드들을 FSR(finding successful resolutions) 모듈에 제공하는 단계- FSR 모듈은 수신된 DNS로부터 명령 및 제어 서버들과 연관된 DGA 도메인들을 식별하도록 구성됨 -; AE-C 모듈을 사용하여, SFC 모듈로부터 획득되는 DGA 발생들의 각각의 시계열에 대해, 각각의 라벨링된 계열에 대한 일관성 점수를 생성하고, 미리 정의된 임계값 미만의 일관성 점수들을 갖는 계열을 제거하는 단계- 오토인코더-분류기 모듈은 SFC 모듈로부터 획득되는 발생들의 라벨링된 시계열, 및 계열의 라벨들로부터 유도된 원-핫 벡터
Figure 112021145918083-pat00015
의 성분들, 분류기의 소프트맥스 출력
Figure 112021145918083-pat00016
의 차원들 및 계수
Figure 112021145918083-pat00017
에 의해 가중된 재구성 손실에 기초하는 손실 함수를 사용하여 훈련됨 -; FSA 모듈을 사용하여, DGA 발생들의 시계열의 각각 내의 주기적 신호들을 결정하기 위해 DGA 발생들의 시계열의 각각과 연관된 DGA 주파수 도메인 피크들을 식별하는 단계; FSA 모듈을 사용하여, DGA 발생들의 시계열 각각 내의 주기적 신호들 각각에 대한 주파수 및 대응하는 기간을 결정하는 단계; FSA 모듈을 사용하여, 결정된 주파수들 각각에 대해 존재하는 다수의 페이즈-시프트된 신호들을 식별하는 단계; 및, 경보 모듈을 사용하여, SFC 모듈에 의해 생성되는 DGA 발생들의 시계열, AE-C 모듈에 의해 생성되는 시계열, FSA 모듈에 의해 결정되는 식별된 페이즈 시프트된 신호들의 수, 및 FSR 모듈에 의해 결정되는 식별된 DGA 도메인들에 기초하여 DGA 경보들을 우선순위화하는 단계를 포함한다.
본 발명의 제2 양태에 따르면, 이 방법은, 평활 필터 및 이산 푸리에 변환 모듈을 사용하여, SFC 모듈에 의해 출력되는 DGA 발생들의 시계열에 평활 필터를 적용하는 단계; 및 이산 푸리에 변환 알고리즘(Discrete Fourier Transform algorithm)을 사용하여, AE-C 모듈의 신경망으로의 입력들이 주파수 스펙트럼을 포함하도록 DGA 발생들의 필터링된 시계열들을 시간 도메인으로부터 주파수 도메인으로 변환하는 단계를 더 포함한다.
본 발명의 제2 양태에 따르면, 딥 러닝 분류기 모듈이 DGA들 및 그들의 연관된 특성들을 갖는 DNS 레코드들을 식별하는 단계 전에, 이 방법은, ML-SA(machine learning string analyser) 모듈을 사용하여, 머신 러닝 알고리즘에 기초하여, DNS 레코드들을 필터링하여 DNS 레코드들로부터 알려진 DGA들과 연관되지 않은 도메인 명칭들을 제거하는 단계를 더 포함하고, 머신 러닝 알고리즘은 다음의 라벨링된 피처들: 도메인 명칭의 길이, 도메인 명칭의 엔트로피, 도메인 명칭의 문자 n-그램, 도메인 명칭의 구별되는 문자 카운트, 웹그램 또는 워드그램 유사도 점수들 중 적어도 하나를 사용하여 훈련되고, 머신 러닝 알고리즘은 라벨링된 오픈-소스 데이터세트, 내부 데이터베이스들 및 제3자 데이터베이스들을 사용하여 훈련된다.
본 발명의 제2 양태에 따르면, 딥 러닝 분류기 모듈은, YOLO(You-Only-Look-Once) 아키텍처를 포함하고, YOLO 아키텍처는, 도메인 명칭 문자열이 DGA를 포함하는지를 결정하고 도메인 명칭 문자열이 DGA를 포함한다고 결정되면, 도메인 명칭 문자열이 알려진 DGA의 어떤 패밀리에 속하는지를 나타내는 확률 분포를 생성하기 위해 이진 결정을 생성하도록 신경망을 통해 전달되는 임베딩들의 세트를 생성하기 위해 문자 레벨 토큰화에 기초하여 자신을 훈련하도록 구성된다.
본 발명의 제2 양태에 따르면, YOLO 아키텍처는 심층 신경망에 통신가능하게 접속되는 임베딩 계층을 포함하고, 임베딩 계층은 문자 토큰들의 목록을 행렬로 변환하도록 구성되고, 심층 신경망은 이진 교차 엔트로피 손실 및 범주적 교차 엔트로피 손실에 기초하는 복합 손실 함수를 사용하도록 구성되고, 여기서 복합 손실 함수는 다음과 같이 정의되고:
Figure 112021145918083-pat00018
여기서,
Figure 112021145918083-pat00019
은 특정 문자열이 DGA를 포함하는지를 나타내는 라벨로서 정의되고,
Figure 112021145918083-pat00020
는 특정 문자열이 DGA인지를 나타내는 신경망의 시그모이드 출력으로서 정의되고,
Figure 112021145918083-pat00021
는 원-핫 벡터의 특정 차원으로서 정의되고, 이는 특정 DGA 문자열의 패밀리 라벨에 대응하는 위치에서만 활성화되고,
Figure 112021145918083-pat00022
는 신경망에 의해 출력되는 소프트맥스 활성화 벡터로서 정의되고,
Figure 112021145918083-pat00023
는 모델을 훈련하는데 사용되는 알려진 DGA 패밀리들의 총 수에 대응하는
Figure 112021145918083-pat00024
의 차원들의 총 수로서 정의되고,
Figure 112021145918083-pat00025
는 이진 교차 엔트로피 손실과 소프트맥스 교차 엔트로피 손실 사이의 상대적 중요도를 가중하는데 사용되는 튜닝 가능 계수로서 정의된다.
본 발명의 제2 양태에 따르면, DL-C 모듈에 의해 DGA 도메인 문자열들과 연관된 DNS 레코드들에 SFC 모듈을 적용하는 단계 전에, 이 방법은, 블랙리스트 및 규칙 기반 필터링 모듈을 사용하여, DGA-유사 알고리즘과 연관된 합법적 도메인들을 제거하는 단계; 및 무효 도메인 및 TLD(Top-Level Domain) 피처들을 갖는 도메인 명칭들을 제거하는 단계를 포함한다.
본 발명의 제2 양태에 따르면, 오토인코더-분류기 모듈을 훈련시키기 위해 사용되는 손실 함수는 다음과 같이 정의되고:
Figure 112021145918083-pat00026
여기서, I X 는 SFC 모듈에 의해 출력되는 DGA 발생들의 시계열과 관련된 입력 신호로서 정의되고, 이는 오토인코더에 입력으로서 공급되고, I Y 는 오토인코더의 출력 신호이고, p i 는 원-핫 벡터
Figure 112021145918083-pat00027
의 i 번째 차원이고, 이는 SFC 모듈에 의해 계열에 태깅된 라벨로부터 유도되고, P i 는 분류기의 소프트맥스 출력
Figure 112021145918083-pat00028
의 i 번째 차원이고, α는 분류 손실 대 재구성 손실의 상대적 중요도를 가중하는 데 사용되는 재구성 손실 계수이다.
본 발명의 제2 양태에 따르면, DGA 버스트들의 수를 카운트하기 위해, SFC에서 피크 검출 및 계층적 클러스터링 알고리즘이 사용되고, 주파수 스펙트럼에서 피크들을 검출하기 위해, FSA 모듈은, 피크 검출을 위한 CFAR(constant false alarm rate) 검출 알고리즘 및 계층적 클러스터링을 위한 응집형 클러스터링을 포함한다.
본 발명의 제2 양태에 따르면, 이 방법은, FSR 모듈을 사용하여, 딥 러닝 분류기 모듈로부터, DGA 연관 도메인 명칭들을 갖지만 DNS 서버에 의해 NOERROR 리턴 코드로 태깅되는 DNS 레코드들을 획득하는 단계; FSR 모듈을 사용하여, SFC 모듈로부터, SFC 모듈에 의해 출력되는 계열 각각의 최상위-c DGA 특성들을 획득하는 단계; FSR 모듈을 사용하여, DGA 연관 도메인 명칭들을 갖는 NOERROR DNS 레코드들로부터, 소스 IP, 목적지 IP 및 분석의 시간 기간에 관하여, SFC 모듈에 의해 결정되는 바와 같이, 대응하는 계열의 최상위-c DGA 특성들 중 적어도 하나를 그들의 최상위-k DGA 특성들 중 하나로서 나타내는 각각의 계열에 대응하는 DNS 레코드들을 식별하는 단계; 및 FSR 모듈을 사용하여, 각각의 계열에 대응하는 식별된 도메인 명칭들을 경보 모듈에 제공하는 단계를 더 포함한다.
위의 및 다른 문제들은 상세한 설명에서 설명되고 다음의 도면들에 도시되는 본 발명에 따른 시스템 및 방법의 피처들 및 장점들에 의해 해결된다.
도 1은 본 발명의 실시예들에 따른 DGA(Domain Generation Algorithm) 거동들을 검출하기 위한 시스템을 구현하는 데 사용될 수 있는 모듈들의 블록도를 예시한다.
도 2는 본 발명의 실시예들에 따른 실시예들을 제공하는 처리 시스템들을 나타내는 블록도를 예시한다.
도 3은 본 발명의 실시예들에 따라 딥 러닝 분류기 모듈을 구현하는데 사용될 수 있는 모듈들의 블록도를 예시한다.
도 4는 본 발명의 실시예들에 따른, 계열 필터-분류기 모듈(SFC)에 의해 출력된, 가능한 DGA들의 계열로부터 추출된 시간에 대한, 유사한 문자열 특성들을 나타내는 것으로 고려된 가능한 DGA 발생들의 수의 시계열을 나타내는 플롯을 예시한다.
도 5는 본 발명의 실시예들에 따른 AE-C(autoencoder-classifier) 모듈을 구현하는 데 사용될 수 있는 블록도를 예시한다.
도 6은 본 발명의 실시예들에 따른, 기간 T가 0.1 및 0.05초일 때 시간 도메인 및 그에 대응하는 주파수 도메인에서 디랙(Dirac) 빗살형 속성들을 나타내는 신호들의 플롯들을 예시한다.
도 7은 본 발명의 실시예들에 따른 시간 도메인에서의 다수의 페이즈 시프트된 신호들의 플롯 및 그 대응하는 주파수 도메인 플롯을 예시한다.
도 8은 본 발명의 실시예들에 따른 DGA 거동들을 검출하기 위한 시스템의 다수의 실시예를 예시한다.
도 9는 본 발명의 실시예에 따라, 딥 러닝 분류기 모듈, 계열 필터-분류기 모듈, 오토인코더-분류기 모듈, 주파수 스펙트럼 분석기 모듈, 성공적 분해 탐색 모듈 및 경보 모듈을 사용하여 DGA 거동을 검출하기 위한 예시적인 프로세스를 예시하는 도면이다.
도 10은 실생활 DGA 경보에 더 높은 신뢰도를 제공하는데 있어서 시간 분석의 중요성을 예시하는 도면이다.
도 11은 규칙들 및 수작업 엔지니어링된 피처들의 부족에도 불구하고 본 발명이 검출할 수 있는 새로운 위협들을 예시한다.
본 발명은 DNS(Domain Name System) 레코드들의 스트림으로부터 DGA(Domain Generation Algorithm) 유사 거동들을 나타내는 도메인 명칭들을 검출하기 위한 시스템 및 방법에 관한 것이다. 특히, 본 발명은, DGA 거동을 나타내는 도메인 명칭들(이하, 이들 도메인 명칭들은 DGA 도메인 명칭들 또는 가능한 DGA 도메인 명칭들로서 상호 교환 가능하게 지칭될 것임)을 갖는 것으로 결정된 필터링된 DNS 레코드들이 SFC(series filter-classifier) 모듈에 제공되기 전에 DNS 레코드들의 스트림을 수신하고 필터링하기 위한 DL-C(deep learning classifier) 모듈을 포함하는 시스템에 관한 것이다.
각각의 소스 IP(Internet Protocol), 목적지 IP 및 분석 트리플릿의 시간 기간에 대해, SFC 모듈은 다음으로 연관된 DGA 레코드들을 다양한 계열로 그룹화한다. 다음으로, 각각의 계열에 대해, DL-C 모듈에 의해 결정되는 바와 같은 유사한 DGA 특성들을 나타내지 않는 DGA 도메인 명칭들 및 그들의 대응하는 DNS 레코드들을 필터링 제거한다. 다음으로, SFC 모듈은 각각의 소스 IP, 목적지 IP 및 분석의 기간 사이에 존재하는 나머지 DGA 레코드들의 각각의 계열에 라벨을 태깅한다.
마지막으로, SFC 모듈은 DNS 레코드의 타임스탬프를 사용하여 DGA 발생의 시계열을 생성하고, 다음으로 이러한 발생의 시계열을 사용하여 분석의 기간 전체에 걸쳐 DGA 버스트의 수를 결정한다.
다음으로, AE-C(autoencoder-classifier)는 상관의 시간 기간에 걸쳐 상관들을 분석함으로써, DGA 발생들의 그 대응하는 시계열에 기초하여 DGA 레코드들의 각각의 계열에 일관성 점수들을 할당한다. 다음으로, FSA(frequency spectrum analyser) 모듈이 사용되어 DGA 발생들의 시계열을 주파수 스펙트럼으로 변환한 후, 각각의 DGA 레코드들의 계열 내에서 발생하는 주기적인 DGA 버스트들을 식별한다. 동시에, FSR(finding successful resolutions) 모듈은 SFC 모듈에 의해 결정되는 바와 같은 각각의 계열의 특성들을 사용하여, 가능한 C2(Command and Control) 서버들로 분해된 DGA 도메인 명칭들을 찾는다. 다음으로, SFC 모듈에 의해 생성되는 가능한 DGA 도메인 명칭들의 계열 및 다른 보강 상세들과 함께 FSR, FSA 및 AE-C 모듈들에 의해 생성되는 정보가 경보 모듈에 전달되고, 경보 모듈은 다음으로 이 정보를 사용하여 텍스트 및 시간 정보 양자 모두로 보강된 DGA 경보들을 사용자에게 제시하고 우선순위화하여, DGA 거동, AE-C 모듈에 의해 평가되는 더 높은 일관성 점수들, 우리의 FSA 모듈에 의해 평가되는 주기성, 및 FSR 모듈에 의해 평가되는 가능한 C2 서버들에 대한 가능한 분해들을 나타내도록 평가된 도메인 명칭들의 계열 내의 명백한 텍스트 유사도들과 함께 사용자가 이들 경보들에 그 주의를 더 잘 집중하게 한다.
이제, 첨부 도면에 예시된 바와 같은 일부 실시예를 참조하여 본 발명에 대해 상세히 설명하기로 한다. 다음 설명에서는, 본 발명의 실시예들의 완전한 이해를 제공하기 위해 다수의 특정 피처들이 제시된다. 그러나, 실시예들은 특정 피처들의 일부 또는 전부 없이 실현될 수 있다는 점이 본 기술 분야의 통상의 기술자에게 분명할 것이다. 이러한 실시예들은 또한 본 발명의 범위 내에 포함되어야 한다. 또한, 아래에서 특정 프로세스 단계들 및/또는 구조들은 상세히 설명되지 않을 수 있고 독자는 본 발명을 불필요하게 모호하게 하지 않도록 대응하는 인용을 참조할 것이다.
또한, 본 기술 분야의 통상의 기술자는 본 설명의 많은 기능 유닛들이 명세서 전반에 걸쳐 모듈들로서 표시됨을 것을 인식할 것이다. 본 기술 분야의 통상의 기술자는 또한 모듈이 회로들, 로직 칩들 또는 임의의 종류의 개별 컴포넌트로서 구현될 수 있고, 본 발명으로부터 벗어나지 않고 필요에 따라 다수의 모듈이 단일 모듈로 조합되거나 서브모듈들로 분할될 수 있다는 것을 인식할 것이다. 더욱이, 본 기술 분야의 통상의 기술자는 또한 모듈이 다음으로 다양한 프로세서들에 의해 실행될 수 있는 소프트웨어로 구현될 수 있다는 것을 또한 인식할 것이다. 본 발명의 실시예들에서, 모듈은 또한 컴퓨터 프로세서에게 수신된 명령어들에 기초하여 이벤트들의 시퀀스를 수행하도록 지시할 수 있는 컴퓨터 명령어들 또는 실행가능 코드를 포함할 수 있다. 모듈들의 구현의 선택은 본 기술 분야의 통상의 기술자에게 설계 선택으로서 남겨지며, 어떤 식으로든 본 발명의 범위를 제한하지 않는다.
도 1은 본 발명의 실시예들에 따른 DGA(Domain Generation Algorithm) 거동들을 나타내는 DNS 레코드들의 계열을 검출하기 위한 시스템을 예시한다. 예시된 바와 같이, 시스템(100)은 DL-C(deep learning classifier) 모듈(110), SFC(series filter-classifier) 모듈(115), AE-C(autoencoder-classifier) 모듈(120), FSA(frequency spectrum analyser) 모듈(125), FSR(finding successful resolutions) 모듈(119), 경보 모듈(130) 및 선택적으로, 평활 필터 및 DFT(Discrete Fourier Transform) 모듈(117)을 포함한다.
동작 시에, DNS 레코드들의 스트림(105)은 관심 있는 시간 기간에 걸쳐 수집되고, 딥 러닝 분류기 모듈(110)에 제공된다. 이 시간 기간은 임의의 수의 일, 주 또는 달을 포함할 수 있고, 본 기술 분야의 통상의 기술자에게 설계 선택으로서 남겨진다. 후속하여, 이 관심의 시간 기간은 상관의 시간 기간이라고 지칭될 것인데, 그 이유는 우리가 본질적으로 보다 높은 신뢰도를 부여받아야만 하는 경보들을 결정하기 위해 이 시간 기간 내에 상관들을 찾아내려고 시도하고 있기 때문이다. 본 발명의 실시예들에서, 이 시간 기간은 1개월 또는 30일을 포함할 수 있다.
딥 러닝 분류기 모듈(DL-C)(110)은 다음으로 DNS 레코드들(105) 내에 포함된 도메인 명칭들 각각을 분석하여 도메인 명칭이 DGA인지 여부를 결정하고 도메인 명칭이 나타내는 DGA 특성들을 결정한다. 즉, 모듈(110)은 아마도 DGA와 연관되는 도메인 명칭들을 갖는 DNS 레코드들을 식별할 것이고, 이러한 식별된 가능한 DGA 도메인 명칭들에 대해, 그들이 알려진 DGA 패밀리들 각각에 얼마나 유사한지를 정량화할 것이다. 예를 들어, 87개의 알려진 DGA 패밀리가 있는 경우, DL-C 모듈에 의해 가능한 DGA 도메인 명칭으로 고려된 각각의 도메인 명칭은 연관된 87 차원 벡터를 가질 것이고, 벡터의 각각의 엘리먼트는 도메인 명칭과 특정 패밀리 사이의 백분율 유사도을 나타낸다. DL-C 모듈에 의해 DGA가 아닌 것으로 고려된 DNS 레코드들은 다음으로 모듈(110)에 의해 DNS 레코드들로부터 제거된다. 미리 훈련된(그리고 선택적으로는 그 훈련 데이터세트가 업데이트됨에 따라 업데이트될 수 있는) 딥 러닝 분류기 모듈(110)의 상세한 작업들은 도 3을 참조하여 나중의 섹션들에서 더 상세하게 설명된다. 다음으로, 나머지 DNS 레코드들은 SFC 모듈(115)에 제공된다.
모듈(115)에서, 나머지 DNS 레코드들은 소스 IP(Internet Protocol)들, 목적지 IP들, 및 분석의 시간 기간, 예를 들어, 일(day)들에 기초하여 그룹화되고, 이 시간 기간은 시계열 특성들이 고정된 시간 기간에 걸쳐 결정될 수 있도록 임의적으로 선택된다. 우리의 실시예에서, 분석의 시간 기간으로서 1일을 사용하였다. 이 분석의 시간 기간은 상관의 시간 기간과 다르다는 점에 유의한다. 특히, 피처들이 이 분석의 시간 기간으로부터 추출되어, 이들이 상관의 시간 기간에 걸쳐 상관되는지를 결정할 것이다. 따라서, 분석의 시간 기간은 상관의 시간 기간의 서브세트이다. 이 프로세스의 끝까지, DGA 특성을 갖는 것으로 고려된 다양한 DNS 레코드는 소스-목적지 IP 쌍 및 분석의 시간 기간에 따라 그룹화되었다. 이는 궁극적으로 각각의 연관된 소스-목적지 IP 쌍 및 분석의 시간 기간에 대해 가능한 DGA DNS 레코드들의 계열을 제공한다. 이 DNS 레코드의 계열은 도메인 명칭 문자열 및 그와 연관된 타임 스탬프 양자 모두를 포함하여, 문자열 기반 분석 및 시간 기반 분석 양자 모두를 수행할 수 있게 해준다.
필터는 다음으로 DNS 서버(도시되지 않음)에 의해 NXDOMAIN 응답 코드(rcode)로 플래그되지 않은 도메인 명칭들을 포함하는 레코드들을 필터링하기 위해 잠재적인 DGA DNS 레코드들의 각각의 계열에 적용된다. 다음으로, 모듈(115)은 NXDOMAIN rcode로 태깅되는 다양한 가능한 DGA 도메인 명칭들의 계열에 의해 디스플레이된 DGA 특성의 주요 타입을 식별한다. 다음으로, 주요 식별된 특성들 중 적어도 하나를 나타내지 않는 NXDOMAIN 도메인 명칭들 및 그들의 연관된 DNS 레코드들도 역시 각각의 계열로부터 또한 제거된다. 이 모듈의 종료시까지는, 각각의 도메인 명칭들의 계열은 또한 DGA의 알려진 패밀리들 중 하나에 태깅되었을 것이다. 또한, 모듈(110)의 출력이 각 계열의 주요 DGA 특성을 식별하는데 사용되었기 때문에, 각 계열의 각 나머지 항목은 또한 모듈(110)에 의해 결정되는 바와 같이 서로 유사한 특성을 디스플레이할 것이라는 점에 유의해야 한다. 즉, 최상위 몇몇 발생 DGA 특성 중 적어도 하나를 나타내는 가능한 DGA 도메인 명칭만이 각각의 계열에 남아 있도록 선택될 것이고, 다음으로, 각각의 계열은 클러스터와 연관된 최상위 발생 DGA 특성에 기초하여 라벨링된다.
본 발명의 예시적인 실시예에서, 계열 필터-분류기는 이하의 방법을 실행하도록 구성될 수 있다.
1. 딥 러닝 분류기 모듈(110)에 의해 결정되는 바와 같이 각각의 계열로부터의 각각의 도메인 명칭에 의해 나타난 최상위-k 알려진 DGA 특성들이 초기에 선택된다. 예를 들어, 특정 계열이
Figure 112021145918083-pat00029
DNS 레코드들, 및 그에 대응하여
Figure 112021145918083-pat00030
도메인 명칭 문자열들을 포함하면, 알려진 DGA 클래스들의
Figure 112021145918083-pat00031
행렬이 선택될 것이다.
2. NXDOMAIN으로서 태깅되지 않은 DNS 레코드들은 다음으로 필터링되어 DGA 클래스들의
Figure 112021145918083-pat00032
행렬을 초래할 것이다.
3. 다음으로,
Figure 112021145918083-pat00033
행렬의 모드
Figure 112021145918083-pat00034
는 DGA
Figure 112021145918083-pat00035
로서 계열을 라벨링하는 데 사용된다.
4. 다음으로,
Figure 112021145918083-pat00036
행렬,
Figure 112021145918083-pat00037
,
Figure 112021145918083-pat00038
에서 최상위-c개의 가장 빈번하게 발생하는 특성을 찾을 수 있다.
5. 다음으로, 그들의 최상위-k 클래스들에서
Figure 112021145918083-pat00039
,
Figure 112021145918083-pat00040
중 적어도 하나를 갖지 않는 모든 도메인들이 필터링 제거된다.
이 프로세스의 종료에 의해, DNS 레코드들의 각각의 계열은 그 대응하는 라벨
Figure 112021145918083-pat00041
로 라벨링될 것이고, 이는 딥 러닝 분류기 모듈(110)에 의해, DNS 레코드들의 각각의 계열에 의해 디스플레이된 지배적인 특성인 것으로 고려되었다. 또한, DNS 레코드들의 각각의 계열은 이제, 그들의 최상위-k 특성들 중 하나로서 계열의 최상위-c 특성들 중 적어도 하나를 나타내는 NXDOMAIN DNS 레코드들만을 포함한다. 본 발명의 실시예들에서, k의 값은 임의로 5로 설정될 수 있고(그리고 전형적으로 임의의 분류 정확도를 달성하려고 시도할 때 DL-C 모듈의 성능에 기초함), c는 임의로 1로 설정될 수 있고 k 이하이어야 한다.
다음으로, 각각의 계열은 그들의 연관된 타임스탬프에 기초하여 소팅되고, 다음으로, 각각의 계열 내의 타임스탬프는 분석의 시간 기간에 걸쳐 정규화된다. 본 발명의 실시예들에서, 각각의 계열의 소팅은 그들의 관련 타임스탬프들에 기초하고, 타임스탬프들의 정규화는 계열 필터-분류기가 계열 각각에 적용되기 전에 발생할 수 있다. 본 발명의 실시예들에서, 이러한 소팅은 레코드들이 연대순으로 소팅되는 것을 보장하기 위해 계열 내에서 행해진다. 이는 전형적인 DNS 레코드 구조의 필드들 중 하나인 타임스탬프 속성을 사용하여 구성된다.
따라서, 다수의 DNS 레코드들의 계열이 생성될 것이고, 각각의 DNS 레코드들의 계열 내의 레코드들은 분석의 시간 기간(예를 들어, 1일) 내에서 연대순으로 소팅될 것이고, 각각의 계열에서 최상위-c개의 가장 빈번하게 발생하는 DGA 특성들을 그들의 최상위-k 특성들 중 하나로서 나타내도록 딥 러닝 분류기 모듈(110)에 의해 분류되었을 것이다.
요약하면, 이 시점까지, DNS 레코드들의 각각의 계열은 라벨
Figure 112021145918083-pat00042
을 가질 것이고, 계열의 모든 엘리먼트는 NXDOMAIN 타입 DNS 레코드를 포함한다. 다음으로, 각 계열의 각 DNS 레코드와 연관된 타임 스탬프는 발생의 시계열, 즉, 시간에 대한 DGA 발생의 수의 플롯을 맵 아웃하는데 사용된다. 이를 위해, 상대 시간들이 먼저 계산된다(즉, 계열 내의 각각의 레코드와 계열 내의 제1 레코드 사이의 시간 차이-타임스탬프들의 정규화). 다음으로 상대 시간들은 미리 결정된 시간 간격으로 비닝되고(즉, 시간 간격 빈들은 샘플링 기간으로 지칭됨), 이에 의해, 본 발명의 예시적인 실시예에서, 샘플링 기간은 1분(즉, 60초)으로 설정될 수 있다.
도 4에 예시된 플롯(400)은 1일의 분석의 시간 기간에 대해 플롯팅된 가능한 DGA 발생 수를 도시하며, 이에 의해 이 플롯에서 x축은 1440분으로 설정되었으며, 이는 1일의 시간 기간과 동등하다. (상대적 시간에 관하여) 매 분마다, 제1 레코드에 대해 해당 분 내에 발생한 레코드들의 수는 통합(즉, 비닝(binned)), 카운트 및 플롯팅된다.
모듈(115)의 최종 단계는 다음으로 분석의 기간 전체에 걸쳐 발생하는 DGA 버스트들의 수를 계산하기 위해 전형적인 피크 검출 및 클러스터링 알고리즘들을 사용하는 것이다. 우리는 DGA 버스트들을 체인의 각각의 엘리먼트 사이에 최대
Figure 112021145918083-pat00043
분의 간격으로 서로 체인될 수 있는 DGA 발생들의 그룹들로서 정의한다. 이는 2개의 버스트를 선언하기 위해 우리에 대한 다음 DGA 발생보다 적어도
Figure 112021145918083-pat00044
분 전에 DGA 발생이 없어야 한다는 것을 의미한다(즉,
Figure 112021145918083-pat00045
분 내에 발생하는 임의의 DGA 발생들은 제1 버스트의 다른 엘리먼트들과 함께 체인화될 것이다). 일부 실시예들에서,
Figure 112021145918083-pat00046
은 임의로 5분으로 설정될 수 있다. 우리의 실시예에서, 이러한 추가 정보는 분석의 기간 전반에 걸쳐 단일 버스트만을 나타내는 계열을 더 드롭하는데 사용되었다. 본 발명의 실시예들에서, 일정 오경보율(Constant False Alarm Rate; CFAR) 알고리즘 및 계층적 클러스터링(Hierarchical Clustering)은 분석의 기간 전반에 걸쳐 발생한 DGA 버스트들의 수를 결정하는데 사용되었다. CFAR 및 계층적 클러스터링의 사용이 합성 개구 레이더 애플리케이션들에서 널리 사용되고 문서화됨에 따라, 이는 간결성을 위해 더 상세히 설명되지 않을 것이다.
다음으로, 이들 시계열은 AE-C(autoencoder-classifier) 모듈(120)에 제공되고, 이에 의해 DGA 발생의 다양한 시계열 및 가능한 DGA DNS 레코드의 각각의 계열과 연관된 라벨(M)이 이 모듈을 훈련하는데 사용된다. AE-C 모듈(120)의 상세한 작업들은 도 5를 참조하여 나중의 섹션들에서 더 상세히 설명된다. 모듈(120)이 이들 계열을 사용하여 훈련되면, 훈련된 오토인코더-분류기 모듈(120)은 다음으로, 후속하여 일관성 점수를 생성하기 위해 이들 계열 각각에 적용된다. 모듈 (120)의 목적은 각각의 라벨링된 계열과 연관된 시간 도메인 (또는 일부 실시예들에서는 주파수 도메인) 특성들을 학습하는 것의 용이성, 및 이에 대응하여, 모듈 (115)에 의해 동일한 라벨이 주어졌던 다양한 계열 사이에 일관성이 있는지를 결정하는 것이다. 더 높은 일관성 점수는 특정 계열이 동일한 라벨의 다른 계열에 비해 시간/주파수 도메인 특성들의 더 코히어런트한 세트를 갖는다는 것을 나타낸다. 이는 유사한 시계열 구조들이 동일한 라벨의 다른 계열로 관찰되어, 특정 계열의 의심도를 증가시킨다는 것을 나타낸다.
다음으로, AE-C 모듈(120)에 의해 생성되는 바와 같은 그들의 연관된 일관성 점수들과 함께 모듈(115)의 출력으로부터 획득되는 바와 같은 다양한 가능한 DGA DNS 레코드들의 계열 및 그들의 연관된 발생 시계열들은 다음으로 FSA(Frequency Spectrum Analysis) 모듈(125)에 제공된다. FSA 모듈(125)은 가능한 DGA DNA 레코드들의 계열과 연관된 타임스탬프들(즉, 각 계열의 다양한 DGA DNS 레코드들의 발생들의 시계열들)에 의해 디스플레이되는 임의의 강한 시간적 주기적 거동들이 있는지 여부를 결정하는 것을 목표로 한다. FSA 모듈(125)은 DGA 발생들의 시계열에 대해 DFT(Discrete Fourier Transformation)가 뒤따르는 평활 필터를 적용하여, 그것을 시간 도메인으로부터 주파수 도메인으로 변환한다. 본 발명의 실시예들에서, 평활화 필터는 콘텐츠가 시간 도메인으로부터 주파수 도메인으로 변환될 때 벽돌 효과(brick wall effect)를 방지하기 위해 해닝 필터(Hanning Filter), 블랙만 필터(Blackman filter) 또는 임의의 다른 유사한 타입의 평활화 필터를 포함할 수 있지만, 이에 제한되지 않는다.
다음으로, FSA 모듈(125)은 주파수 스펙트럼에서 피크들(즉, DGA 주파수 도메인 피크들)을 식별하여, 가능한 주기적 및 대응적으로 가능한 자동화된 멀웨어 거동을 나타낸다. 주파수 스펙트럼에서 이들 DGA 주파수 도메인 피크들 각각에 대해, FSA 모듈(125)은 먼저 주기적 신호의 존재를 선언해야 하는지를 평가할 것이다. 그렇다면, 이는 또한 각각의 주파수에 존재하는 페이즈 시프트된 신호들의 가능한 수를 평가할 것다음으로 사용자는 단지 NAT(Network Address Translation) 후 트래픽 데이터(즉, NATed 트래픽 데이터)를 찾을 때에도 감염된 컴퓨터들의 수의 추정치을 갖게 된다. FSA 모듈(125)의 상세한 작업들은 도 6 및 도 7을 참조하여 나중의 섹션에서 더 상세히 설명된다.
동시에, FSR(finding successful resolutions) 모듈(119)은 모듈(115)에 의해 드롭된 가능한 DGA NOERROR DNS 레코드를 취하여 가능한 C2 서버로 분해된 가능한 DGA 도메인을 찾는다. 특히, 각각의 가능한 DGA NXDOMAIN DNS 레코드의 계열과 연관된 각각의 가능한 DGA NOERROR DNS 레코드의 계열에 대해, 모듈(119)은 각각의 레코드와 연관된 도메인 명칭에 의해 나타나는 최상위-k 특성을 결정한다. 특성들
Figure 112021145918083-pat00047
,
Figure 112021145918083-pat00048
중 적어도 하나가 가능한 DGA NOERROR DNS 레코드들의 최상위-k 특성 중 하나로서 존재하면, 그 레코드는 그 연관된 도메인 명칭 및 DNS 레코드가 후속하여 시스템의 사용자들에게 제시될 수 있도록 유지된다.
본 발명의 예시적인 실시예에서, 특정 소스 IP, 목적지 IP 및 분석의 기간에 연관된 각각의 DNS 레코드들의 계열에 대해, FSR 모듈(119)은 딥 러닝 분류기 모듈(110)로부터 클래스들의
Figure 112021145918083-pat00049
행렬을 획득하고,
Figure 112021145918083-pat00050
행렬을 생성하기 위해 NOERROR(즉, 성공적인 분해를 갖는 DNS 레코드들)의 응답 코드를 갖는 DNS 레코드들을 유지하도록 구성된다. 전술한 바와 같이, 특정 소스 IP, 목적지 IP 및 분석의 기간에 연관된 각각의 DNS 레코드들의 계열에 대해, SFC 모듈(115)은 클래스들의
Figure 112021145918083-pat00051
행렬을 획득하도록 또한 구성된다. 다음으로, NXDOMAIN의 응답 코드를 갖지 않은 DNS 레코드는 모든 그 후속 분석을 위해 모듈(115)에 의해 필터링 제거된다. 다음으로, 각각의 계열은 라벨
Figure 112021145918083-pat00052
, 가능한 DGA NXDOMAIN DNS 레코드의 각각의 계열의 최상위 발생 DGA 특성으로 태깅되었다. 또한, 각각의 가능한 DGA NXDOMAIN DNS 레코드들의 계열
Figure 112021145918083-pat00053
의 가장 빈번하게 발생하는 최상위-c 특성들이 또한 결정되었다. 다음으로, 모듈(115)로부터의 출력을 사용하여, FSR 모듈(119)은 (1) NOERROR 응답 코드, 및 (2) 특성들
Figure 112021145918083-pat00054
중 적어도 하나를 갖는 레코드들을 최상위-k 특성들 중 하나로서 식별한다. 즉, FSR 모듈(119)은
Figure 112021145918083-pat00055
의 특성들 중 하나를 갖는
Figure 112021145918083-pat00056
행렬의 행들만을 식별하며, 이들은 그들의
Figure 112021145918083-pat00057
열들에 존재한다. 이 모듈 배후의 아이디어는 다음과 같다: 각각의 NXDOMAIN DNS 레코드들의 계열이 특정한 특성을 나타낸다고 이미 결정되었다면, 다음으로 이 모듈은 유사한 특성을 또한 갖는 NOERROR 레코드들을 식별할 것이다. 이러한 추가 정보는 위협 분석가들에게 매우 유용한데, 그 이유는 이러한 분해된 DGA 도메인들의 발견이 공격자 기반구조가 이미 설정되었음을 나타내기 때문이다. 따라서, 이들 DGA 도메인은 위협 분석가가 계속 추종하는데 특히 관심이 있고 우선 순위가 있다.
다음으로, 경보 모듈(130)은 다양한 가능한 DGA DNS 레코드의 계열을 수신하고, 이들 각각은 다음의 정보로 보강된다: (1) 각각의 가능한 DGA DNS 레코드 계열에 존재하는 가장 공통적인 DGA 특성을 설명하는 라벨 M, (2) 분석의 기간 전반에 걸친 DGA 버스트의 수, (3) AE-C 모듈에 의해 계산된 일관성 점수, (4) 중 각각의 하나의 가능한 DGA NXDOMAIN DNS 레코드 계열과 연관된 각각의 가능한 DGA 발생 시계열 내에 존재하는 가능한 주파수 및 주파수당 연관된 신호의 수, 및 (5) 가능한 C2 도메인을 나타내는, DNS 서버에 의해 분해된 가능한 NOERROR DGA 도메인 명칭. 이들 추가의 보강 데이터 필드들 각각에 대해 임계값들을 설정함으로써, 보다 높은 신뢰도의 경보들이 신속하게 대처될 수 있도록 DGA 경보들이 우선순위화되고 시스템의 사용자들에게 제시될 수 있다.
본 발명의 실시예들에서, 경보 모듈(130)로부터의 출력들은, 특성들
Figure 112021145918083-pat00058
,
Figure 112021145918083-pat00059
(
Figure 112021145918083-pat00060
은 알려진 DGA 패밀리들과 연관된 라벨임) 중 적어도 하나를 그들의 최상위-k 특성들, 분석의 시간 기간 내에 발생한 DGA 버스트들의 수, SFC 모듈 (115)에 의해 DNS 레코드들의 각각의 계열에 태깅된 라벨들과 연관될 수 있는 고유의 학습가능한 특성들의 존재를 표시하는 일관성 점수들, DGA 발생들의 시계열에 기초하여 계산되는 주파수들의 목록 및 주파수당 신호들의 수- 이러한 주파수들의 존재는 DGA 버스트들을 자동화하는 소프트웨어의 존재를 표시하고, 따라서 멀웨어가 존재하는 증가된 확률을 표시하기 위해 사용될 수 있음 -, 및 마지막으로 가능한 C2 서버들로 분해된 가능한 DGA 도메인 명칭들을 표시하는 연관된 분해된 NOERROR DGA 도메인 명칭들의 계열 중 적어도 하나를 디스플레이하도록 분류된 NXDOMAIN 도메인 명칭들의 목록들 또는 계열을 포함할 수 있다.
본 발명의 또 다른 실시예에서, 평활화 필터 및 DFT(Discrete Fourier Transform) 모듈(117)은, 모듈(115)에 의해 출력되는 각각의 가능한 NXDOMAIN DGA DNS 레코드의 계열과 연관된 시계열의 가능한 NXDOMAIN DGA 발생을 시간 도메인으로부터 주파수 도메인(즉, 주파수 스펙트럼)으로 변환하도록 구성될 수 있다. 오토인코더-분류기 모듈(120)은 다음으로 가능한 DGA 발생의 시계열 대신에 일관성 점수를 계산하기 위해 주파수 스펙트럼을 사용할 것이다.
본 발명의 실시예들에 따르면, 모듈들(110, 115, 120, 125, 130, 117, 119) 및 본 발명의 실시예들에 따른 실시예들을 구현하기 위한 시스템의 임의의 다른 모듈들 내에 제공될 수 있는 처리 시스템(200)의 컴포넌트들을 나타내는 블록도가 도 2에 예시되어 있다. 본 기술 분야의 통상의 기술자는 이들 모듈들 내에 제공된 각각의 처리 시스템의 정확한 구성이 상이할 수 있고 처리 시스템(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(Wireless-Fidelity), 블루투스, NFC(Near Field Communication), 셀룰러 네트워크들, 위성 네트워크들, 통신 네트워크들, WAN(Wide Area Networks) 등을 포함하지만, 이에 제한되지 않는다.
메모리(220) 및 운영 체제(206)는 버스(210)를 통해 CPU(205)와 데이터 통신한다. 메모리 컴포넌트들은 RAM(Random Access Memory)(220), ROM(Read Only Memory)(225) 및 대용량 저장소 디바이스(245)를 포함하는, 휘발성 및 비휘발성 메모리 및 하나보다 많은 각각의 타입의 메모리 양자 모두를 포함하며, 마지막은 하나 이상의 SSD(solid-state drives)를 포함한다. 메모리(220)는 또한 비밀 키들 또는 개인 키들을 안전하게 저장하기 위한 보안 저장소(246)를 포함한다. 본 기술 분야의 통상의 기술자는 전술한 메모리 컴포넌트들이 비일시적 컴퓨터 판독가능 매체들을 포함하고 일시적 전파 신호를 제외하고 모든 컴퓨터 판독가능 매체들을 포함하는 것으로 취해질 것을 인식할 것이다. 전형적으로, 명령어들은 메모리 컴포넌트들에 프로그램 코드로서 저장되지만 또한 하드와이어드(hardwired)될 수 있다. 메모리(220)는 휘발성 또는 비-휘발성 메모리 중 어느 하나에 저장될 수 있는 소프트웨어 애플리케이션과 같은 커널 및/또는 프로그래밍 모듈들을 포함할 수 있다.
본 명세서에서 "프로세서"라는 용어는 이러한 명령어들을 처리할 수 있는 임의의 디바이스 또는 컴포넌트를 일반적으로 지칭하는 데 사용되며, 마이크로프로세서, 마이크로컨트롤러, 프로그래머블 로직 디바이스 또는 다른 계산 디바이스를 포함할 수 있다. 즉, 프로세서(205)는 입력들을 수신하고, 메모리에 저장된 명령어들에 따라 그들을 처리하고 출력들을(예를 들어, 메모리 컴포넌트들에 또는 디스플레이 (240) 상에) 생성하기 위한 임의의 적합한 논리 회로에 의해 제공될 수 있다. 이 실시예에서, 프로세서(205)는 메모리 어드레스가능 공간을 갖는 단일 코어 또는 멀티-코어 프로세서일 수 있다. 일 예에서, 프로세서(205)는 - 예를 들어 - 8 코어 CPU를 포함하는 멀티-코어일 수 있다. 다른 예에서, 이는 계산들을 가속하기 위해 병렬로 동작하는 CPU 코어들의 클러스터일 수 있다.
도 3은 본 발명의 실시예들에 따라 딥 러닝 분류기 모듈(110)을 구현하는데 사용될 수 있는 모듈들을 예시한다. 동작에서, 모듈(110)은 도메인 명칭 문자열들(305)의 배치를 수신하고, 이 배치로부터, 어느 도메인 명칭들이 가능한 DGA 도메인 명칭들을 포함하는지를 식별하도록 구성된다. 이들 식별된 가능한 DGA 도메인 명칭들에 대해, 다음으로, 모듈(110)은 이들 도메인 명칭들에 의해 나타나는 DGA의 알려진 패밀리들 사이에서 특성들을 결정한다. 일반적으로, 모듈(110)은 딥 러닝 모델을 미리 훈련시키기 위하여 수정된 YOLO(You-Only-Look-Once) 아키텍처 및 수정된 손실 함수를 활용한다. 이는 라벨링된 오픈-소스 데이터세트들, 내부 데이터베이스들 및 제3자 데이터베이스들로부터 수집된 데이터를 사용하여 행해진다. 이들 데이터는 다음을 포함한다: (1) 도메인 명칭 문자열, (2) 도메인 명칭 문자열이 DGA인지 여부, 및 (3) 도메인 명칭 문자열이 DGA인 경우, 연관된 DGA 패밀리는 다음으로 YOLO 알고리즘으로부터 유도된 복합 손실 함수를 통해 심층 신경망을 훈련하는데 사용될 수 있다.
도 3에 예시된 바와 같이, 도메인 명칭 문자열(305)이 먼저 토큰화 및 패딩 모듈(310)에 제공된다. 본 발명의 실시예들에 따라, 모듈(310)에서, 도메인 명칭 문자열은 문자 레벨에서 토큰화되고, 각각의 문자는 정수가 할당된다. 이 실시예에서, 이하의 문자들이 토큰화될 수 있다:
a. 26개의 소문자 알파벳들: 'a' 내지 'z'
b. 10개의 숫자들: '0' 내지 '9'
c. 1개의 서브도메인 분리자: '.'
d. 1개의 다른 것을 위한 아웃-오브-보카브 토큰
e. 패딩용 1개
본 기술 분야의 통상의 기술자는 본 발명으로부터 벗어나지 않고 다른 타입의 문자들이 또한 토큰화될 수 있다는 것을 인식할 것이다. 위 토큰화 방법의 결과로서, 위 문자들 중 하나에 대응하는 각각의 토큰에 의해 총 38개까지의 토큰이 생성될 수 있다. 토큰을 필요에 따라 패딩하기 위해 추가 토큰이 다음으로 토큰에 추가된다. 아래의 표 1은 예시적인 토큰화 및 패딩 프로세스를 예시하며, 따라서 문자열들 내의 문자들과 그들의 대응하는 토큰들 사이에 맵핑이 행해진다.
Figure 112021145918083-pat00061
토큰화 프로세스의 예시로서, 문자열 'ab.ab'는 표 1의 맵핑에 기초하여 다음과 같은 정수들의 목록, [1, 2, 37, 1, 2]로 변환될 것이다. 토큰화 프로세스 후에, 정수들의 각각의 목록은 80의 길이로 사전 패딩되거나 절단될 것이다(임의로 선택됨). 이는 80개 미만의 토큰을 갖는 정수들의 목록들이 총 길이가 80일 때까지 목록의 앞에 추가된 토큰(들) 0을 가질 것임을 암시한다. 80개 초과의 토큰 길이인 그 목록들에 대해, 마지막 80개의 토큰만이 고려될 것이다.
다음으로, 다양한 목록들이 임베딩 계층(315)에 제공된다. 임베딩 계층(315)은 훈련가능한 계층을 포함하고, 38개의 토큰 각각에 32 차원 벡터를 할당하도록 구성된다. 본 기술 분야의 통상의 기술자는 본 발명을 벗어나지 않고 다른 크기의 차원 벡터가 사용될 수 있다는 것을 잘 인식할 것이다. 각각의 목록이 임베딩 계층(315)을 통과할 때, 목록은 32 x 80 행렬(행 x 열)로 변환될 것이며, 80개의 열 각각은 특정 문자 위치에서 발견된 토큰에 따라 임베딩 계층(315)에 의해 할당된 32 차원 벡터에 대응한다.
다음으로, 이 32 x 80 행렬은, RNN들(Recurrent Neural Networks), CNN들(Convolutional Neural Networks), TNN(Transformer Neural Networks) 또는 이들의 조합을 포함할 수 있지만 이것으로 제한되지 않는 시퀀스 모델(320)을 포함하는, 딥 러닝 신경망(317)에 제공된다. 다음으로, 시퀀스 모델(320)의 출력은 단일 벡터로 평탄화될 수 있고, 다음으로, 단일 벡터는 MLP(Multi-Layered Perceptron) 계층 모델(325)에 전달되어 다음과 같은 출력을 생성할 수 있다:
1. 도메인 문자열이 DGA인지 아닌지 여부(DGA의 경우 1, 비 DGA의 경우 0)를 나타내는 시그모이드 함수에 의해 활성화되는 단일 뉴런(심볼
Figure 112021145918083-pat00062
로 표시됨); 또는
2. 87개의 알려진 DGA 클래스들 사이에서, 도메인 문자열이 나타내는 특성의 표시를 제공하는, 소프트맥스 함수에 의해 집합적으로 활성화되는, 87개의 뉴런들의 조합. 이 차원 벡터는
Figure 112021145918083-pat00063
로서 표시된다.
MLP 모델들(325)로부터의 다수의 출력들에 의해, 복합 손실 함수가 요구된다. 복합 손실 함수를 결정하기 위해, 이진 교차 엔트로피 손실 및 범주적 교차 엔트로피 손실은 다음과 같이 정의된다:
Figure 112021145918083-pat00064
Figure 112021145918083-pat00065
여기서,
Figure 112021145918083-pat00066
은 특정 문자열이 DGA인지의 라벨로서 정의되는데, 즉, 이는 DGA 문자열에 대해 1이고, 비-DGA 문자열에 대해 0이고,
Figure 112021145918083-pat00067
는 특정 문자열이 DGA인지 여부를 표시하는 신경망의 시그모이드 출력으로서 정의되며,
Figure 112021145918083-pat00068
는 원-핫 벡터로서 정의되며, 1은 라벨링된 DGA 클래스에 대응하고,
Figure 112021145918083-pat00069
는 원-핫 벡터의 특정 차원을 나타낸다.
본 발명의 실시예에서, DGA의 87개의 클래스/패밀리가 알려져 있다는 가정 하에, 원-핫 벡터
Figure 112021145918083-pat00070
및 차원 벡터
Figure 112021145918083-pat00071
양자 모두는 87개의 차원 벡터를 포함할 것이고,
Figure 112021145918083-pat00072
는 차원들의 총 수를 나타낸다. 그 결과, 복합 손실 함수는 다음과 같이 정의될 수 있다:
Figure 112021145918083-pat00073
여기서,
Figure 112021145918083-pat00074
은 2개의 손실 함수의 상대적 중요도를 가중하도록 조정될 수 있는 계수이다. 이는 특정 문자열이 DGA인지 여부에 관한 부울 실측 정보 라벨인
Figure 112021145918083-pat00075
가 또한 제2 항에서 계수로서 사용된다는 것에 유의하는 것이 유용하다. 이 공식은 도메인 문자열이 DGA로 라벨링될 때만 범주적 교차 엔트로피 손실이 최적화되고, 그렇지 않으면 이진 교차 엔트로피 손실만이 최적화됨을 나타낸다. 이는 YOLO 알고리즘의 공식화와 유사하다. 이러한 접근법은, 신경망이, 신경망의 단일 포워드 패스를 통해, (1) 특정 문자열이 DGA일 확률 및 (2) 특정 문자열이 DGA인 것으로 결정된 경우 특정 문자열에 의해 디스플레이되는 알려진 DGA의 특성들을 동시에 출력할 수 있게 하기 때문에 유리하다.
일단 복합 손실 함수가 정의되면, ADAM, SGD(Stochastic Gradient Descent) 등과 유사한 최적화 알고리즘들이 모델을 훈련하는데 사용될 수 있다. 본 발명의 실시예에서, SWA(Stochastic Weight Averaging) 알고리즘은 딥 러닝 모델(317) 및 임베딩 계층(315)을 훈련하기 위해 분리된 주기적 학습 레이트와 함께 사용되었다. 트랜스포머 기반 아키텍처는 또한 손실 함수의 오버피팅을 감소시키기 위해 드롭아웃들과 함께 활용되었다.
모델(317) 및 임베딩 계층(315)이 훈련되면, 모델(317)의 이진 출력
Figure 112021145918083-pat00076
은 도메인 문자열이 DGA인지 여부를 결정하기 위해 DGA 결정 모듈(330)에 의해 사용될 수 있고, 그 출력 벡터
Figure 112021145918083-pat00077
는 DGA가 속할 가능성이 있는 DGA 패밀리를 결정하기 위해 DGA 패밀리 분류기(335)에 의해 사용될 수 있다. 또한, 출력은 그 소프트맥스 활성화 계층으로 인해 이산 확률 분포를 포함하므로, 출력은 가중 특성들로서 해석될 수 있고, 가중치는 (87개의 공지된 DGA 클래스들과 관련하여) 입력 도메인 문자열에 의해 나타나는 DGA 특성들에 비례한다. 요약하면, 딥 러닝 분류기 모듈(110)의 끝에서, 모듈(110)의 DGA 결정 모듈(330)에 의해 DGA인 것으로 고려되는 도메인 문자열들을 갖는 DNS 레코드들만이 남을 것이고 다른 것들은 드롭될 것이다.
도 5는 본 발명의 실시예들에 따른 AE-C(autoencoder-classifier) 모듈(120)을 구현하기 위해 사용될 수 있는 모듈들을 예시한다. 특히, AE-C 모듈(120)은 모듈들(510 및 520) 내의 시퀀스 모델들을 포함하는 복합 오토인코더, 및 모듈들(530 및 535) 내의 시퀀스 모델들 및 MLP(multilayer perceptrons)의 조합을 포함하는 분류기(550)로 구성된다. 인코딩(515)은 단순히 인코더 모듈(510)에 의해 출력되는 IX (505)의 저차원 표현이다. 이 저차원 표현은 디코더 모듈 (520)에 의해 재구성된 출력 IY를 생성하는 데 사용될 것이고, 이는 이상적으로 IX와 동등하다. 본 발명의 실시예에서, 입력 IX (505)이 입력들로서 시계열을 포함할 때 (그리고 출력 IY가 재구성된 시계열을 포함할 때), 모듈들 (510, 520, 530 및 535)은 메모리 기반 모듈들, 메모리리스 모듈들 또는 메모리 기반/메모리리스 모듈들의 조합을 포함할 수 있다. 본 발명의 다른 실시예에서, 입력 IX (505)이 입력으로서 DGA 발생의 시계열의 DFT(Discrete Fourier Transform)을 통해 획득된 주파수 스펙트럼을 포함할 때(그리고 출력 IY가 재구성된 주파수 스펙트럼을 포함할 때), 모듈(510, 520, 530 및 535)은 MLP들(multilayer perceptrons)을 포함할 수 있다.
요약하면, SFC 모듈(115)로부터의 출력들은 AE-C 모듈(120)에 제공된다. 이러한 출력들은 그들의 최상위-k 특성들 중 하나로서 계열의 최상위-c 발생 DGA 특성들 중 적어도 하나를 나타내는 DGA 연관 도메인 명칭들을 포함하는 계열을 포함한다. 또한, 이들 계열의 각각에서의 DNS 레코드는 그들의 연관된 타임스탬프에 기초하여 소팅되고 각각의 계열의 제1 레코드에 기초하여 정규화되어 분석의 기간에 걸쳐 DGA 발생 수의 연관된 시계열을 생성한다(예를 들어, 도 4에 예시된 플롯(400)). 이러한 계열 각각은 또한 미리 설정된 임계값보다 분석의 기간에 걸쳐 더 많은 DGA 버스트들을 갖는 것으로 결정되었고, 또한 계열과 연관된 최상위 발생 DGA 특성에 기초하여 라벨링되었다. 다음으로, 오토인코더-분류기(120)는 이러한 계열을 라벨링된 데이터세트로서 사용하여 종래의 감독 학습 기술들을 통해 딥 러닝 모델을 훈련하도록 구성된다.
오토인코더-분류기(120)는 수신된 계열의 데이터세트, 특히, 각각의 DNS 레코드의 계열과 연관된 DGA 발생의 시계열 또는 모듈(117)이 사용되는 경우 그의 대응하는 주파수 스펙트럼에 학습가능한 구조가 있는지를 결정하는 것을 목표로 한다. 즉, 다양한 계열 및 그들의 연관된 라벨들이 주어지면, 오토인코더-분류기(120)는 수학적 모델이 다양한 라벨들 사이의 패턴들을 학습하고 구별하는 것이 가능한지, 그리고 그렇다면, 어느 정도까지 학습하고 구별하는 것이 가능한지 여부를 결정할 것이다. 이를 뒷받침하는 아이디어는 데이터에 대한 고유한 식별가능한 구조가 각각의 라벨에 대해 존재하는지 여부를 결정하는 것이다. 존재하지 않는 경우, 수학적 모델의 신뢰도는 낮을 것인데, 이는 수학적 모델이 본질적으로 노이즈-유사 입력들에 대해 훈련될 것이기 때문이다.
도 5에 예시된 바와 같이, 저차원 인코딩(515)이 분류기(550)에 제공된다. 다음으로, 분류기(550)는 모듈(120)로의 입력이 구조를 갖는지를 결정할 것이고, 구조가 존재한다고 결정하면, 분류기(550)는 입력의 각각의 클래스의 정의를 학습하도록 진행할 것이다.
본 발명의 실시예들에서, 오토인코더-분류기(120)를 훈련하기 위한 손실 함수 L은 다음과 같이 정의될 수 있다:
Figure 112021145918083-pat00078
여기서,
Figure 112021145918083-pat00079
는 각각의 입력
Figure 112021145918083-pat00080
와 연관된 라벨
Figure 112021145918083-pat00081
로부터 유도되는 원-핫 벡터
Figure 112021145918083-pat00082
의 i 번째 성분이고,
Figure 112021145918083-pat00083
는 이상적으로 입력
Figure 112021145918083-pat00084
의 재구성인 디코더 모듈(520)의 출력이고,
Figure 112021145918083-pat00085
는 분류기(550)의 소프트맥스 출력
Figure 112021145918083-pat00086
의 i 번째 차원이고,
Figure 112021145918083-pat00087
는 재구성 손실에 대한 계수이다.
본 발명의 예시적인 실시예에서, 87개의 알려진 DGA 클래스들이 존재한다고 가정된다. 따라서,
Figure 112021145918083-pat00088
Figure 112021145918083-pat00089
양자는 87개의 차원 벡터를 포함할 것이다. 본 발명의 일부 실시예에서, 분류기(550) 및 인코더(510)만이 디코더(520)를 필요로 하지 않고 사용될 수 있다. 이는 본질적으로 이를 간단한 분류 문제로 바꾼다. 그러나, 본 발명의 대부분의 실시예에서, 디코더(520)의 포함을 필요로 하는 오토인코더 손실은, 신경망이 그 분류를 더 작은 차원 임베딩(515)에 기초하는 것을 보장하기 위해 정규화(regularization)의 형태로서 활용되었고, 이로부터, 단순히 입력(505)을 기억하는 것 대신에,
Figure 112021145918083-pat00090
이 재구성될 수 있다.
일단 오토인코더-분류기(120)가 특정 수의 에포크들(우리의 실시예의 경우 1000개의 에포크들)에 대해 손실 함수(L)를 사용하여 훈련되면, 훈련된 오토인코더-분류기(120)는 다음으로 그것을 훈련시키기 위해 사용된 동일한 데이터에 적용될 수 있다. 오토인코더-분류기(120)는 다음으로 모듈(115)에 의해 생성되는 가능한 DGA들의 각각의 계열에 대한 일관성 점수들을 그의 출력으로서 생성한다. 일관성 점수는 오토인코더-분류기(120)에 의해 부여된 신뢰도 점수를 나타내고, 이에 의해 신뢰도 점수가 더 높을수록, 그 특정 계열의 DNS 레코드에 더 많은 주의를 기울여야 하는데, 이는 분석의 시간 기간(우리의 실시예의 경우 1일)에 걸쳐 분석된 그 시간/주파수 특성이 상관의 시간 기간(우리의 실시예의 경우 1개월)에 걸쳐 여러 번 관찰되는 것으로 고려된다는 것을 의미하기 때문이다.
오토인코더-분류기(120)에서 훈련된 모델의 목적은 상관의 단지 기간에 걸쳐 가능한 DGA DNS 레코드들의 각각의 계열에 태깅된 각각의 DGA 라벨에 연관될 수 있는 임의의 시간 특성들 (및 대응적으로, 주파수 스펙트럼 특성들)이 존재하는지 여부를 평가하는 것임에 유의하는 것이 중요하다. 이와 같이, 오토인코더-분류기(120)에서 사용되는 모델은 다른 상관 기간들(우리의 실시예에서, 다른 달들의 데이터)로 일반화하도록 의도되지 않는다. 따라서, 현재 상관 기간에서 각각의 계열에 대한 그 신뢰도 및 분류를 출력하면 폐기된다.
본 발명의 실시예들에 따르면, SFC 모듈(115)에 의해 출력되고, 다음으로, 후속하여 오토인코더-분류기(120)를 통해 일관성 점수들로 보강된 계열이 FSA 모듈(125)에 제공된다. 앞서 언급한 바와 같이, FSA 모듈(125)은 가능한 DGA DNA 레코드들의 계열과 연관된 타임스탬프들에 의해 디스플레이된 임의의 강한 시간적 주기적 거동들이 있는지를 결정하는 것을 목표로 한다. FSA 모듈(125)은 DGA 발생들의 시계열에 대해 DFT(Discrete Fourier Transformation)가 뒤따르는 평활 필터를 적용하여, 이를 시간 도메인으로부터 주파수 도메인으로 변환하고, 다음으로 깊이 주파수 분석에서 수행하여, 신호 내의 가능한 주파수들 및 각각의 주파수에서 페이즈 시프트된 신호들의 수 양자 모두를 열거한다.
여기에 설명된 방법은 단지 DGA 타임스탬프들의 계열 내의 주기성을 분석하는 것에만 제한되지 않고, 소스 목적지 IP 쌍들 사이의 주기적 통신(즉, 하트비트)으로서 정의되는 비커닝과 같은 유사한 특성들을 디스플레이하는 다른 위협들을 검출하기 위해 또한 사용될 수 있다는 점에 유의하는 것이 유용하다.
본 발명의 실시예에 따르면, FSA 모듈(125)은 다음과 같이 작동한다:
1. 이 모듈에 대한 입력들은 발생들의 시계열들을 포함한다. 다음으로, 윈도우잉 함수/평활화 필터(우리의 실시예에서, 해닝(Hanning) 필터)를 발생의 시계열에 적용함으로써, 필터링된 발생의 시계열이 획득될 수 있다.
2. 발생의 시계열이 사용될 때, 주기적인 신호는 도 6의 플롯(605, 615)에 예시된 바와 같이 시간 도메인에서 그 자신을 나타낼 것이다. 알 수 있는 바와 같이, 플롯들(605 및 615)은 각각 0.1초 및 0.05초마다 반복되는 신호들을 도시하며, 매번 1이 발생한다.
3. 위의 신호들은 사실상 (디랙 열(Dirac train)이라고 또한 알려진) 디랙 빗과 유사하다. 디랙 빗은 f 1 Hz의 주파수에서 반복하는 (즉, 모든
Figure 112021145918083-pat00091
s에서 반복하는) 디랙 빗의 푸리에 변환의 크기가 또한 주파수 도메인에서 모든 f 1 Hz에서 반복하는 디랙 함수를 갖는 디랙 빗임을 나타내는 매우 유용한 특성을 갖는다. 플롯(605)의 푸리에 변환인 플롯(610) 및 플롯(615)의 푸리에 변환인 플롯(620)은 이 개념을 예시한다.
4. 수학적으로, 이는 다음과 같이 설명될 수 있다:
Figure 112021145918083-pat00092
,
여기서,
Figure 112021145918083-pat00093
는 푸리에 변환을 나타내고,
Figure 112021145918083-pat00094
는 디랙 함수이고,
Figure 112021145918083-pat00095
는 디랙 열의 주기성이다.
5. 위 수학식들에서 주목할 두 가지 주요 유의 사항이 있다:
a. 첫째, 시간 도메인에서의 디랙 빗의 주파수는 디랙 함수가 주파수 도메인에서 반복될 때를 관찰함으로써 결정될 수 있다.
b. 둘째, 주파수 도메인에서의 디랙 빗의 크기는
Figure 112021145918083-pat00096
이고, 이는 사실상 시간 도메인에서의 디랙 함수의 주파수이다.
6. 위의 2가지 유도를 사용하면, 단일 주파수에서의 단일 신호에 대해, 주파수 도메인에서 디랙 함수가 반복되는 위치를 식별하고, 또한 (주파수 도메인에서)
Figure 112021145918083-pat00097
에서의 신호의 크기가
Figure 112021145918083-pat00098
인 것을 보장함으로써 신호 주파수가 결정될 수 있다는 것이 명백하다.
7. 다음으로, 다음을 유의하여야 한다:
a. 푸리에 변환은 가산적이다. 따라서, 시간 도메인에서의 다수의 신호들(즉, 시간 도메인에서의 다수의 신호들의 가산적 합산)은 단순히 주파수 도메인에서의 합산일 것이다.
b. 마지막으로, 다음을 유의하여야 한다:
Figure 112021145918083-pat00099
위 수학식은, 신호가 시간 도메인에서 시간 시프트되는 경우, 주파수 도메인에서 페이즈 시프트된 버전으로서 나타날 것임을 나타낸다. 따라서, 2개의 신호가 동일한 주파수,
Figure 112021145918083-pat00100
에 존재하지만 상이한 페이즈들에 존재하는 경우, 주파수 도메인 크기의 크기는
Figure 112021145918083-pat00101
가 아니라,|
Figure 112021145918083-pat00102
일 것이다.
FSA 모듈(125)에 대한 예시적인 의사코드가 아래에 제시된다.
1. 입력:
Figure 112021145918083-pat00103
: 해닝 필터링된 발생의 시계열
2.
Figure 112021145918083-pat00104
를 계산한다
3.
Figure 112021145918083-pat00105
에 대해 CFAR 및 계층적 클러스터링을 수행하여 피크들의 위치를 결정한다.
Figure 112021145918083-pat00106
를 CFAR 및 계층적 클러스터링 프로세스에 의해 출력되는 주파수들의 세트(오름차순으로 소팅됨)라고 한다.
Figure 112021145918083-pat00107
를 세트
Figure 112021145918083-pat00108
내의 주파수들 각각에 대한 대응하는 주파수 스펙트럼 크기들의 세트라고 한다.
4.
Figure 112021145918083-pat00109
인 경우, 알고리즘으로부터 벗어나 여기서 종료한다.
5.
Figure 112021145918083-pat00110
인 경우:
zero_freq_mag =
Figure 112021145918083-pat00111
Figure 112021145918083-pat00112
Figure 112021145918083-pat00113
의 세트로부터 각각
Figure 112021145918083-pat00114
Figure 112021145918083-pat00115
를 드롭한다.
6. 최종 출력을 저장하기 위해 객체들을 초기화한다:
● possible_freqs = []
● possible_freq_amplitude = []
● possible_signal_count = []
● min_num_sig를 신호들의 임계 최소 수라고 한다.
7.
Figure 112021145918083-pat00116
내의 각각의
Figure 112021145918083-pat00117
에 대해:
Figure 112021145918083-pat00118
를 사용하여 주파수
Figure 112021145918083-pat00119
에서 신호들
Figure 112021145918083-pat00120
의 수를 계산한다.
Figure 112021145918083-pat00121
인 경우:
possible_freqs == []이면:
Figure 112021145918083-pat00122
를 possible_freqs에 추가한다
possible_freq_amplitude에
Figure 112021145918083-pat00123
를 추가한다
possible_signal_count에
Figure 112021145918083-pat00124
를 추가한다
그렇지 않으면:
Figure 112021145918083-pat00125
가 possible_freqs 내의 임의의 항목으로 나눌 수 없는 경우:
Figure 112021145918083-pat00126
를 possible_freqs에 추가한다
possible_freq_amplitude에
Figure 112021145918083-pat00127
를 추가한다
possible_signal_count에
Figure 112021145918083-pat00128
를 추가한다
그렇지 않으면:
div_freq를
Figure 112021145918083-pat00129
를 그로 나눌 수 있는 주파수라고 하고,
Figure 112021145918083-pat00130
는 div_freq에 존재하는 것으로 추정된 신호들의 수라고 한다.
Figure 112021145918083-pat00131
인 경우:
Figure 112021145918083-pat00132
를 possible_freqs에 추가한다
Figure 112021145918083-pat00133
를 possible_freq_amplitude에 추가한다
Figure 112021145918083-pat00134
를 possible_signal_count에 추가한다
8.
Figure 112021145918083-pat00135
이며, 여기서
Figure 112021145918083-pat00136
는 엘리먼트 단위 천장 함수를 나타낸다.
9.
Figure 112021145918083-pat00137
10. unaccounted_magnitude를 사용하여, unaccounted_magnitude로 합산되는 possible_freqs 내의
Figure 112021145918083-pat00138
의 최상의 조합을 반복적으로 결정하고, 추가의 신호들을 possible_signal_count_rounded의 대응하는 인덱스들에 추가한다. 이 단계는 공지된 배낭 문제(knapsack problem) 알고리즘을 통해 해결될 수 있으며, 이는 간결성을 위해 여기서 설명되지 않을 것이다.
11. 알고리즘의 끝에서,
a. possible_freqs는 가능한 주파수들의 어레이이다
b. possible_signal_count_rounded는 possible_freqs 내의 각각의 대응하는 주파수에서 신호들의 수를 포함하는 어레이이다
본 기술 분야의 통상의 기술자는 다른 형태의 의사코드가 본 발명을 벗어나지 않고 FSA 모듈(125)의 기능을 수행하는데 사용될 수 있음을 인식할 것이다. 위 알고리즘 및 의사 코드를 사용하여, FSA 모듈은 어떤 주기적 신호들이 존재하는지 및 각각의 주파수에서의 신호들의 수를 결정할 수 있을 것이다.
위의 방법은 또한 디랙 빗 내에 다수의 주파수가 존재할 때에도 존재하는 주기적 신호들 및 각각의 주파수에서의 다수의 페이즈 시프트된 신호를 열거할 수 있다는 점이 강조되어야 한다. 도 7의 플롯들(705)은 3개의 주파수가 존재하고, 주파수들 중 1개에서 다수의 신호가 존재하는 경우를 도시한다. 도 7의 플롯(710)에 도시된 바와 같은 푸리에 변환 플롯은 도 6의 플롯들(610 및 620)의 것들만큼 더 이상 균일하지 않지만, 전술한 방법은 모든 신호들을 정확하게 열거하고 식별할 수 있다.
도 8은 시스템(100)이 머신 러닝 문자열 분석기(805) 및 블랙리스트 및 규칙 기반 필터링 모듈(810)과 같은 추가적인 모듈들의 다양한 조합들을 포함할 수 있지만 이에 제한되지 않는 본 발명의 다수의 다른 실시예들을 예시한다.
본 발명의 실시예들에서, ML-SA(machine learning string analyser)(805)는 처리된 DNS 레코드들이 딥 러닝 분류기 모듈(110)에 제공되기 전에 DNS 레코드들(105)을 처리하도록 구성될 수 있다. 분석기(805)의 주요 목적은 분명히 DGA가 아닌 도메인 명칭들을 제거할 목적으로 방대한 양의 Telco-레벨 DNS 레코드들을 초기에 필터링하는 것이다. 이 필터링 단계를 수행하기 위해, 랜덤 포레스트 알고리즘(Random Forest algorithm)과 같은, 본 기술 분야에 공지된 임의의 기본 머신 러닝 모델이 미리 훈련되고 DNS 레코드들의 텍스트 피처들에 적용되어 문자열이 가능한 DGA인지 여부에 관한 이진 결정을 출력할 수 있다. ML-SA 모듈에서 모델을 훈련시키는 데 사용되는 텍스트 피처들은 다음을 포함할 수 있지만 이에 제한되지 않는다:
I. 길이
II. 엔트로피
III. 문자 N-그램들(3,4,5)
IV. 개별 문자 카운트
V. 웹그램 유사도 점수: 합법적 웹 도메인에 대한 도메인의 유사도
VI. 워드그램 유사도 점수: 사전 단어에 대한 도메인의 유사도
이 모델의 주요 목적은 시스템에 대한 다운스트림 계산 부하를 감소시키는 것이라는 점에 유의해야 한다. 따라서, 낮은 임계값은 필터링 아웃되는 진양성(True Positive)들의 확률이 낮도록 설정되었다. 더 많은 DGA 패밀리가 알려짐에 따라, 모델은 필요에 따라 재훈련되고 업데이트될 수 있다.
본 발명의 다른 실시예에서, 계열 필터-분류기 모듈(115) 이전에, 블랙리스트 및 규칙-기반 필터링 모듈(810)은, 블랙리스트를 사용하여, DGA-유사 알고리즘과 연관된 합법적인 도메인 및 무효 TLD(Top-Level Domain) 피처를 갖는 도메인 명칭을 제거하도록 구성되어 있다. 블랙리스트에 더하여, 모듈(810)은 또한 아래의 규칙들에 기초하여 레코드들을 제거할 것이다:.
1. 각각의 DNS 레코드와 연관된 도메인 명칭 문자열 쿼리는 유효한 도메인 명칭이어야 한다. 예를 들어, 도메인 명칭 문자열 쿼리에 적어도 하나의 '.'가 있어야만 한다.
2. 도메인 명칭 문자열은 유효한 TLD를 포함해야만 한다.
3. 도메인 명칭 문자열에는 유효한 문자들이 있어야만 한다.
4. 도메인 명칭 문자열에는 유효한 수의 문자들이 있어야만 한다.
모듈(810)에 의해 활용되는 블랙리스트는, 알고리즘이 연장된 시간 기간에 걸쳐 실행될 때 획득된 추가적인 발견에 기초하여 시간이 지남에 따라 업데이트될 수 있다. 또한, 본질적으로 매우 간단한 규칙들은 또한 사용자가 적합하다고 보는 방법에 따라 변경될 수 있다.
본 발명의 실시예들에 따른 DNS 레코드들에서 DGA(Domain Generation Algorithm) 거동들을 검출하기 위한 예시적인 시스템 또는 방법이 아래의 단계들에서 제시된다. 도 1에 예시된 시스템에 의해 구현되는 방법의 단계들은 다음과 같다:
단계 1: 딥 러닝 분류기 모듈을 사용하여, DNS(Domain Name System) 레코드들의 스트림을 수신하는 단계; 및 DGA 연관 도메인 명칭들 및 DGA 연관 도메인 명칭들 각각과 연관된 DGA 특성들을 가진 DNS 레코드들을 식별하는 단계;
단계 2: SFC(series filter-classifier) 모듈을 사용하여, 소스 IP들, 목적지 IP들 및 각각의 식별된 가능한 DGA DNS 레코드와 연관된 분석의 시간 기간에 기초하여, 딥 러닝 분류기 모듈로부터의 식별된 가능한 DGA DNS 레코드들을 계열로 그룹화하는 단계; 각각의 계열에 계열 필터-분류기를 적용하여, 계열의 최상위-c 발생 DGA 특성들 중 적어도 하나를 그들의 개별 최상위-k 특성들 중 하나로서 나타내는 NOERROR DGA 연관 도메인 명칭들을 선택하고, 최상위 발생 DGA 특성에 기초하여 계열을 라벨링하는 단계; 분석의 시간 기간에 걸쳐 DGA 발생들의 시계열을 획득하기 위해 각각의 계열을 그들의 연관된 타임스탬프들에 기초하여 소팅하고 계열의 제1 레코드에 기초하여 각각의 계열 내의 타임스탬프들을 정규화하는 단계; 및 분석의 시간 기간 내의 DGA 버스트의 수를 결정하기 위해 DGA 발생의 시계열에 계층적 클러스터링과 함께 피크 검출 방법을 적용하는 단계, 및 특정한 미리 설정된 양보다 적은 DGA 버스트로 대응하는 계열을 필터링하는 단계.
단계 3: SFC 모듈로부터 획득되는 각각의 계열에 대해, 라벨 M으로 SFC 모듈에 의해 태깅된 각각의 계열에 대한 일관성 점수를 생성하기 위해 단일 네트워크에서 병합된 오토인코더 및 분류기를 포함하는 오토인코더-분류기 모듈을 사용하는 단계- 오토인코더-분류기 모듈은 계열 및 SFC 모듈로부터 획득되는 라벨들, 및 계열의 라벨들로부터 유도된 원-핫 벡터
Figure 112021145918083-pat00139
의 성분들, 분류기의 소프트맥스 출력
Figure 112021145918083-pat00140
의 차원들 및 계수
Figure 112021145918083-pat00141
에 의해 가중된 재구성 손실에 기초하는 손실 함수를 사용하여 훈련됨 -;
단계 4: FSA(frequency spectrum analyser) 모듈을 사용하여, DGA 발생들의 시계열, 그들의 연관된 주파수들 및 각각의 주파수에서의 페이즈 시프트된 신호들의 수 내에 존재하는 주기적 디랙 빗 신호들을 식별하는 단계.
단계 5: FSR 모듈을 사용하여, 가능한 C2 서버들로 분해된 가능한 DGA 도메인 명칭들을 식별하는 단계.
단계 6: 경보 모듈을 사용하여, NXDOMAIN DGA DNS 레코드들의 계열 및 SFC 모듈로부터 획득되는 그 연관된 버스트들의 수, AE-C 모듈로부터 획득되는 일관성 점수, FSA 모듈로부터 획득되는 가능한 주기적 신호들 및 FSR 모듈로부터 획득되는 가능한 C2 서버들로 분해된 가능한 DGA 도메인들을 포함하는 데이터 필드들을 갖는 보강된 DGA 경보들을 생성하고 우선순위화하는 단계.
본 발명의 실시예들에 따른 DNS 레코드들 내의 DGA 거동들을 검출하기 위한 프로세스가 도 9에 예시된다. 프로세스(900)는 딥 러닝 분류기 모듈이 DNS 레코드의 스트림을 수신하도록 구성되는 단계(905)에서 시작한다. DGA 연관된 도메인 명칭들 및 DGA 연관된 도메인 명칭들 각각과 연관된 DGA 특성들을 갖는 DNS 레코드들이 다음으로 단계 910에서 식별된다. 다음으로, 프로세스(900)는 SFC 모듈을 사용하여, 각각의 식별된 DGA DNS 레코드와 연관된 분석의 시간 기간, 소스 IP(Internet Protocol) 및 목적지 IP에 기초하여, 식별된 DNS 레코드를 계열로 그룹화한다. 이는 단계 915에서 발생한다.
단계 920에서, 프로세스(900)는 다음으로 SFC 모듈을 사용하여 각각의 계열을 조사하고 계열의 최상위-c 발생 DGA 특성들 중 적어도 하나를 그들의 최상위-k 특성들 중 하나로서 나타내는 DGA 연관된 도메인 명칭들을 선택하고; 최상위 발생 DGA 특성에 기초하여 계열을 라벨링한다. 이는 단계 920에서 발생한다.
프로세스(900)는 다음으로 다시 SFC 모듈을 사용하여 각각의 계열을 그들의 연관된 타임스탬프들에 기초하여 소팅하고; 분석의 시간 기간에 걸쳐 DGA 발생들의 수의 시계열을 획득하기 위해 클러스터의 제1 레코드에 기초하여 각각의 계열의 타임스탬프들을 정규화하고; 전형적인 피크 검출 및 계층적 클러스터링 알고리즘을 통해 DGA 발생의 각 시계열에 대해 DGA 버스트의 수를 결정하고; 그리고 미리 설정된 양보다 적은 DGA 버스트들이 드롭된 이러한 계열을 필터링하여 제거한다. 이는 단계 925에서 발생한다.
프로세스(900)는 다음으로, 각각의 계열에 대한 일관성 점수를 생성하기 위해, 단일 신경망 내에 오토인코더 및 분류기를 포함하는 오토인코더-분류기 모듈을 사용한다. 이는 단계 930에서 발생한다.
단계(935)에서, 프로세스(900)는 다음으로, FSA 모듈을 사용하여, DGA 발생들의 시계열 내에 존재하는 가능한 디랙 빗 신호들을 식별하고, 그 주파수 및 각각의 주파수에서의 신호들의 수를 결정하는 것에 관하여 이들을 열거한다. 이는 먼저 발생들의 시계열에 적합한 윈도우잉 함수를 적용한 후에 이를 깊이 주파수 스펙트럼 분석을 위해 주파수 도메인으로 변환함으로써 수행된다.
단계 940에서, FSR 모듈을 사용하여, 프로세스(900)는 SFC 모듈에 의해 식별된 계열의 최상위-c 특성들을 사용하여, 그 최상위-k 특성들 중 하나로서 이들 특성들 중 적어도 하나를 또한 나타내는 DGA NOERROR DNS 레코드들을 찾고, 이들을 C2 서버들로 분해된 DGA 도메인들로서 선언한다.
프로세스(900)는 다음으로 단계 945로 진행하고, 이에 의해 이는 경보 모듈을 사용하여, 각각의 연관된 보강 데이터 필드에 대한 사용자 정의 임계값들에 기초하여, 모든 위 분석의 결과들을 포함하는, 데이터 필드들을 보강하는 DGA 경보들을 생성하고 우선순위화한다. 다음으로 프로세스(900)가 종료한다.
실험 결과
도 1에 예시된 바와 같이, 시스템(100)을 사용하여 수행된 실험으로부터, 몇 달의 텔코 레벨 트래픽 데이터에 대해, 시스템(100)은 유사한 DGA 레코드를 식별하고 이들 DGA 레코드를 함께 그룹화하여 위협 분석가들의 작업을 상당히 감소시키는 능력을 갖는다는 것을 발견하였다. 문헌에서의 대부분의 알고리즘들에 대해, DNS 레코드는 그것이 DGA인지 아닌지 여부로 단순히 분류된다. 그렇게 하는 것은 엄청난 수의 DGA 경보들을 초래할 것이다. 본 기술 분야의 통상의 기술자들에 의해 제안된 해결책들과는 달리, 시스템(100)은 한 달의 텔코 데이터 내의 경보들의 총 수를 9백만에서 227로 감소시킬 수 있고, 227개의 경보들 각각은 유사한 문자열들 및 의심스러운 시간적 특성들을 갖는 것으로 고려된 일련의 도메인들을 포함하는 것으로 발견되었다. 227개의 경보들 중에서, 위협 분석가들은 일견하기에 이들 경보들 중 85개가 진양성들이었음을 확인할 수 있었다. 후속하여, 일부 합법적 프로그램들이 또한 특정 목적들을 위해 DGA를 이용하기 때문에, 나머지는 DGA와 유사하지만, 그러나, 본질적으로 악의적이지 않은 것으로 발견되었다. 후속하여, 이들은 우리의 내부 데이터베이스 및 블랙리스트를 업데이트하는 데 사용될 수 있다. 또한, 시스템(100)은 어떠한 규칙들도 하드코딩되지 않고 상이한 최상위 레벨 도메인들을 갖는 DGA 문자열들을 검출할 수 있는 것으로 발견되었다. 또한, 시스템(100)은 도 10에 도시된 바와 같이 시간 거동을 나타내는 다수의 DGA 계열을 검출할 수 있었다. 분명히, 주파수 도메인에서 매우 규칙적인 패턴에 의해 보여지는 바와 같이, 강한 주기적 신호가 존재하며, 이는 매우 가능성 있는 멀웨어 거동을 나타낸다. 이는 DGA 검출을 위한 시계열 분석의 중요성 및 시스템의 사용자에게 상당히 더 높은 신뢰도의 경보를 제공하는 그 능력을 강조한다.
우리의 분석 동안, 도 11의 플롯(1105)에 도시된 바와 같이 일부 계열을 또한 픽업한다. 일견하기에, 도메인들이 유사하게 보이지 않으므로, 본 발명이 위양성을 픽업했을 수 있는 것처럼 보인다. 또한 많은 반복된 도메인들이 존재한다. 그러나, 주기성 분석을 찾은 후에, 도 11의 플롯(1110)에 도시된 바와 같이, 우리는 또한 이번에는 다수의 주파수를 갖는 일부 강한 주기적 신호들을 찾는다. 추가의 심층 분석(in-depth analysis)을 수행한 후, 우리의 위협 분석가들은 목록 내의 도메인들 중 모든 단일 도메인이 독립적인 위협 인텔리전스 소스에 의해 악성 도메인으로서 플래그업(flagged up)된다는 것에 유의한다. 이는 그렇게 하도록 명시적으로 설계되지 않음에도 불구하고 새로운 위협들을 픽업하는 본 발명의 능력을 예시한다. 우리는 이러한 것이 피처들의 규칙들 및 수작업 엔지니어링의 최소 사용으로부터 유래하여, 전화 레벨 트래픽 데이터에 대한 대규모 배치를 더 잘 일반화할 수 있는 알고리즘을 초래한다는 것을 알고 있다.
이와 같이, 본 발명은, 우리가 아는 한, 일부 다른 시스템도 지금까지 이 스케일에서 활용하지 못했던 시간적 피처들을 사용하여, 효율적이고 효과적인 방식으로 telco-레벨 DNS 레코드들의 스트림으로부터 DGA들을 검출할 수 있다는 것이 발견되었다. 다수의 다른 변경, 치환, 변형 및 수정이 본 기술 분야의 통상의 기술자에 의해 확인될 수 있고 본 발명은 첨부된 청구항들의 범위 내에 있는 바와 같이 모든 이러한 변경들, 치환들, 변형들 및 수정들을 포괄하는 것으로 의도된다.
우리는 또한 우리의 FSA 모듈이 코드 시뮬레이션(코드를 통해 생성된 주기적 신호들) 및 플랫폼 시뮬레이션(실생활 시뮬레이션 목적들을 위해 네트워크에 접속된 컴퓨터들 사이에 전송된 실제 생성된 네트워크 트래픽으로 구성된 주기적 신호들) 양자 모두를 통해 생성된 주기적 신호들을 검출하고 픽업하는 능력을 보여준다. 아래의 표 2는 우리의 결과들을 보여준다. 알 수 있는 바와 같이, 42개의 실제 신호들 중에서, FSA 모듈은 신호들 중 37개를 정확하게(88.1% 정확도) 검출할 수 있었다. 사실상, 12개의 테스트 케이스들 중에서, 케이스의 1을 제외한 모든 케이스에 대해 존재하는 모든 주파수들을 획득할 수 있었고; 케이스 10에서는 90분 기간 신호만을 놓쳤다. 이는 92% 정확도와 동등하다. 각각의 주파수에서 신호들의 수를 카운트하는 것은 주파수 도메인에서의 페이즈 시프트로 인해 더 도전적인 작업이며, 계산들을 복잡하게 한다. 그럼에도 불구하고, 모든 23개의 정확하게 검출된 주파수들 중에서, 우리는 그들 중 18개에 대해 정확한 수의 신호들을 획득할 수 있었다. 이는 78% 정확도이다. 이 모듈은 다른 사이버 애플리케이션, 특히 비커닝에 매우 유용할 것이다.
Figure 112021145918083-pat00142

Claims (18)

  1. DGA(Domain Generation Algorithm) 거동들을 검출하기 위한 시스템으로서,
    DL-C(deep learning classifier) 모듈- 상기 DL-C 모듈은,
    DNS(Domain Name System) 레코드들의 스트림을 수신하고,
    DGA 연관된 도메인 명칭들 및 DGA 연관된 도메인 명칭들 각각에 연관된 DGA 특성들을 갖는 DNS 레코드들을 식별하도록 구성됨 -;
    SFC(series filter-classifier) 모듈- 상기 SFC 모듈은,
    소스 IP, 목적지 IP 및 각각의 식별된 DGA DNS 레코드와 연관된 분석의 기간에 기초하여 DL-C 모듈로부터의 식별된 DNS 레코드들을 계열로 그룹화하고,
    각각의 계열에 대해, 그 최상위-k 특성들 중 하나로서 계열의 최상위-c 발생 DGA 특성들 중 적어도 하나를 나타내는 NXDOMAIN DGA 연관된 도메인 명칭들을 식별 및 선택하고, 최상위 발생 DGA 특성에 기초하여 계열을 라벨링하고,
    분석의 기간에 걸쳐 DGA 발생들의 시계열을 획득하기 위해 각각의 계열을 그들의 연관된 타임스탬프들에 기초하여 정렬하고 계열의 제1 레코드에 기초하여 각각의 계열 내의 타임스탬프들을 정규화하고,
    식별된 NXDOMAIN DGA DNS 레코드들과 연관되지 않은 NOERROR DNS 레코드들을 FSR(finding successful resolutions) 모듈- 상기 FSR 모듈은 수신된 DNS 레코드들로부터 명령 및 제어 서버들과 연관된 DGA 도메인들을 식별하도록 구성됨 -에 제공하도록 구성됨 -;
    단일 신경망으로 병합되는 오토인코더 및 분류기를 포함하는 AE-C(autoencoder-classifier) 모듈- 상기 AE-C 모듈은,
    상기 SFC 모듈로부터 획득되는 DGA 발생들의 각각의 시계열에 대해,
    각각의 라벨링된 계열에 대한 일관성 점수를 생성하고,
    미리 정의된 임계값 미만의 일관성 점수들을 갖는 계열을 제거하도록 구성되고,
    상기 AE-C 모듈은 SFC 모듈로부터 획득되는 발생들의 라벨링된 시계열, 및 상기 계열의 라벨들로부터 유도된 원-핫 벡터
    Figure 112022067974438-pat00143
    의 성분들, 분류기의 소프트맥스 출력
    Figure 112022067974438-pat00144
    의 차원들 및 계수
    Figure 112022067974438-pat00145
    에 의해 가중된 재구성 손실에 기초하는 손실 함수를 사용하여 훈련됨 -;
    FSA(frequency spectrum analyser) 모듈- 상기 FSA 모듈은,
    DGA 발생들의 시계열 각각 내의 주기적 신호들을 결정하기 위해 DGA 발생들의 시계열 각각과 연관된 DGA 주파수 도메인 피크들을 식별하고,
    DGA 발생들의 시계열 각각 내의 주기적 신호들 각각에 대한 주파수 및 대응하는 기간을 결정하고,
    결정된 주파수들 각각에 대해 존재하는 페이즈-시프트된 신호들의 수를 식별하도록 구성됨 -; 및
    상기 SFC 모듈에 의해 생성되는 DGA 발생들의 시계열, 상기 AE-C 모듈에 의해 생성되는 시계열, 상기 FSA 모듈에 의해 결정되는 식별된 페이즈 시프트된 신호들의 수, 및 상기 FSR 모듈에 의해 결정되는 식별된 DGA 도메인들에 기초하여 DGA 경보들을 우선순위화하도록 구성되는 경보 모듈
    을 포함하는 시스템.
  2. 제1항에 있어서,
    평활 필터 및 이산 푸리에 변환 모듈을 더 포함하고, 상기 평활 필터 및 이산 푸리에 변환 모듈은,
    평활 필터를 SFC 모듈에 의해 출력되는 DGA 발생들의 시계열에 적용하고;
    이산 푸리에 변환 알고리즘을 사용하여, 상기 AE-C 모듈의 신경망에 대한 입력들이 주파수 스펙트럼을 포함하도록 DGA 발생들의 필터링된 시계열들을 시간 도메인으로부터 주파수 도메인으로 변환하도록 구성되는 시스템.
  3. 제1항 또는 제2항에 있어서, 상기 시스템은,
    ML-SA(machine learning string analyser) 모듈을 더 포함하고, 상기 DL-C 모듈이 DGA들 및 그들의 연관된 특성들을 갖는 DNS 레코드들을 식별하기 전에, 상기 ML-SA 모듈은,
    머신 러닝 알고리즘을 사용하여, DNS 레코드들로부터 알려진 DGA들과 연관되지 않은 도메인 명칭들을 제거하기 위해 DNS 레코드들을 필터링하도록 구성되고,
    여기서, 상기 머신 러닝 알고리즘은 다음의 라벨링된 피처들: 도메인 명칭의 길이, 도메인 명칭의 엔트로피, 도메인 명칭의 문자 n-그램, 도메인 명칭의 개별 문자 카운트, 웹그램 또는 워드그램 유사도 점수들 중 적어도 하나를 사용하여 훈련되어 있고,
    상기 머신 러닝 알고리즘은 라벨링된 오픈-소스 데이터세트, 내부 데이터베이스들 및 제3자 데이터베이스들을 사용하여 훈련되는 시스템.
  4. 제1항 또는 제2항에 있어서, 상기 DL-C 모듈은,
    YOLO(You-Only-Look-Once) 아키텍처를 포함하고, 상기 YOLO 아키텍처는,
    도메인 명칭 문자열이 DGA를 포함하는지를 결정하고 도메인 명칭 문자열이 DGA를 포함한다고 결정되면, 도메인 명칭 문자열이 알려진 DGA의 어떤 패밀리에 속하는지를 나타내는 확률 분포를 생성하기 위해 이진 결정을 생성하도록 신경망을 통해 전달되는 임베딩들의 세트를 생성하기 위해 문자 레벨 토큰화에 기초하여 자신을 훈련하도록 구성되는 시스템.
  5. 제4항에 있어서, 상기 YOLO 아키텍처는 심층 신경망(deep neural network)에 통신가능하게 접속되는 임베딩 계층(embedding layer)을 포함하고, 상기 임베딩 계층은 문자 토큰들의 목록을 행렬로 변환하도록 구성되고, 상기 심층 신경망은 이진 교차 엔트로피 손실 및 범주적 교차 엔트로피 손실에 기초하는 복합 손실 함수를 사용하도록 구성되고, 여기서 상기 복합 손실 함수는 다음과 같이 정의되고:
    Figure 112021145918083-pat00146

    여기서,
    Figure 112021145918083-pat00147
    은 특정 문자열이 DGA를 포함하는지를 나타내는 라벨로서 정의되고,
    Figure 112021145918083-pat00148
    는 특정 문자열이 DGA인지를 나타내는 신경망의 시그모이드 출력으로서 정의되고,
    Figure 112021145918083-pat00149
    는 원-핫 벡터의 특정 차원으로서 정의되고, 이는 특정 DGA 문자열의 패밀리 라벨에 대응하는 위치에서만 활성화되고,
    Figure 112021145918083-pat00150
    는 신경망에 의해 출력되는 소프트맥스 활성화 벡터로서 정의되고,
    Figure 112021145918083-pat00151
    는 모델을 훈련하는데 사용되는 알려진 DGA 패밀리들의 총 수에 대응하는
    Figure 112021145918083-pat00152
    의 차원들의 총 수로서 정의되고,
    Figure 112021145918083-pat00153
    는 이진 교차 엔트로피 손실과 소프트맥스 교차 엔트로피 손실 사이의 상대적 중요도를 가중하는데 사용되는 튜닝 가능 계수로서 정의되는 시스템.
  6. 제1항 또는 제2항에 있어서, 상기 SFC 모듈이 상기 DL-C 모듈에 의해 DGA 도메인 문자열들과 연관된 DNS 레코드들에 적용되기 전에, 블랙리스트 및 규칙 기반 필터링 모듈은,
    블랙리스트를 사용하여, DGA-유사 알고리즘과 연관된 합법적 도메인들을 제거하고; 무효 도메인 및 TLD(Top-Level Domain) 피처들을 갖는 도메인 명칭들을 제거하도록 구성되는 시스템.
  7. 제1항 또는 제2항에 있어서, 상기 AE-C 모듈을 훈련시키기 위해 사용되는 손실 함수는 다음과 같이 정의되고:
    Figure 112022067974438-pat00154

    여기서, I X 는 SFC 모듈에 의해 출력되는 DGA 발생들의 시계열과 관련된 입력 신호로서 정의되고, 이는 오토인코더에 입력으로서 공급되고, I Y 는 오토인코더의 출력 신호이고, p i 는 원-핫 벡터
    Figure 112022067974438-pat00155
    의 i 번째 차원이고, 이는 SFC 모듈에 의해 계열에 태깅된 라벨로부터 유도되고, P i 는 분류기의 소프트맥스 출력
    Figure 112022067974438-pat00156
    의 i 번째 차원이고, α는 분류 손실 대 재구성 손실의 상대적 중요도를 가중하는 데 사용되는 재구성 손실 계수인 시스템.
  8. 제1항 또는 제2항에 있어서, DGA 버스트들의 수를 카운트하기 위해, SFC에서 피크 검출 및 계층적 클러스터링 알고리즘이 사용되고, 주파수 스펙트럼에서 피크들을 검출하기 위해, FSA 모듈은, 피크 검출을 위한 CFAR(constant false alarm rate) 검출 알고리즘 및 계층적 클러스터링을 위한 응집형 클러스터링을 포함하는 시스템.
  9. 제1항 또는 제2항에 있어서, FSR 모듈은,
    상기 DL-C 모듈로부터, DGA 연관 도메인 명칭들을 갖지만 DNS 서버에 의해 NOERROR 리턴 코드로 태깅되는 DNS 레코드들을 획득하고;
    상기 SFC 모듈로부터, 상기 SFC 모듈에 의해 출력되는 계열 각각의 최상위-c DGA 특성들을 획득하고;
    DGA 연관 도메인 명칭들을 갖는 NOERROR DNS 레코드들로부터, 소스 IP, 목적지 IP 및 분석의 기간에 관하여, 대응하는 계열의 최상위-c DGA 특성들 중 적어도 하나를, 상기 SFC 모듈에 의해 결정된, 그들의 최상위-k DGA 특성들 중 하나로서 나타내는 각각의 계열에 대응하는 DNS 레코드들을 식별하고;
    각각의 계열에 대응하는 식별된 도메인 명칭들을 경보 모듈에 제공하도록 추가로 구성되는 시스템.
  10. 시스템을 사용하여 DGA(Domain Generation Algorithm) 거동들을 검출하기 위한 방법으로서, 상기 시스템은 DL-C(deep learning classifier) 모듈; SFC(series filter-classifier) 모듈; FSR(finding successful resolutions) 모듈; 단일 신경망으로 병합되는 오토인코더 및 분류기를 포함하는 AE-C(autoencoder-classifier) 모듈; FSA(frequency spectrum analyser) 모듈 및 경보 모듈을 포함하고, 상기 방법은,
    상기 DL-C 모듈을 사용하여, DNS(Domain Name System) 레코드들의 스트림을 수신하는 단계;
    상기 DL-C 모듈을 사용하여, DGA 연관된 도메인 명칭들 및 DGA 연관된 도메인 명칭들 각각과 연관된 DGA 특성들을 갖는 DNS 레코드들을 식별하는 단계;
    상기 SFC 모듈을 사용하여, 각각의 식별된 DGA DNS 레코드와 연관된 소스 IP, 목적지 IP 및 분석 기간에 기초하여 DL-C 모듈로부터의 식별된 DNS 레코드들을 계열로 그룹화하는 단계- 이에 의해, 각각의 계열에 대해, 계열의 최상위-c 발생 DGA 특성들 중 적어도 하나를 나타내는 NXDOMAIN DGA 연관된 도메인 명칭들을 그의 최상위-k 특성들 중 하나로서 식별 및 선택하고, 최상위 발생 DGA 특성에 기초하여 계열을 라벨링함 -;
    상기 SFC 모듈을 사용하여, 그들의 연관된 타임스탬프들에 기초하여 각각의 계열을 정렬하고, 분석의 기간에 걸친 DGA 발생들의 시계열들을 획득하기 위해 계열의 제1 레코드에 기초하여 각각의 계열 내의 타임스탬프들을 정규화하는 단계;
    상기 SFC 모듈을 사용하여, 식별된 NXDOMAIN DGA DNS 레코드들과 연관되지 않은 NOERROR DNS 레코드들을 FSR(finding successful resolutions) 모듈에 제공하는 단계- 상기 FSR 모듈은 수신된 DNS로부터 명령 및 제어 서버들과 연관된 DGA 도메인들을 식별하도록 구성됨 -;
    상기 AE-C 모듈을 사용하여, 상기 SFC 모듈로부터 획득되는 DGA 발생들의 각각의 시계열에 대해,
    각각의 라벨링된 계열에 대한 일관성 점수를 생성하고,
    미리 정의된 임계값 미만의 일관성 점수들을 갖는 계열을 제거하는 단계- 상기 AE-C 모듈은 SFC 모듈로부터 획득되는 발생들의 라벨링된 시계열, 및 상기 계열의 라벨들로부터 유도된 원-핫 벡터
    Figure 112022067974438-pat00157
    의 성분들, 분류기의 소프트맥스 출력
    Figure 112022067974438-pat00158
    의 차원들 및 계수
    Figure 112022067974438-pat00159
    에 의해 가중된 재구성 손실에 기초하는 손실 함수를 사용하여 훈련됨 -;
    상기 FSA 모듈을 사용하여, DGA 발생들의 시계열의 각각 내의 주기적 신호들을 결정하기 위해 DGA 발생들의 시계열의 각각과 연관된 DGA 주파수 도메인 피크들을 식별하는 단계;
    상기 FSA 모듈을 사용하여, DGA 발생들의 시계열 각각 내의 주기적 신호들 각각에 대한 주파수 및 대응하는 기간을 결정하는 단계;
    상기 FSA 모듈을 사용하여, 결정된 주파수들 각각에 대해 존재하는 다수의 페이즈-시프트된 신호들을 식별하는 단계; 및
    상기 경보 모듈을 사용하여, 상기 SFC 모듈에 의해 생성되는 DGA 발생들의 시계열, 상기 AE-C 모듈에 의해 생성되는 시계열, 상기 FSA 모듈에 의해 결정되는 식별된 페이즈 시프트된 신호들의 수, 및 상기 FSR 모듈에 의해 결정되는 식별된 DGA 도메인들에 기초하여 DGA 경보들을 우선순위화하는 단계
    를 포함하는 방법.
  11. 제10항에 있어서, 상기 방법은,
    평활 필터 및 이산 푸리에 변환 모듈을 사용하여, 상기 SFC 모듈에 의해 출력되는 DGA 발생들의 시계열에 평활 필터를 적용하는 단계; 및
    이산 푸리에 변환 알고리즘(Discrete Fourier Transform algorithm)을 사용하여, 상기 AE-C 모듈의 신경망으로의 입력들이 주파수 스펙트럼을 포함하도록 DGA 발생들의 필터링된 시계열을 시간 도메인으로부터 주파수 도메인으로 변환하는 단계를 더 포함하는 방법.
  12. 제10항 또는 제11항에 있어서, 상기 DL-C 모듈이 DGA들 및 그들의 연관된 특성들을 갖는 DNS 레코드들을 식별하는 단계 전에, 상기 방법은,
    ML-SA(machine learning string analyser) 모듈을 사용하여, 머신 러닝 알고리즘에 기초하여, DNS 레코드들로부터 알려진 DGA들과 연관되지 않은 도메인 명칭들을 제거하기 위해 DNS 레코드들을 필터링하는 단계를 더 포함하고,
    상기 머신 러닝 알고리즘은 다음의 라벨링된 피처들: 도메인 명칭의 길이, 도메인 명칭의 엔트로피, 도메인 명칭의 문자 n-그램, 도메인 명칭의 개별 문자 카운트, 웹그램 또는 워드그램 유사도 점수들 중 적어도 하나를 사용하여 훈련되어 있고,
    상기 머신 러닝 알고리즘은 라벨링된 오픈-소스 데이터세트, 내부 데이터베이스들 및 제3자 데이터베이스들을 사용하여 훈련되는 방법.
  13. 제10항 또는 제11항에 있어서, 상기 DL-C 모듈은,
    YOLO(You-Only-Look-Once) 아키텍처를 포함하고, 상기 YOLO 아키텍처는,
    도메인 명칭 문자열이 DGA를 포함하는지를 결정하고 도메인 명칭 문자열이 DGA를 포함한다고 결정되면, 도메인 명칭 문자열이 알려진 DGA의 어떤 패밀리에 속하는지를 나타내는 확률 분포를 생성하기 위해 이진 결정을 생성하도록 신경망을 통해 전달되는 임베딩들의 세트를 생성하기 위해 문자 레벨 토큰화에 기초하여 자신을 훈련하도록 구성되는 방법.
  14. 제13항에 있어서, 상기 YOLO 아키텍처는 심층 신경망에 통신가능하게 접속되는 임베딩 계층을 포함하고,
    상기 임베딩 계층은 문자 토큰들의 목록을 행렬로 변환하도록 구성되고, 상기 심층 신경망은 이진 교차 엔트로피 손실 및 범주적 교차 엔트로피 손실에 기초하는 복합 손실 함수를 사용하도록 구성되고, 여기서 상기 복합 손실 함수는 다음과 같이 정의되고:
    Figure 112021145918083-pat00160

    여기서,
    Figure 112021145918083-pat00161
    은 특정 문자열이 DGA를 포함하는지를 나타내는 라벨로서 정의되고,
    Figure 112021145918083-pat00162
    는 특정 문자열이 DGA인지를 나타내는 신경망의 시그모이드 출력으로서 정의되고,
    Figure 112021145918083-pat00163
    는 원-핫 벡터의 특정 차원으로서 정의되고, 이는 특정 DGA 문자열의 패밀리 라벨에 대응하는 위치에서만 활성화되고,
    Figure 112021145918083-pat00164
    는 신경망에 의해 출력되는 소프트맥스 활성화 벡터로서 정의되고,
    Figure 112021145918083-pat00165
    는 모델을 훈련하는데 사용되는 알려진 DGA 패밀리들의 총 수에 대응하는
    Figure 112021145918083-pat00166
    의 차원들의 총 수로서 정의되고,
    Figure 112021145918083-pat00167
    는 이진 교차 엔트로피 손실과 소프트맥스 교차 엔트로피 손실 사이의 상대적 중요도를 가중하는데 사용되는 튜닝 가능 계수로서 정의되는 방법.
  15. 제10항 또는 제11항에 있어서, 상기 DL-C 모듈에 의해 DGA 도메인 문자열들과 연관된 DNS 레코드들에 SFC 모듈을 적용하는 단계 전에, 상기 방법은,
    블랙리스트 및 규칙 기반 필터링 모듈을 사용하여, DGA-유사 알고리즘과 연관된 합법적 도메인들을 제거하는 단계; 무효 도메인 및 TLD(Top-Level Domain) 피처들을 갖는 도메인 명칭들을 제거하는 단계를 포함하는 방법.
  16. 제10항 또는 제11항에 있어서, 상기 AE-C 모듈을 훈련시키기 위해 사용되는 손실 함수는 다음과 같이 정의되고:
    Figure 112022067974438-pat00168

    여기서, I X 는 SFC 모듈에 의해 출력되는 DGA 발생들의 시계열과 관련된 입력 신호로서 정의되고, 이는 오토인코더에 입력으로서 공급되고, I Y 는 오토인코더의 출력 신호이고, p i 는 원-핫 벡터
    Figure 112022067974438-pat00169
    의 i 번째 차원이고, 이는 SFC 모듈에 의해 계열에 태깅된 라벨로부터 유도되고, P i 는 분류기의 소프트맥스 출력
    Figure 112022067974438-pat00170
    의 i 번째 차원이고, α는 분류 손실 대 재구성 손실의 상대적 중요도를 가중하는 데 사용되는 재구성 손실 계수인 방법.
  17. 제10항 또는 제11항에 있어서, DGA 버스트들의 수를 카운트하기 위해, SFC에서 피크 검출 및 계층적 클러스터링 알고리즘이 사용되고, 주파수 스펙트럼에서 피크들을 검출하기 위해, FSA 모듈은, 피크 검출을 위한 CFAR(constant false alarm rate) 검출 알고리즘 및 계층적 클러스터링을 위한 응집형 클러스터링을 포함하는 방법.
  18. 제10항 또는 제11항에 있어서, 상기 방법은,
    상기 FSR 모듈을 사용하여, 상기 DL-C 모듈로부터, DGA 연관 도메인 명칭들을 갖지만 DNS 서버에 의해 NOERROR 리턴 코드로 태깅되는 DNS 레코드들을 획득하는 단계;
    상기 FSR 모듈을 사용하여, 상기 SFC 모듈로부터, 상기 SFC 모듈에 의해 출력되는 계열 각각의 최상위-c DGA 특성들을 획득하는 단계;
    상기 FSR 모듈을 사용하여, DGA 연관 도메인 명칭들을 갖는 NOERROR DNS 레코드들로부터, 소스 IP, 목적지 IP 및 분석의 기간에 관하여, SFC 모듈에 의해 결정되는 바와 같이, 대응하는 계열의 최상위-c DGA 특성들 중 적어도 하나를 그들의 최상위-k DGA 특성들 중 하나로서 나타내는 각각의 계열에 대응하는 DNS 레코드들을 식별하는 단계; 및
    상기 FSR 모듈을 사용하여, 각각의 계열에 대응하는 식별된 도메인 명칭들을 경보 모듈에 제공하는 단계를 더 포함하는 방법.
KR1020210180441A 2021-01-26 2021-12-16 딥 러닝 및 신호 처리 기술을 사용하여 dga들(domain generation algorithms)을 검출하기 위한 시스템 및 방법 KR102457003B1 (ko)

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
KR20220107925A KR20220107925A (ko) 2022-08-02
KR102457003B1 true KR102457003B1 (ko) 2022-10-21

Family

ID=74758358

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210180441A KR102457003B1 (ko) 2021-01-26 2021-12-16 딥 러닝 및 신호 처리 기술을 사용하여 dga들(domain generation algorithms)을 검출하기 위한 시스템 및 방법

Country Status (7)

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

Families Citing this family (1)

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

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102021138B1 (ko) 2019-05-07 2019-09-11 주식회사 에이아이스페라 인공지능 기반 악성 도메인 분류 방법 및 프로그램

Family Cites Families (13)

* 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)
CN106790008B (zh) * 2016-12-13 2018-08-24 浙江中都信息技术有限公司 用于在企业网络中检测异常主机的机器学习系统
US10498751B2 (en) * 2017-05-31 2019-12-03 Infoblox Inc. Inline DGA detection with deep networks
US10958668B1 (en) * 2017-12-21 2021-03-23 Palo Alto Networks, Inc. Finding malicious domains with DNS query pattern analysis
CN110826686A (zh) * 2018-08-07 2020-02-21 艾玛迪斯简易股份公司 有属性序列的机器学习系统和方法
CN109450845B (zh) * 2018-09-18 2020-08-04 浙江大学 一种基于深度神经网络的算法生成恶意域名检测方法
KR102600745B1 (ko) * 2018-11-14 2023-11-10 주식회사 디플리 신경망 분석 기반의 소리 분류용 이상 탐지 방법
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 中国移动通信有限公司研究院 僵尸程序域名识别方法、装置、设备及存储介质
CN111031026A (zh) * 2019-12-09 2020-04-17 杭州安恒信息技术股份有限公司 一种dga恶意软件感染主机检测方法
CN111277603B (zh) * 2020-02-03 2021-11-19 杭州迪普科技股份有限公司 无监督异常检测系统和方法
CN112073551B (zh) * 2020-08-26 2021-07-20 重庆理工大学 基于字符级滑动窗口和深度残差网络的dga域名检测系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102021138B1 (ko) 2019-05-07 2019-09-11 주식회사 에이아이스페라 인공지능 기반 악성 도메인 분류 방법 및 프로그램

Also Published As

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

Similar Documents

Publication Publication Date Title
Saxe et al. eXpose: A character-level convolutional neural network with embeddings for detecting malicious URLs, file paths and registry keys
Tobiyama et al. Malware detection with deep neural network using process behavior
CN105915555B (zh) 网络异常行为的检测方法及系统
CN112019651B (zh) 利用深度残差网络和字符级滑动窗口的dga域名检测方法
WO2016204845A2 (en) Wavelet decomposition of software entropy to identify malware
CN112073551B (zh) 基于字符级滑动窗口和深度残差网络的dga域名检测系统
Liang et al. An end-to-end model for android malware detection
CN112073550A (zh) 融合字符级滑动窗口和深度残差网络的dga域名检测方法
Monshizadeh et al. Improving data generalization with variational autoencoders for network traffic anomaly detection
Muslihi et al. Detecting SQL injection on web application using deep learning techniques: a systematic literature review
KR102457003B1 (ko) 딥 러닝 및 신호 처리 기술을 사용하여 dga들(domain generation algorithms)을 검출하기 위한 시스템 및 방법
Kim et al. Threat classification model for security information event management focusing on model efficiency
Čeponis et al. Evaluation of deep learning methods efficiency for malicious and benign system calls classification on the AWSCTD
Yahya et al. Detection of phising websites using machine learning approaches
Selvi et al. Toward optimal LSTM neural networks for detecting algorithmically generated domain names
Li et al. Enhancing robustness of deep neural networks against adversarial malware samples: Principles, framework, and application to AICS’2019 challenge
Aditya et al. Deep learning for malware classification platform using windows api call sequence
Ding et al. Detecting Domain Generation Algorithms with Bi-LSTM.
Catania et al. An analysis of convolutional neural networks for detecting DGA
Juvonen et al. Anomaly detection framework using rule extraction for efficient intrusion detection
Saengkhunthod et al. Detection of unreliable medical articles on Thai websites
Schofield Comparison of malware classification methods using convolutional neural network based on API call stream
Mahmood et al. A Smishing Detection Method Based on SMS Contents Analysis and URL Inspection Using Google Engine and VirusTotal
Momu et al. Evaluating the Performance of Long Short-Term Memory for Web Attack Detection
Shashank et al. File based malware detection using ensemble method

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant