JP2018533793A - System and method for detecting Domain Generation Algorithm (DGA) malware - Google Patents

System and method for detecting Domain Generation Algorithm (DGA) malware Download PDF

Info

Publication number
JP2018533793A
JP2018533793A JP2018521861A JP2018521861A JP2018533793A JP 2018533793 A JP2018533793 A JP 2018533793A JP 2018521861 A JP2018521861 A JP 2018521861A JP 2018521861 A JP2018521861 A JP 2018521861A JP 2018533793 A JP2018533793 A JP 2018533793A
Authority
JP
Japan
Prior art keywords
access request
external access
dga
computer system
malware
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018521861A
Other languages
Japanese (ja)
Other versions
JP6726429B2 (en
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 JP2018533793A publication Critical patent/JP2018533793A/en
Application granted granted Critical
Publication of JP6726429B2 publication Critical patent/JP6726429B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/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)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Abstract

潜在的なDGAマルウェアホストによって送られた外部の時間リクエストをインターセプトし、受信された実時間を、時間に依存したDGAの活動をトリガするように設計された、早められた(未来の)実時間に置換することによって、ドメイン生成アルゴリズム(DGA)のマルウェアが検出される。DGAマルウェアが時間の置き換えを識別するリスクを低減させるために、別個の外部の物理的なサーバもしくはルータ、または同じ物理システム上で動く別個のハイパーバイザもしくは仮想マシンなどの、異なる物理システムまたは仮想システム上の物理的または仮想的なDGAホストの外側で、インターセプトおよび置換が実施される。次に、未来の時にのみトリガされる失敗したDGAマルウェアの外部アクセスリクエストを使用して、DGAマルウェアによって生成されたドメイン名を識別し、積極的な対策を可能にする。Accelerated (future) real-time designed to intercept external time requests sent by potential DGA malware hosts, and receive real-time to trigger time-dependent DGA activity By replacing with, malware of domain generation algorithm (DGA) is detected. Different physical systems or virtual systems, such as separate external physical servers or routers, or separate hypervisors or virtual machines running on the same physical system, to reduce the risk of DGA malware identifying a time replacement Interception and substitution are performed outside the above physical or virtual DGA host. Second, using failed DGA malware external access requests triggered only at a future time, identify domain names generated by DGA malware and allow proactive countermeasures.

Description

[1]本発明は、マルウェアからコンピュータシステムを保護するためのシステムおよび方法に関し、詳細には、ドメイン生成アルゴリズム(DGA:domain generation algorithm)を用いるマルウェアを検出するためのシステムおよび方法に関する。   [1] The present invention relates to systems and methods for protecting computer systems from malware, and in particular to systems and methods for detecting malware using domain generation algorithms (DGA).

[2]悪意のあるソフトウェアは、マルウェアとしても知られ、世界中の非常に多くのコンピュータシステムに影響を及ぼす。マルウェアは、コンピュータウイルス、ワーム、ルートキット、およびスパイウェアなどの多くの形で、何百万ものコンピュータユーザに深刻なリスクを生じさせ、中でも、データおよび機密情報の喪失、個人情報の盗難、ならびに生産性の喪失に対して、コンピュータシステムを脆弱にする。   [2] Malicious software, also known as malware, affects numerous computer systems around the world. Malware poses serious risks to millions of computer users in many forms, including computer viruses, worms, rootkits, and spyware, among which the loss of data and sensitive information, identity theft, and production. Make computer systems vulnerable to loss of sex.

[3]セキュリティソフトウェアは、ユーザのコンピュータシステムに感染するマルウェアを検出するために使用され、追加として、このようなマルウェアを駆除するか、またはその実行を停止させるために使用されることがある。いくつかのマルウェア検出技法が当技術分野で知られている。そのような技法の一部は、マルウェアエージェントのコードの断片を、マルウェアを示唆するシグネチャのライブラリにマッチさせることに依存する。他の従来の方法は、マルウェアエージェントのマルウェアを示唆する挙動のセットを検出する。   [3] Security software is used to detect malware that infects a user's computer system, and may additionally be used to remove such malware or stop its execution. Several malware detection techniques are known in the art. Some of such techniques rely on matching pieces of malware agent code to a library of signatures that suggest malware. Other conventional methods detect a set of behaviors that indicate malware agent malware.

[4]悪意のあるボットネットは、特に有害なタイプのマルウェアの脅威を形成する。1つの攻撃シナリオでは、リモートリソースに接続させ、悪意のあるペイロードまたは他の情報、例えば、サービス妨害攻撃を開始するための標的の指標など、をダウンロードさせるように構成されたエージェントに、多数のコンピュータシステムが感染させられる。エージェントは、ドメイン生成アルゴリズム(DGA)を使用してドメイン名を生成し、そのドメイン名への接続を試みるように構成されることがある。このようなドメイン名は、通常、ドメイン名レジストリに予め登録されておらず、したがって接続の試みの大半は失敗する。マルウェアの作成者が攻撃を開始することを決めると、彼らはこれらのドメイン名の1つをドメイン名レジストリに登録し、ペイロードをオンライン状態にする。突然、個々のドメインに接続しようとするボットネットのメンバによる試みが成功となり、攻撃が開始される。   [4] Malicious botnets form particularly harmful types of malware threats. In one attack scenario, a large number of computers are configured to cause an agent configured to connect to a remote resource and download malicious payload or other information, such as a target indicator for initiating a denial of service attack. The system is infected. The agent may be configured to generate a domain name using a domain generation algorithm (DGA) and attempt to connect to that domain name. Such domain names are usually not pre-registered in the domain name registry, so most connection attempts fail. When malware creators decide to launch an attack, they register one of these domain names in the domain name registry and bring the payload online. Suddenly, attempts by botnet members to connect to individual domains are successful and an attack is launched.

[5]ドメイン名の生成は未知のアルゴリズムを使用して実施されるので、このような攻撃を防ぐことは困難になることがある。セキュリティアプリケーションは、いくつかのドメイン名に接続しようとする散発的な失敗の試みに遭遇することがあるが、このような試みは、通常、外部サイトに接続しようとする多数の合法的な失敗の試みに覆い隠される。   [5] Because domain name generation is performed using an unknown algorithm, preventing such attacks can be difficult. Security applications may encounter sporadic failure attempts to connect to several domain names, but such attempts are usually due to a large number of legal failures to connect to external sites. Covered in an attempt.

[6]感染したエージェントを識別し、ドメイン生成アルゴリズムを逆行分析する際に、調査員は複雑で退屈な任務を負う。このようなアルゴリズムは様々な方法を使用するが、そのうちの1つは、擬似乱数生成アルゴリズムへの入力として現在の時間を使用することである。伝統的な検出アプローチでは、DGAおよび作成されたドメイン名を判定するために、調査員はコードを逆アセンブルしなければならない。   [6] The investigators have a complex and tedious task in identifying infected agents and reverse analyzing domain generation algorithms. Such algorithms use various methods, one of which is to use the current time as input to the pseudorandom number generation algorithm. In the traditional detection approach, the investigator has to disassemble the code to determine the DGA and domain name created.

[7]1つの態様によれば、少なくとも1つのメモリおよび少なくとも1つの関連付けられたマイクロプロセッサを含むコンピュータシステムは、第1の外部アクセスリクエストに対する本来の回答をインターセプトするステップであって、第1の外部アクセスリクエストは、潜在的なドメイン生成アルゴリズム(DGA)マルウェアホストによって外部サイトに送られる、ステップと、第1の外部アクセスリクエストと第1の外部アクセスリクエストに対する本来の回答とのうち少なくとも1つを解析して、第1の外部アクセスリクエストに対する本来の回答が実時間を含むかどうかを判定するステップと、修正された回答を潜在的なDGAマルウェアホストに送るステップであって、修正された回答は、本来の回答に含まれる本来の実時間を、本来の実時間に続く早められた実時間に置換することによって、本来の回答から生成される、ステップと、潜在的なDGAマルウェアホストによって第2の外部アクセスリクエストが送られたことに応答して、第2のアクセスリクエストが成功ではなかったことを示す回答をインターセプトするステップであって、第2の外部アクセスリクエストは、第1の外部アクセスリクエストが送られた後に送られる、ステップと、第2のアクセスリクエストが成功ではなかったことを示す回答をインターセプトすることに応答して、ドメイン生成アルゴリズムを実行するマルウェアを、潜在的なDGAマルウェアホストが含むことを判定するステップとを、潜在的なDGAマルウェアホストの外部で実施するように構成される。   [7] According to one aspect, a computer system comprising at least one memory and at least one associated microprocessor is the step of intercepting an original answer to a first external access request, the first step comprising: The external access request is sent by the potential domain generation algorithm (DGA) malware host to the external site, at least one of the steps, the first external access request and the original answer to the first external access request The steps of analyzing to determine if the original response to the first external access request includes real time, and sending the modified response to the potential DGA malware host, the modified response being , Original real time included in the original answer In response to the step and the second external access request being sent by the potential DGA malware host, generated from the original answer by replacing it with the original real time followed by the accelerated real time Intercepting a response indicating that the second access request was not successful, the second external access request being sent after the first external access request has been sent, and Determining that the potential DGA malware host includes malware that is to execute the domain generation algorithm in response to intercepting the response indicating that the access request for the request was not successful. Configured to run outside of the malware host.

[8]1つの態様によれば、少なくとも1つのメモリおよび少なくとも1つの関連付けられたマイクロプロセッサを含むコンピュータシステムは、第1の外部アクセスリクエストを解析して、第1の外部アクセスリクエストに対する本来の回答が、早められた実時間を含むかどうかを判定するステップであって、第1の外部アクセスリクエストは、潜在的なドメイン生成アルゴリズム(DGA)マルウェアホストによって外部サイトに送られる、ステップと、第1の外部アクセスリクエストに対する第1の本来の回答を解析して、早められた実時間が正確ではないことを示す第1の情報を第1の本来の回答が含むかどうかを判定するステップと、修正された回答を潜在的なDGAマルウェアホストに送るステップであって、修正された回答は、第1の情報を、早められた実時間が正確であることを示す第2の情報に置換することによって、第1の本来の回答から生成される、ステップと、潜在的なDGAマルウェアホストによって第2の外部サイトに第2の外部アクセスリクエストが送られることに応答して、第2のアクセスリクエストが成功ではなかったことを示す第2の本来の回答をインターセプトするステップと、第2の回答をインターセプトすることに応答して、ドメイン生成アルゴリズムを実行するマルウェアを、潜在的なDGAマルウェアホストが含むことを判定するステップとを、潜在的なDGAマルウェアホストの外部で実施するように構成される。   [8] According to one aspect, a computer system including at least one memory and at least one associated microprocessor analyzes a first external access request to provide a true answer to the first external access request Determining whether the first external access request is sent by the potential domain generation algorithm (DGA) malware host to the external site, the step of Analyzing the first true response to the external access request of the second to determine if the first true response includes first information indicating that the advanced real time is not accurate; Sending the finalized answer to the potential DGA malware host, the corrected answer is The second step is generated from the first original answer by replacing the second information with the second information indicating that the advanced real time is accurate, and the second by the potential DGA malware host. Intercepting a second true answer indicating that the second access request was not successful in response to the second external access request being sent to the external site, and intercepting the second answer In response, the step of determining that the potential DGA malware host includes the malware that executes the domain generation algorithm is configured to perform outside the potential DGA malware host.

[9]別の態様によれば、非一時的コンピュータ可読媒体は、実行されると、第1の外部アクセスリクエストに対する本来の回答をインターセプトするステップであって、第1の外部アクセスリクエストは、潜在的なドメイン生成アルゴリズム(DGA)マルウェアホストによって外部サイトに送られる、ステップと、第1の外部アクセスリクエストと第1の外部アクセスリクエストに対する本来の回答とのうち少なくとも1つを解析して、第1の外部アクセスリクエストに対する本来の回答が実時間を含むかどうかを判定するステップと、修正された回答を潜在的なDGAマルウェアホストに送るステップであって、修正された回答は、本来の回答に含まれる本来の実時間を、本来の実時間に続く早められた実時間に置換することによって、本来の回答から生成される、ステップと、潜在的なDGAマルウェアホストによって第2の外部アクセスリクエストが送られたことに応答して、第2のアクセスリクエストが成功ではなかったことを示す回答をインターセプトするステップであって、第2の外部アクセスリクエストは、第1の外部アクセスリクエストが送られた後に送られる、ステップと、第2のアクセスリクエストが成功ではなかったことを示す回答をインターセプトすることに応答して、ドメイン生成アルゴリズムを実行するマルウェアを、潜在的なDGAマルウェアホストが含むことを判定するステップとを、潜在的なDGAマルウェアホストの外部で実施するように、第1のコンピュータシステムの少なくとも1つのメモリおよび少なくとも1つの関連付けられたマイクロプロセッサを構成する命令を格納する。   [9] According to another aspect, the non-transitory computer readable medium, when executed, intercepts the original answer to the first external access request, wherein the first external access request is a latent Analyzing at least one of the steps sent by the dynamic domain generation algorithm (DGA) malware host to the external site, the first external access request and the original answer to the first external access request, Determining whether the original response to the external access request of the includes an actual time, and sending the corrected response to the potential DGA malware host, wherein the corrected response is included in the original response By replacing the original real time with the actual real time followed by the accelerated real time Intercept the response indicating that the second access request was not successful, in response to the step and the second external access request being sent by the potential DGA malware host, generated from the response of A step, wherein the second external access request is sent after the first external access request has been sent, in response to intercepting the step and a response indicating that the second access request was not successful. And determining that the potential DGA malware host includes malware that executes the domain generation algorithm, at least one of the first computer system to perform outside the potential DGA malware host. Memory and at least one associated my B instruction stores that make up the processor.

[10]本発明の前述の態様および利点は、以下の詳細な説明を読み、図面を参照するとよりよく理解されるようになるであろう。   The foregoing aspects and advantages of the present invention will become better understood upon reading the following detailed description and referring to the drawings.

[11]本発明のいくつかの実施形態による、例示的なクライアントシステムと、外部サイトをホストするサーバシステムと、時間サーバとを示し、すべてがネットワークによって相互接続されることを示す図である。[11] FIG. 12 illustrates an exemplary client system, a server system hosting an external site, and a time server, all interconnected by a network, according to some embodiments of the present invention. [12]本発明のいくつかの実施形態による、潜在的なDGAマルウェアホストになることがあるクライアントシステムの例示的なハードウェア構成を示す図である。FIG. 12 illustrates an exemplary hardware configuration of a client system that may be a potential DGA malware host, according to some embodiments of the present invention. [13]本発明のいくつかの実施形態による、DGA検出器をホストすることがあるサーバコンピュータシステムまたはネットワークのスイッチ/ルータの例示的なハードウェア構成を示す図である。[13] FIG. 13 illustrates an exemplary hardware configuration of a server computer system or network switch / router that may host a DGA detector, in accordance with some embodiments of the present invention. [14]本発明のいくつかの実施形態による、仮想マシンによって形成される潜在的なDGAマルウェアホスト上で動くプロセス、および潜在的なDGAマルウェアホストと同じ物理システムによってホストされるDGA検出器を含む、ソフトウェアオブジェクトの例示的なセットを示す図である。[14] Includes a process running on a potential DGA malware host formed by a virtual machine, and a DGA detector hosted by the same physical system as the potential DGA malware host, according to some embodiments of the present invention FIG. 10 illustrates an exemplary set of software objects. [15]本発明のいくつかの実施形態による、潜在的なDGAマルウェアホスト上で動くプロセス、および潜在的なマルウェアホストとは別個の物理システム上でホストされるDGA検出器を含む、ソフトウェアオブジェクトの例示的なセットを示す図である。[15] A software object, including a process running on a potential DGA malware host, and a DGA detector hosted on a physical system separate from the potential malware host, according to some embodiments of the present invention FIG. 7 illustrates an exemplary set. [16]本発明のいくつかの実施形態による、例示的な外部アクセスリクエストおよび/または回答を示す図である。[16] FIG. 16 illustrates an exemplary external access request and / or answer according to some embodiments of the present invention. [17]本発明のいくつかの実施形態による、時間サーバへの外部アクセスリクエストを解析するときに、DGA検出器によって実行される例示的な一連のステップを示す図である。[17] FIG. 10 illustrates an exemplary series of steps performed by the DGA detector when analyzing external access requests to a time server, according to some embodiments of the present invention. [18]本発明のいくつかの実施形態による、外部アクセスリクエストに対する本来の回答をインターセプトしたときに、DGA検出器によって実行される例示的な一連のステップを示す図である。[18] FIG. 10 illustrates an exemplary sequence of steps performed by the DGA detector when intercepting the original response to an external access request, according to some embodiments of the present invention. [19]本発明のいくつかの実施形態による、プロセスがDGAを実行するかどうかを検出するときに、DGA検出器によって実行される例示的な一連のステップを示す図である。[19] FIG. 9 illustrates an exemplary series of steps performed by a DGA detector when detecting whether a process performs DGA, according to some embodiments of the present invention. [20]本発明のいくつかの実施形態による、早められた実時間を含む外部アクセスリクエストを解析するときに、DGA検出器によって実行される例示的な一連のステップを示す図である。[20] FIG. 10 illustrates an exemplary series of steps performed by a DGA detector when analyzing an external access request that includes advanced real time, according to some embodiments of the present invention. [21]本発明のいくつかの実施形態による、本来の実時間と早められた実時間との間の複数の数学的関係を示す図である。[21] FIG. 10 illustrates multiple mathematical relationships between true and advanced real time according to some embodiments of the present invention. [22]本発明のいくつかの実施形態による、疑わしいプロセスがDGAを実行するかどうかを判定するために使用されることがある方法の一連のステップを示す図である。[22] FIG. 10 illustrates a series of steps of a method that may be used to determine whether a suspect process performs DGA, according to some embodiments of the present invention.

[23]以下の説明において、構造間のすべての列挙された接続は、中間体構造を通じた直接の動作的な接続または間接の動作的な接続であってよいことが理解される。要素のセットは、1つまたは複数の要素を含む。要素の任意の列挙は、少なくとも1つの要素を指すと理解される。複数の要素は、少なくとも2つの要素を含む。別段の要求がない限り、任意の説明される方法ステップは、図示された特定の順序で必ずしも実施される必要はない。別段の定めがない限り、プロセスは、アプリケーションまたはオペレーティングシステムの一部などのコンピュータプログラムのインスタンスであり、少なくとも実行スレッド、およびオペレーティングシステムによって実行スレッドに割り当てられる仮想メモリのセクションを有することによって特徴付けられ、個々のメモリセクションは実行コードを含む。ブラックリストは、アクションのセットを実施するのをブロックされるオブジェクトのリストである。パラメータに従って判定または決定することは、パラメータに従って、および任意選択で他のデータに従って判定または決定することを包含する。コンピュータ可読媒体は、磁気、光、および半導体のストレージ媒体(例えば、ハードドライブ、光ディスク、フラッシュメモリ、DRAM)などの非一時的な媒体、ならびに導電性ケーブルリンクおよび光ファイバリンクなどの通信リンクを包含する。時間サーバは、時間サーバが受信するアクセスリクエストに応答して、回答の中に実時間を提供すること、および/または実時間を含むアクセスリクエストに応答して、アクセスリクエストに含まれる実時間が正確であるかどうかを示す回答を提供することを行う外部サーバである。時間サーバは、実時間の値を提供することに対して専用であるサーバであってよく、またはそうでなくてもよい。専用の時間サーバは、問合せに応答して実時間の値を提供することに対して専用である。非専用の時間サーバは、テキストおよび画像(例えば、特定の場所の現在の実時間に加えて、特定の場所の現在の天気についての情報を提供する天気サーバのページ)などの他のコンテンツを含んでよい、より大きいコンテンツページの一部として実時間の値を提供してよい。いくつかの実施形態によれば、本発明は、とりわけ、本明細書で説明される方法を実施するようにプログラムされたハードウェア(例えば、1つまたは複数の半導体基板上に形成された1つまたは複数のプロセッサ)を含むコンピュータシステム、ならびに本明細書で説明された方法を実施する命令をエンコードするコンピュータ可読媒体を提供する。   [23] In the following description, it is understood that all enumerated connections between structures may be direct operational connections or indirect operational connections through intermediate structures. The set of elements includes one or more elements. Any listing of elements is understood to refer to at least one element. The plurality of elements include at least two elements. Unless otherwise required, any described method steps do not necessarily have to be performed in the particular order shown. Unless otherwise specified, a process is an instance of a computer program, such as an application or part of an operating system, characterized by having at least a thread of execution and a section of virtual memory allocated to the thread of execution by the operating system. , Individual memory sections contain executable code. A blacklist is a list of objects that are blocked from performing a set of actions. Determining or determining in accordance with the parameters includes determining or determining in accordance with the parameters, and optionally in accordance with other data. Computer readable media include non-transitory media such as magnetic, optical and semiconductor storage media (eg, hard drives, optical disks, flash memory, DRAM), and communication links such as conductive cable links and fiber optic links. Do. The time server is responsive to the access request received by the time server to provide real time in the answer and / or responsive to the access request including the real time, the actual time included in the access request being accurate It is an external server that provides an answer indicating whether it is. The time server may or may not be a server dedicated to providing real time values. A dedicated time server is dedicated to providing real-time values in response to queries. Non-dedicated time servers include other content such as text and images (eg, pages of a weather server that provide information about the current weather for a particular location in addition to the current real time for a particular location) Real-time values may be provided as part of a larger content page. According to some embodiments, the present invention relates, inter alia, to hardware programmed to perform the methods described herein (eg, one formed on one or more semiconductor substrates). Or a computer system including a plurality of processors), as well as a computer readable medium encoding instructions for performing the methods described herein.

[24]以下の説明は、例として本発明の実施形態を示すが、必ずしも限定のためではない。
[25]図1は、DGA検出コンピュータシステム11に接続された例示的なDGAホストのクライアントコンピュータシステム10を示し、DGA検出コンピュータシステム11は、DGA標的サーバコンピュータシステム14および時間サーバコンピュータシステム15に、通信ネットワーク12を通じてさらに接続される。クライアントシステム10は、デスクトップ、ラップトップ、タブレット、もしくはスマートフォンなどのエンドユーザコンピュータシステム、またはパーソナルデジタルアシスタント(PDA)、またはウェアラブルコンピューティングデバイス、またはTVもしくは音楽プレーヤなどの家庭用デバイス、またはマルウェアをホストすることがある他の電子デバイスであってよい。クライアントシステム10は、少なくとも1つのハードウェアプロセッサ、メモリ、およびストレージを有し、Windows(登録商標)、MacOS(登録商標)、Linux(登録商標)、Android(登録商標)、またはiOS(登録商標)などのオペレーティングシステムを動かす。いくつかの実施形態において、クライアントシステム10は、ハイパーバイザおよび1つまたは複数の仮想マシンを動かすように構成されてよい。ネットワーク12は、インターネットなどの広域ネットワークであってよいが、ネットワーク12の一部は、ローカルエリアネットワーク(LAN)を含んでもよい。
[24] The following description illustrates embodiments of the present invention by way of example, but not necessarily by way of limitation.
[25] FIG. 1 shows an exemplary DGA host client computer system 10 connected to a DGA detection computer system 11, which includes a DGA target server computer system 14 and a time server computer system 15. It is further connected through the communication network 12. The client system 10 hosts an end user computer system such as a desktop, laptop, tablet or smartphone, or a personal digital assistant (PDA), or a wearable computing device, or a home device such as a TV or music player, or malware It may be any other electronic device that may do. The client system 10 has at least one hardware processor, memory, and storage, and is Windows (registered trademark), MacOS (registered trademark), Linux (registered trademark), Android (registered trademark), or iOS (registered trademark) Run an operating system such as: In some embodiments, client system 10 may be configured to run a hypervisor and one or more virtual machines. The network 12 may be a wide area network, such as the Internet, but a portion of the network 12 may include a local area network (LAN).

[26]クライアントシステム10上で実行するいくつかのプロセスは、悪意のある場合がある。特に、いくつかのプロセスは、DGAを潜在的に実行することがある。いくつかのケースにおいて、マルウェアは、クライアントシステム10上で動く仮想マシンによってホストされることがある。DGA検出システム11は、仮想マシン上で動くプロセスがDGAを実行するかどうかを判定する任務が課される。いくつかの実施形態において、DGA検出システム11はコンピュータサーバを含み、コンピュータサーバを通じて、クライアントシステム10はインターネットにアクセスする。いくつかの実施形態において、DGA検出システム11の少なくとも一部は、下記に説明される少なくともいくつかのDGA検出機能を実装するソフトウェア/ハードウェアで構成されるルータまたはスイッチを使用して実装されてよい。仮想化を用いるいくつかの実施形態において、下記に説明されるようなDGA検出システムは、クライアントシステム10上ではあるが、クライアントシステム10上で動く潜在的なDGAホストを形成する仮想マシンの外側に実装されてよい。このような仮想化の実施形態において、DGA検出システムは、システムハイパーバイザ上で、および/または監視されている潜在的なDGAホストとは異なる仮想マシン上で動くことがある。   [26] Some processes running on client system 10 may be malicious. In particular, some processes may potentially perform DGA. In some cases, the malware may be hosted by a virtual machine running on client system 10. The DGA detection system 11 is tasked to determine if the process running on the virtual machine performs the DGA. In some embodiments, the DGA detection system 11 includes a computer server, through which the client system 10 accesses the Internet. In some embodiments, at least a portion of DGA detection system 11 is implemented using a router or switch configured with software / hardware that implements at least some of the DGA detection functions described below. Good. In some embodiments using virtualization, the DGA detection system as described below is on the client system 10 but outside the virtual machine that forms the potential DGA host running on the client system 10 It may be implemented. In such a virtualization embodiment, the DGA detection system may run on a system hypervisor and / or on a different virtual machine than the potential DGA host being monitored.

[27]いくつかの実施形態において、セキュリティアプリケーションは、DGA検出システム11の少なくとも一部を形成するサーバ上で動く。セキュリティアプリケーションは、クライアントシステム10上で動く1つまたは複数のプロセスを分析することによって多くのDGA検出ステップを実施するように構成される。このような分析は、クライアントシステム10からの外部アクセスリクエストおよびクライアントシステム10への回答を、分析およびインターセプトすることを含んでよい。例示的な実施形態において、このようなセキュリティアプリケーションは、クライアントシステム10上で動く1つまたは複数のプロセスがDGAを実行するかどうかを判定するように構成される。DGAマルウェアが検出されると、セキュリティアプリケーションは、DGAによって生成されたドメイン名のセットをさらに識別し、ドメイン名のセットをブラックリストに載せる。ブラックリストに載せられたドメイン名は、ソフトウェアアップデートの一部として、複数のクライアントおよび/またはサーバコンピュータ上で動くセキュリティアプリケーションのインスタンスに送信され、このようなシステムを保護することを容易にすることがある。他の感染されたシステムを識別し、潜在的に無力化することを可能にするために、識別されたドメイン名が登録されてもよい。   [27] In some embodiments, the security application runs on a server that forms at least a part of the DGA detection system 11. The security application is configured to perform a number of DGA detection steps by analyzing one or more processes running on the client system 10. Such analysis may include analyzing and intercepting external access requests from client system 10 and responses to client system 10. In an exemplary embodiment, such a security application is configured to determine whether one or more processes running on client system 10 execute a DGA. When DGA malware is detected, the security application further identifies the set of domain names generated by DGA and blacklists the set of domain names. The blacklisted domain name can be sent to multiple instances of security applications running on multiple client and / or server computers as part of a software update to facilitate protecting such systems. is there. The identified domain names may be registered to allow identification and potentially disabling of other infected systems.

[28]クライアント10は、コンピュータシステム14によってホストされる外部サイトに、アクセスリクエストを伝えることがある。外部サイトは、ドメイン生成アルゴリズムによって生成されるドメイン名によって特徴付けられることがある。ドメイン名は、難解な一連の英数字(例えば、adfjhaadew34.comやgsriptoi4534pfh.io)によって形成されることがある。このようなドメイン名は、ドメイン名レジストラによって以前に登録された可能性はなく、したがって、将来ドメイン名レジストラによる登録に利用できる可能性が大いにある。コンピュータシステム14によってホストされるサイトに、アクセスリクエストが到達する場合、アクセスリクエストは成功である。何らかの理由で、コンピュータシステム14によってホストされるサイトにアクセスリクエストが到達しない場合、アクセスリクエストは不成功である。このような理由としては、このようなサイトがまだ存在しないこと、現在イネーブルされていないこと、またはサイトを特徴づけるドメイン名がドメインネームシステム(DNS)によって有効なドメインとして認識されておらず、したがってこのサイトに伝えられる通信がこのサイトにルートされないこと、等がある。アクセスリクエストが成功である場合、コンピュータシステム14によってホストされるサイトは、クライアントシステム10に回答を送り返す。アクセスリクエストが成功でない場合、ネットワーク12の構成要素は、アクセスリクエストが成功ではなかったということを示す回答を、クライアントシステム10に送り返す。   [28] The client 10 may communicate the access request to an external site hosted by the computer system 14. External sites may be characterized by a domain name generated by a domain generation algorithm. The domain name may be formed by an esoteric series of alphanumeric characters (eg, adfjhaadew 34.com or gsriptoi 4534pfh. Io). Such domain names may not have been previously registered by a domain name registrar, and thus are likely to be available for registration by a domain name registrar in the future. If the access request arrives at a site hosted by computer system 14, the access request is successful. If the access request does not reach the site hosted by computer system 14 for any reason, the access request is unsuccessful. The reason for this is that such sites do not yet exist, are not currently enabled, or the domain name characterizing the site is not recognized as a valid domain by the Domain Name System (DNS), There is a possibility that the communication transmitted to this site is not routed to this site. If the access request is successful, the site hosted by computer system 14 sends an answer back to client system 10. If the access request is not successful, then the components of the network 12 send back to the client system 10 a response indicating that the access request was not successful.

[29]クライアントシステム10は、1つまたは複数のアクセスリクエストを時間サーバ15にも伝える。時間サーバ15は、このようなアクセスリクエストに、実時間を含むレスポンスで応答する。含まれる実時間の確認をリクエストするアクセスリクエストに対して、時間サーバ15は、アクセスリクエストに含まれる実時間が正確であるかどうかを示すデータで応答してもよい。   [29] The client system 10 also communicates one or more access requests to the time server 15. The time server 15 responds to such an access request with a response including the real time. In response to the access request requesting confirmation of the included real time, the time server 15 may respond with data indicating whether the real time included in the access request is accurate.

[30]図2−Aは、本発明のいくつかの実施形態による、クライアントシステム10の例示的なハードウェア構成を示す。図2Aは、例証的な目的でコンピュータシステムの特定の構造を示し、他のクライアントシステムは、異なる構造を有してよい。いくつかの実施形態において、システム10は、プロセッサ32、メモリユニット34、入力デバイス36のセット、出力デバイス38のセット、ストレージデバイス40のセット、およびネットワークアダプタ42のセットを含む物理デバイスのセットを含み、すべてがバス44のセットによって接続される。   [30] Figure 2-A shows an exemplary hardware configuration of client system 10, according to some embodiments of the present invention. FIG. 2A shows the particular structure of the computer system for illustrative purposes, and other client systems may have different structures. In some embodiments, system 10 includes a set of physical devices including processor 32, memory unit 34, set of input devices 36, set of output devices 38, set of storage devices 40, and set of network adapters 42. , All connected by a set of buses 44.

[31]いくつかの実施形態において、プロセッサ32は、シグナルおよび/またはデータのセットで、計算演算および/または論理演算を実行するように構成された物理デバイス(例えば、半導体基板上に形成されたマルチコアの集積回路)を含む。いくつかの実施形態において、このような論理演算は、一連のプロセッサ命令(例えば、機械語または他のタイプのソフトウェア)の形でプロセッサ32に届けられる。メモリユニット34は、命令を遂行する過程で、プロセッサ32によってアクセスまたは生成されるデータ/シグナルを格納する非一時的コンピュータ可読媒体(例えばRAM)を含んでよい。入力デバイス36は、ユーザがデータおよび/または命令をクライアントシステム10に入れることを可能にする個々のハードウェアインターフェースおよび/またはアダプタを含み、中でも、コンピュータキーボード、マウス、およびマイクロフォンを含んでよい。出力デバイス38は、中でも、ディスプレイ画面およびスピーカ、ならびにクライアントシステム10がデータをユーザに通信することを可能にする、グラフィックカードなどのハードウェアインターフェース/アダプタを含んでよい。いくつかの実施形態において、入力デバイス36および出力デバイス38は、タッチスクリーンデバイスの場合のように、共通のハードウェアを共有してよい。ストレージデバイス40は、ソフトウェア命令および/またはデータの非一時的な保存、読取り、および書込みを可能にするコンピュータ可読媒体を含む。例示的なストレージデバイス40は、磁気ディスクおよび光ディスクおよびフラッシュメモリデバイス、ならびにCDおよび/またはDVDのディスクおよびドライブなどのリムーバブルメディアを含む。ネットワークアダプタ42のセットは、コンピュータネットワーク、例えばネットワーク12に、および/または他のデバイス/コンピュータシステムに、クライアントシステム10が接続できるようにする。バス44は、複数のシステムバス、周辺機器用バス、およびチップセットバス、ならびに/またはクライアントシステム10のデバイス32〜デバイス42の相互通信を可能にするすべての他の回路機器を、一括して表す。例えば、バス44は、中でも、プロセッサ32をメモリ34に接続するノースブリッジ、および/またはプロセッサ32をデバイス36〜デバイス42に接続するサウスブリッジを含んでよい。   [31] In some embodiments, processor 32 is a physical device (eg, formed on a semiconductor substrate) configured to perform computational and / or logical operations on a set of signals and / or data. Multi-core integrated circuits). In some embodiments, such logical operations are delivered to processor 32 in the form of a series of processor instructions (eg, machine language or other type of software). Memory unit 34 may include a non-transitory computer readable medium (eg, RAM) that stores data / signals accessed or generated by processor 32 in the course of executing instructions. The input device 36 includes individual hardware interfaces and / or adapters that allow the user to enter data and / or instructions into the client system 10, and may include, among others, a computer keyboard, a mouse, and a microphone. The output device 38 may include, inter alia, display screens and speakers, and a hardware interface / adapter such as a graphics card that allows the client system 10 to communicate data to the user. In some embodiments, input device 36 and output device 38 may share common hardware, as in the case of a touch screen device. Storage device 40 includes a computer readable medium that enables non-transitory storage, reading, and writing of software instructions and / or data. Exemplary storage devices 40 include magnetic disk and optical disk and flash memory devices, and removable media such as CD and / or DVD disks and drives. The set of network adapters 42 enables the client system 10 to connect to a computer network, such as the network 12 and / or other devices / computer systems. The bus 44 collectively represents a plurality of system buses, a peripheral bus, and a chipset bus, and / or all other circuit devices that allow the devices 32 to 42 of the client system 10 to communicate with each other. . For example, bus 44 may include, among other things, a north bridge connecting processor 32 to memory 34 and / or a south bridge connecting processor 32 to devices 36-42.

[32]図2−Bは、DGA検出システム11(図1)を実装するのに使用されるサーバなどの、サーバの例示的なハードウェア構成を示す。このようなサーバは、サーバプロセッサ132、サーバメモリ134、サーバストレージデバイス140のセット、およびネットワークアダプタ142のセットを含み、すべてがバス144のセットによって接続される。デバイス132、134、140、および142の動作は、上述のデバイス32、34、40、および42の動作と同一であってよい。例えば、サーバプロセッサ132は、シグナルおよび/またはデータのセットで、計算演算および/または論理演算を実行するように構成された物理デバイスを含んでよい。サーバメモリ134は、演算を実行する過程で、プロセッサ132によってアクセスまたは生成されるデータ/シグナルを格納する非一時的コンピュータ可読媒体(例えばRAM)を含んでよい。ネットワークアダプタ142は、ネットワーク12などのコンピュータネットワークに、サーバが接続できるようにする。   [32] FIG. 2-B shows an exemplary hardware configuration of a server, such as a server used to implement DGA detection system 11 (FIG. 1). Such servers include a server processor 132, a server memory 134, a set of server storage devices 140, and a set of network adapters 142, all connected by a set of buses 144. The operation of devices 132, 134, 140, and 142 may be identical to the operation of devices 32, 34, 40, and 42 described above. For example, server processor 132 may include physical devices configured to perform computational and / or logical operations on sets of signals and / or data. Server memory 134 may include a non-transitory computer readable medium (eg, RAM) that stores data / signals accessed or generated by processor 132 in the course of performing operations. Network adapter 142 allows the server to connect to a computer network, such as network 12.

[33]図3Aは、仮想マシン710によって形成される潜在的なDGAマルウェアホストと、仮想マシン710の外部にあるDGA検出器704との間の例示的なデータ交換を示す。図示された構成において、DGA検出器704と仮想マシン710は、共通の物理的なコンピュータシステム711上で動く。特に、図3Aに示された構成において、DGA検出器704は、ハイパーバイザ705上で動くアプリケーションであり、および/またはハイパーバイザ705の一部を形成するアプリケーションである。仮想マシン710は、外部サイト714にアクセスリクエストを送り、外部サイト714から回答を受信する。プロセス701、プロセス742のセットは、仮想マシン710上で並行に動く。DGA検出器704は、例示的なプロセス701によって送られた外部アクセスリクエスト702を分析する。DGA検出器704は、また、リクエスト702に対する本来の回答715をインターセプトし、分析する。本来の回答715は、次に、DGA検出器704によって、修正された回答703に修正される。リクエスト702および本来の回答715を分析する際、DGA検出器704は、時間サーバデータベース712に問い合わせることがある。図3Aにおいて、時系列データベース712は、コンピュータシステム711上にホストされるように示される。いくつかの実施形態において、時間サーバデータベース712は、コンピュータシステム711の外部にあってよい。あるプロセスがDGAを実行することを判定すると、DGA検出器704は、そのプロセスをブラックリストに載せるように、セキュリティアプリケーション54に命令する。   [33] FIG. 3A illustrates an exemplary data exchange between a potential DGA malware host formed by virtual machine 710 and DGA detector 704 external to virtual machine 710. In the illustrated configuration, DGA detector 704 and virtual machine 710 run on a common physical computer system 711. In particular, in the configuration shown in FIG. 3A, DGA detector 704 is an application that runs on and / or forms part of hypervisor 705. The virtual machine 710 sends an access request to the external site 714 and receives a response from the external site 714. Process 701, a set of processes 742 run in parallel on virtual machine 710. The DGA detector 704 analyzes the external access request 702 sent by the example process 701. DGA detector 704 also intercepts and analyzes the original response 715 to request 702. The original answer 715 is then corrected by the DGA detector 704 into a corrected answer 703. In analyzing request 702 and true answer 715, DGA detector 704 may query time server database 712. In FIG. 3A, a timeline database 712 is shown hosted on computer system 711. In some embodiments, time server database 712 may be external to computer system 711. When a process determines that it performs DGA, DGA detector 704 instructs security application 54 to blacklist the process.

[34]図3Bは、本発明のいくつかの実施形態による、コンピュータシステム711’上で動く潜在的なDGAマルウェアホストと、システム711’とは別個のコンピュータシステム713上で動くDGA検出器704’との間の例示的なデータ交換を示す。コンピュータシステム711’は、クライアントコンピュータシステムであってよい。コンピュータシステム713は、ルータ、スイッチ、またはサーバコンピュータであってよい。プロセス701’、プロセス742’のセットは、コンピュータシステム711’上で並行に動く。DGA検出器704は、プロセス701によって外部サイト714に送られた外部アクセスリクエスト702を分析する。DGA検出器704は、また、リクエスト702に対する受信される回答715をインターセプトして分析する。本来の回答715は、修正された回答703に修正されてよい。リクエスト702および本来の回答715を分析する際、DGA検出器は、時間サーバデータベース712を照会してよい。プロセスがDGAを実行することを判定すると、DGA検出器704は、DGAによって生成された1つまたは複数のドメイン名を判定し、DGAドメインをブラックリストに追加するように、セキュリティアプリケーション54に命令する。いくつかの実施形態において、セキュリティアプリケーション54は、ホスト711上で実行するDGA感染したプロセスをブラックリストに載せ、他のコンピュータシステムへの送信のために、識別されたマルウェアに対する1つまたは複数の識別特徴(例えばハッシュ)を生成してもよい。   [34] FIG. 3B shows a potential DGA malware host running on computer system 711 'and a DGA detector 704' running on computer system 713 separate from system 711 'according to some embodiments of the present invention. 8 illustrates an exemplary data exchange between Computer system 711 'may be a client computer system. Computer system 713 may be a router, switch, or server computer. Process 701 ', a set of processes 742', run in parallel on computer system 711 '. The DGA detector 704 analyzes the external access request 702 sent by the process 701 to the external site 714. DGA detector 704 also intercepts and analyzes received response 715 for request 702. The original answer 715 may be corrected to a corrected answer 703. In analyzing the request 702 and the true answer 715, the DGA detector may query the time server database 712. Once the process determines that DGA is to be performed, DGA detector 704 determines one or more domain names generated by DGA and instructs security application 54 to add the DGA domain to the blacklist. . In some embodiments, security application 54 blacklists DGA-infected processes running on host 711 and identifies one or more of the identified malware for transmission to other computer systems. Features (eg, hash) may be generated.

[35]図4は、外部アクセスリクエスト702の一部を形成する例示的な一連のフィールド401a〜401dを示す。外部アクセスリクエスト702に対する本来のまたは修正された回答は、類似の一連のフィールドを含んでよい。いくつかの実施形態において、DGA検出器704(図3A)は、外部アクセスリクエスト702および/または外部アクセスリクエスト702に対する回答を解析することによって、実時間情報を含むフィールドを識別する。また、DGA検出器704は、専用または非専用の時間サーバのアドレスへの外部アクセスリクエスト702を解析してもよい。解析は、下記に説明される正規表現のセットを使用して実施されてよく、正規表現のセットは、正式なルールを使用して入力データ内のパターンを説明/識別する。例えば、日付は、任意の順序の月および日(例えば、それぞれ、1から12までの数字、および1から31までの数字)の後または前にある年(例えば、19または20で始まる4桁の数字)を検索することによって識別されることがあり、いくつかの定義されたセパレータ(例えば、スペース、コンマ、他)の1つによって分離されることがある。別の例として、実時間は、それぞれ、24、60、および、60までになるように抑えられた2つまたは3つの数によって識別されることがあり、いくつかの定義されたセパレータ(例えば、スペース、:、他)の1つによって分離されることがある。時間サーバのアドレスは、いくつかのプレフィックス(例えば、http、https、ftp、またはネットワークタイムプロトコル、つまりntpなどのプロトコル識別子)、およびドメインネームサーバのデータベースまたは他のリストに存在するドメイン名またはインターネットプロトコル(IP)アドレスの1つの存在によって識別されることがある。   [35] FIG. 4 shows an exemplary set of fields 401a-401d that form part of the external access request 702. The original or modified response to the external access request 702 may include a similar set of fields. In some embodiments, DGA detector 704 (FIG. 3A) identifies fields that contain real-time information by parsing external access request 702 and / or answers to external access request 702. The DGA detector 704 may also parse external access requests 702 to dedicated or non-dedicated time server addresses. The analysis may be performed using a set of regular expressions described below, which use formal rules to describe / identify patterns in the input data. For example, the date may be any sequence of months and days before and after the month and day (for example, numbers 1 to 12 and 1 to 31, respectively) (for example, four digits beginning with 19 or 20) It may be identified by searching for numbers) and may be separated by one of several defined separators (eg, spaces, commas, etc.). As another example, real time may be identified by two or three numbers suppressed to be 24, 60 and 60 respectively, and some defined separators (eg, Space,:, may be separated by one of the other). The address of the time server may be some prefix (eg http, https, ftp, or a network time protocol, ie a protocol identifier such as ntp), and the domain name or internet protocol present in a database or other list of domain name servers It may be identified by the presence of one of the (IP) addresses.

[36]適切な正規表現の構文および特定の設計は、DGA検出器704の解析エンジンを実装するために選ばれる特定のソフトウェア言語および標準ライブラリに依存することがある。IEEEのPOSIX標準は、正規表現のための適切な構文を提供する。加えて、正規表現を扱うための標準ライブラリは、Perl、Java(登録商標)、Python、C++などを含む様々な言語で利用できる。   [36] The appropriate regular expression syntax and specific design may depend on the particular software language and standard library chosen to implement the DGA detector 704 analysis engine. The IEEE POSIX standard provides appropriate syntax for regular expressions. In addition, standard libraries for working with regular expressions are available in a variety of languages, including Perl, Java, Python, C ++, etc.

[37]例えば、IEEEのPOSIX標準によって使用される、以下の構文を用いる正規表現のセットを考える。
()=グループを定義する。
[0−9]=0〜9の任意の数字のキャラクタである。
[a−z]=a〜zの任意の文字のキャラクタである。
{n}=先行するグループは、ちょうどn回繰り返されてよく、nは自然数である。
{,n}=先行するグループは、n回しか繰り返されなくてよく、nは自然数である。
{n,}=先行するグループは、少なくともn回繰り返されてよく、nは自然数である。
{m,n}=先行するグループは、m回〜n回の間繰り返されてよく、mおよびnは自然数である。
{m,n,p}=先行するグループは、m回、n回、またはp回繰り返されてよく、m、n、およびpは自然数である。
$=分析されるテキストの終わりである。
[37] For example, consider the set of regular expressions used by the IEEE POSIX standard, using the following syntax:
() = Define a group.
[0-9] is an arbitrary number character of 0-9.
It is a character of any character of [az] = az.
{N} = preceding groups may be repeated exactly n times, where n is a natural number.
{, N} = preceding groups may only be repeated n times, where n is a natural number.
{N,} = preceding groups may be repeated at least n times, where n is a natural number.
{M, n} = preceding groups may be repeated between m and n times, where m and n are natural numbers.
{M, n, p} = preceding groups may be repeated m times, n times or p times, where m, n and p are natural numbers.
$ = End of the text to be analyzed

[38]上記の構文を用いて、正規表現「^(19|20)\d\d[− /.](0[1−9]|1[012])[− /.](0[1−9]|[12][0−9]|3[01])$」は、4つのセパレータの選択肢を伴う、1900−01−01と2099−12−31の間から、yyyy−mm−ddのフォーマットの日付にマッチする。4つのセパレータは、「−」、「 」、「/」、および「.」である。また、例として、正規表現「^(ht|f)tp(s?)\:\/\/[0−9a−zA−Z]([−.\w]*[0−9a−zA−Z])*(:(0−9)*)*(\/?)([a−zA−Z0−9\−\.\?\,\’\/\\\+&%\$#_]*)?$」は、URLのウェブサイトアドレスのアドレスにマッチする。   [38] Using the above syntax, the regular expression “^ (19 | 20) \ d \ d [− /.] (0 [1-9] | 1 [012]) [− /.] (0 [1 −9] | [12] [0-9] | 3 [01]) $ ”is from yyyy-mm-dd from between 1900-01-01 and 2099-12-31 with four separator options. Match dates in the format The four separators are "-", "", "/", and ".". Also, as an example, the regular expression "^ (ht | f) tp (s?) \: \ / \ / [0-9a-zA-Z] ([-. \ W] * [0-9a-zA-Z ]) * (: (0-9) *) * (\ /?) ([A-zA-Z0-9 \-\. \? \, \ '\\\\ + &% \ $ # _] *)? $ "Matches the address of the website address of the URL.

[39]図5Aは、本発明のいくつかの実施形態による、時間サーバへの外部アクセスリクエストを解析するDGA検出器704(図3A〜図3B)によって遂行される例示的な一連のステップを示す。ステップ501において、DGA検出器704は、すべての外部アクセスリクエストを解析する。DGA検出器704は、さらに、外部アクセスリクエストに対する本来の回答をインターセプトし(ステップ502)、本来の回答を解析する(ステップ503)。ステップ504において、DGA検出器704は、予期される回答が実時間を含むかどうかを判定する。上述のように、図示されたステップは、示された特定の順序で実施される必要はなく、例えば、いくつかの実施形態において、ステップ504は、ステップ502および/またはステップ503の前に実施されてよい。ステップ504における判定は、アクセスリクエストによって標的とされるアドレスを、専用および非専用の時間サーバを含む時間サーバの1つまたは複数のリストと比較することによって、アクセスリクエストが専用または非専用の時間サーバのアドレスを含むかどうかを判定することによって行われてよい。専用の時間サーバは、Network Time Foundationによって、そのネットワークタイムプロトコルのサイト、つまりwww.ntp.orgで利用できるようにされた事前定義リストなどの、事前定義リストを介して識別されてよい。専用の時間サーバは、リクエストの中のネットワークタイムプロトコル(ntp)識別子の存在を介して識別されてもよい。非専用の時間サーバは、大衆的なサイト(例えば、www.yahoo.com)および特殊用途のサイト(例えば、www.weather.com)を検索して実時間を戻すサイトを選択し、検索結果に従って、非専用の時間サーバのリストを生成することによって識別されてよい。ステップ504において、解析することによって見つけられたURLアドレスと、時間サーバデータベース712からのURLアドレスのリストとの間に、マッチが存在するかどうかを判定するために、DGA検出器704は、時間サーバデータベース712に問い合わせてよい。   [39] FIG. 5A illustrates an exemplary series of steps performed by the DGA detector 704 (FIGS. 3A-3B) analyzing external access requests to a time server, according to some embodiments of the present invention. . In step 501, the DGA detector 704 analyzes all external access requests. The DGA detector 704 further intercepts the original answer to the external access request (step 502), and analyzes the original answer (step 503). At step 504, the DGA detector 704 determines whether the expected response includes real time. As mentioned above, the illustrated steps need not be performed in the particular order shown, for example, in some embodiments, step 504 is performed prior to step 502 and / or step 503. You may The determination at step 504 is a time server dedicated or non-dedicated for the access request by comparing the address targeted by the access request to one or more lists of time servers including dedicated and non-dedicated time servers. It may be done by determining whether it contains the address of. The dedicated time server, by Network Time Foundation, is the site of its Network Time Protocol, ie www. ntp. It may be identified via a predefined list, such as a predefined list made available at org. A dedicated time server may be identified through the presence of a Network Time Protocol (ntp) identifier in the request. Non-dedicated time servers search popular sites (eg, www.yahoo.com) and special-use sites (eg, www.weather.com) and select sites that return real time, according to the search results , May be identified by generating a list of non-dedicated time servers. In step 504, to determine if there is a match between the URL address found by parsing and the list of URL addresses from time server database 712, DGA detector 704 detects the time server The database 712 may be queried.

[40]外部アクセスリクエストが時間サーバのアドレスを含まないことを、DGA検出器704が判定する場合、DGA検出器704は、プロセスがDGAを実行するかどうかを、ステップ507で検出する。ステップ507は、下記で詳細に説明される。外部アクセスリクエストが時間サーバのアドレスを含むことを、DGA検出器704が判定する場合、下記に解説されるように、DGA704検出器は、本来の実時間を、早められた実時間に置換することによって、インターセプトされた本来の回答を修正する(ステップ505)。次に、DGA検出器704は、ステップ501で解析されたアクセスリクエストを送ったプロセスに、修正された回答を送る(ステップ506)。   [40] If the DGA detector 704 determines that the external access request does not include the time server address, then the DGA detector 704 detects in step 507 whether the process performs DGA. Step 507 is described in detail below. If the DGA detector 704 determines that the external access request contains the address of the time server, then the DGA 704 detector replaces the original real time with the advanced real time, as described below. To correct the intercepted original response (step 505). Next, the DGA detector 704 sends the modified answer to the process that sent the access request analyzed in step 501 (step 506).

[41]図5Bは、本発明のいくつかの実施形態による、外部アクセスリクエストに対する本来の回答を解析するために、DGA検出器704(図3A〜図3B)によって遂行される例示的な一連のステップを示す。ステップ502において、DGA検出器704は、外部アクセスリクエストに対する本来の回答をインターセプトする。ステップ503において、DGA検出器704は、上述のように、本来の回答を解析する。ステップ507において、DGA検出器704は、プロセスがDGAを実行するかどうかを判定する。   [41] FIG. 5B is an exemplary set of examples performed by DGA detector 704 (FIGS. 3A-3B) to analyze the original answer to the external access request, according to some embodiments of the present invention. Indicates a step. In step 502, DGA detector 704 intercepts the original answer to the external access request. At step 503, the DGA detector 704 analyzes the original answer as described above. At step 507, the DGA detector 704 determines whether the process performs DGA.

[42]ステップ524において、DGA検出器704は、本来の回答が実時間フィールドを含むかどうかをさらに判定する。ステップ524で実施される判定は、テキストフィールドおよび/または画像フィールドに埋め込まれた1つまたは複数の実時間の値を検索することを含んでよい。テキストフィールドおよび/または画像フィールドを検索することは、当技術分野で知られた方法を使用して達成され得る。いくつかの実施形態において、テキストフィールドを検索することは、特化されたアプリケーション(例えば、テキストファイル用のテキストエディタ)を使用して、フィールドを収めるオブジェクトを編集することを含んでよい。ステップ524は、解析の結果に対して、日付で正規表現をマッチさせることを含んでよい。次に、下記に解説されるように、DGA検出器704は、実時間を、早められた実時間に置換することによって、インターセプトされた回答を修正する(ステップ505)。次に、DGA検出器704は、解析されたアクセスリクエストを送ったプロセスに、修正された回答を送る(ステップ506)。   [42] At step 524, the DGA detector 704 further determines whether the original answer contains a real time field. The determination performed at step 524 may include retrieving one or more real time values embedded in the text field and / or the image field. Searching for text fields and / or image fields can be accomplished using methods known in the art. In some embodiments, searching for text fields may include editing the object that contains the fields using a specialized application (eg, a text editor for text files). Step 524 may include matching the regular expression by date to the results of the analysis. Next, as discussed below, the DGA detector 704 corrects the intercepted answer by replacing the real time with the advanced real time (step 505). Next, the DGA detector 704 sends the modified answer to the process that sent the analyzed access request (step 506).

[43]図5Cは、プロセスがDGAを実行するかどうかを判定するときに、DGA検出器704(図3A〜図3B)によって遂行されるステップ507(図5A〜図5B)内の例示的な一連のステップを示す。ステップ527において、DGA検出器704は、アクセスリクエストに対する本来の回答が成功であるかどうかを判定する。本来の回答が成功ではない場合、DGA検出器704は、コンピュータシステム上で動くプロセスがDGAを実行するかどうかを判定する(ステップ528)。ステップ528における判定は、当技術分野で知られた方法を使用して実施されてよい。DGA検出についてのステップ528からの詳細は下記に提示される。プロセスがDGAを実行する場合、DGAによって生成されたドメイン名が判定される(ステップ529)。ステップ529で識別されたドメイン名は、ステップ531において、セキュリティアプリケーションからブラックリストに追加される。ブラックリストは、複数のクライアントシステム10を適時に更新するために使用されてよく、複数のクライアントシステム10が、DGAマルウェアから保護されるようになることがある。セキュリティアプリケーションは、ステップ509からのドメイン名を、ドメイン名の、指定されたレジストラのデータベースに登録するようにさらに構成されてよい。ドメイン名の適時の登録は、マルウェアの作成者が、ドメイン名を使用してボットネットマルウェアを伝播および/または活性化させるのを防ぐことができる。セキュリティアプリケーションは、登録されたドメイン名にアクセスリクエストを送るコンピュータシステムのセットを識別するようにさらに構成されてよい。コンピュータシステムの識別されたセットは、ボットネットのメンバを含んでよい。早期の識別は、ボットネットマルウェアの伝搬を制限することができる。   [43] FIG. 5C illustrates an example within step 507 (FIGS. 5A-5B) performed by DGA detector 704 (FIGS. 3A-3B) when determining whether the process performs DGA. Shows a series of steps. At step 527, the DGA detector 704 determines if the original response to the access request is a success. If the original answer is not successful, DGA detector 704 determines whether the process running on the computer system performs DGA (step 528). The determination at step 528 may be performed using methods known in the art. Details from step 528 for DGA detection are presented below. If the process performs DGA, then the domain name generated by DGA is determined (step 529). The domain name identified in step 529 is added to the blacklist from the security application in step 531. The blacklist may be used to update the plurality of client systems 10 in time, and the plurality of client systems 10 may become protected from DGA malware. The security application may be further configured to register the domain name from step 509 in the designated registrar's database of domain names. Timely registration of domain names can prevent malware creators from propagating and / or activating botnet malware using domain names. The security application may be further configured to identify a set of computer systems that send access requests to registered domain names. The identified set of computer systems may include botnet members. Early identification can limit botnet malware propagation.

[44]マルウェアは、様々な方法を通じて、例えば、コンピュータシステム上で動くオペレーティングシステムに問い合わせることによって、実時間を判定することがある。セキュリティアプリケーションは、早められた実時間を示すことによって、オペレーティングシステムが示す実時間を変化させてよい。早められた実時間は、未来の実時間を示す。マルウェアは、OSに問い合わせることによって、実時間の値をリクエストすることがある。Windows(登録商標)を動かすコンピュータシステム上で、関数GetSystemTime()に対するコールは、実時間の値を取り出すために使用されることがある。マルウェアは、次に、OSによって示された早められた実時間が正確であることを照合することがある。照合するために、マルウェアは、時間サーバへの外部アクセスリクエストに、早められた実時間を含めることがある。時間サーバからの本来の回答は、早められた実時間が正確であるかどうかの指示を含んでよい。   [44] Malware may determine real time through various methods, for example, by querying an operating system running on a computer system. The security application may change the real time indicated by the operating system by indicating the advanced real time. The advanced real time shows the real time of the future. Malware may request real-time values by querying the OS. On computer systems running Windows®, calls to the function GetSystemTime () may be used to retrieve real-time values. The malware may then check that the accelerated real time indicated by the OS is correct. To match, malware may include accelerated real time in external access requests to the time server. The original response from the time server may include an indication of whether the advanced real time is accurate.

[45]図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検出器は、上述のDGA検出ステップ507を遂行する。   [45] FIG. 5D is an exemplary sequence performed by DGA detector 704 (FIGS. 3A-3B) that analyzes external access requests including advanced real time according to some embodiments of the present invention. Indicates a step. In step 501, the DGA detector 704 analyzes all external access requests. Next, the DGA detector 704 intercepts the original response to the external access request (step 502), and analyzes the original response (step 503). At step 544, the DGA detector 704 determines if the original answer is a success. If the original answer is successful, the DGA detector 704 then determines whether the request includes the real time advanced (step 546). Such a determination may be made by comparing the time extracted from the analyzed request with the current time value. The comparison may be performed with a desired level of accuracy, for example, by determining whether the date and / or time (but not necessarily minutes / seconds) match. The DGA detector 704 may determine the current time value by querying the operating system running on the computer system. If such an advanced real time is included, the DGA detector 704 determines whether the original response includes the original information that the advanced real time is not accurate (step 547). If the original answer includes the original information that the advanced real time is not accurate, the DGA detector 704 may modify the original information to a corrected information indicating that the advanced real time is correct. The original answer is corrected by substitution (step 548). Next, the DGA detector 704 sends the modified answer to the process that sent the analyzed access request (step 506). If the original answer is not successful, the DGA detector performs the DGA detection step 507 described above.

[46]ステップ545において、解析されたリクエストに対する本来の回答は、インターセプトされ(ステップ545)、解析される(ステップ546)。ステップ547において、DGA検出器704は、ステップ543で判定された早められた実時間が正確ではないという情報を、解析された本来の回答が含むかどうかを判定する。肯定的な判定がステップ547においてなされる場合、DGA検出器704は、早められた実時間が不正確であるという情報を、早められた実時間が正確であるという情報に置換し、修正された回答を生成する。修正された回答は、次に、解析されたアクセスリクエストを送ったプロセスに送られる。   [46] At step 545, the original answer to the analyzed request is intercepted (step 545) and analyzed (step 546). In step 547, the DGA detector 704 determines whether the analyzed original answer contains information that the advanced real time determined in step 543 is not accurate. If a positive determination is made in step 547, the DGA detector 704 replaces the information that the advanced real time is incorrect with the information that the advanced real time is accurate, and it is corrected. Generate an answer. The modified answer is then sent to the process that sent the parsed access request.

[47]図6は、連続する回答が本来の実時間を含むときの、本来の実時間606と早められた実時間605との間の数学的関係を示す。この数学的関係は、外部アクセスリクエストを発行するプロセスに依存することのない機能によって、DGA検出器の中でエンコードされてよい。1つの実施形態において、実時間は、OSによってクライアントシステム上で測定される現在の時間であってよい。破線601は、早められた実時間が本来の実時間に等しい場合を示す。1つの実施形態において、早められた実時間は、凸状の関数603によって表されることがある。これは、永久に実時間より進んで動く早められた実時間を提供することが有利であるとき、例えば、プロセスが一定の挙動に対して照合されるときに望ましいことがある。1つの実施形態において、早められた実時間は、凹形の関数604によって表されることがある。これは、本来の実時間よりかなり進んで動いた継続期間の後に減速される、早められた実時間を提供することが有利であるとき、例えば、プロセスの挙動がある継続期間にわたって詳細に照合されるときに、望ましいことがある。1つの実施形態において、早められた実時間は、直線の関数602によって表されることがある。これは、いかなる予備知識もない状態で、プロセスの挙動が初めて調査されるときに、望ましいことがある。   [47] FIG. 6 shows the mathematical relationship between true real time 606 and advanced real time 605 when successive answers include true real time. This mathematical relationship may be encoded in the DGA detector by a function that does not depend on the process of issuing the external access request. In one embodiment, real time may be the current time measured on the client system by the OS. The broken line 601 shows the case where the advanced real time is equal to the actual real time. In one embodiment, accelerated real time may be represented by a convex function 603. This may be desirable when it is advantageous to provide an accelerated real time that moves permanently past real time, for example when the process is matched against certain behaviors. In one embodiment, accelerated real time may be represented by a concave function 604. This is advantageous, for example, when the behavior of the process is provided in detail over a certain duration, when it is advantageous to provide an accelerated real time, which is slowed after the duration of movement far beyond the actual real time. When it is desirable. In one embodiment, accelerated real time may be represented by a linear function 602. This may be desirable when the behavior of the process is investigated for the first time without any prior knowledge.

[48]プロセスがDGAを実行するかどうかを判定するために、様々な方法が使用されることがある。いくつかの方法は外部サイト714(図1)のURLを分析することがあり、DGAによって生成される多くのURLは「www」で始まらないという観察などの発見的方法を使用することがある。アクセスされるURLの明瞭さを分析するために、他の方法が発見的方法に適用されることがある。さらに他の方法は、所定の最新の期間内、例えば最近の24時間のうちに、ドメインレジストラによって登録された任意の外部サイトをグレイリストに入れる(greylisting)ことに依存する。   [48] Various methods may be used to determine whether a process performs DGA. Some methods may analyze the URLs of external sites 714 (FIG. 1), and may use heuristics such as observation that many URLs generated by DGA do not begin with "www". Other methods may be applied to the heuristics to analyze the clarity of the URL being accessed. Still other methods rely on greylisting any external sites registered by the domain registrar within a predetermined current period, eg, the last 24 hours.

[49]DGA検出のためのより精巧な方法は、疑われるプロセスの実行コードの分析を用いることがある。図7はこのような方法を示す。このような方法は、(時間、システムイベント、他などの)一定の既知のタイプのものであるイベントによって、少なくともいくつかのDGAマルウェアがトリガされるという観察に依存する。第1のステップ701において、分析のためにトリガタイプが選択される。ステップ703において、疑われるプロセスに、選択されたトリガタイプの入力を供給しながら、混合された(具体的かつ象徴的な)実行を使用して疑われるプロセスが実行される。選択されたトリガタイプの入力は、象徴的な変数として表される。象徴的な変数に依存する分岐がこのステップで発生しない場合、混合された実行におけるそれぞれのステップは具体的に実行され、そうでなければ象徴的に実行される。ステップ705において、象徴的な変数の値に基づいて、すべての実行パスが判定される。ステップ707において、すべての実現可能な実行パスが判定される。例えば、互いに対して矛盾する2つのトリガ値を実行パスが要求するので、ステップ705で判定される実行パスのいくつかは、実現可能でないことがある。例えば、実現可能ではない実行パスは2つの分岐を含むことがあり、実時間の値が2015年5月より前である場合には第1の分岐がトリガされ、実時間の値が2015年7月より後である場合には第2の分岐がトリガされる。最終的に、ステップ711において、それぞれの実現可能なパスで生成されたURLが分析される。分析は、URLを、一定のトリガタイプおよび値と相関させることを含んでよい。例として、2つしかないトリガタイプの値の変化に応答してURLの80%以上が生成される場合、疑われるプロセスがDGAを実行するという判定がなされる。   [49] More sophisticated methods for DGA detection may use analysis of the executable code of the suspected process. FIG. 7 illustrates such a method. Such methods rely on the observation that at least some DGA malware are triggered by events that are of a certain known type (such as time, system events, etc.). In a first step 701, a trigger type is selected for analysis. At step 703, the suspected process is performed using the mixed (specific and symbolic) execution while supplying the selected process with the selected trigger type. The selected trigger type input is represented as a symbolic variable. If branches dependent on symbolic variables do not occur in this step, then each step in the mixed execution is performed specifically, otherwise it is performed symbolically. At step 705, all execution paths are determined based on the values of the symbolic variables. At step 707, all possible execution paths are determined. For example, some of the execution paths determined in step 705 may not be feasible because the execution paths require two conflicting trigger values to each other. For example, an unfeasible execution path may include two branches, and if the real-time value is before May 2015, the first branch is triggered and the real-time value is 2015 7 The second branch is triggered if it is after a month. Finally, in step 711, the URLs generated in each possible path are analyzed. The analysis may include correlating the URL with certain trigger types and values. As an example, if 80% or more of the URL is generated in response to changes in the values of only two trigger types, then a determination is made that the suspected process performs DGA.

[50]上述の例示的なシステムおよび方法は、DGA実行ボットネット(DGA−execution botnet)などのマルウェアを検出することを可能にする。いくつかの実施形態において、外部アクセスリクエストおよび回答をインターセプトおよび解析し、DGAを検出するマシンとは別個のマシン上で、疑わしいプロセスが動く。別個のマシンは、異なる物理的コンピュータシステムである場合も、または同じ物理的コンピュータシステム上でホストされる仮想マシンである場合もある。すべての回答は解析され、本来の実時間を含む回答は修正される。修正された回答の内部で、早められた実時間は、本来の実時間を置換する。次に、疑わしいプロセスがDGAを実行するかどうかを判定するために、疑わしいプロセスが分析される。早められた実時間を提供することによって、ドメイン名が生成されるであろう実際の時間より前に、DGAによって生成されたドメイン名が取得され得る。   [50] The exemplary systems and methods described above enable detecting malware such as DGA-execution botnets. In some embodiments, suspicious processes run on machines separate from machines that intercept and analyze external access requests and answers, and detect DGAs. The separate machines may be different physical computer systems or may be virtual machines hosted on the same physical computer system. All answers are analyzed and the answers, including the actual real time, are corrected. Within the modified answer, the accelerated real time replaces the true real time. Next, the suspicious process is analyzed to determine if the suspicious process performs DGA. By providing accelerated real time, the domain name generated by the DGA can be obtained before the actual time the domain name will be generated.

[51]いくつかの実施形態において、疑わしいプロセスは、早められた実時間を含む外部アクセスリクエストを送ることがある。この状況は、オペレーティングシステムに問い合わせることから取得された実時間を、疑わしいプロセスが照合しようと試みるときに発生することがある。調査員は、未来の時間を指し示すことによって、オペレーティングシステムによって示された実時間を変更してよい。このように、オペレーティングシステムによって示された実時間は、早められた実時間になる。通常の運用では、外部サイトからの本来の回答が、早められた実時間が正確ではないことを示す。早められた実時間が正確であることを修正された回答が示すように、本来の回答が修正される。次に、疑わしいプロセスがDGAを実行するかどうかを判定するために、疑わしいプロセスが分析される。早められた実時間を提供することによって、ドメイン名が生成されるであろう実際の時間より前に、DGAによって生成されたドメイン名が取得され得る。これにより、調査員は、DGAが未来に生成するドメイン名を判定することができる。   [51] In some embodiments, the suspicious process may send an external access request that includes the accelerated real time. This situation may occur when the suspicious process attempts to match the real time obtained from querying the operating system. The investigator may change the real time indicated by the operating system by pointing to the future time. Thus, the real time indicated by the operating system will be the advanced real time. In normal operation, the original response from the external site indicates that the real time advanced is not accurate. The original answer is corrected as the corrected answer indicates that the real time advanced is correct. Next, the suspicious process is analyzed to determine if the suspicious process performs DGA. By providing accelerated real time, the domain name generated by the DGA can be obtained before the actual time the domain name will be generated. This allows the investigator to determine the domain name that the DGA will generate in the future.

[52]いくつかの実施形態によれば、疑わしいプロセスによって送られ、実時間を含む複数の回答が受信されるとき、修正された回答のための早められた実時間を計算するために、いくつかの数学関数が使用されることがある。DGAによるドメインの生成における一定の頻度が疑われるとき、これらの様々な関数が望ましい。   [52] According to some embodiments, when multiple responses sent by the suspect process are received, including real time, how many times to calculate the advanced real time for the corrected response Some mathematical functions may be used. These various functions are desirable when certain frequencies in the generation of domains by DGA are suspected.

[53]早められた実時間を提供し、その結果、DGAの実行をトリガすることは、実行コードを逆行分析するという時間のかかる取組みに従事することなく、調査員が悪意のある挙動を検出することを可能にする。DGAによって生成されたドメインをブラックリストに載せることは、ドメイン生成アルゴリズムを使用するマルウェアがマルウェアの作成者によって活性化される前に、セキュリティアプリケーションベンダが彼らの顧客にアップデートを提供することを可能にする。DGAによって生成されたと判定されるドメインは、予め登録されてよく、登録されたドメインで受信されたリクエストに従って、ボットネットのメンバが識別されてよい。   [53] Providing accelerated real time, and thus triggering DGA execution, investigators detect malicious behavior without engaging in the time-consuming effort of reversely analyzing execution code Make it possible to Blacklisting domains generated by DGA allows security application vendors to provide updates to their customers before malware using domain generation algorithms is activated by the malware creator Do. The domain determined to be generated by the DGA may be pre-registered, and botnet members may be identified according to the request received in the registered domain.

[54]潜在的なDGAマルウェアホストの外部で、DGAの実行をインターセプトし、解析し、検出することは、潜在的なDGAマルウェアホストをリサーチツールから隔離するという利点を提供する。したがって、アンチマルウェアツールのあるところで、マルウェアがその挙動を修正するリスクが大きく低減される。加えて、このようなアプローチは、DGAマルウェアホストのOSによって示される内部の実時間の変化を必要としない。DGAマルウェアを検出するために、調査員は最適なコンピューティング環境を選んでよい。いくつかの実施形態において、疑わしいプロセスを開始することが望ましいことがある。いくつかの実施形態において、イントラネットネットワークのインターネットトラフィックを集約するルータまたはスイッチからDGAマルウェアを検出することが望ましいことがある。   [54] Intercepting, analyzing, and detecting DGA execution outside of a potential DGA malware host offers the advantage of isolating the potential DGA malware host from research tools. Thus, in the presence of anti-malware tools, the risk of malware modifying its behavior is greatly reduced. In addition, such an approach does not require internal real-time changes exhibited by the DGA malware host's OS. To detect DGA malware, investigators may choose the optimal computing environment. In some embodiments, it may be desirable to initiate a suspicious process. In some embodiments, it may be desirable to detect DGA malware from a router or switch that aggregates Internet traffic in an intranet network.

[55]本発明の範囲を逸脱することなく、上記の実施形態は、多くの方式で変更されてよいことが当業者には明らかであろう。それに応じて、本発明の範囲は、以下の特許請求の範囲およびその法的均等物によって判定されるべきである。   It will be apparent to those skilled in the art that the above embodiments may be modified in many ways, without departing from the scope of the present invention. Accordingly, the scope of the present invention should be determined by the following claims and their legal equivalents.

Claims (17)

少なくとも1つのメモリおよび少なくとも1つの関連付けられたマイクロプロセッサを含む第1のコンピュータシステムであって、前記マイクロプロセッサは、潜在的なドメイン生成アルゴリズム(DGA)マルウェアホストの外部でステップを実行するように構成され、前記ステップは、
第1の外部アクセスリクエストに対する本来の回答をインターセプトするステップであって、前記第1の外部アクセスリクエストは、前記潜在的なDGAマルウェアホストによって外部サイトに送られる、ステップと、
前記第1の外部アクセスリクエストと前記第1の外部アクセスリクエストに対する前記本来の回答とのうち少なくとも1つを解析して、前記第1の外部アクセスリクエストに対する前記本来の回答が実時間を含むかどうかを判定するステップと、
修正された回答を前記潜在的なDGAマルウェアホストに送るステップであって、前記修正された回答は、前記本来の回答に含まれる本来の実時間を、前記本来の実時間に続く早められた実時間に置換することによって、前記本来の回答から生成される、ステップと、
前記潜在的なDGAマルウェアホストによって第2の外部アクセスリクエストが送られたことに応答して、前記第2のアクセスリクエストが成功ではなかったことを示す回答をインターセプトするステップであって、前記第2の外部アクセスリクエストは、前記第1の外部アクセスリクエストが送られた後に送られる、ステップと、
前記第2のアクセスリクエストが成功ではなかったことを示す前記回答をインターセプトすることに応答して、前記潜在的なDGAマルウェアホストはドメイン生成アルゴリズムを実行するマルウェアを含むと判定するステップと
を含む、第1のコンピュータシステム。
A first computer system comprising at least one memory and at least one associated microprocessor, wherein the microprocessor is configured to perform steps outside a potential domain generation algorithm (DGA) malware host And the steps are
Intercepting the original answer to the first external access request, wherein the first external access request is sent by the potential DGA malware host to the external site;
Whether at least one of the first external access request and the original answer to the first external access request is analyzed, and the original answer to the first external access request includes a real time Determining
Sending a modified answer to the potential DGA malware host, wherein the modified answer is an actual real time included in the original answer, an advanced real time following the original real time A step generated from the original answer by substituting in time;
Intercepting a response indicating that the second access request was not successful in response to the second external access request being sent by the potential DGA malware host; External access requests are sent after the first external access request has been sent,
Determining, in response to intercepting the response indicating that the second access request was not successful, the potential DGA malware host includes malware that executes a domain generation algorithm. First computer system.
請求項1に記載の第1のコンピュータシステムであって、前記第1の外部アクセスリクエストと前記第1の外部アクセスリクエストに対する前記本来の回答とのうち少なくとも1つを解析するステップは、前記第1の外部アクセスリクエストのアドレスフィールド内の時間サーバのアドレスを識別するステップを含む、第1のコンピュータシステム。   The first computer system according to claim 1, wherein the step of analyzing at least one of the first external access request and the original reply to the first external access request comprises: Identifying the address of the time server in the address field of the external access request of the first computer system. 請求項1に記載の第1のコンピュータシステムであって、前記第1の外部アクセスリクエストと前記第1の外部アクセスリクエストに対する前記本来の回答とのうち少なくとも1つを解析するステップは、前記第1の外部アクセスリクエストに対する前記本来の回答を解析して、前記第1の外部アクセスリクエストに対する前記本来の回答の複数のフィールドから実時間フィールドを識別するステップを含む、第1のコンピュータシステム。   The first computer system according to claim 1, wherein the step of analyzing at least one of the first external access request and the original reply to the first external access request comprises: Analyzing the true response to the external access request to identify a real-time field from a plurality of fields of the true response to the first external access request. 請求項3に記載の第1のコンピュータシステムであって、前記実時間フィールドを識別するステップは、前記実時間フィールドの内容を、前記第1のコンピュータシステムによって判定された依存しない実時間の値と比較するステップを含む、第1のコンピュータシステム。   4. The first computer system according to claim 3, wherein the step of identifying the real-time field comprises: contents of the real-time field with non-dependent real-time values determined by the first computer system. A first computer system comprising the step of comparing. 請求項1に記載の第1のコンピュータシステムであって、前記潜在的なDGAマルウェアホストは、前記第1のコンピュータシステムとは物理的に別個の第2のコンピュータシステムである、第1のコンピュータシステム。   The first computer system of claim 1, wherein the potential DGA malware host is a second computer system that is physically separate from the first computer system. . 請求項1に記載の第1のコンピュータシステムであって、前記潜在的なDGAマルウェアホストは、前記第1のコンピュータシステムによってホストされる仮想マシンである、第1のコンピュータシステム。   The first computer system of claim 1, wherein the potential DGA malware host is a virtual machine hosted by the first computer system. 請求項1に記載の第1のコンピュータシステムであって、前記少なくとも1つの関連付けられたマイクロプロセッサは、前記ドメイン生成アルゴリズムによって生成されたドメイン名を判定し、前記ドメイン名に従って、前記ドメイン生成アルゴリズムを実行していることが疑われる複数のコンピュータシステムを識別するようにさらに構成される、第1のコンピュータシステム。   The first computer system of claim 1, wherein the at least one associated microprocessor determines a domain name generated by the domain generation algorithm, and the domain generation algorithm is performed according to the domain name. A first computer system, further configured to identify a plurality of computer systems suspected of being running. 請求項1に記載の第1のコンピュータシステムであって、前記少なくとも1つの関連付けられたマイクロプロセッサは、前記潜在的なDGAマルウェアホストは前記ドメイン生成アルゴリズムを実行するマルウェアを含むと判定することに応答して、前記ドメイン生成アルゴリズムによって生成されたドメイン名を、セキュリティアプリケーションのブラックリストに追加するようにさらに構成される、第1のコンピュータシステム。   The first computer system of claim 1, wherein the at least one associated microprocessor is responsive to determining that the potential DGA malware host contains malware that executes the domain generation algorithm. A first computer system, further configured to add the domain name generated by the domain generation algorithm to a blacklist of security applications. 少なくとも1つのメモリおよび少なくとも1つの関連付けられたマイクロプロセッサを含む第1のコンピュータシステムであって、前記マイクロプロセッサは、潜在的なドメイン生成アルゴリズム(DGA)マルウェアホストの外部でステップを実行するように構成され、前記ステップは、
第1の外部アクセスリクエストを解析して、前記第1の外部アクセスリクエストに対する本来の回答が、早められた実時間を含むかどうかを判定するステップであって、前記第1の外部アクセスリクエストは、潜在的なDGAマルウェアホストによって外部サイトに送られる、ステップと、
前記第1の外部アクセスリクエストに対する第1の本来の回答を解析して、前記第1の本来の回答が前記早められた実時間が正確ではないことを示す第1の情報を含むかどうかを判定するステップと、
修正された回答を前記潜在的なDGAマルウェアホストに送るステップであって、前記修正された回答は、前記第1の情報を、前記早められた実時間が正確であることを示す第2の情報に置換することによって、前記第1の本来の回答から生成される、ステップと、
第2の外部アクセスリクエストが前記潜在的なDGAマルウェアホストによって第2の外部サイトに送られることに応答して、前記第2のアクセスリクエストが成功ではなかったことを示す第2の本来の回答をインターセプトするステップと、
前記第2の回答をインターセプトすることに応答して、前記潜在的なDGAマルウェアホストはドメイン生成アルゴリズムを実行するマルウェアを含むと判定するステップと
を含む、第1のコンピュータシステム。
A first computer system comprising at least one memory and at least one associated microprocessor, wherein the microprocessor is configured to perform steps outside a potential domain generation algorithm (DGA) malware host And the steps are
Analyzing the first external access request to determine whether the original answer to the first external access request includes an advanced real time, wherein the first external access request is: Sent to an external site by a potential DGA malware host, and
The first original answer to the first external access request is analyzed to determine whether the first original answer includes first information indicating that the advanced real time is not accurate. Step to
Sending a modified answer to the potential DGA malware host, wherein the modified answer indicates the first information is a second information indicating that the advanced real time is correct Generating from the first true answer by replacing
In response to a second external access request being sent by the potential DGA malware host to a second external site, a second true reply indicating that the second access request was not successful The step of intercepting
And, in response to intercepting the second answer, determining that the potential DGA malware host includes malware that executes a domain generation algorithm.
命令を記憶した非一時的コンピュータ可読媒体であって、前記命令は、実行されると、第1のコンピュータシステムの少なくとも1つのメモリおよび少なくとも1つの関連付けられたマイクロプロセッサを、潜在的なドメイン生成アルゴリズム(DGA)マルウェアホストの外部でステップを実行するように構成し、前記ステップは、
第1の外部アクセスリクエストに対する本来の回答をインターセプトするステップであって、前記第1の外部アクセスリクエストは、潜在的なDGAマルウェアホストによって外部サイトに送られる、ステップと、
前記第1の外部アクセスリクエストと前記第1の外部アクセスリクエストに対する前記本来の回答とのうち少なくとも1つを解析して、前記第1の外部アクセスリクエストに対する前記本来の回答が実時間を含むかどうかを判定するステップと、
修正された回答を前記潜在的なDGAマルウェアホストに送るステップであって、前記修正された回答は、前記本来の回答に含まれる本来の実時間を、前記本来の実時間に続く早められた実時間に置換することによって、前記本来の回答から生成される、ステップと、
前記潜在的なDGAマルウェアホストによって第2の外部アクセスリクエストが送られたことに応答して、前記第2のアクセスリクエストが成功ではなかったことを示す回答をインターセプトするステップであって、前記第2の外部アクセスリクエストは、前記第1の外部アクセスリクエストが送られた後に送られる、ステップと、
前記第2のアクセスリクエストが成功ではなかったことを示す前記回答をインターセプトすることに応答して、前記潜在的なDGAマルウェアホストはドメイン生成アルゴリズムを実行するマルウェアを含むと判定するステップと
を含む、非一時的コンピュータ可読媒体。
A non-transitory computer readable medium having instructions stored thereon, wherein the instructions when executed execute at least one memory of the first computer system and at least one associated microprocessor, a potential domain generation algorithm (DGA) configure the step to run outside the malware host, said step
Intercepting the original answer to the first external access request, wherein the first external access request is sent by the potential DGA malware host to the external site,
Whether at least one of the first external access request and the original answer to the first external access request is analyzed, and the original answer to the first external access request includes a real time Determining
Sending a modified answer to the potential DGA malware host, wherein the modified answer is an actual real time included in the original answer, an advanced real time following the original real time A step generated from the original answer by substituting in time;
Intercepting a response indicating that the second access request was not successful in response to the second external access request being sent by the potential DGA malware host; External access requests are sent after the first external access request has been sent,
Determining, in response to intercepting the response indicating that the second access request was not successful, the potential DGA malware host includes malware that executes a domain generation algorithm. Non-transitory computer readable medium.
請求項10に記載の非一時的コンピュータ可読媒体であって、前記第1の外部アクセスリクエストと前記第1の外部アクセスリクエストに対する前記本来の回答とのうち少なくとも1つを解析するステップは、前記第1の外部アクセスリクエストのアドレスフィールド内の時間サーバのアドレスを識別するステップを含む、非一時的コンピュータ可読媒体。   The non-transitory computer readable medium according to claim 10, wherein the step of analyzing at least one of the first external access request and the original answer to the first external access request comprises: Non-transitory computer readable medium comprising the step of identifying the address of a time server in the address field of one external access request. 請求項10に記載の非一時的コンピュータ可読媒体であって、前記第1の外部アクセスリクエストと前記第1の外部アクセスリクエストに対する前記本来の回答とのうち少なくとも1つを解析するステップは、前記第1の外部アクセスリクエストに対する前記本来の回答を解析して、前記第1の外部アクセスリクエストに対する前記本来の回答の複数のフィールドから実時間フィールドを識別するステップを含む、非一時的コンピュータ可読媒体。   The non-transitory computer readable medium according to claim 10, wherein the step of analyzing at least one of the first external access request and the original answer to the first external access request comprises: A non-transitory computer readable medium comprising analyzing the true response to an external access request and identifying a real time field from a plurality of fields of the true response to the first external access request. 請求項12に記載の非一時的コンピュータ可読媒体であって、前記実時間フィールドを識別するステップは、前記実時間フィールドの内容を、前記第1のコンピュータシステムによって判定された依存しない実時間の値と比較するステップを含む、非一時的コンピュータ可読媒体。   The non-transitory computer readable medium according to claim 12, wherein the step of identifying the real-time field comprises determining the content of the real-time field as a non-dependent real-time value determined by the first computer system. Non-transitory computer readable medium, comprising the steps of: 請求項10に記載の非一時的コンピュータ可読媒体であって、前記潜在的なDGAマルウェアホストは、前記第1のコンピュータシステムとは物理的に別個の第2のコンピュータシステムである、非一時的コンピュータ可読媒体。   The non-transitory computer readable medium according to claim 10, wherein the potential DGA malware host is a second computer system that is physically separate from the first computer system. Readable medium. 請求項10に記載の非一時的コンピュータ可読媒体であって、前記潜在的なDGAマルウェアホストは、前記第1のコンピュータシステムによってホストされる仮想マシンである、非一時的コンピュータ可読媒体。   The non-transitory computer readable medium according to claim 10, wherein the potential DGA malware host is a virtual machine hosted by the first computer system. 請求項10に記載の非一時的コンピュータ可読媒体であって、前記少なくとも1つの関連付けられたマイクロプロセッサは、前記ドメイン生成アルゴリズムによって生成されたドメイン名を判定し、前記ドメイン名に従って、前記ドメイン生成アルゴリズムを実行していることが疑われる複数のコンピュータシステムを識別するようにさらに構成される、非一時的コンピュータ可読媒体。   The non-transitory computer readable medium according to claim 10, wherein the at least one associated microprocessor determines a domain name generated by the domain generation algorithm, and the domain generation algorithm according to the domain name. A non-transitory computer readable medium further configured to identify a plurality of computer systems suspected of being running. 請求項10に記載の非一時的コンピュータ可読媒体であって、前記少なくとも1つの関連付けられたマイクロプロセッサは、前記潜在的なDGAマルウェアホストは前記ドメイン生成アルゴリズムを実行するマルウェアを含むと判定することに応答して、前記ドメイン生成アルゴリズムによって生成されたドメイン名を、セキュリティアプリケーションのブラックリストに追加するようにさらに構成される、非一時的コンピュータ可読媒体。   The non-transitory computer readable medium according to claim 10, wherein the at least one associated microprocessor determines that the potential DGA malware host contains malware that executes the domain generation algorithm. A non-transitory computer readable medium further configured to, in response, add the domain name generated by the domain generation algorithm to the security application blacklist.
JP2018521861A 2015-11-04 2016-11-02 System and method for detecting domain generation algorithm (DGA) malware Active JP6726429B2 (en)

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
JP2018533793A true JP2018533793A (en) 2018-11-15
JP6726429B2 JP6726429B2 (en) 2020-07-22

Family

ID=57286460

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018521861A Active JP6726429B2 (en) 2015-11-04 2016-11-02 System and method for detecting domain generation algorithm (DGA) malware

Country Status (13)

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

Families Citing this family (9)

* 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
KR102265955B1 (en) * 2019-12-18 2021-06-16 주식회사 쏘마 Malware detecting method and domain generation algorithm detecting method for preventing execution of malware
KR102638308B1 (en) * 2021-12-21 2024-02-20 주식회사 윈스 Automatic DDoS detection method and apparatus through DNS traffic analysis
US11582247B1 (en) * 2022-04-19 2023-02-14 Palo Alto Networks, Inc. Method and system for providing DNS security using process information

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07175734A (en) * 1993-12-20 1995-07-14 Ricoh Co Ltd Local area network
US20120304244A1 (en) * 2011-05-24 2012-11-29 Palo Alto Networks, Inc. Malware analysis system
US20120303808A1 (en) * 2011-05-24 2012-11-29 Palo Alto Networks, Inc. Using dns communications to filter domain names
US20140310811A1 (en) * 2013-04-11 2014-10-16 F-Secure Corporation Detecting and Marking Client Devices

Family Cites Families (15)

* 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
DE10014522C2 (en) * 2000-03-23 2003-08-21 Siemens Ag Procedure and arrangement for the admissibility check of a service use
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
US8260914B1 (en) * 2010-06-22 2012-09-04 Narus, Inc. Detecting DNS fast-flux anomalies
US8516585B2 (en) 2010-10-01 2013-08-20 Alcatel Lucent System and method for detection of domain-flux botnets and the like
RU103643U1 (en) * 2010-11-01 2011-04-20 Закрытое акционерное общество "Лаборатория Касперского" ANTI-PHISH ATTACK SYSTEM
US8763117B2 (en) 2012-03-02 2014-06-24 Cox Communications, Inc. Systems and methods of DNS grey listing
CN102833337B (en) * 2012-08-30 2016-03-02 北京星网锐捷网络技术有限公司 A kind of ftp file is uploaded, method for down loading and device
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 (en) * 2013-11-29 2017-11-10 哈尔滨工业大学(威海) The front-end control method and system of name server
CN104580185B (en) * 2014-12-30 2017-12-01 北京工业大学 A kind of method and system of NS software

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07175734A (en) * 1993-12-20 1995-07-14 Ricoh Co Ltd Local area network
US20120304244A1 (en) * 2011-05-24 2012-11-29 Palo Alto Networks, Inc. Malware analysis system
US20120303808A1 (en) * 2011-05-24 2012-11-29 Palo Alto Networks, Inc. Using dns communications to filter domain names
CN103842965A (en) * 2011-05-24 2014-06-04 帕洛阿尔托网络公司 Malware analysis system
JP2014519113A (en) * 2011-05-24 2014-08-07 パロ・アルト・ネットワークス・インコーポレーテッド Malware analysis system
JP2014519751A (en) * 2011-05-24 2014-08-14 パロ・アルト・ネットワークス・インコーポレーテッド Using DNS communication to filter domain names
US20140310811A1 (en) * 2013-04-11 2014-10-16 F-Secure Corporation Detecting and Marking Client Devices

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
福田 鉄平: "DGAの時間的局所性を用いたボットネット検知手法の実装と評価", 電子情報通信学会技術研究報告 VOL.114 NO.489, vol. 第114巻, JPN6020012192, 24 February 2015 (2015-02-24), JP, pages 19 - 24, ISSN: 0004244986 *

Also Published As

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

Similar Documents

Publication Publication Date Title
JP6726429B2 (en) System and method for detecting domain generation algorithm (DGA) malware
EP3430557B1 (en) System and method for reverse command shell detection
Rastogi et al. Are these Ads Safe: Detecting Hidden Attacks through the Mobile App-Web Interfaces.
Nikiforakis et al. You are what you include: large-scale evaluation of remote javascript inclusions
Lu et al. Blade: an attack-agnostic approach for preventing drive-by malware infections
US9135443B2 (en) Identifying malicious threads
Black et al. A survey of similarities in banking malware behaviours
US20150172305A1 (en) Systems and methods for incubating malware in a virtual organization
RU2697950C2 (en) System and method of detecting latent behaviour of browser extension
US20140223566A1 (en) System and method for automatic generation of heuristic algorithms for malicious object identification
Kedrowitsch et al. A first look: Using linux containers for deceptive honeypots
US11416613B2 (en) Attack detection through exposure of command abuse
Shao et al. Understanding in-app ads and detecting hidden attacks through the mobile app-web interface
Tanabe et al. Evasive malware via identifier implanting
Musch et al. Server-Side Browsers: Exploring the Web's Hidden Attack Surface
EP3999985A1 (en) Inline malware detection
Takata et al. MineSpider: Extracting hidden URLs behind evasive drive-by download attacks
Kaur et al. UAC: A Lightweight and Scalable Approach to Detect Malicious Web Pages
EP3522057B1 (en) System and method of detecting hidden behavior of a browser extension
US20220245249A1 (en) Specific file detection baked into machine learning pipelines
Wu et al. Detection of Android Malware Behavior in Browser Downloads
Hovmark et al. Towards Extending Probabilistic Attack Graphs with Forensic Evidence: An investigation of property list files in macOS
Hsu et al. A Cloud-based Protection approach against JavaScript-based attacks to browsers
RU2673407C1 (en) System and method for identifying malicious files
Al Shamsi Mapping, Exploration, and Detection Strategies for Malware Universe

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190521

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200331

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200327

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200508

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200601

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200624

R150 Certificate of patent or registration of utility model

Ref document number: 6726429

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250