KR20180081053A - 도메인 생성 알고리즘(dga) 멀웨어 탐지를 위한 시스템 및 방법들 - Google Patents

도메인 생성 알고리즘(dga) 멀웨어 탐지를 위한 시스템 및 방법들 Download PDF

Info

Publication number
KR20180081053A
KR20180081053A KR1020187012077A KR20187012077A KR20180081053A KR 20180081053 A KR20180081053 A KR 20180081053A KR 1020187012077 A KR1020187012077 A KR 1020187012077A KR 20187012077 A KR20187012077 A KR 20187012077A KR 20180081053 A KR20180081053 A KR 20180081053A
Authority
KR
South Korea
Prior art keywords
connection request
external connection
reply
dga
unique
Prior art date
Application number
KR1020187012077A
Other languages
English (en)
Other versions
KR102271545B1 (ko
Inventor
옥타비안 미하이 미네아
크리스티나 바타마누
미하이-라즈반 벤케아
드라고스-테오도르 가브릴루트
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 KR20180081053A publication Critical patent/KR20180081053A/ko
Application granted granted Critical
Publication of KR102271545B1 publication Critical patent/KR102271545B1/ko

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/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/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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • 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
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/144Detection or countermeasures against botnets

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Abstract

잠재적 DGA 멀웨어 호스트에 의해서 보내진 외부 시간 요청을 인터셉트(차단)함으로써 그리고 수신된 실시간을 시간 의존 DGA 활동을 트리거링하도록 설계된 가속된 (미래) 실시간으로 대체함으로써 도메인 생성 알고리즘(DGA) 멀웨어가 탐지된다. 상기 인터셉트와 대체는 특징적 외부 물리적 서버 또는 라우터, 또는 동일한 물리적 시스템에서 작동하는 가상 머신 또는 특징적 하이퍼바이저와 같은 상이한 물리적 또는 가상 시스템 상에서, 상기 DGA 멀웨어가 시간 대체를 식별하는 위험을 감소시키기 위하여, 물리적 또는 가상 DGA 호스트 밖에서 수행된다. 그리고 미래 시간에서만 트리거링되는 실패된 DGA 멀웨어 외부 접속 요청들은 상기 DGA 멀웨어에 의하여 생성되는 도메인 네임들을 식별하는 데 사용되고 사전적 역탐지를 가능하게 한다.

Description

도메인 생성 알고리즘(DGA) 멀웨어 탐지를 위한 시스템 및 방법들
본 발명은 멀웨어로부터 컴퓨터 시스템을 보호하기 위한 시스템들과 방법들에 대한 것이며, 구체적으로는 도메인 생성 알고리즘(들)(domain generation algorithm, DGA)을 채용하는 멀웨어를 탐지하기 위한 시스템들과 방법들에 대한 것이다.
멀웨어로도 알려진 악성 소프트웨어는 세계적으로 많은 수의 컴퓨터 시스템에 영향을 주고 있다. 멀웨어는 컴퓨터 바이러스, 웜, 루트킷(rootkit), 및 스파이웨어와 같은 많은 형태로, 수백만의 컴퓨터 사용자에게 심각한 위협이 되고 있으며, 무엇보다도 데이터와 민감한 정보의 손실, 신원 도용, 및 생산성 손실에 있어 이들을 취약하게 하고 있다.
보안 소프트웨어는 사용자의 컴퓨터 시스템을 감염시키는 멀웨어를 탐지하는데, 그리고 추가적으로 그러한 멀웨어를 제거하거나 또는 이의 실행을 중지시키는데 사용될 수 있다. 여러 멀웨어 탐지 기술들이 본 기술분야에서 알려져 있다. 일부는 상기 멀웨어 에이전트의 코드의 프래그먼트(fragment)를 멀웨어를 나타내는 시그니쳐들의 라이브러리에 매칭하는 것에 의존한다. 다른 종래의 방법들은 상기 멀웨어 에이전트의 멀웨어를 나타내는 일련의 행동들을 탐지한다.
악성 봇넷(botnet)들은 특별히 위험한 유형의 멀웨어 위협을 형성한다. 하나의 공격 시나리오에서, 복수의 컴퓨터 시스템들은 원격 리소스에 연결하도록 그리고 악성 페이로드 또는, 예를 들어서 서비스 거부 공격(denial-of-service attack)을 개시하기 위한 타겟의 표시자와 같은 다른 정보를 다운로드하도록 설정된 에이전트로 감염된다. 상기 에이전트는 도메인 네임들을 생성하기 위하여 그리고 이들에 연결시도를 위하여 도메인 생성 알고리즘(DGA, domain generation algorithm)을 사용하도록 구성될 수 있다. 그러한 도메인 네임들은 도메인 네임 레지스트리에 사전에 대개 등록되지 않고, 따라서 막대한 양의 연결 시도가 실패한다. 멀웨어 생성자들이 공격을 개시 결정할 때, 이들은 이들 도메인 네임들의 하나를 도메인 네임 레지스트리로 등록하고 페이로드를 온라인에 위치한다. 갑자기, 개별 도메인들에 연결하려는 봇넷 멤버들에 의한 시도들이 성공하고 공격이 개시된다.
도메인 네임들 생성은 알려지지 않은 알고리즘을 이용하여 수행되기 때문에, 그러한 공격들을 방지하는 것이 어려울 수 있다. 보안 어플리케이션은 일부 도메인 네임들로의 산발적인 실패한 연결 시도를 볼 수 있으나 그러한 시도들은 외부 사이트들로의 합법적인 실패한 복수의 연결 시도에 대개 묻힌다.
연구자들은 감염된 에이전트들을 식별하고 도메인 생성 알고리즘들을 역분석(reverse-engineering)하느라 복잡하고 지루한 업무를 수행한다. 그러한 알고리즘들은 다양한 방법들을 사용하고, 그 중 하나는 의사난수 생성 알고리즘(pseudo-random generation algorithm)으로의 입력으로서 현재 시간을 사용하는 것이다. 클래식한 탐지 접근법에서는, 연구자들은 코드를 분해하여 DGA와 생성된 도메인 네임들을 결정해야한다.
일 태양에 따르면, 적어도 하나의 메모리와 적어도 하나의 연관된 마이크로프로세서를 포함하는 컴퓨터 시스템은 잠재적 도메인 생성 알고리즘(DGA) 멀웨어 호스트로부터 외적으로 다음의 단계들을 수행하도록 구성된다: 제1 외부 접속 요청에 대한 고유 회신(original answer)을 인터셉트하는 단계(여기서 상기 제1 외부 접속 요청은 상기 잠재적 DGA 멀웨어 호스트에 의하여 외부 사이트로 보내짐); 상기 제1 외부 접속 요청에 대한 고유 회신이 실시간(real time)을 포함하는지 결정하기 위하여 상기 제1 외부 접속 요청과 상기 제1 외부 접속 요청에 대한 상기 고유 회신 중 적어도 하나를 파싱(parsing)하는 단계; 상기 잠재적 DGA 멀웨어 호스트에게 수정된 회신을 보내는 단계(상기 수정된 회신은 상기 고유 회신에 포함된 고유 실시간(original real time)을 상기 고유 실시간 후속의 가속된 실시간으로 대체함으로써 상기 고유 회신으로부터 생성됨); 상기 잠재적 DGA 멀웨어 호스트에 의하여 보내진 제2 외부 접속 요청에 대한 응답으로, 상기 제2 접속 요청이 성공적이지 않다는 것을 표시하는 회신을 인터셉트하는 단계(이때, 상기 제2 외부 접속 요청은 상기 제1 외부 접속 요청이 발송된 이후에 발송됨); 및, 상기 제2 접속 요청이 성공적이지 않다는 것을 표시하는 회신을 인터셉트하는 것의 응답으로, 상기 잠재적 DGA 멀웨어 호스트가 도메인 생성 알고리즘을 실행하는 멀웨어를 포함하는 것을 결정하는 단계.
일 태양에 따르면, 적어도 하나의 메모리와 적어도 하나의 연관된 마이크로프로세서를 포함하는 컴퓨터 시스템은 잠재적 도메인 생성 알고리즘(DGA) 멀웨어 호스트로부터 외적으로 다음의 단계들을 수행하도록 구성된다: 제1 외부 접속 요청에 대한 고유 회신이 가속된 실시간(accelerated real time)을 포함하는지 결정하기 위하여 제1 외부 접속 요청을 파싱(parsing)하는 단계(이때, 상기 제1 외부 접속 요청은 상기 잠재적 DGA 멀웨어 호스트에 의하여 외부 사이트로 보내짐); 상기 제1 외부 접속 요청에 대한 제1 고유 회신을 파싱하여 상기 제1 고유 회신이 상기 가속된 실시간이 정확하지 않다는 것을 표시하는 제1 정보를 포함하는지 여부를 결정하는 단계; 상기 잠재적 DGA 멀웨어 호스트에게 수정된 회신을 보내는 단계(상기 수정된 회신은 상기 제1 정보를 상기 가속된 실시간이 정확하다는 것을 표시하는 제2 정보로 대체함으로써 상기 제1 고유 회신으로부터 생성됨); 상기 잠재적 DGA 멀웨어 호스트에 의하여 제2 외부 사이트에 보내진 제2 외부 접속 요청에 대한 응답으로, 상기 제2 접속 요청이 성공적이지 않다는 것을 표시하는 제2 고유 회신을 인터셉트하는 단계; 및, 상기 제2 회신을 인터셉트하는 것의 응답으로 상기 잠재적 DGA 멀웨어 호스트가 도메인 생성 알고리즘을 실행하는 멀웨어를 포함하는 것을 결정하는 단계.
또 다른 태양에 따르면, 비-일시적 컴퓨터 판독가능 매체(non-transitory computer-readable medium)는, 실행될 때, 제1 컴퓨터 시스템의 적어도 하나의 메모리와 적어도 하나의 연관된 마이크로프로세서로 하여금 잠재적 도메인 생성 알고리즘(DGA) 멀웨어 호스트로부터 외적으로 다음의 단계들을 수행하도록 구성하는 명령들을 저장한다: 제1 외부 접속 요청에 대한 고유 회신(original answer)을 인터셉트하는 단계(여기서 상기 제1 외부 접속 요청은 상기 잠재적 DGA 멀웨어 호스트에 의하여 외부 사이트로 보내짐); 상기 제1 외부 접속 요청에 대한 상기 고유 회신이 실시간(real time)을 포함하는지 결정하기 위하여 상기 제1 외부 접속 요청과 상기 제1 외부 접속 요청에 대한 상기 고유 회신 중 적어도 하나를 파싱(parsing)하는 단계; 상기 잠재적 DGA 멀웨어 호스트에게 수정된 회신을 보내는 단계(상기 수정된 회신은 상기 고유 회신에 포함된 고유 실시간을 상기 고유 실시간 후속의 가속된 실시간으로 대체함으로써 상기 고유 회신으로부터 생성됨); 상기 잠재적 DGA 멀웨어 호스트에 의하여 보내진 제2 외부 접속 요청에 대한 응답으로, 상기 제2 접속 요청이 성공적이지 않다는 것을 표시하는 회신을 인터셉트하는 단계(이때, 상기 제2 외부 접속 요청은 상기 제1 외부 접속 요청이 발송된 이후에 발송됨); 및, 상기 제2 접속 요청이 성공적이지 않다는 것을 표시하는 회신을 인터셉트하는 것의 응답으로, 상기 잠재적 DGA 멀웨어 호스트가 도메인 생성 알고리즘을 실행하는 멀웨어를 포함하는 것을 결정하는 단계.
본 발명의 전술한 태양들 및 장점은 후술하는 상세한 설명 및 도면을 참조로 이해하면 더욱 잘 이해될 것이다.
도 1은 본 발명의 일부 실시예에 따른, 예시적 클라이언트 시스템, 외부 사이트를 호스팅하는 서버 시스템 및 타임 서버(이들은 모두 네트워크로 상호 연결됨)를 보여주는 도면.
도 2a는 본 발명의 일부 실시예에 따른, 잠재적 DGA 멀웨어 호스트일 수 있는 클라이언트 시스템의 예시적 하드웨어 구성을 보여주는 도면.
도 2b는 본 발명의 일부 실시예에 따른, DGA 탐지기(detector)를 호스팅할 수 있는 서버 컴퓨터 시스템 또는 네트워크 스위치/라우터의 예시적 하드웨어 구성을 보여주는 도면.
도 3a는 본 발명의 일부 실시예에 따른, 가상 머신에 의해서 형성되는 잠재적 DGA 멀웨어 호스트에서 실행되는 프로세스를 포함하여, 소프트웨어 객체들의 예시적 세트, 및 상기 잠재적 DGA 멀웨어 호스트와 동일한 물리적 시스템에 의하여 호스팅되는 DGA 탐지기를 보여주는 도면.
도 3b는 본 발명의 일부 실시예에 따른, 잠재적 DGA 멀웨어 호스트에서 실행되는 프로세스를 포함하여, 소프트웨어 객체들의 예시적 세트, 및 상기 잠재적 멀웨어 호스트와 구별되는 물리적 시스템에서 호스팅되는 DGA 탐지기를 보여주는 도면.
도 4는 본 발명의 일부 실시예에 따른, 예시적 외부 접속 요청 및/또는 회신을 보여주는 도면.
도 5a는 본 발명의 일부 실시예에 따른, 타임 서버로의 외부 접속 요청을 파싱할 때 DGA 탐지기에 의해서 실행되는 예시적 단계들의 시퀀스를 보여주는 도면.
도 5b는 본 발명의 일부 실시예에 따른, 외부 접속 요청에 대한 고유 회신을 인터셉트할 때 DGA 탐지기에 의해서 실행되는 예시적 단계들의 시퀀스를 보여주는 도면.
도 5c는 본 발명의 일부 실시예에 따른, 프로세스가 DGA들을 실행하는지를 탐지할 때, DGA 탐지기에 의해서 실행되는 예시적 단계들의 시퀀스를 보여주는 도면.
도 5d는 본 발명의 일부 실시예에 따른, 가속된 실시간을 포함하는 외부 접속 요청을 파싱할 때, DGA 탐지기에 의해서 실행되는 예시적 단계들의 시퀀스를 보여주는 도면.
도 6은 본 발명의 일부 실시예에 따른, 고유 실시간과 가속된 실시간 사이의 복수의 수학적 관계를 보여주는 도면.
도 7은 본 발명의 일부 실시예에 따른, 의심되는 프로세스가 DGA를 실행하는지를 결정하는데 사용될 수 있는 방법의 단계들의 시퀀스를 보여주는 도면.
이하의 설명에서, 구조들 사이에서 언급된 모든 연결들은 직접적인 동작 연결들 또는 매개 구조들을 통한 간접적인 동작 연결들일 수 있는 것으로 이해된다. 구성 요소들의 세트는 하나 이상의 구성 요소를 포함한다. 구성 요소의 임의의 열거는 적어도 하나의 구성 요소를 언급하는 것으로 이해된다. 복수의 구성 요소는 적어도 2개의 구성 요소를 포함한다. 달리 요구되지 않는다면, 기술된 어떠한 방법 단계들도 설명된 특정 순서로 반드시 실행될 필요는 없다. 달리 특정되지 않는다면, 프로세스는 어플리케이션이나 또는 운영 시스템의 일부와 같은 컴퓨터 프로그램의 인스턴스(instance)이고, 적어도 실행 쓰레드(execution thread)와 이것에 상기 운영시스템에 의하여 할당된 가상 메모리의 섹션을 가지는 특징을 가지며, 상기 개별 가상 메모리 섹션은 실행가능 코드(executable code)를 포함한다. 블랙리스트는 일련의 활동들을 수행하는 것이 차단된 객체들의 리스트이다. 파라미터에 따라 결정 또는 판정하는 것은 파라미터에 따라 그리고 선택적으로는 다른 데이터에 따라 결정 또는 판정하는 것을 포함한다. 컴퓨터 판독 가능 매체는 자성, 광, 및 반도체 저장 매체와 같은 비-일시적 매체(non-transitory medium)(예컨대, 하드 드라이브, 광 디스크, 플래시 메모리, DRAM)는 물론, 전도성 케이블 및 파이버 옵틱 링크와 같은 통신 링크들을 포함한다. 타임 서버는 상기 타임 서버가 수신하는 접속 요청에 응해서 회신으로 실시간(실제 시간, real time)을 제공하고, 그리고/또는 실시간을 포함한 접속 요청에 응해서, 상기 접속 요청에 포함된 상기 실시간이 정확한지를 표시하는 회신을 제공하는 외부 서버이다. 타임 서버는 실시간 값들을 제공하는데 전용되는 서버일수도 아닐 수도 있다. 전용 타임 서버는 쿼리들에 응답으로 실시간 값들을 제공하는데 전용된다. 비전용 타임 서버(non-dedicated time server)는 텍스트와 이미지들과 같은 다른 콘텐트를 포함할 수 있는 대형 콘텐트 페이지의 일부로서 실시간 값들을 제공할 수 있다(예를 들어서, 특정 위치의 현재 날씨에 대한 정보뿐만 아니라 상기 위치에서의 현재의 실시간을 제공하는 날씨 서버 페이지). 일부 실시예들에 따르면, 본 발명은, 그 중에서도, 본원에 설명된 방법들을 수행하기 위해 프로그래밍된 하드웨어(예를 들어서, 하나 이상의 반도체 기판들에 형성된 하나 이상의 프로세서들)는 물론, 본원에서 설명된 방법들을 수행하기 위한 명령들을 엔코딩하는 컴퓨터-판독 가능 매체를 포함하는 컴퓨터 시스템을 제공한다.
후술하는 설명은 본 발명의 실시예들을 예시적으로 설명하는 것이며, 반드시 제한적인 것은 아니다.
도 1은 DGA 탐지 컴퓨터 시스템(11)에 연결된 예시적 DGA 호스트 클라이언트 컴퓨터 시스템(10)을 도시하며, 이것은 DGA 타겟 서버 컴퓨터 시스템(14)과 타임 서버 컴퓨터 시스템(15)에 컴퓨터 네트워크(12)를 통해서 추가적으로 연결된다. 클라이언트 시스템(10)은 데스크탑, 랩탑, 태블릿, 또는 스마트폰, 퍼스널 디지털 어시스턴트(PDA), 웨어러블 컴퓨팅 장치, TV 또는 음악 플레이어와 같은 가전기기, 또는 멀웨어를 호스팅할 수 있는 다른 전자 장치와 같은 최종 사용자 컴퓨터 시스템일 수 있다. 클라이언트 시스템(10)은, 적어도 하나의 하드웨어 프로세서, 메모리 및 저장소를 구비하고, Windows®, MacOS®, Linux, Android®, 또는 iOS®과 같은 운영 체제를 구동한다. 일부 실시예에서, 클라이언트 시스템(10)은 하이퍼바이저와 하나 이상의 가상 머신들을 구동하도록 구성될 수 있다. 네트워크(12)는 인터넷과 같은 광역 네트워크일 수 있고, 한편 네트워크(12)의 일부는 또한 LAN(local area network)를 포함할 수 있다.
클라이언트 시스템(10)에서 실행되는 일부 프로세스들은 악성일 수 있다. 특히, 일부 프로세스들은 잠재적으로 DGA들을 실행할 수 있다. 일부 경우에, 상기 멀웨어는 클라이언트 시스템(10)에서 구동되는 가상 머신에 의해서 호스팅될 수 있다. DGA 탐지 시스템(11)은 상기 가상 머신에서 구동되는 프로세스가 DGA를 실행하는지를 결정하는 과업을 수행한다. 일부 실시예에서, DGA 탐지 시스템(11)은 컴퓨터 서버를 포함하고 이를 통해서 클라이언트 시스템(10)이 인터넷에 접속한다. 일부 실시예에서, DGA 탐지 시스템(11)의 적어도 일부는 후술하는 적어도 일부의 DGA 탐지 기능들을 실행하는 소프트웨어/하드웨어로 구성된 스위치 또는 라우터를 이용하여 실행될 수 있다. 가상화(virtualization)를 채용하는 일부 실시예에서, 후술하는 바와 같은 DGA 탐지 시스템은 클라이언트 시스템(10) 상에서, 그러나 클라이언트 시스템(10) 상에서 구동되는 잠재적 DGA 호스트를 형성하는 가상 머신 밖에서 구현될 수 있다. 그러한 가상화 실시예들에서, DGA 탐지 시스템은 시스템 하이퍼바이저 상에서, 그리고/또는 모니터링되는 잠재적 DGA 호스트와 다른 가상 머신 상에서 구동될 수 있다.
일부 실시예들에서, 보안 어플리케이션은 DGA 탐지 시스템(11)의 적어도 일부를 형성하는 서버 상에서 구동된다. 상기 보안 어플리케이션은 클라이언트 시스템(10) 상에서 구동되는 하나 이상의 프로세스를 분석함으로써 다수의 DGA 탐지 단계들을 수행하도록 구성된다. 그러한 분석은 클라이언트 시스템(10)로의 그리고 이로부터의 외부 접속 요청들과 회신들을 분석하고 인터셉트하는 것을 포함할 수 있다. 예시적 실시예에서, 그러한 보안 어플리케이션은 클라이언트 시스템(10) 상에서 구동되는 하나 이상의 프로세스가 DGA를 실행하는지를 결정하도록 구성된다. DGA 멀웨어가 탐지될 때, 추가적으로 상기 보안 어플리케이션은 DGA에 의해서 생성된 도메인 네임들의 세트를 식별하고, 그리고 도메인 네임들의 상기 세트를 블랙리스트로 올린다. 블랙리스트에 올라간 도메인 네임들은 복수의 클라이언트 및/또는 서버 컴퓨터들 상에서 구동되는 보안 어플리케이션들의 인스턴스들로 소프트웨어 업데이트의 일부로서 전송되어서 그러한 시스템들을 보호하는 것을 용이하게 할 수 있다. 또한 다른 감염된 시스템들을 식별하고 잠재적으로 중화(neutralization)하는 것이 가능하도록 상기 식별된 도메인 네임들은 등록될 수 있다.
클라이언트(10)는 컴퓨터 시스템(14)에 의해서 호스팅되는 외부 사이트로 접속 요청을 돌릴 수 있다(어드레싱, addressing). 외부 사이트는 도메인 생성 알고리즘에 의해서 생성된 도메인 네임에 의해서 특징지워질 수 있다. 도메인 네임은 알파벳/숫자 문자의 이해할 수 없는 시퀀스에 의해서 형성될 수 있다(예를 들어서, adfjhaadew34.com 또는 gsriptoi4534pfh.io). 그러한 도메인 네임은 사전에 도메인 네임 등록대행기관(registrar)에 등록되었을 것 같지는 않고, 따라서 미래 시점에 도메인 등록 대행기관에서 등록이 가능할 여지가 매우 높다. 접속 요청이 컴퓨터 시스템(14)에 의해서 호스팅되는 사이트에 도달한다면 상기 접속 요청은 성공적이다. 어떤 이유에 의해서 접속 요청이 컴퓨터 시스템(14)에 의해서 호스팅되는 사이트에 도달하지 않는다면 접속 요청은 실패한 것이다. 그러한 이유는 그러한 사이트가 아직 존재하지 않거나, 현재는 작동(enable)하지 않거나, 또는 상기 사이트를 특정하는 도메인 네임이 유효한 도메인으로서 도메인 네임 시스템(DNS)에 의해서 인정되지 않거나 해서, 따라서 상기 사이트로 어드레싱되는 통신이 상기 사이트로 라우팅되지 않는 것들일 수 있다. 접속 요청이 성공적이라면, 컴퓨터 시스템(14)에 의해서 호스팅되는 사이트는 클라이언트 시스템(10)으로 회신을 되돌려 보낸다. 접속 요청이 성공적이지 않다면, 네트워크(12)의 요소가 상기 접속 요청이 성공적이지 않음을 표시하는 회신을 클라이언트 시스템(10)으로 되돌려 보낸다.
클라이언트 시스템(10)은 또한 하나 이상의 접속 요청들을 타임 서버(15)로 어드레싱한다. 타임 서버(15)는 실시간을 포함하는 응답으로 그러한 접속 요청들에 응답한다. 포함된 실시간의 확인을 요청하는 접속 요청들을 위하여 타임 서버(15)는 또한 상기 접속 요청에 포함된 상기 실시간이 정확한지를 표시하는 데이터로 응답할 수 있다.
도 2a는 본 발명의 일부 실시예들에 따른 클라이언트 시스템(10)의 예시적인 하드웨어 구성을 보여준다. 도 2a는 설명 목적을 위한 컴퓨터 시스템의 특정 구조를 보여준다; 다른 클라이언트 시스템들은 다른 구조를 가질 수 있다. 일부 실시예들에서, 시스템(10)은 프로세서(32), 메모리 유닛(34), 입력 장치(36)들 세트, 출력 장치(38)들 세트, 저장 장치(40)들 세트, 및 네트워크 어댑터(42)들 세트를 포함하는 물리적 장치들(이들은 모두 버스들(44) 세트에 의하여 연결됨)의 세트를 포함한다.
일부 실시예들에서, 프로세서(32)는 신호 및/또는 데이터의 세트로 산술 및/또는 논리 연산을 실행하도록 구성된 물리적 장치(예컨대, 반도체 기판에 형성된 멀티-코어 집적 회로)를 포함한다. 일부 실시예들에서, 이러한 논리 연산들은 프로세서 명령들(예를 들어, 머신 코드 또는 다른 유형의 소프트웨어)의 시퀀스 형태로 프로세서(32)에 전달된다. 메모리 유닛(34)은 명령들을 수행하는 도중에 프로세서(32)에 의해 액세스되거나 생성되는 데이터/신호들을 저장하는 비일시적 컴퓨터-판독 가능 매체(예컨대, RAM)를 포함할 수 있다. 입력 장치(36)는 사용자가 클라이언트 시스템(10)으로 데이터 및/또는 명령들을 도입할 수 있게 하는 개별 하드웨어 인터페이스 및/또는 어댑터를 포함하는, 특히 컴퓨터 키보드, 마우스, 및 마이크를 포함할 수 있다. 출력 장치(38)는 특히 디스플레이 스크린 및 스피커는 물론, 클라이언트 시스템(10)이 사용자에게 데이터를 통신하게 할 수 있는 그래픽 카드와 같은 하드웨어 인터페이스/어댑터를 포함할 수 있다. 일부 실시예들에서, 입력 장치(36)와 출력 장치(38)는 터치-스크린 장치들의 경우와 같이, 하드웨어의 공통적인 부품을 공유할 수 있다. 저장 장치(40)는 소프트웨어 명령들 및/또는 데이터의 비일시적 저장, 판독, 및 기록을 가능하게 하는 컴퓨터-판독 가능 매체를 포함한다. 예시적인 저장 장치(40)는 자기 디스크 및 광 디스크 및 플래시 메모리 장치들은 물론, CD 및/또는 DVD 디스크들 및 드라이브들과 같은 소거 가능 매체를 포함한다. 네트워크 어댑터(42)들 세트는 클라이언트 시스템(10)이 컴퓨터 네트워크, 예를 들어서, 네트워크(12) 및/또는 다른 장치들/컴퓨터 시스템들에 연결될 수 있게 한다. 버스(44)들은 클라이언트 시스템(10)의 장치들(32 내지 42)의 상호 통신을 가능하게 하는 복수의 시스템, 주변, 및/또는 칩셋 버스들, 및/또는 다른 모든 회로망을 일반적으로 나타낸다. 예를 들어, 버스들(44)은 특히, 프로세서(32)를 메모리(34)에 연결시키는 노스브리지, 및/또는 프로세서(32)를 장치(36 내지 42)들에 연결시키는 사우스브리지를 포함할 수 있다.
도 2b는 DGA 탐지 시스템(11)(도 1)을 구현하는데 사용되는 서버와 같은 서버의 예시적 하드웨어 구성을 보여준다. 그러한 서버는 서버 프로세서(132), 서버 메모리(134), 서버 저장 장치(140)들의 세트, 및 네트워크 어댑터(142)들의 세트(이들은 모두 버스(144)들의 세트에 의하여 연결됨)를 포함한다. 장치들(132, 134, 140 및 142)의 작동은 상술한 장치들(32, 34, 40 및 42)의 작동과 유사할 수 있다. 예를 들어서, 서버 프로세서(132)는 신호 및/또는 데이터의 세트로 산술 및/또는 논리 연산을 실행하도록 구성된 물리적 장치를 포함할 수 있다. 서버 메모리(134)는 연산들을 실행하는 도중에 프로세서(132)에 의해 액세스되거나 생성되는 데이터/신호들을 저장하는 비일시적 컴퓨터-판독 가능 매체(예컨대, RAM)를 포함할 수 있다. 네트워크 어댑터(142)들은 상기 서버로 하여금 네트워크(12)와 같은 컴퓨터 네트워크에 연결하도록 할 수 있다.
도 3a는 가상 머신(710)에 의해서 형성되는 잠재적 DGA 멀웨어 호스트와 가상 머신(710)의 외측의 DGA 탐지기(704) 사이의 예시적 데이터 교환을 보여준다. 도시된 구성에서, DGA 탐지기(704)와 가상 머신(710)은 공통의 물리적 컴퓨터 시스템(711)에서 작동된다. 구체적으로, 도 3a에서 도시된 구성에서, DGA 탐지기(704)는 하이퍼바이저(705)에서 작동되거나 그리고/또는 이것의 일부를 형성하는 어플리케이션이다. 가상 머신(710)은 외부 사이트(714)로 접속 요청들을 보내고 이로부터 회신을 수신한다. 프로세스들(701, 742)의 세트는 가상 머신(710)에서 동시에 작동된다. DGA 탐지기(704)는 예시적 프로세스(701)에 의해서 보내진 외부 접속 요청들(702)을 분석한다. 또한 DGA 탐지기(704)는 요청들(702)에 대한 고유 회신들(715)를 인터셉트하고 분석한다. 고유 회신들(715)은 그리고 DGA 탐지기(704)에 의해서 수정된 회신들(703)로 수정된다. 요청들(702) 및 고유 회신들(715)을 분석할 때, DGA 탐지기(704)는 타임 서버 데이터베이스(712)에 문의(query)할 수 있다. 도 3a에서, 타임 서버 데이터베이스(712)는 컴퓨터 시스템(711) 상에 호스팅된 것으로 도시되어 있다. 일부 실시예들에서, 타임 서버 데이터베이스(712)는 컴퓨터 시스템(711)의 외부에 있을 수 있다. 프로세스가 DGA를 실행하는 것으로 결정되면, DGA 탐지기(704)는 보안 어플리케이션(54)으로 하여금 상기 프로세스를 블랙리스트에 올리도록 명령한다.
도 3b는 본 발명의 일부 실시예에 따른, 컴퓨터 시스템(711') 상에서 작동되는 잠재적 DGA 멀웨어 호스트와 시스템(711')과 다른 컴퓨터 시스템(713) 상에서 작동되는 DGA 탐지기(704')와의 사이에서의 예시적 데이터 교환을 보여준다. 컴퓨터 시스템(711')은 클라이언트 컴퓨터 시스템일 수 있다. 컴퓨터 시스템(713)은 라우터, 스위치 또는 서버 컴퓨터일 수 있다. 프로세스들(701', 742')의 세트는 컴퓨터 시스템(711') 상에서 동시에 작동한다. DGA 탐지기(704)는 외부 사이트(714)로 프로세스(701)에 의해서 보내진 외부 접속 요청들(702)을 분석한다. DGA 탐지기(704)는 또한 요청들(702)에 대한 수신 회신들(715)을 인터셉트하고 분석한다. 고유 회신들(715)은 수정된 회신들(703)로 수정될 수 있다. 요청들(702) 및 고유 회신들(715)을 분석할 때, DGA 탐지기는 타임 서버 데이터베이스(712)에 문의할 수 있다. 프로세스가 DGA를 실행하는 것으로 결정되면, DGA 탐지기(704)는 DGA에 의해서 생성된 하나 이상의 도메인 네임들을 결정하고, 보안 어플리케이션(54)으로 하여금 상기 DGA 도메인들을 블랙리스트에 추가하도록 명령한다. 일부 실시예들에서, 보안 어플리케이션(54)은 또한 호스트(711) 상에서 실행되는 DGA 감염된 프로세스를 블랙리스트에 올릴 수 있고, 다른 컴퓨터 시스템들에게 전송하기 위하여, 확인된 멀웨어를 위한 하나 이상의 핑거프린트들(예를 들어서, 해쉬(hash)들)을 생성할 수 있다.
도 4는 외부 접속 요청(702)의 일부를 형성하는 필드들(401a-d)의 예시적 시퀀스를 보여준다. 외부 접속 요청(702)에 대한 고유 또는 수정된 회신은 필드들의 유사한 시퀀스를 포함할 수 있다. 일부 실시예들에서, DGA 탐지기(704)(도 3a)는 외부 접속 요청(702) 및/또는 외부 접속 요청(702)에 대한 회신을 파싱함으로써 실시간 정보를 포함하는 필드들을 식별한다. 또한, DGA 탐지기(704)는 전용 또는 비전용 타임 서버의 주소로의 외부 접속 요청(702)을 또한 파싱할 수 있다. 파싱은 입력 데이터에서 패턴을 기술/식별하기 위한 형식적 규칙들(formal rules)을 사용하는 후술하는 정규 표현들(regular expression)의 세트를 사용하여 수행될 수 있다. 예를 들어서, 날짜(date)는 연도(예를 들어서, 19 또는 20으로 시작하는 4자리 수)에 대해서 검색함으로써 식별될 수 있는데, 연도의 앞 또는 뒤에 월과 일이 임의의 순서(예를 들어서, 각각 1 부터 12의 수, 1 부터 31의 수)로 있고, 여러 정해진 분리자(예를 들어서, 빈칸, 콤마 등) 중 하나에 의해서 분리된다. 또 다른 예로서, 실시간은 각기 24, 60 및 60 개까지로 제한되고 여러 정해진 분리자(예를 들어서, 빈칸, : 등) 중 하나에 의해서 분리되는 2 개 또는 3개의 숫자에 의해서 식별될 수 있다. 타임 서버 주소는 여러 접두어(예를 들어서, http, https, ftp, 또는 네트워크 타임 프로토콜(network time protocol, ntp)과 같은 프로토콜 식별자) 중 하나와 도메인 네임 또는 데이터베이스 또는 도메인 네임 서버들의 다른 리스트에 있는 인터넷 프로토콜(IP) 주소의 존재에 의해서 식별될 수 있다.
적절한 정규 표현들(regular expressions)의 문법과 특정 디자인은 DGA 탐지기(704)의 파싱 엔진을 실행하기 위하여 선택된 표준 라이브러리들과 특정 소프트웨어 언어에 의지할 수 있다. IEEE POSIX 표준은 통상의 표현들을 위한 적절한 문법을 제공한다. 또한, 정규 표현들을 취급하기 위한 표준 라이브러리들은 Perl, Java, Python, C++ 등을 포함하는 다양한 언어들에서 이용가능하다.
IEEE POSIX 표준에 의하여 사용되는 이하 문법을 채용하는 정규 표현들의 세트를 예를 들어서 고려하라.
() = 그룹 정의(defines a group)
[0-9] = 0과 9 사이의 임의의 숫자(any number character between 0 and 9)
[a-z] = a와 z 사이의 임의의 문자(any letter character between a and z)
{n} = 이전 그룹이 정확히 n 번 반복될 수 있고, n은 자연수(previous group may be repeated exactly n times, wherein n is a natural number)
{,n} = 이전 그룹이 n 번 보다 많이는 반복될 수 없고, n은 자연수(previous group may be repeated no more than n times, wherein n is a natural number)
{n,} = 이전 그룹이 적어도 n 번 반복될 수 있고, n은 자연수(previous group may be repeated at least n times, wherein n is a natural number)
{m, n} = 이전 그룹이 m 번과 n 번 사이에서 반복될 수 있고, m과 n은 자연수(previous group may be repeated between m times and n times, wherein m and n are natural numbers)
{m, n, p} = 이전 그룹이 m 번, n 번 또는 p 번 반복될 수 있고, m, n 및 p는 자연수(previous group may be repeated m, n, or p times, wherein m, n, and p are natural numbers)
$ = 분석될 텍스트의 끝(end of the text to be analyzed)
위와 같은 문법에 따라서, 정규 표현 “^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$”은 4개 분리자들을 선택하면 yyyy-mm-dd 포맷으로 1900-01-01 및 2099-12-31 사이의 일자와 매칭된다. 4개의 분리자들은 “-”, “ ”, “/”, 및 “.”이다. 또한, 예로서, 정규 표현 “^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]*)?$”은 URL 웹사이트 주소의 주소와 매칭된다.
도 5a는 본 발명의 일부 실시예에 따라서, 타임 서버로의 외부 접속 요청을 파싱하기 위하여 DGA 탐지기(704)(도 3a 내지 도 3b)에 의해서 수행되는 단계들의 예시적 시퀀스를 보여준다. 단계(501)에서, DGA 탐지기(704)는 모든 외부 접속 요청들을 파싱한다. 추가적으로 DGA 탐지기(704)는 외부 접속 요청에 대한 고유 회신을 인터셉트하고(단계 502) 상기 고유 회신을 파싱한다(단계 503). 단계(504)에서, DGA 탐지기(704)는 상기 예상 회신이 실시간을 포함하는지를 결정한다. 위에서 설명한 바와 같이, 설명된 단계들은 도시된 특정의 순서로 수행될 필요는 없다. 예를 들어서, 일부 실시예들에서, 단계(504)는 단계들(502 및/또는 503) 전에 수행될 수 있다. 단계(504)에서의 결정은 상기 접속 요청이 전용 또는 비전용 타임 서버의 주소를 포함하는지를 결정함으로써, 전용 및 비전용 타임 서버들을 포함하는 타임 서버들의 하나 이상의 리스트들로의 접속 요청에 의해서 타게팅되는 주소를 비교함으로써 행해질 수 있다. 전용 타임 서버들은 Network Time Foundation에 의해서 그 Network Time Foundation 사이트, www.ntp.org에서 이용가능하게 된 것과 같은 소정의 리스트들을 통해서 식별될 수 있다. 또한, 전용 타임 서버는 상기 요청의 네트워크 타임 프로토콜(network time protocol, ntp) 식별자의 존재를 통하여 식별될 수 있다. 비전용 타임 서버들은 범용 사이트들(general-interest site)(예를 들어서, www.yahoo.com)과 특수 용도 사이트들(예를 들어서, www.weather.com)을 검색하여 실시간을 리턴하는 사이트를 선택하고, 그리고 상기 검색 결과에 따라서 비전용 타임 서버들의 리스트를 생성함으로써 식별될 수 있다. 단계(504)에서, DGA 탐지기(704)는 타임 서버 데이터베이스(712)에 질의해서 파싱에 의해서 발견된 URL 주소와 상기 타임 서버 데이터베이스(712)로부터의 URL 주소들의 리스트 사이에 매칭이 존재하는지를 결정할 수 있다.
DGA 탐지기(704)가 상기 외부 접속 요청이 타임 서버의 주소를 포함하지 않는다고 결정한다면, DGA 탐지기(704)는 단계(507)에서 상기 프로세스가 DGA를 실행하는지를 탐지한다. 단계(507)는 이하에서 상술된다. DGA 탐지기(704)가 상기 외부 접속 요청이 타임 서버의 주소를 포함한다고 결정한다면, DGA 탐지기(704)는 후술하는 바와 같이, 가속된 실시간으로 고유 실시간을 대체함으로써 인터셉트된 고유 회신을 수정한다(단계 505). 그리고 DGA 탐지기(704)는 단계(501)에서 파싱된 접속 요청을 보낸 프로세스로 상기 수정된 회신을 보낸다(단계 506).
도 5b는 본 발명의 일부 실시예에 따른, 외부 접속 요청에 대한 고유 회신을 파싱하기 위하여 DGA 탐지기(704)(도 3a 내지 도 3b)에 의해서 수행되는 단계들의 예시적 시퀀스를 보여준다. 단계(502)에서, DGA 탐지기(704)는 외부 접속 요청에 대한 고유 회신을 인터셉트한다. 단계(503)에서, DGA 탐지기(704)는 상술한 바와 같이 고유 회신을 파싱한다. DGA 탐지기(704)는 상기 프로세스가 단계(507)에서 DGA를 실행하는지를 결정한다.
추가적으로 DGA 탐지기(704)는 상기 고유 회신이 단계(524)에서 실시간 필드를 포함하는지를 결정한다. 단계(524)에서 수행된 결정은 텍스트 필드들 및/또는 이미지 필드들에 임베드된 하나 이상의 실시간 값들을 검색하는 것을 포함할 수 있다. 텍스트 및/또는 이미지 필드들을 검색하는 것은 본 기술분야에서 알려진 방법을 사용하여 수행될 수 있다. 일부 실시예들에서, 텍스트 필드를 검색하는 것은 특수 어플리케이션(예를 들어서, 텍스트 파일을 위한 텍스트 편집기)을 사용하여 상기 필드를 포함하는 객체를 편집하는 것을 포함할 수 있다. 단계(524)는 상기 파싱의 결과에 대해서 날짜를 위한 정규 표현을 매칭하는 것을 포함할 수 있다. 그러고 나서, DGA 탐지기(704)는 후술하는 바와 같이 가속된 실시간으로 상기 실시간을 대체함으로써 인터셉트된 회신을 수정한다(단계 505). 그러고 나서, DGA 탐지기(704)는 파싱된 접속 요청을 보낸 프로세스에 대한 수정된 회신을 보낸다(단계 506).
도 5c는 프로세스가 DGA를 실행하는지 여부를 결정할 때 DGA 탐지기(704) (도 3a 내지 도 3b)에 의해서 수행되는 단계(507) 내의 단계들(도 5a 내지 도 5b)의 예시적 시퀀스를 보여준다. 단계(527)에서, DGA 탐지기(704)는 상기 접속 요청에 대한 고유 회신이 성공적이었는지를 결정한다. 상기 고유 회신이 성공적이지 않다면, DGA 탐지기(704)는 상기 컴퓨터 시스템 상에서 작동되는 프로세스가 DGA를 실행하는지를 결정한다(단계 528). 단계(528)의 결정은 본 기술분야에서 알려진 방법을 사용하여 수행될 수 있다. 단계(528)로부터의 DGA 탐지에 대한 상세는 이하에서 제시된다. 상기 프로세스가 상기 DGA를 실행한다면, 상기 DGA에 의해서 생성되는 도메인 네임들이 결정된다(단계 529). 단계(529)에서 식별되는 도메인 네임들은 단계(531)에서 보안 어플리케이션으로부터 블랙리스트로 추가된다. 상기 블랙리스트는 복수의 클라이언트 시스템(10)을 시기 적절하게 업데이트하는데 사용될 수 있고, 이것은 DGA 멀웨어에 대해서 보호되게 될 수 있다. 상기 보안 어플리케이션은 추가적으로 단계(509)로부터의 도메인 네임들을 도메인 네임들의 지정된 등록대행기관의 데이터베이스 내로 등록하도록 구성될 수 있다. 상기 도메인 네임들의 시기 적절한 등록은 멀웨어 생성자들이 도메인 네임들을 사용하여 봇넷 멀웨어를 전파하거나 그리고/또는 활성화하는 것을 방지할 수 있다. 추가적으로 보안 어플리케이션은 상기 등록된 도메인 네임들에게 접속 요청들을 보내는 컴퓨터 시스템의 세트를 식별하도록 구성될 수 있다. 컴퓨터 시스템의 식별된 세트는 봇넷 멤버들을 포함할 수 있다. 이것의 조기 식별은 봇넷 멀웨어의 전파를 제한할 수 있다.
멀웨어는 다양한 방법을 통해서, 예를 들어서, 컴퓨터 시스템 상에서 작동하는 운영 시스템에게 질의함으로써 실시간을 결정할 수 있다. 보안 어플리케이션은 가속된 실시간을 나타냄으로써 상기 운영 시스템이 가리킨 실시간을 변경할 수 있다. 가속된 실시간은 미래에 실시간을 나타낸다. 멀웨어는 OS에게 질의함으로써 상기 실시간의 값을 요청할 수 있다. Windows®에서 작동되는 컴퓨터 시스템 상에서 함수 GetSystemTime()으로의 호출은 상기 실시간의 값을 검색하는데(retrieve) 사용될 수 있다. 그리고 멀웨어는 상기 OS에 의해서 표시된 가속된 실시간이 정확하다는 것을 검증할 수 있다. 검증하기 위하여(verify), 멀웨어는 타임 서버로의 외부 접속 요청에 가속된 실시간을 포함할 수 있다. 상기 타임 서버로부터의 고유 회신은 상기 가속된 실시간이 정확한지에 대한 표시를 포함할 수 있다.
도 5d는 본 발명의 일부 실시예들에 따른, 가속된 실시간을 포함하는 외부 접속 요청을 파싱하기 위하여 DGA 탐지기(704)(도 3a 내지 도 3b)에 의해서 수행되는 단계들의 예시적인 시퀀스를 보여준다. 단계(501)에서, DGA 탐지기(704)는 모든 외부 접속 요청들을 파싱한다. 다음으로, DGA 탐지기(704)는 상기 외부 접속 요청에 대한 고유 회신을 인터셉트하고(단계 502), 상기 고유 회신을 파싱한다(단계 503). 단계(544)에서, DGA 탐지기(704)는 상기 고유 회신이 성공적인지를 결정한다. 상기 고유 회신이 성공적이라면, DGA 탐지기(704)는 그 다음에 상기 요청이 가속된 실시간을 포함하는지를 결정한다(단계 546). 그러한 결정은 상기 파싱된 요청으로부터 추출된 시간과 현재 시간의 값을 비교함으로써 이뤄질 수 있다. 상기 비교는 원하는 수준의 정확도로, 예를 들어서, 상기 날짜 및/또는 시간(하지만 분/초까지는 필요하지 않을 수 있다)이 매치하는지를 결정함으로써 수행될 수 있다. DGA 탐지기(704)는 컴퓨터 시스템 상에서 작동되는 운영 시스템에게 질의함으로써 상기 현재 시간의 값을 결정할 수 있다. 그러한 가속된 실시간이 포함된다면, DGA 탐지기(704)는 상기 고유 회신이 상기 가속된 실시간이 정확하지 않다는 고유 정보를 포함하는지를 결정한다(단계 547). 상기 고유 회신이 상기 가속된 실시간이 정확하지 않다는 고유 정보를 포함한다면, DGA 탐지기(704)는 상기 가속된 실시간이 정확하다고 표시하는 수정된 정보로 상기 고유 정보를 대체함으로써 상기 고유 회신을 수정한다(단계 548). 그 다음으로 DGA 탐지기(704)는 파싱된 상기 접속 요청을 보낸 상기 프로세스에게 상기 수정된 회신을 보낸다(단계 506). 상기 고유 회신이 성공적이지 않다면, DGA 탐지기(704)는 상술한 DGA 탐지 단계(507)를 수행한다.
단계(545)에서, 상기 파싱된 요청에 대한 고유 회신이 인터셉트되고(단계 545) 그리고 파싱된다(단계 546). 단계(547)에서, DGA 탐지기(704)는 상기 파싱된 고유 회신이 단계(543)에서 결정된 상기 가속된 실시간이 정확하지 않다는 정보를 포함하고 있는지를 결정한다. 단계(547)에서 결정이 긍정적이라면 DGA 탐지기(704)는 상기 가속된 실시간이 정확하지 않다는 정보를 상기 가속된 실시간이 정확하다는 정보로 대체하고 수정된 회신을 생성한다. 상기 수정된 회신은 그러고 나서 상기 파싱된 접속 요청을 보낸 프로세스로 보내진다.
도 6은 연속적 회신들이 고유 실시간들을 포함할 때 고유 실시간(606)과 가속된 실시간(605) 사이의 수학적 관계를 보여준다. 이러한 수학적 관계는 상기 외부 접속 요청을 발급하는 프로세스에 독립적일 수 있는 함수(function)에 의해서 상기 DGA 탐지기에 엔코딩될 수 있다. 일 실시예에서, 상기 실시간은 상기 OS에 의해서 상기 클라이언트 시스템 상에서 측정되는 현재 시간일 수 있다. 파선(601)은 상기 가속된 실시간이 상기 고유 실시간과 동일할 때의 경우를 보여준다. 일 실시예에서, 상기 가속된 실시간은 볼록 함수(603)에 의해서 표현될 수 있다. 이것은 상기 실시간보다 영구적으로 더 빠르게 작동하는 가속된 실시간을 제공하는 것이 유리할 때, 예를 들어서, 프로세스가 특정 행동에 대해서 검증될 때 바람직할 수 있다. 일 실시예에서, 상기 가속된 실시간은 오목 함수(604)에 의해서 표현될 수 있다. 이것은 상기 고유 실시간보다 상당히 더 빠르게 작동된 기간 후에 느려진 가속된 실시간을 제공하는 것이 유리할 때, 예를 들어서, 프로세스의 행동이 소정의 시간 기간에 걸쳐서 상세히 검증될 때 바람직할 수 있다. 일 실시예에서, 상기 가속된 실시간은 직선 함수(602)에 의해서 표현될 수 있다. 이것은 프로세스의 행동이 최초로 어떠한 사전 지식도 없이 연구될 때 유리할 수 있다.
여러 방법들이 프로세스가 DGA를 실행하는지를 결정하는 데 사용될 수 있다. 일부 방법들은 외부 사이트(714)(도 1)의 URL을 분석할 수 있고, 그리고 DGA들에 의해서 생성된 많은 URL들이 “www.”로 시작하지 않는 것을 관찰(observation)하는 것과 같은 발견법(heuristics)을 사용할 수 있다. 다른 방법들은 접속된 URL의 요해도(intelligibility)를 분석하기 위하여 발견법을 적용할 수 있다. 또 다른 방법들은 소정의 최근 기간, 예를 들어서, 마지막 24 시간에서의 도메인 등록대행기관에 등록된 임의의 외부 사이트를 그레이리스팅(greylisting)하는데 의존한다.
DGA 탐지를 위한 보다 정교한 방법들은 의심되는 프로세스의 실행가능한 코드의 분석을 채용할 수 있다. 도 7은 그러한 방법을 보여준다. 그러한 방법은 적어도 일부 DGA 멀웨어가 특정의 알려진 유형(예를 들어, 시간, 시스템 이벤트 등)의 이벤트들에 의하여 트리거링된다는 관찰에 의존한다. 제1 단계(701)에서, 트리거 유형이 분석을 위하여 선택된다. 단계(703)에서, 상기 의심되는 프로세스는 혼합된(구체적 및 기호적, concrete and symbolic) 실행을 사용하면서, 한편으로 상기 선택된 트리거 타입의 입력들을 상기 의심되는 프로세스에 공급하면서 실행된다. 상기 선택된 트리거 타입들의 입력들은 기호 변수(symbolic variable)로 표현된다. 혼합된 실행에서의 각 단계는 해당 단계에서 기호 변수에 의존하는 분기(branching)가 발생되지 않는다면 구체적으로 실행되고 그렇지 않으면 기호적으로 실행된다. 단계(705)에서, 모든 실행 경로들이 상기 기호 변수들의 값에 기초하여 결정된다. 단계(707)에서, 모든 실행 가능한 실행 경로들이 결정된다. 단계(705)에서 결정된 상기 실행 경로들의 일부는, 예를 들어서 이들이 서로에 대해서 일치하지 않는 2개의 트리거 값들을 필요로하기 때문에 실현 가능하지 않을 수 있다. 예를 들어서, 실현 가능하지 않은 실행 경로는 두 개의 브랜치(branch)를 포함할 수 있고, 첫 번째 브랜치는 실시간 값이 2015년 5월 이전이면(anterior) 트리거되고, 두 번째 브랜치는 상기 실시간 값이 2015년 7월 이후면(posterior) 트리거된다. 최종적으로, 단계(711)에서 각 실현 가능한 경로에 서 생성된 URL들이 분석된다. 상기 분석은 URL들을 특정 트리거 유형들과 값들에 상호연관시키는 것을 포함할 수 있다. 예로서, 상기 URL들의 80% 이상이 2개 이하의 트리거 유형들의 값의 변화의 응답으로 생성된다면, 그러면 상기 의심되는 프로세스가 DGA를 실행한다는 결정이 행해진다.
상술한 예시적 시스템들과 방법들은 DGA-실행 봇넷들과 같은 멀웨어를 탐지하는 것을 가능하게 한다. 일부 실시예들에서, 의심되는 프로세스는 외부 접속 요청들과 회신들을 인터셉트하고 파싱하고 그리고 DGA를 탐지하는 머신과는 별도의 머신에서 작동된다. 상기 별도의 머신은 다른 물리적 컴퓨터 시스템, 또는 동일한 물리적 컴퓨터 시스템 상에서 호스팅되는 가상 머신일 수 있다. 모든 회신들을 파싱되고 고유 실시간을 포함하는 회신들은 수정된다. 수정된 회신들 내에서 상기 가속된 실시간은 상기 고유 실시간을 대체한다. 의심되는 프로세스는 그러고 나서 이것이 DGA를 실행하는지 여부를 결정하기 위하여 분석된다. 가속된 실시간을 제공함으로써 상기 DGA에 의해서 생성된 도메인 네임들은 이들이 생성될 실제 시간 전에 획득될 수 있다.
일부 실시예에서, 상기 의심되는 프로세스는 가속된 실시간을 포함하는 외부 접속 요청을 보낼 수 있다. 이러한 상황은 상기 의심되는 프로세스가 상이 운영 시스템에 질의해서 확보한 실시간을 검증하려는 시도를 할 때 발생할 수 있다. 연구자들은 미래의 시간을 가리킴으로써 상기 운영 시스템에 의해서 표시된 상기 실시간을 변경할 수 있다. 따라서, 상기 운영 시스템에 의해서 표시된 상기 실시간은 가속된 실시간이 된다. 정상 작동 시에, 상기 외부 사이트로부터의 고유 회신은 상기 가속된 실시간이 정확하지 않음을 표시한다. 상기 고유 회신은 상기 수정된 회신이 상기 가속된 실시간이 정확하다는 것을 표시하도록 수정된다. 그러고 나서 상기 의심되는 프로세스는 이것이 DGA를 실행하는지를 결정하기 위하여 분석된다. 가속된 실시간을 제공함으로써, 상기 DGA에 의해서 생성된 도메인 네임들은 이들이 생성될 실제 시간 전에 획득될 수 있다. 따라서 연구자들은 상기 DGA가 미래에 생성할 도메인 네임들을 결정할 수 있다.
상기 의심되는 프로세스에 의해서 보내지고 실시간을 포함하고 있는 복수의 회신들이 수신될 때, 일부 실시예에 따라서, 여러 수학적 함수들이 상기 수정된 회신들을 위한 상기 가속된 실시간을 연산하기 위하여 사용될 수 있다. 이러한 다양한 함수들은 상기 DGA에 의한 상기 도메인들의 생성의 특정 주기가 의심될 때 바람직하다.
가속된 실시간을 제공함으로써 그리고 따라서 상기 DGA 실행을 트리거링함으로써 연구자들이 실행가능한 코드(executable code)를 역분석(reverse engineer)하는 시간 소비적 노력을 들이지 않고서도 악성 행동을 탐지할 수 있게 된다. DGA들에 의하여 생성되는 도메인들을 블랙리스트에 추가하는 것은 보안 어플리케이션들의 벤더들로 하여금 도메인 생성 알고리즘을 사용하는 멀웨어가 멀웨어 생성자에 의하여 활성화되기 전에 이들 소비자에게 업데이트를 제공할 수 있게 한다. DGA에 의해서 생성되는 것으로 결정된 도메인들은 사전에 등록될 수 있고, 봇넷 멤버들은 상기 등록된 도메인들에서 수신된 요청들에 따라서 식별될 수 있다.
상기 잠재적 DGA 멀웨어 호스트의 외부로 상기 DGA 실행을 인터셉트하는 것, 파싱하는 것, 및 탐지하는 것은 상기 잠재적 DGA 멀웨어 호스트를 연구 도구(researching tool)로부터 분리(insulating)하는 이점을 가져다 준다. 따라서, 안티 멀웨어 도구들의 존재 시에 멀웨어가 그 행동을 수정하는 리스크가 크게 감소된다. 추가적으로, 그러한 접근은 상기 DGA 멀웨어 호스트의 OS에 의해서 표시된 내부 실시간(internal real time)의 변화를 필요로 하지 않는다. 연구자들은 DGA 멀웨어를 탐지하기 위하여 최적의 컴퓨팅 환경을 선택할 수 있다. 일부 실시예들에서, 상기 의심되는 프로세스를 개시하는 것이 바람직할 수 있다. 일부 실시예들에서, 인트라넷 네트워크의 인터넷 트래픽을 종합하는 라우터 또는 스위치로부터 DGA 멀웨어를 탐지하는 것이 바람직할 수 있다.
본 발명의 범위를 벗어나지 않으면서 다양한 방법으로 상기 실시예들이 변경될 수 있음은 통상의 기술자에게 자명할 것이다. 따라서, 본 발명의 범위는 이하의 청구항들과 이들의 법적 균등물에 의하여 결정되어야 한다.

Claims (17)

  1. 잠재적 도메인 생성 알고리즘(DGA) 멀웨어 호스트로부터 외적으로 다음의 단계들을 수행하도록 구성된 적어도 하나의 메모리와 적어도 하나의 연관된 마이크로프로세서를 포함하는 제1 컴퓨터 시스템:
    제1 외부 접속 요청에 대한 고유 회신(original answer)을 인터셉트하는 단계(여기서 상기 제1 외부 접속 요청은 상기 잠재적 DGA 멀웨어 호스트에 의하여 외부 사이트로 보내짐);
    상기 제1 외부 접속 요청에 대한 고유 회신이 실시간(real time)을 포함하는지 결정하기 위하여 상기 제1 외부 접속 요청과 상기 제1 외부 접속 요청에 대한 상기 고유 회신 중 적어도 하나를 파싱(parsing)하는 단계;
    상기 잠재적 DGA 멀웨어 호스트에게 수정된 회신을 보내는 단계(상기 수정된 회신은 상기 고유 회신에 포함된 고유 실시간을 상기 고유 실시간 후속의 가속된 실시간으로 대체함으로써 상기 고유 회신으로부터 생성됨);
    상기 잠재적 DGA 멀웨어 호스트에 의하여 보내진 제2 외부 접속 요청에 대한 응답으로, 상기 제2 접속 요청이 성공적이지 않다는 것을 표시하는 회신을 인터셉트하는 단계(이때, 상기 제2 외부 접속 요청은 상기 제1 외부 접속 요청이 발송된 이후에 발송됨); 및,
    상기 제2 접속 요청이 성공적이지 않다는 것을 표시하는 회신을 인터셉트하는 것의 응답으로, 상기 잠재적 DGA 멀웨어 호스트가 도메인 생성 알고리즘을 실행하는 멀웨어를 포함하는 것을 결정하는 단계.
  2. 제1항에 있어서,
    상기 제1 외부 접속 요청과 상기 제1 외부 접속 요청에 대한 상기 고유 회신 중 적어도 하나를 파싱(parsing)하는 단계는, 상기 제1 외부 접속 요청의 주소 필드의 타임 서버의 주소를 식별하는 단계를 포함하는 것을 특징으로 하는 제1 컴퓨터 시스템.
  3. 제1항에 있어서,
    상기 제1 외부 접속 요청과 상기 제1 외부 접속 요청에 대한 상기 고유 회신 중 적어도 하나를 파싱(parsing)하는 단계는, 상기 제1 외부 접속 요청에 대한 상기 고유 회신의 복수의 필드들로부터의 실시간 필드를 식별하기 위하여 상기 제1 외부 접속 요청에 대한 상기 고유 회신을 파싱하는 단계를 포함하는 것을 특징으로 하는 제1 컴퓨터 시스템.
  4. 제3항에 있어서,
    상기 실시간 필드를 식별하는 것은 상기 실시간 필드의 콘텐트와 상기 제1 컴퓨터 시스템에 의하여 결정된 독립적 실시간 값을 비교하는 단계를 포함하는 것을 특징으로 하는 제1 컴퓨터 시스템.
  5. 제1항에 있어서,
    상기 잠재적 DGA 멀웨어 호스트는 상기 제1 컴퓨터 시스템과 물리적으로 구별되는 제2 컴퓨터 시스템인 것을 특징으로 하는 제1 컴퓨터 시스템.
  6. 제1항에 있어서,
    상기 잠재적 DGA 멀웨어 호스트는 상기 제1 컴퓨터 시스템에 의하여 호스팅되는 가상 머신인 것을 특징으로 하는 제1 컴퓨터 시스템.
  7. 제1항에 있어서,
    상기 적어도 하나의 연관된 마이크로프로세서는, 상기 도메인 생성 알고리즘에 의해서 생성된 도메인 네임을 결정하고, 그리고 상기 도메인 네임에 따라서, 상기 도메인 생성 알고리즘을 실행하는 것으로 의심되는 복수의 컴퓨터 시스템을 식별하도록 추가적으로 구성되는 것을 특징으로 하는 제1 컴퓨터 시스템.
  8. 제1항에 있어서,
    상기 적어도 하나의 연관된 마이크로프로세서는, 상기 잠재적 DGA 멀웨어 호스트가 상기 도메인 생성 알고리즘을 실행하는 멀웨어를 포함한다고 결정하는 것의 응답으로, 상기 도메인 생성 알고리즘에 의해서 생성된 도메인 네임을 보안 어플리케이션 블랙리스트에 추가하도록 추가적으로 구성되는 것을 특징으로 하는 제1 컴퓨터 시스템.
  9. 잠재적 도메인 생성 알고리즘(DGA) 멀웨어 호스트로부터 외적으로 다음의 단계들을 수행하도록 구성된 적어도 하나의 메모리와 적어도 하나의 연관된 마이크로프로세서를 포함하는 제1 컴퓨터 시스템:
    제1 외부 접속 요청에 대한 고유 회신이 가속된 실시간(accelerated real time)을 포함하는지 결정하기 위하여 제1 외부 접속 요청을 파싱(parsing)하는 단계(이때, 상기 제1 외부 접속 요청은 상기 잠재적 DGA 멀웨어 호스트에 의하여 외부 사이트로 보내짐);
    상기 제1 외부 접속 요청에 대한 제1 고유 회신을 파싱하여 상기 제1 고유 회신이 상기 가속된 실시간이 정확하지 않다는 것을 표시하는 제1 정보를 포함하는지 여부를 결정하는 단계;
    상기 잠재적 DGA 멀웨어 호스트에게 수정된 회신을 보내는 단계(상기 수정된 회신은 상기 제1 정보를 상기 가속된 실시간이 정확하다는 것을 표시하는 제2 정보로 대체함으로써 상기 제1 고유 회신으로부터 생성됨);
    상기 잠재적 DGA 멀웨어 호스트에 의하여 제2 외부 사이트에 보내진 제2 외부 접속 요청에 대한 응답으로, 상기 제2 접속 요청이 성공적이지 않다는 것을 표시하는 제2 고유 회신을 인터셉트하는 단계; 및,
    상기 제2 회신을 인터셉트하는 것의 응답으로 상기 잠재적 DGA 멀웨어 호스트가 도메인 생성 알고리즘을 실행하는 멀웨어를 포함하는 것을 결정하는 단계.
  10. 실행될 때, 제1 컴퓨터 시스템의 적어도 하나의 메모리와 적어도 하나의 연관된 마이크로프로세서로 하여금 잠재적 도메인 생성 알고리즘(DGA) 멀웨어 호스트로부터 외적으로 다음의 단계들을 수행하도록 구성하는 명령들을 저장하는 비-일시적 컴퓨터 판독가능 매체(non-transitory computer-readable medium):
    제1 외부 접속 요청에 대한 고유 회신(original answer)을 인터셉트하는 단계(여기서 상기 제1 외부 접속 요청은 상기 잠재적 DGA 멀웨어 호스트에 의하여 외부 사이트로 보내짐);
    상기 제1 외부 접속 요청에 대한 상기 고유 회신이 실시간(real time)을 포함하는지 결정하기 위하여 상기 제1 외부 접속 요청과 상기 제1 외부 접속 요청에 대한 상기 고유 회신 중 적어도 하나를 파싱(parsing)하는 단계;
    상기 잠재적 DGA 멀웨어 호스트에게 수정된 회신을 보내는 단계(상기 수정된 회신은 상기 고유 회신에 포함된 고유 실시간을 상기 고유 실시간 후속의 가속된 실시간으로 대체함으로써 상기 고유 회신으로부터 생성됨);
    상기 잠재적 DGA 멀웨어 호스트에 의하여 보내진 제2 외부 접속 요청에 대한 응답으로, 상기 제2 접속 요청이 성공적이지 않다는 것을 표시하는 회신을 인터셉트하는 단계(이때, 상기 제2 외부 접속 요청은 상기 제1 외부 접속 요청이 발송된 이후에 발송됨); 및,
    상기 제2 접속 요청이 성공적이지 않다는 것을 표시하는 회신을 인터셉트하는 것의 응답으로, 상기 잠재적 DGA 멀웨어 호스트가 도메인 생성 알고리즘을 실행하는 멀웨어를 포함하는 것을 결정하는 단계.
  11. 제10항에 있어서,
    상기 제1 외부 접속 요청과 상기 제1 외부 접속 요청에 대한 상기 고유 회신 중 적어도 하나를 파싱(parsing)하는 단계는, 상기 제1 외부 접속 요청의 주소 필드의 타임 서버의 주소를 식별하는 단계를 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 매체.
  12. 제10항에 있어서,
    상기 제1 외부 접속 요청과 상기 제1 외부 접속 요청에 대한 상기 고유 회신 중 적어도 하나를 파싱(parsing)하는 단계는, 상기 제1 외부 접속 요청에 대한 상기 고유 회신의 복수의 필드들로부터의 실시간 필드를 식별하기 위하여 상기 제1 외부 접속 요청에 대한 상기 고유 회신을 파싱하는 단계를 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 매체.
  13. 제12항에 있어서,
    상기 실시간 필드를 식별하는 것은 상기 실시간 필드의 콘텐트와 상기 제1 컴퓨터 시스템에 의하여 결정된 독립적 실시간 값을 비교하는 단계를 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 매체.
  14. 제10항에 있어서,
    상기 잠재적 DGA 멀웨어 호스트는 상기 제1 컴퓨터 시스템과 물리적으로 구별되는 제2 컴퓨터 시스템인 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 매체.
  15. 제10항에 있어서,
    상기 잠재적 DGA 멀웨어 호스트는 상기 제1 컴퓨터 시스템에 의하여 호스팅되는 가상 머신인 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 매체.
  16. 제10항에 있어서,
    상기 적어도 하나의 연관된 마이크로프로세서는, 상기 도메인 생성 알고리즘에 의해서 생성된 도메인 네임을 결정하고, 그리고 상기 도메인 네임에 따라서, 상기 도메인 생성 알고리즘을 실행하는 것으로 의심되는 복수의 컴퓨터 시스템을 식별하도록 추가적으로 구성되는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 매체.
  17. 제10항에 있어서,
    상기 적어도 하나의 연관된 마이크로프로세서는, 상기 잠재적 DGA 멀웨어 호스트가 상기 도메인 생성 알고리즘을 실행하는 멀웨어를 포함한다고 결정하는 것의 응답으로, 상기 도메인 생성 알고리즘에 의해서 생성된 도메인 네임을 보안 어플리케이션 블랙리스트에 추가하도록 추가적으로 구성되는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 매체.
KR1020187012077A 2015-11-04 2016-11-02 도메인 생성 알고리즘(dga) 멀웨어 탐지를 위한 시스템 및 방법들 KR102271545B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/932,765 2015-11-04
US14/932,765 US9819696B2 (en) 2015-11-04 2015-11-04 Systems and methods for detecting domain generation algorithm (DGA) malware
PCT/EP2016/076343 WO2017076859A1 (en) 2015-11-04 2016-11-02 System and methods for detecting domain generation algorithm (dga) malware

Publications (2)

Publication Number Publication Date
KR20180081053A true KR20180081053A (ko) 2018-07-13
KR102271545B1 KR102271545B1 (ko) 2021-07-05

Family

ID=57286460

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187012077A KR102271545B1 (ko) 2015-11-04 2016-11-02 도메인 생성 알고리즘(dga) 멀웨어 탐지를 위한 시스템 및 방법들

Country Status (13)

Country Link
US (1) US9819696B2 (ko)
EP (1) EP3371953B1 (ko)
JP (1) JP6726429B2 (ko)
KR (1) KR102271545B1 (ko)
CN (1) CN108353083B (ko)
AU (1) AU2016348500B2 (ko)
CA (1) CA3002605C (ko)
ES (1) ES2880269T3 (ko)
HK (1) HK1254971A1 (ko)
IL (1) IL258776A (ko)
RU (1) RU2726032C2 (ko)
SG (1) SG11201803441WA (ko)
WO (1) WO2017076859A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102265955B1 (ko) * 2019-12-18 2021-06-16 주식회사 쏘마 악성 코드 실행 방지를 위한 악성 코드 탐지 방법 및 도메인 생성 알고리즘 탐지 방법
KR20230094303A (ko) * 2021-12-21 2023-06-28 주식회사 윈스 DNS 트래픽 분석을 통한 자동화 DDoS 감지 방법 및 장치

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9979748B2 (en) * 2015-05-27 2018-05-22 Cisco Technology, Inc. Domain classification and routing using lexical and semantic processing
US10728266B2 (en) * 2017-08-15 2020-07-28 Check Point Software Technologies Ltd. Methods and systems for identifying malware enabled by automatically generated domain names
US10979451B2 (en) 2018-02-14 2021-04-13 Cisco Technology, Inc. Autonomous domain generation algorithm (DGA) detector
US11075947B2 (en) * 2018-06-26 2021-07-27 Cisco Technology, Inc. Virtual traffic decoys
US10862854B2 (en) 2019-05-07 2020-12-08 Bitdefender IPR Management Ltd. Systems and methods for using DNS messages to selectively collect computer forensic data
US11729134B2 (en) * 2019-09-30 2023-08-15 Palo Alto Networks, Inc. In-line detection of algorithmically generated domains
US11582247B1 (en) * 2022-04-19 2023-02-14 Palo Alto Networks, Inc. Method and system for providing DNS security using process information

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8260914B1 (en) * 2010-06-22 2012-09-04 Narus, Inc. Detecting DNS fast-flux anomalies
US20140310811A1 (en) * 2013-04-11 2014-10-16 F-Secure Corporation Detecting and Marking Client Devices

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5444780A (en) 1993-07-22 1995-08-22 International Business Machines Corporation Client/server based secure timekeeping system
JPH07175734A (ja) * 1993-12-20 1995-07-14 Ricoh Co Ltd ローカルエリアネットワーク
DE10014522C2 (de) * 2000-03-23 2003-08-21 Siemens Ag Verfahren und Anordnung zur Zulässigkeitsprüfung einer Dienstnutzung
US8327448B2 (en) 2005-06-22 2012-12-04 Intel Corporation Protected clock management based upon a non-trusted persistent time source
US8220031B2 (en) 2007-05-01 2012-07-10 Texas Instruments Incorporated Secure time/date virtualization
US8161160B2 (en) * 2008-02-28 2012-04-17 Microsoft Corporation XML-based web feed for web access of remote resources
US9501644B2 (en) * 2010-03-15 2016-11-22 F-Secure Oyj Malware protection
US8516585B2 (en) 2010-10-01 2013-08-20 Alcatel Lucent System and method for detection of domain-flux botnets and the like
RU103643U1 (ru) * 2010-11-01 2011-04-20 Закрытое акционерное общество "Лаборатория Касперского" Система противодействия фишинг атакам
US9467421B2 (en) * 2011-05-24 2016-10-11 Palo Alto Networks, Inc. Using DNS communications to filter domain names
US9047441B2 (en) * 2011-05-24 2015-06-02 Palo Alto Networks, Inc. Malware analysis system
US8763117B2 (en) 2012-03-02 2014-06-24 Cox Communications, Inc. Systems and methods of DNS grey listing
CN102833337B (zh) * 2012-08-30 2016-03-02 北京星网锐捷网络技术有限公司 一种ftp文件上传、下载方法及装置
US9077546B1 (en) * 2012-11-27 2015-07-07 Symnatec Corporation Two factor validation and security response of SSL certificates
US8990513B2 (en) * 2013-01-11 2015-03-24 International Business Machines Corporation Accelerated recovery for snooped addresses in a coherent attached processor proxy
CN103634315B (zh) * 2013-11-29 2017-11-10 哈尔滨工业大学(威海) 域名服务器的前端控制方法及系统
CN104580185B (zh) * 2014-12-30 2017-12-01 北京工业大学 一种网络访问控制的方法和系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8260914B1 (en) * 2010-06-22 2012-09-04 Narus, Inc. Detecting DNS fast-flux anomalies
US20140310811A1 (en) * 2013-04-11 2014-10-16 F-Secure Corporation Detecting and Marking Client Devices

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102265955B1 (ko) * 2019-12-18 2021-06-16 주식회사 쏘마 악성 코드 실행 방지를 위한 악성 코드 탐지 방법 및 도메인 생성 알고리즘 탐지 방법
KR20230094303A (ko) * 2021-12-21 2023-06-28 주식회사 윈스 DNS 트래픽 분석을 통한 자동화 DDoS 감지 방법 및 장치

Also Published As

Publication number Publication date
RU2726032C2 (ru) 2020-07-08
KR102271545B1 (ko) 2021-07-05
EP3371953A1 (en) 2018-09-12
RU2018118828A3 (ko) 2020-03-25
CA3002605A1 (en) 2017-05-11
ES2880269T3 (es) 2021-11-24
AU2016348500A1 (en) 2018-05-10
CN108353083A (zh) 2018-07-31
WO2017076859A1 (en) 2017-05-11
JP2018533793A (ja) 2018-11-15
JP6726429B2 (ja) 2020-07-22
CN108353083B (zh) 2021-02-26
US20170126706A1 (en) 2017-05-04
IL258776A (en) 2018-06-28
EP3371953B1 (en) 2021-05-12
US9819696B2 (en) 2017-11-14
SG11201803441WA (en) 2018-05-30
HK1254971A1 (zh) 2019-08-02
CA3002605C (en) 2022-03-29
RU2018118828A (ru) 2019-12-05
AU2016348500B2 (en) 2020-04-30

Similar Documents

Publication Publication Date Title
KR102271545B1 (ko) 도메인 생성 알고리즘(dga) 멀웨어 탐지를 위한 시스템 및 방법들
US10121000B1 (en) System and method to detect premium attacks on electronic networks and electronic devices
US10581879B1 (en) Enhanced malware detection for generated objects
KR101497742B1 (ko) 인증, 데이터 전송 및 피싱에 대한 보호를 위한 방법 및 시스템
US11036855B2 (en) Detecting frame injection through web page analysis
US9147073B2 (en) System and method for automatic generation of heuristic algorithms for malicious object identification
US20100154055A1 (en) Prefix Domain Matching for Anti-Phishing Pattern Matching
US7493483B2 (en) Method to prevent vulnerability to virus and worm attacks through instruction remapping
CN107066883A (zh) 用于阻断脚本执行的系统和方法
US20210021611A1 (en) Inline malware detection
US11916937B2 (en) System and method for information gain for malware detection
CN106250761B (zh) 一种识别web自动化工具的设备、装置及方法
US20210019412A1 (en) Generating models for performing inline malware detection
Villalba et al. Ransomware automatic data acquisition tool
JP6169497B2 (ja) 接続先情報判定装置、接続先情報判定方法、及びプログラム
CN110659478B (zh) 在隔离的环境中检测阻止分析的恶意文件的方法
Bower et al. Identifying javascript skimmers on high-value websites
Grégio et al. An empirical analysis of malicious internet banking software behavior
EP3999985A1 (en) Inline malware detection
Zhang et al. Anteater: Advanced Persistent Threat Detection With Program Network Traffic Behavior
US20220245249A1 (en) Specific file detection baked into machine learning pipelines
Al Shamsi Mapping, Exploration, and Detection Strategies for Malware Universe
US11962618B2 (en) Systems and methods for protection against theft of user credentials by email phishing attacks
JP2017168146A (ja) 接続先情報判定装置、接続先情報判定方法、及びプログラム
JP7013297B2 (ja) 不正検知装置、不正検知ネットワークシステム、及び不正検知方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right