JP6758581B2 - 悪意のあるコードの検出のためのシステムおよび方法 - Google Patents

悪意のあるコードの検出のためのシステムおよび方法 Download PDF

Info

Publication number
JP6758581B2
JP6758581B2 JP2017546273A JP2017546273A JP6758581B2 JP 6758581 B2 JP6758581 B2 JP 6758581B2 JP 2017546273 A JP2017546273 A JP 2017546273A JP 2017546273 A JP2017546273 A JP 2017546273A JP 6758581 B2 JP6758581 B2 JP 6758581B2
Authority
JP
Japan
Prior art keywords
network
malicious
connection
analysis
network connection
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.)
Active
Application number
JP2017546273A
Other languages
English (en)
Other versions
JP2017539039A (ja
JP2017539039A5 (ja
Inventor
ロイ カトモール
ロイ カトモール
トメール ビットン
トメール ビットン
ウディ ヤーヴォ
ウディ ヤーヴォ
イド ケルソン
イド ケルソン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fortinet Inc
Original Assignee
Fortinet Inc
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 Fortinet Inc filed Critical Fortinet Inc
Publication of JP2017539039A publication Critical patent/JP2017539039A/ja
Publication of JP2017539039A5 publication Critical patent/JP2017539039A5/ja
Application granted granted Critical
Publication of JP6758581B2 publication Critical patent/JP6758581B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0263Rule management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • General Business, Economics & Management (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、そのいくつかの実施形態において、悪意のある接続の検出のためのシステムおよび方法に関し、より詳細には、限定ではないが、悪意のあるアクティビティおよび/または通信のためのネットワーク接続を利用する悪意のあるコードの検出のためのシステムおよび方法に関する。
いくつかのタイプの悪意のあるコードはコンピュータを攻撃し、ネットワーク接続により他のサーバに接続するためにホストコンピュータを使用する。1つの例では、ネットワーク接続は、例えば、盗んだデータをリモートサーバに送るために悪意のあるコード自体によって開始される。別の例では、マルウェアが正当なアプリケーションにコードを注入し、次いで、注入されたコードが、盗んだデータを送信するためにリモートサーバへの接続を開始する。
あるタイプの悪意のある攻撃の1つの例は高度な標的型攻撃(ATA)であり、それは、権限を与えられていない当事者がネットワークにアクセスし、長い期間の間検出されないままである巧妙な攻撃である。ほとんどのATAの意図は、ネットワークに損傷を引き起こすのではなくデータを盗むことである。ATAは、クレジットカードプロセッサ、政府機関、および金融サービス業などの高い価値の情報を持つ産業部門の組織を標的にする。
アンチATA解決策の例は、侵入された悪意のあるコードの攻撃の検出または侵入された悪意のあるコードの検出に基づく。別の例では、他のツールが、動作中に異常なまたは悪意のあるアクティビティを検出するように設計される。
本発明のいくつかの実施形態の態様によれば、悪意のある通信のためのネットワーク接続の確立の試みの検出および防止のためのコンピュータ実施方法が提供され、この方法には、ネットワーク接続の確立のための接続確立プロセスを検出することであり、接続確立プロセスが、クライアント端末で動作するコードによって開始される、接続確立プロセスを検出することと、悪意のある通信を確立する試行を検出するために、クライアント端末で管理される開始するコードの少なくとも1つのスタックトレース内の記録を解析することであり、ネットワーク接続が悪意のあるアクティビティで使用される、記録を解析することと、解析がネットワーク接続に基づいて悪意のある通信を確立する試行を検出したときネットワーク接続の確立をブロックすることとが含まれる。
任意選択で、記録を解析することが、少なくとも1つのスタックトレースと、接続確立に関連するスレッドデータ、モジュールデータ、およびプロセスデータからなる群の少なくとも1つのメンバとを含むフローデータを解析することを含む。
任意選択で、方法は、各々のそれぞれのクライアントにおいて、少なくとも1つのスタックトレースに関連するデータ、および/またはフローデータを集めることと、各々のそれぞれのクライアントから中央サーバに少なくとも1つのスタックトレースに関連するデータを送信することとをさらに含み、解析することが中央サーバによって実行される。任意選択で、少なくとも1つのスタックトレースに関連するデータは、動的なコードを含む。
任意選択で、方法は、ネットワーク接続に基づいて悪意のある通信を確立する試行が検出されないとき、接続確立プロセスに、ネットワーク接続のアクティブ化を許可することをさらに含む。
任意選択で、解析は、ネットワーク接続のアクティブ化の前に実行される。
任意選択で、解析は、ネットワーク接続がアクティブ化されたときの開始アプリケーションによる悪意のあるアクティビティおよび/または通信関連データの転送の前に実行される。
任意選択で、少なくとも1つのスタックトレースが、接続確立プロセスの開始のためのインターネットプロトコル群の伝送制御プロトコル(TCP)に従って実行される接続確立中に収集される。
任意選択で、方法は、検出することの後に接続確立プロセスを停止することをさらに含む。
任意選択で、少なくとも1つのスタックトレースおよび/またはフローデータが、接続確立プロセスの開始時に得られる。
任意選択で、少なくとも1つのスタックトレースが、接続確立プロセスの間に多数のポイントで得られた多数のスタックトレースの少なくとも1つのシーケンスを含み、前記解析することが、悪意のある通信を確立する試行を表すフローデータ解析に多数のスタックトレースを突き合わせることを含む。
任意選択で、解析することが、開始アプリケーションの感染を表す、未知のモジュールおよびブラックリストもしくはホワイトリストに載ったモジュールの少なくとも一方のための少なくとも1つのスタックトレースの記録を解析することを含む。
任意選択で、解析することが、解析を実行する中央サーバにおいて有効なものとして指定された感染していないアプリケーションによって使用される接続確立フローデータ解析のための少なくとも1つのスタックトレースを解析することを含む。
任意選択で、解析することは、アプリケーションが、悪意のあるアクティビティ/通信を確立する試行を開始する注入されたコードに感染していない場合にアプリケーションによって生成されると予想される接続確立スタックフローデータ解析との少なくとも1つのスタックトレースの比較を含む。
本発明のいくつかの実施形態の一態様によれば、悪意のある通信のためのネットワーク接続の確立の試みの検出のためのシステムが提供され、システムには、少なくとも1つのゲートウェイであり、ネットワークベースサーバとのネットワーク接続を確立するための接続確立プロセスの間クライアント端末で動作するコードの少なくとも1つのスタックトレースを受信することと、悪意のある通信を確立する試行の有無を決定するために少なくとも1つのスタックトレース内の記録を解析することであり、ネットワーク接続が悪意のあるアクティビティで使用される、記録を解析することと、記録が悪意のあるフローデータ解析と突き合わされるとき悪意のある通信のためのネットワーク接続の確立の試みを検出することと、ネットワーク接続を使用して悪意のある通信を確立する試行を表す信号を生成することとを行うように構成された少なくとも1つのゲートウェイが含まれる。
任意選択で、受信することが、少なくとも1つのフローデータを受信することを含み、記録を解析することが、少なくとも1つのスタックトレースと、接続確立に関連するスレッドデータ、モジュールデータ、およびプロセスデータからなる群の少なくとも1つのメンバとを含むフローデータを解析することを含む。
任意選択で、少なくとも1つのゲートウェイが、ネットワークを通じてクライアント端末と通信するリモートサーバに常駐する。
任意選択で、少なくとも1つのゲートウェイが、クライアント端末に常駐するソフトウェアモジュールである。
任意選択で、少なくとも1つのゲートウェイがプロキシサーバである。
任意選択で、システムには、クライアント端末へのインストールのためのエンドポイントモジュールであり、コードによるネットワーク接続の確立の開始を検出し、少なくとも1つのスタックトレースおよび/またはフローデータをゲートウェイに送信し、ゲートウェイからの信号を受信し、受信した信号に基づいてネットワーク接続のアクティブ化を防止するために接続確立プロセスをブロックするように構成された、エンドポイントモジュールがさらに含まれる。
任意選択で、少なくとも1つのゲートウェイが、受信した信号に基づいてネットワーク接続のアクティブ化を防止するようにさらに構成される。
任意選択で、システムには、少なくとも1つのゲートウェイと通信する管理サーバであり、各クライアントに関連する各ネットワーク接続要求に対して少なくとも1つのゲートウェイによって生成された信号を収集するように構成された、管理サーバがさらに含まれる。任意選択で、管理サーバは、生成された信号を再調査すること、生成された信号を管理すること、少なくとも1つのゲートウェイの構成を一元的に制御すること、少なくとも1つのゲートウェイと通信する少なくとも1つのクライアント端末の構成を一元的に制御すること、少なくとも1つのゲートウェイの状態をモニタすること、および少なくとも1つのゲートウェイと通信する少なくとも1つのクライアント端末の状態をモニタすることからなる群の少なくとも1つのメンバをユーザが実行できるようにするように構成されたユーザインタフェースをさらに含む。
任意選択で、クライアント端末で動作するアプリケーションがウェブブラウザである。
任意選択で、接続確立プロセスが、ネットワーク接続のためのローカルエンドポイントを表すアプリケーションプログラミングインタフェースによって管理される。
任意選択で、クライアント端末で動作するアプリケーションがハイパーバイザの一部である。
任意選択で、クライアント端末で動作するアプリケーションが、権限を与えられていない悪意のあるアプリケーションである。
任意選択で、システムが、他のクライアント端末からの類似したスタックフローデータ解析を識別するために、悪意のある通信のためのネットワーク接続の確立の識別された試みに関連づけられるスタックフローデータ解析で少なくとも1つのゲートウェイを更新することをさらに含む。
任意選択で、少なくとも1つのゲートウェイが、ネットワーク接続がアクティブであるときアプリケーションの少なくとも1つのスタックトレースを受信し、接続確立後のアクティブなネットワーク接続を使用する悪意のあるアクティビティをモニタするために少なくとも1つのスタックトレース内の記録を解析するようさらに構成される。
任意選択で、少なくとも1つのゲートウェイが、複数のクライアントの各々から複数の少なくとも1つのフローデータを受信し、組織的攻撃を検出するために複数の少なくとも1つのフローデータを解析するようにさらに構成される。
本発明のいくつかの実施形態の一態様によれば、悪意のあるアクティビティのためのネットワーク接続の確立の試みの検出のためのコンピュータプログラム製品が提供され、コンピュータプログラム製品が、1つまたは複数の非一時的コンピュータ可読記憶媒体と、1つまたは複数の記憶媒体のうちの少なくとも1つに格納されたプログラム命令とを含み、プログラム命令には、ネットワーク接続の確立のための接続確立プロセスを検出するためのプログラム命令であり、接続確立プロセスが、クライアント端末で動作するコードによって開始される、接続確立プロセスを検出するためのプログラム命令と、悪意のある通信を確立する試行を検出するために、クライアント端末で管理される開始するコードの少なくとも1つのスタックトレース内の記録を解析するためのプログラム命令であり、ネットワーク接続が悪意のあるアクティビティで使用される、記録を解析するためのプログラム命令と、解析が、ネットワーク接続に基づいて悪意のある通信を確立する試行を検出したときネットワーク接続の確立をブロックするためのプログラム命令とが含まれる。
特に定義されない限り、本明細書で使用される技術用語および/または科学用語はすべて本発明が属する技術分野の当業者によって一般に理解されるのと同じ意味を有する。本明細書で説明する方法および材料と同様のまたは同等の方法および材料を本発明の実施形態の実施または試験で使用することができるが、例示的な方法および/または材料を以下で説明する。矛盾する場合、定義を含む特許明細書が統制することになる。加えて、材料、方法および例は、例示にすぎず、必ずしも限定することを意図していない。
本発明のいくつかの実施形態が、添付図面を参照しながら、単なる例として、本明細書で説明される。次に図面を詳細に具体的に参照すると、図示の詳細は、例としてのものであり、本発明の実施形態の例示的な議論のためのものであることが強調される。この点に関して、図面とともに行われる説明は、本発明の実施形態をどのように実践できるかを当業者に明らかにする。
本発明のいくつかの実施形態による、防止がゲートウェイで行われるネットワーク接続の悪意のあるアクティビティの検出のためのコンピュータ実施方法の図である。 本発明のいくつかの実施形態による、防止がクライアントで行われるネットワーク接続の悪意のあるアクティビティの検出のためのコンピュータ実施方法の図である。 本発明のいくつかの実施形態による、ネットワーク接続の悪意のあるアクティビティの検出およびブロッキングのためのシステムのブロック図である。 本発明のいくつかの実施形態による、コールスタックの例の図である。 本発明のいくつかの実施形態による、コールスタックの例の図である。 本発明のいくつかの実施形態による、スタックデータを収集するコンピュータ化された方法のフローチャートの図である。 本発明のいくつかの実施形態による、スレッド関連フローデータを収集するコンピュータ化された方法のフローチャートの図である。 本発明のいくつかの実施形態による、プロセス関連フローデータを収集するコンピュータ化された方法のフローチャートの図である。 本発明のいくつかの実施形態による、モジュール関連フローデータを収集するコンピュータ化された方法のフローチャートの図である。
本発明は、そのいくつかの実施形態において、悪意のある接続の検出および防止のためのシステムおよび方法に関し、より詳細には、限定ではないが、悪意のあるアクティビティおよび/または通信のためのネットワーク接続を利用する悪意のあるコードの検出のためのシステムおよび方法に関する。
本発明のいくつかの実施形態の一態様は、悪意のあるアクティビティ/通信のためのネットワーク接続の確立の試みの検出のためのシステムおよび/または方法に関する。クライアント端末での接続確立は、多数の接続されたクライアントの各々が、接続確立プロセスに関連する1つまたは複数のローカルコールスタックを表すデータおよび任意選択のオペレーティングシステムデータをゲートウェイサーバに解析のために送信することに基づいて、中央ゲートウェイでモニタされる。関連するプロセス、モジュール解析データ、クライアント端末における動的に生成されたコードおよび/またはスレッド相互作用のうちの1つまたは複数によって任意選択でエンリッチされた接続確立コールスタックが、悪意のあるコードを識別するためにモニタおよび/または解析される。本明細書で説明するフローデータという用語は、クライアント端末で収集される説明したデータを意味し、それは、コールスタックデータ、および任意選択で、プロセスデータ、モジュール解析データ、および/またはスレッドデータのうちの1つまたは複数を含む。
接続確立プロセスに関連する悪意のあるアクティビティを識別した際、接続確立プロセスは停止および/または終了する。ネットワーク接続は確立するのを防止される。リモートサーバとローカルな悪意のあるエージェントとの間のネットワーク接続によるデータ送信は防止される。このようにして、ネットワークを通じた悪意のあるデータ送信は、悪意のあるエージェントがネットワーク接続を使用して、損傷を引き起こす、例えば、リモートサーバからデータを盗む、または盗んだデータをローカルクライアントからリモートサーバに送信できるようになる前に、停止される。アクティブネットワーク接続が確立された場合に、ネットワーク接続は、悪意のあるアクティビティの出現に対してモニタされる。悪意のあるアクティビティが識別されると、アクティブ接続を遮断またブロックすることができる。
悪意のあるコードに感染したアプリケーション、または悪意のあるコードアプリケーション自体が、ネットワーク接続の確立を、例えば、オペレーティングシステムのインタフェースプログラム(例えば、ソケット)によって開始することがある。悪意のある通信のための接続確立アクティビティは、ネットワーク接続のファイナライズされたセットアップがローカルアプリケーションへのおよび/またはローカルアプリケーションからのデータ送信を行う前に識別される。開始アプリケーションに関連するフローデータは、確立要求の検出、確立開始の際、および/または接続確立プロセス自体の間に、例えば、インターネットプロトコル(IP)群の伝送制御プロトコル(TCP)のマルチステップハンドシェイクプロセスの前および/またはその間に、解析することができる。
本発明の少なくとも1つの実施形態を詳細に説明する前に、本発明は、その適用において、以下の説明に記載され、および/または図面および/または実施例に示される構成要素および/または方法の構築および配列の詳細に必ずしも限定されないことを理解されたい。本発明は、他の実施形態が可能であり、または様々な方法で実践もしくは実行することが可能である。
本発明は、システム、方法、および/またはコンピュータプログラム製品とすることができる。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有する1つのコンピュータ可読記憶媒体(または複数の媒体)を含むことができる。
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持し格納することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、限定はしないが、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、磁気記憶デバイス、半導体記憶デバイス、または前述のものの任意の好適な組合せとすることができる。コンピュータ可読記憶媒体のより具体的な例の包括的でないリストは、以下のものを含む。ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、消去可能プログラマブル読取り専用メモリ(EPROMまたはフラッシュメモリ)、静的ランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスク読取り専用メモリ(CD−ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピーディスク、および前述のものの任意の好適な組合せ。本明細書で使用するコンピュータ可読記憶媒体は、電波または他の自由に伝播する電磁波、導波路または他の伝送媒体を通って伝搬する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを通して伝送される電気信号などの一時的な信号自体であると解釈されるべきでない。
本明細書で説明するコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、またはネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、および/またはワイヤレスネットワークを介して外部コンピュータもしくは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、および/またはエッジサーバを含むことができる。各コンピューティング/処理デバイスのネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に格納するためにコンピュータ可読プログラム命令を転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはSmalltalk、C++などのようなオブジェクト指向プログラミング言語および「C」プログラミング言語もしくは類似したプログラミング言語などの従来の手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで書かれたソースコードもしくはオブジェクトコードのいずれかとすることができる。コンピュータ可読プログラム命令は、ユーザコンピュータで全面的に、ユーザコンピュータで部分的に、スタンドアロンソフトウェアパッケージとして、ユーザコンピュータで部分的におよびリモートコンピュータで部分的に、またはリモートコンピュータもしくはサーバで全面的に実行することができる。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークによってユーザコンピュータに接続されてもよく、または外部コンピュータへの接続がなされてもよい(例えばインターネットサービスプロバイダーを使用するインターネットを通して)。いくつかの実施形態では、例えば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行して、電子回路を個人専用にすることができる。
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータプログラム製品のフローチャート図および/またはブロック図を参照して本明細書で説明される。フローチャート図および/またはブロック図の各ブロック、およびフローチャート図および/またはブロック図のブロックの組合せは、コンピュータ可読プログラム命令によって実装できることを理解されよう。
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、または機械を生み出す他のプログラマブルデータ処理装置のプロセッサに供給して、その結果、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行する命令は、フローチャートおよび/またはブロック図の1つまたは複数のブロックにおいて特定された機能/動作を実施するための手段を作り出すことができる。これらのコンピュータ可読プログラム命令は、さらに、コンピュータ、プログラマブルデータ処理装置、および/または他のデバイスに、特定な方法で機能するように指示することができるコンピュータ可読記憶媒体に格納することができ、その結果、命令が中に格納されたコンピュータ可読記憶媒体は、フローチャートおよび/またはブロック図の1つまたは複数のブロックにおいて特定された機能/動作の態様を実施する命令を含む製品を含む。
コンピュータ可読プログラム命令を、さらに、コンピュータ、他のプログラマブルデータ処理装置、または他のデバイスにロードして、一連の動作ステップをコンピュータ、他のプログラマブル装置、または他のデバイスに実行させ、それによって、コンピュータ実施プロセスを発生し、その結果、コンピュータ、他のプログラマブル装置、または他のデバイスで実行する命令は、フローチャートおよび/またはブロック図の1つまたは複数のブロックにおいて特定された機能/動作を実施する。
図のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータプログラム製品のあり得る実施態様のアーキテクチャ、機能、および動作を示す。この点に関して、フローチャートまたはブロック図の各ブロックは、特定の論理機能を実装するための1つまたは複数の実行可能命令を含む命令のモジュール、セグメント、または一部分を表すことができる。いくつかの代替実施態様では、ブロックに記された機能は、図に記された順序から外れて行われることがある。例えば、連続して示された2つのブロックは、関係する機能に応じて、実際には実質的に同時に実行されることがあり、またはブロックは時には逆の順序で実行されることがある。ブロック図および/またはフローチャート図の各ブロック、およびブロック図および/またはフローチャート図のブロックの組合せは、特定の機能もしくは動作を実行するかまたは専用ハードウェアとコンピュータ命令との組合せを実行する専用ハードウェアベースシステムによって実装されてもよいことにも留意されたい。
本明細書で定義する接続確立という用語は、特定のアプリケーションがネットワーク接続を通じてデータを送信および/または受信できるようになる前に行われるコンピュータ化されたプロセスを意味する。接続確立プロセスは、特定のアプリケーションから開始コマンドを受信するアプリケーションプログラミングインタフェースによって管理および/または実行し、接続を確立し、確立された接続通じて送信するために特定のアプリケーションからデータを受信し、および/または確立された接続を通じて受信した特定のアプリケーションにデータを送信することができる。
次に、本発明のいくつかの実施形態による、防止がゲートウェイで行われる場合の悪意のあるアクティビティおよび/または通信のためのネットワーク接続の検出のためのコンピュータ実施方法のフローチャートである図1Aを参照する。本発明のいくつかの実施形態による、悪意のある通信のためのネットワーク接続の検出および防止のためのシステムである図2をさらに参照する。図2を参照して説明するシステムは、図1Aを参照して説明する方法を実行することができる。システムおよび/または方法は、悪意のあるアクティビティおよび/または悪意のあるエージェントに関連づけられる通信のためのネットワーク接続の確立の試みを検出し、悪意のあるエージェントがデータ送信および/または受信に基づいて悪意のあるアクティビティのためにネットワーク接続を利用できるようになる前に接続確立プロセスを停止しおよび/または早期に終了する。このようにして、ネットワーク接続を通じて悪意のあるエージェントによって実行されるリモートコマンドが防止される。例えば、悪意のあるエージェントの制御下でネットワーク接続を通じてデータを送信することによるデータ(例えば、バンキング詳細、クレジットカード番号、財務詳細、軍事情報、秘密情報、および機密情報)の盗難が防止される。別の例では、悪意のあるエージェントによるネットワーク接続によってリモートコンピュータのデータの変更および/または消去が防止される。さらなる別の例では、悪意のあるエージェントは、追加の命令を得るためにリモートサーバにアクセスすることができない。
コンピュータ(例えば、クライアントおよび/またはサーバ)が悪意のあるエージェントに感染したとき、システムおよび/または方法は、悪意のあるエージェントがネットワーク接続を通じて悪意のあるアクティビティを実行しないようにする。システムおよび/または方法は追加のセキュリティのレベルを用意し、未検出および/または未知の悪意のあるエージェントに既に感染したコンピュータが、ネットワーク接続を使用するアクティビティに基づいて、他のリモートコンピュータおよび/またはローカルコンピュータ自体に損傷を引き起こさないようにする。
システムおよび/または方法は、ネットワーク接続を確立するためのセキュリティ手段をバイパスすることがあるオペレーティングシステムの権利で動作する悪意のあるエージェント、例えば、ハイパーバイザの悪意のあるコードを検出することができる。そのような悪意のあるエージェントは、オペレーティングシステム機能を使用することなく、および/またはエンドポイントモジュールをディスエーブルおよび/またはバイパスすることによって、接続を確立しようと試みることがある。これらの試みは、ゲートウェイによってモニタされた接続確立要求がエンドポイントモジュールによってエンリッチおよび/または署名されないのでゲートウェイによってブロックされる。
悪意のあるエージェントに関連づけられたネットワーク接続を設定しようとする試みを検出すると、普通なら識別することが困難である、および/または普通なら損傷が既に生じた後に識別される悪意のあるエージェントおよび/または悪意のあるアクティビティを識別することが可能になる。例えば、いくつかの悪意のあるエージェントは、アイドル時には検出が困難であるかまたは検出できず、アクティブ時にのみ検出される。そのような場合、システムおよび/または方法は、ネットワーク接続を通じて損傷を受ける前に、悪意のあるアクティビティを接続確立プロセスの一部として検出する。
システムおよび/または方法は、権限を与えられていないコードの実行(すなわち、攻撃者が、悪意のあるコードを実行するためにアプリケーションを支配する)に基づく悪意のあるアクティビティおよび/または通信のためのネットワーク接続の確立の試みを、ネットワーク接続によって損傷が生じる前に識別することができる。そのような権限を与えられていないコードの実行は、普通なら、損傷を受ける前に検出することが困難であり得る。
悪意のあるアクティビティおよび/または通信のためのネットワーク接続の確立の試みは、特定の感染性の悪意のあるコードエージェントを必ずしも識別することなく検出され停止され得る。このように、未知の悪意のあるエージェントが、悪意のあるアクティビティを実行するためにネットワーク接続にアクセスしないようにすることができる。
任意選択で、悪意のある活動および/または通信のための接続を検出するためのシステムおよび/または方法は、例えば、システム200内にインストールされる。
システム200は、少なくとも1つのクライアント202、例えばラップトップ、デスクトップ、モバイルデバイス(例えば、スマートフォン、タブレット)、および/またはサーバを含む。クライアント202は、クライアント202からのおよび/またはクライアント202へのデータ送信のための新しいネットワーク接続を開始することができるエンドポイントクライアントである。エンドポイントクライアント202はサーバとすることができる。
クライアント202は、ネットワーク接続機能、例えば、ネットワークインタフェース、送信機、および/または受信機を含む。クライアント202は、1つまたは複数のネットワーク206、例えば、ワイヤレスネットワーク、有線ネットワーク、セルラネットワーク、インターネット、プライベートネットワーク、およびそれらの多数のネットワークの組合せを通してリモートサーバ204と通信することができる。
任意選択で、エンドポイントモジュール208Aが、1つまたは複数のクライアント202の(または1つまたは複数のクライアント202と通信する)メモリにインストールされる(例えば、プリインストールされる、クライアントで動作するオペレーティングシステムと統合される、および/またはリモートサーバまたはローカルメモリからダウンロードされ、ローカルにインストールされる)。任意選択で、エンドポイントモジュール208Aは、本明細書で説明するように、クライアント202のプロセッサによる実行のためのプログラム命令と、クライアント202の接続確立関連アクティビティをモニタするためのプログラム命令とを含む。代替としてまたは追加として、モジュール208Aは、ゲートウェイ210によって指示されるような機能を実行し、例えば、接続確立を停止し、および/または接続確立を可能にする。
ゲートウェイ210は、本明細書で説明するように、クライアント202からの接続確立関連データを受信し、データを解析し、悪意のある活動および/または通信のためのネットワーク接続の確立の試みを識別する。任意選択で、ゲートウェイ210は、ネットワーク接続の確立を開始するクライアント202の特定のアプリケーションと、ネットワーク接続の確立を制御するインタフェースとの間の仲介物として働くプロキシサーバである。ゲートウェイ210は、接続確立の状態を示す警報信号の直接制御および/または生成によって、接続確立を停止するかまたは接続確立の継続を許可する。
ゲートウェイ210は、コンピュータへのインストールのためのソフトウェアモジュール、および/または他のコンピュータとの通信のためのハードウェア機器とすることができる。代替としてまたは追加として、ゲートウェイ210は、多数のクライアント202からデータを受信するためにインストールされる。ゲートウェイ210は、ネットワーク206を通じてクライアント202と通信するネットワーク206内にインストールされてもよく、例えば、ゲートウェイ210は、リモートサーバ、クライアント202とネットワーク206との間のインタフェース(例えば、ネットワークインタフェースデバイス)におけるプライベート組織ネットワーク内などの事前定義されたグループのクライアント202との通信のためのローカルにインストールされたサーバとしてもよく、および/またはネットワーク206自体内に、例えば、内部および/または境界ネットワークデバイス(例えば、層2デバイス、層3デバイス、ルータ、ゲートウェイ、およびブリッジ)内にインストールされてもよい。
1つまたは複数の悪意のあるエージェント212が、クライアント202に感染する。クライアントの感染はインストールの前に生じることがあることに留意されたい。
悪意のあるエージェント212は、リモートの悪意のある宛先サーバ214へのネットワーク206を通じた接続を確立するためのプログラム命令、および/またはクライアント202とリモートの正当なサーバ204との間のネットワーク206を通じた接続を利用するためのプログラム命令を含むことがある。
悪意のあるエージェント212の1つの例は、動的にリンクされるライブラリの注入である。動的にリンクされるライブラリの注入は、例えば、動的にリンクされるライブラリをロードし実行するようにプロセスに強制することによって、別のプロセスのアドレス空間内でコードを動作させるために使用される技法である。動的にリンクされるライブラリの注入は、別のプログラムの挙動に影響を及ぼすために、プログラムの著者が予想または意図しなかった方法で外部プログラムによって使用されることがある。ハッカーは、動的にリンクされるライブラリの注入の技法を利用し、感染したペイロードをエンドポイントアプリケーションに注入して、オリジナルのアプリケーションを悪意を持って操ることがある。例えば、Zeusは、金融機関向けネットワーク接続をハイジャックして顧客情報および/または金銭を盗むためにインターネットブラウザアプリケーションへの動的にリンクされるライブラリの注入を使用する、トロイの木馬の形態の悪意のあるエージェントである。Zeusは、ウェブブラウザによってアクセスされるネットワーク接続およびデータをモニタおよび操作するために、HTTPハンドリング機能をフックすることによって働く。
悪意のあるエージェント212の別の例は、バイパス検出である。特定の悪意のあるコードは、オペレーティングシステムおよび/またはより高いレベルのプログラム、例えば、ハイパーバイザの悪意のあるコードの特権で動作するようにプログラムされる。そのような悪意のあるコードは、セキュリティ対策を容易にバイパスし、ネットワーク接続を意のままに確立する。
悪意のあるエージェント212のさらなる別の例は、権限を与えられていないコードの実行である。権限を与えられていないコードの実行は、攻撃者が悪意のある動作を使用してプログラムのコードの実行を制御し、それによって、攻撃者自身の悪意のあるコードを実行するときに行われる。悪意のあるコードは、影響を受けたエンドポイントクライアントのバックグラウンドで動作する悪意のあるコードのアプリケーションとして実行され、ハッカーがクライアントを悪意を持って操れるようにする。
悪意のあるエージェント212の他の例には、ウィルス、ワーム、トロイの木馬、スパイウェア、およびアドウェアが含まれる。悪意のあるエージェント212は、実行可能コード、スクリプト、アプリケーション、および他のソフトウェアとしてインストールされ得る。
図1Aおよび図1Bを参照すると、クライアントに存在するブロックは、図2のクライアント202に存在することができ、ゲートウェイ内に存在するブロックは、図2のゲートウェイ210に存在することができる。
102において、接続確立の試みが検出される。任意選択で、クライアント端末で動作するアプリケーションによりネットワークベースサーバへのネットワーク接続を確立するための開始コメント(例えば、要求)が検出される。アプリケーションは、本明細書で説明するように、悪意のあるコード212に感染する可能性がある。
任意選択で、アプリケーションおよび/またはクライアントが、ネットワーク接続の確立の試みを検出するためにモニタされる。例えば、エンドポイントモジュール208Aは、ネットワーク206を通じて接続を確立するためのアプリケーションおよび/またはコード208C(クライアント202にインストールされたおよび/またはクライアント202と通信する)による試みを検出するためにクライアント202をモニタする。
任意選択で、ネットワーク接続が、新しい接続として確立されるように試みられる。代替として、ネットワーク接続は、非アクティブ化および/または保留された前の接続の再確立となるように試みられる。
アプリケーションは、信頼のできるソース、例えば、リモートの正当なサーバ204(例えば、それからデータが盗まれる)へのネットワーク接続を確立しようと試みることがあり、および/または悪意のあるソース、例えば、悪意のある宛先サーバ214(例えば、それに盗まれたデータが送信される、および/またはそれがリモートの悪意のあるコントローラとして働く)へのネットワーク接続を確立しようと試みることがある。
ネットワーク接続を確立しようと試みる悪意を持って感染させられるアプリケーションおよび/または悪意のあるコード208Cの例には、ウェブブラウザ、インスタントメッセージングアプリケーション、ワードプロセッシングアプリケーション、画像編集アプリケーション、音楽アプリケーション、アプリケーション内にインストールされたアップデートモジュール、オペレーティングシステム自体、リモートコンピュータ制御アプリケーション、およびデータ同期アプリケーションが含まれる。感染させられたアプリケーションおよび/または悪意のあるコード208Cは、本明細書で説明するように、例えば、仮想マシンを作り出しおよび/または動作させるハイパーバイザまたは仮想マシンモニタの一部であることがある。クライアント202は仮想マシンホストを含むことができる。例えば、感染させられたアプリケーションおよび/または悪意のあるコード208Cは、本明細書で説明するように、例えば、権限を与えられていない悪意のあるアプリケーションの一部であることがある。感染させられたアプリケーションおよび/または悪意のあるコード208Cは、接続確立を管理するアプリケーションプログラミングインタフェースの一部、例えば、ソケットであることがある。
任意選択で、開始メッセージ(例えば、要求)および/または接続確立が、クライアント端部において、例えば、エンドポイントモジュール208Aによって検出される。要求は、接続確立の試みの受信した通知に基づいて、例えば、クライアントの通信のためのローカルエンドポイントを表すアプリケーションプログラミングインタフェース、例えば、インターネットソケットなどのネットワークソケットにアプリケーションがコマンドを発行することに基づいて、クライアントのオペレーティングシステムに関連して検出することができる。コマンドは、新しいネットワークソケットを作り出すもの、および/または新しいネットワークソケットの生成の後の信号を作り出すものとすることができる。別の例では、要求は、以前は作り出されたソケットにアプリケーションがコマンドを発行することに基づいて検出することができる。クライアント端部での検出は、悪意のあるエージェントがクライアントの外にあるサーバと接続を確立しないようにする。
任意選択で、ネットワーク確立プロセスは、リモートサーバとのパラメータネゴシエーティングプロセス、例えば、TCPに基づく、例えばハンドシェーキングプロセスに基づく。代替としてまたは追加として、ネットワーク確立プロセスは、ネゴシエーティングプロセス、例えば、ユーザデータグラムプロトコル(UDP)に基づく、例えば、コネクションレスネットワーク接続に基づかない。
104において、スタックデータは、例えば、図4を参照しながら以下で説明するように収集される。
任意選択で、106において、例えば、図5A、図5B、および図5Cを参照して以下で説明するように、スレッド、プロセス、および/またはモジュールに関連するフローデータなどの追加のフローデータ208Dが、ネットワーク接続の確立を開始するコマンドの間に得られる。
108において、接続確立プロセスに関連するコールスタック208Bのデータ(ブロック104の)を含み、および追加フローデータ(ブロック106の)を任意選択で含むフローデータが、例えば、クライアント202内のスタックデータおよび/または他のフローデータにアクセスできるエンドポイントモジュール208Aによってゲートウェイ210に送信される。
110において、ゲートウェイは、クライアントによって送信されたフローデータを受信する。データ送信は、ネットワークを通じて行うことができる。
112において、データを解析して、悪意のあるアクティビティおよび/または通信のための接続の確立の試みを検出する。データは、クライアント端末で実行されるプロセス、スレッド、モジュール、および動的コードを表すフローデータ内の記録を含むことができる。
記録を解析して、ネットワーク接続が悪意のあるアクティビティのために、例えば、データを盗むために使用される悪意のあるアクティビティおよび/または通信を確立する試行の有無を検出する。
悪意のある通信を確立する試行は、記録が不法のフローデータを表しているとき、悪意のあるアクティビティおよび/または通信のためのネットワーク接続の確立の試みを検出することによって識別することができる。
解析は、悪意のあるアクティビティおよび/または通信のための接続の確立の試みを検出するためにゲートウェイ210がスタックデータを解析するによって実行され、悪意のある通信の有無を表す信号を生成することができる。
任意選択で、スタックトレースは、ネットワーク接続を確立しようと試みるアプリケーションに関連するコールスタックから得られる。スタックトレースは、接続確立に関連するコールスタック内のモジュールのシーケンスのパターンおよび/またはスナップショットを含む。例えば、スタックトレースは、トレースが得られる時点のコールスタック内のモジュールを含む。モジュールは、コールスタック内の表示、例えば、モジュールを指し示すコールスタック内のポインタに基づいて引き出すことができる。
1つまたは多数のスタックトレースは、接続確立プロセスの開始の要求中におよび/または接続確立プロセス中に、1つまたは多数の時点で得ることができる。接続確立プロセス中に多数の時点で捕捉された多数のスタックトレースは、要求および/または接続確立プロセス中に生じるスタックの変化を捕捉するように選択される。
解析は、アプリケーションとリモートサーバまたは悪意のあるサーバとの間のデータ通信、例えば、開始アプリケーションによるネットワークを通じたデータの転送などの前に実行される。任意選択で、解析は、ネットワーク接続の確立の前に実行される。代替としてまたは追加として、解析は、ネットワークセッションのアクティブ化の前に実行される。このようにして、悪意のあるエージェントがネットワーク接続によって行動することができる前に、例えば、権限を与えられていないデータの送信(すなわち、データの盗み)の前に、接続確立プロセスの妥当性を決定することができる。
クライアントで動作するアプリケーションが感染し(例えば、注入されたコードに基づいて)、感染したコードに基づいて外部接続を確立しように試みるとき、接続確立スタックコールは、感染していないときの同じアプリケーションのスタックコールと異なる。
解析は、悪意のあるアプリケーションがないときのコールスタックフローデータ解析と異なるフローデータ解析のために、ネットワーク接続を確立しようと試みる悪意のあるアプリケーションが接続確立プロセスに関連するコールスタックをもたらすことに基づいて実行される。
解析は、1つの方法または多数の方法に基づいて並列にまたは逐次的に実行される。解析は、本明細書で説明するように、接続確立関連スタック208Bデータおよび/またはフローデータ208Dを含むクライアント202から受信したメッセージに基づいて、ゲートウェイ210によって実行される。解析は、本明細書で説明するように、ネットワークを通じたアプリケーション208Cによるデータ送信の前に、接続確立プロセスの前におよび/または接続確立プロセス中に実行される。解析方法のいくつかの例は次のものを含む。
*悪意のある接続を確立する試行を表すフローデータ解析にスタックトレースを突き合わせるおよび/または相関させること。
*有効なモジュールの事前定義されたホワイトリスト内にない未知のモジュールを識別するためにホワイトリストに対してスタック内のモジュールを比較するおよび/または相関させること。未知のモジュールは、開始アプリケーションの悪意のある感染であるとの疑いがある。有効なモジュールは、例えば、管理者によって手動で、悪意のあるコードの防止サーバからダウンロードして、および/または感染していないアプリケーションからの機械学習に基づいて有効であるとして指定され得る。
*スタック内の悪意のあるモジュールを識別するために既知の悪意のあるモジュールの事前定義されたブラックリストに対してスタック内のモジュールを比較するおよび/または相関させること。
*類似したまたは等価な既知の安全なパターンなどの有効な接続確立フローデータ解析に対してスタックトレース内のモジュールのフローデータ解析を比較するおよび/または相関させること。モジュールのフローデータ解析は、スタック内のモジュールの順序および/またはスタック内で生じる変化を含むことができる。
*悪意のあるアクティビティに関連づけられるトレースに文書化された固有のイベントを識別すること。
*アプリケーションが感染していなかったときにアプリケーションで生成されたと予想される接続確立スタックフローデータ解析に対してスタックデータを比較するおよび/または相関させること。例えば、アプリケーションを使用して悪意のあるアクティビティおよび/または通信のための接続を確立しようと試みる注入されたコードに感染する。
*スタック内のモジュールが未知のモジュールのコードによってロードされなかったことを検証すること。未知のモジュールとの関連づけは、悪意のあるコードを示唆する。
*プロセスにおけるコーリングスレッドまたは他のスレッドが未知のモジュールのコードによって作り出されなかったことを検証すること。未知のモジュールとの関連づけは、悪意のあるコードを示唆する。
*プロセス実行可能ファイルフォーマットを検証すること。無効のフォーマットは悪意のあるコードに関連づけられ得る。
多数のクライアントを一緒にモニタすることができる。多数のゲートウェイからのモニタリングデータを一緒に解析することができる。ゲートウェイにおいて多数のクライアントから収集されたスタックデータおよび/または多数のゲートウェイからのデータを一緒に解析して、悪意のあるアクティビティ、例えば、クライアントからクライアントへと拡散するマルウェア感染のパターン、および/または短期間内に単一のターゲットサーバおよび/または多数のターゲットサーバへのネットワーク接続を確立する多数のクライアントからの組織的攻撃の確立を識別する。
比較は、類似したパターンとの直接の比較に基づいて実行することができる。相関は、悪意のあるアクティビティとの統計的に有意な相関関連、および/または有効な安全アクティビティとの統計的に有意な関連を識別するために実行することができる。
比較および/または相関は、例えば、関数によって、またはスタックトレースフローデータ解析を入力として受け入れ、悪意のある挙動の存在もしくは悪意のある挙動の不在を示す信号を出力するように訓練された分類器によって、実行することができる。
次に、本発明のいくつかの実施形態による接続確立プロセスに関連するコールスタックの例である図3A〜図3Bを参照する。分かりやすくするために、図は部分的トレースを示す。
図3Aは、接続を確立しように試みる、例えば、金融および/または銀行ウェブサイトに接続しようと試みる感染したウェブブラウザのコールスタック302を示す。コールスタック302は、感染していないウェブブラウザに対して期待される有効な接続確立関連スタックを表すコールスタック304との比較によって解析される。解析は、特定のファイル308(すなわち、shlwapi.dll)が欠けており、未知のモジュール306Bへのコードポインタが存在することを検出する。フローデータ解析に基づいて、悪意のあるコード疑われる。
図3Bは、権限を与えられていないコードの実行を使用して攻撃者に接続するためのネットワーク接続を確立しようと試みている感染したワードプロセッシングプログラムのコールスタック312を示す。スタック312は未知のコード316を含む。それに比べて、コールスタック314は、ワードプロセッシングプログラムが感染していないときのネットワーク接続を確立しようとする試みの間のワードプロセッシングプログラムのコールスタックである。コールスタック314は、感染したコールスタック316に存在しないモジュール318(すなわち、MSO.dll)へのポインタを含む。
ブロック114において、解析の結果は、ゲートウェイの内部のメモリまたはゲートウェイに接続されたメモリに格納される。
116において、ネットワーク接続の試みに関連するデータが、クライアントからゲートウェイにネットワークを通じて送信される。任意選択で、ブロック102が完了し、ネットワーク接続が、データ送信を可能にするためにアクティブ化される。データ(例えば、パケットなどのネットワークメッセージ)が、アクティブなネットワークを通じてクライアントからゲートウェイに送信される。初めに、通信確立プロトコルに関連するパケットが、例えばTCPハンドシェイクプロセスに基づいて送信される。任意選択で、データパケットは、接続を通じて、続いておよび/または逐次的に送信される。
118において、ネットワーク接続の試みに関連して送信されたデータ、および/またはアクティブ化にされたネットワークを通じて送信されたデータが、ゲートウェイで受信される。
120において、ブロック114の格納された結果にアクセスして、受信したデータ(例えば、パケット)が悪意のあるアクティビティに関連づけられているどうか、または受信したデータが許可されるとして検証されたかどうかを決定する。
任意選択で、122において、悪意のある通信の確立の試みが検出されたとき、接続確立プロセスはゲートウェイ自体でゲートウェイによってブロックされる。悪意のあるアクティビティおよび/または通信のためのネットワーク接続の確立が防止される。ハンドシェーキングパケットが悪意のあるアクティビティに関連づけられるとして識別されたときなどにネットワーク接続がアクティブ化されないようにすることができる。代替としてまたは追加として、アクティブなネットワーク接続は、悪意のあるアクティビティに関してモニタされ、悪意のあるアクティビティが検出されるとブロックされる。例えば、ネットワーク接続が、ハンドシェイクプロセスを必要としないコネクションレスプロトコル、例えば、ユーザデータグラムプロトコル(UDP)などに基づく場合、送られたパケットのすべて(または送られたパケットの選択されたサブセット)をモニタするか、または送られたスレッド当たり少なくとも最初のパッケージまたはいくつかのパケットをモニタすることができる。
終了は、ゲートウェイ210によって、接続確立プロセスに関連するパケットが送出されないようにすることにより、および/または接続確立を終了するためのメッセージを発行することにより実行され得る。ネットワーク接続をブロックしてもよく、またはネットワーク接続を終了してもよい。
任意選択で、124において、悪意のある通信の確立の試みの検出を示す警報が生成される。警報は、ユーザに提示されてもよく(例えば、クライアント202に接続されたディスプレイに表示されてもよく)、および/または管理者に提示されてもよい(例えば、ゲートウェイ222または第三者イベント管理プラットホームに接続されたディスプレイに表示されてもよい)。ユーザは、さらなる処置を講じることができ、例えば、悪意のある通信を受け取ったことを通知することができ、任意選択で、悪意のあるコードの対策プログラムを動作させてクライアントから感染エージェントを除去することができる。代替としてまたは追加として、警報メッセージは、悪意のあるコードの除去をトリガすることができる悪意のあるコード対策の他の製品によって受信されるようにフォーマットされる。
代替として、126において、接続確立が、悪意のあるものとして識別されず、および/または安全であるとして検証されると、接続確立プロセスは、ネットワーク接続を確立し続け、ネットワーク接続をアクティブ化し、および/またはアクティブ化されたネットワークを通じてデータ送信を許可し続けることを許される。エンドポイントモジュール208Aおよび/またはゲートウェイ210は、接続確立を許可するための信号を生成することができる。解析が進むようにするために接続確立が停止された場合、エンドポイントモジュール208Aおよび/またはゲートウェイ210は接続確立を再開することができる。
任意選択で、1つまたは複数のブロック104〜126を繰り返して、アクティブ化されたネットワーク接続をモニタする。任意選択で、スタックおよび/または他のフローデータが、悪意のあるアクティビティのためのネットワーク接続の確立の後にモニタされる。任意選択で、スタックは、クライアントがスタックデータをゲートウェイに送ることによってモニタされる。
スタックは、例えば、事前定義された期間の間、および/または選択されたイベント(例えば、ネットワーク接続の構成の変更)の間、連続的に、モニタすることができる。
ネットワーク接続は、疑わしい悪意のある挙動に対してモニタすることができる(例えば、ゲートウェイによって)。疑わしい挙動の検出に際して、管理者は、解析のために追加情報を送信するようにクライアントにコマンドを発行することができる。例えば、感染したプロセスのメモリダンプ。
スタックデータは、例えば、ネットワーク接続が稼働している間連続的に、クライアントで記録されてもよい。スタックの記録は、解析のためにゲートウェイに定期的に送信することができる。
任意選択で、接続確立モニタリングに関連するデータが収集および/または解析される。データは、例えば、コールスタックトレース、各ネットワーク接続確立の試みに対する悪意のある通信の有無を表す信号および/またはメッセージ、および/または生成された警報を含む。データは、エンドポイントモジュール208Aおよび/またはゲートウェイ210から管理サーバ220に送信することができる。
ブロック116〜126の接続確立後のモニタリングに関連するデータは、ゲートウェイ210で収集および/または解析し、解析のための管理サーバ220に送信することができる。
管理サーバ220は、1つまたは多数のゲートウェイ210および/またはクライアント202と通信する(例えば、ネットワーク206を通して)。管理サーバ220は、例えば総合的解析を行うために、多数のゲートウェイおよび/またはクライアントからのデータをアグリゲートすることができる。代替としてまたは追加として、管理サーバ220は、例えば、特定のクライアントに対する解析を行うために単一のクライアントの単一ユーザに対するデータを収集することができる。
任意選択で、管理サーバ220は、ユーザが1つまたは複数の機能を実行できるようにするユーザインタフェースモジュール222を含む。ユーザは、例えば、ネットワーク接続を通じてウェブブラウザを通してユーザインタフェース222にアクセスすることができる。データは、多数のクライアントおよび/またはゲートウェイに、またはクライアントおよび/またはゲートウェイごとに一元的に調査および/または解析することができる。
管理サーバ220および/またはユーザインタフェース222は以下の機能のもう1つを実行する。
*生成された信号をゲートウェイで再調査する:警報は悪意のある通信の試みを示し、および/またはメッセージは悪意のある通信の試みがないことを示す。
*生成された信号を管理する:動向を見きわめ、処置を講ずる、例えば、クライアント間での悪意のあるエージェントの拡散を識別し、新しく検出された悪意のあるエージェントを停止し、ひどく感染したクライアントを隔離する。
*ゲートウェイの構成を一元的に制御する:例えば、悪意のあるエージェントを示す新しいスタックフローデータ解析でゲートウェイを更新し、有効で安全な挙動を非難する新しいスタックフローデータ解析でゲートウェイを更新し、ゲートウェイをクライアントに一致させる。
*クライアントの構成を一元的に制御する:例えば、更新されたエンドポイントモジュールでクライアントを更新し、クライアントをゲートウェイに一致させ、スタックデータをゲートウェイに送信できるようにする。
*ゲートウェイの状態をモニタする:例えば、警報の数、類似した警報のパターン、警報に関連づけられるクライアント、および全接続のうちの悪意のある通信の割合を調査する。
*クライアントの状態、例えば、接続の試みの数、悪意のある通信の警報の数、悪意のある通信の割合、疑いのある感染したアプリケーションをモニタし、類似した悪意のある試みのフローデータ解析を調査する。
任意選択で、ゲートウェイ210および/またはエンドポイントモジュール208Aは、解析に基づいて、例えば、サーバ220、ゲートウェイ210、および/またはモジュール208Aにより送信された更新メッセージによって更新される。接続確立に関係するローカルゲートウェイおよび/またはエンドポイントモジュールを更新することができる。解析された接続確立プロセスに関係しない他のゲートウェイおよび/またはクライアントのエンドポイントモジュール(例えば、遠隔に配置された)を更新することができる。更新は、今後の類似した悪意のある通信確立パターン、例えば、悪意のある通信を確立しようと繰り返し試みる同じ感染したアプリケーション、悪意のあるエージェントによって感染させられた異なるアプリケーション、および/または類似した悪意のあるエージェントによって感染させられた以前には感染していなかったクライアントの識別を可能にすることができる。
次に、本発明のいくつかの実施形態による、防止がクライアントにおいて行われるネットワーク接続の悪意のあるアクティビティの検出のためのコンピュータ実施方法である図1Bを参照する。明確および簡単にするために、図1Aを参照して既に説明したブロックの説明は省略される。新しいブロックおよび/または新しい特徴が説明される。
図1Aは、例えば、組織、例えば会社内のネットワークなどのプライベートネットワークアーキテクチャ内に実装することができることに留意されたい。悪意のあるアクティビティのために外部サーバにアクセスしようとする組織ネットワーク内のクライアントは、一般に、ゲートウェイでブロックされる。
クライアントの外で実行される悪意のある通信のための接続確立を、ネットワーク内でおよび/またはサーバ端部で(すなわち、ゲートウェイによって)検出すると、多数のクライアントにおいて悪意のあるエージェントによって開始された組織的接続ベース攻撃を一元的に識別し防止することができる。
ゲートウェイベースの悪意のある通信の識別は、エンドポイントモジュール208Aがインストールされていないクライアントからの攻撃を防止することができる。
図1Bは、例えば、ネットワークの外から接続する個々のクライアント内に実装することができる。ネットワークを通じて外部サーバにアクセスしようとする個々のクライアントは、クライアント自体でブロックされる。
任意選択で図1Aと図1Bを組み合わせたアーキテクチャが実装され、悪意を持って関連するネットワーク接続は、ゲートウェイとクライアントの両方で(またはどちらか一方で)ブロックすることができる。二重の防止は追加のレベルのセキュリティを提供することができ、クライアントレベルの防止をバイパスすることができる悪意のあるコードは、ゲートウェイレベルでブロックされる。
102において、接続確立の試みが、図1Aを参照して説明したように識別される。
104において、スタックデータおよび任意選択の他のフローデータ(ブロック106におけるような)が、図1Aを参照して説明したように収集される。
任意選択で、130において、接続確立プロセスが、クライアントのところで、例えばモジュール208Aによって停止される。追加のセキュリティ手段として、接続確立プロセスが停止され、悪意のあるアクティビティのためのネットワーク接続の確立が防止される。接続確立プロセスを停止すると、ゲートウェイが解析を実行して、接続確立の試みが悪意のあるアクティビティに関連づけられている場合を決定する時間が与えられる。
接続確立プロセスは、接続確立に関連するメッセージを格納し、メッセージがネットワークに送信されないようにすることによって停止することができる。
108において、収集されたフローデータが、図1Aを参照して説明したように、ゲートウェイに送信される。
110において、ゲートウェイは、図1Aを参照して説明したように、送信されたフローデータを受信する。
112において、ゲートウェイは、図1Aを参照して説明したように、受信したフローデータを解析して、接続確立の試みに関連づけられる悪意のあるアクティビティの有無を決定する。
任意選択で、132において、悪意のあるアクティビティが識別されると、イベントが、例えばネットワークメッセージとして生成される。ネットワークメッセージはそれぞれのクライアントに送信される。
任意選択で、134において、クライアントは、ゲートウェイからのネットワークメッセージを受信するとすぐ、接続確立プロセスをブロックおよび/または防止する。ネットワーク接続は、ブロックされる、および/またはアクティブ化しないようにされ得る。
終了は、ネットワーク接続確立の悪意のある試みの検出を示すゲートウェイ210からのメッセージを受信するとすぐ、例えば、プログラミングインタフェースが接続確立を実行しないようにするメッセージを発行することによってクライアントにおいてエンドポイントモジュール208Aによって実行され得る。
代替として、136において、悪意のあるアクティビティがないことが識別されると、メッセージがクライアントに送信される。
任意選択で、138において、ネットワーク接続が悪意のあるアクティビティに関連づけられていないことを示すメッセージが受信されると、接続確立プロセスは継続することを許可され、および/またはネットワーク接続はアクティブにされる。
次に、本発明のいくつかの実施形態による、スタックデータを収集するコンピュータ化された方法のフローチャートである図4を参照する。方法は、クライアント202にインストールされたエンドポイントモジュール208Aで実行することができる。
任意選択で、402において、接続確立が、例えば、図1Aのブロック102を参照して説明したように検出される。
代替としてまたは追加として、404において、新しいスレッドの生成が、例えば、新しいスレッドを示す挙動に関するスタックをモニタすることに基づいて識別される。
代替としてまたは追加として、406において、新しいプロセスの生成が、例えば、新しいプロセスを示す挙動に関するスタックをモニタすることに基づいて識別される。
任意選択で、408において、スタックデータ208Bの収集がトリガされる。1つまたは複数のブロック402、404、および/または406の検出は、スタックデータ収集をトリガする。
410において、スタックデータ収集をトリガすることに関連づけられたスタックの記録を解析して、スタック内の動的なコードの存在を識別する。本明細書で説明する動的なコードという用語は、実行可能であり、オペレーションシステムドライブ、例えば、ハードドライブ、ディスクオンキーに、不揮発性外部記憶装置に、およびリモートサーバに格納された既存ファイルに対応しないおよび/または関連しないコードを意味する。動的なコードは、実行時間の間メモリにしか存在せず、永続性メモリ(例えば、ハードディスク)には等価なコードを持っていない。動的なコードは、悪意のあるコードの存在を示唆している。
任意選択で、412において、動的なコードは、悪意のあるコードの存在に関して解析される。
414において、スタックのモジュールが解析される。
416において、検査を実行して、スタックの追加の記録の有無を決定する。任意選択で、418において、追加の記録が存在するとき、追加の記録はブロック410を繰り返すことによって解析される。代替として、420において、記録がこれ以上存在しないとき、スタックデータ収集は完了する。
次に、本発明のいくつかの実施形態による、スレッド関連フローデータを収集するコンピュータ化された方法のフローチャートである図5Aを参照する。方法は、クライアント202にインストールされたエンドポイントモジュール208Aで実行することができる。
502Aにおいて、新しいスレッドの生成が、例えば、新しいスレッドの生成のためにオペレーティングシステムをモニタすることに基づいて識別される。
504Aにおいて、新しいスレッドの親スレッドを解析して、親スレッドが悪意のあるアクティビティを関連づけられる場合を決定する。親スレッドの解析は、例えば、図1Aのブロック112を参照して説明したように実行される。
任意選択で、506Aにおいて、親スレッドが悪意性であると決定された場合、現在のスレッドは、悪意のあるものとしてマークを付けられる。代替としてまたは追加として、508Aにおいて、コールスタックが、例えば、動的なコードの存在に関して有効であるか無効であるかを決定するために、および/または図1Aのブロック112を参照して説明したように、コールスタックが検査される。
任意選択で、510Aにおいて、現在のスレッドは、コールスタックが無効であるとき悪意のあるものとしてマークを付けられる。代替としてまたは追加として、512Aにおいて、親スレッドを解析して、親スレッドがスレッドをプロセスに注入した場合を決定する。注入されたスレッドはスレッドのプロセスに基づいて検出することができ、例えば、親スレッドのプロセスが現在のスレッドのプロセスと異なるとき、現在のスレッドは注入と見なされる。
任意選択で、514Aにおいて、親スレッドが注入されたスレッドとして識別されたとき、現在のスレッドは注入されたスレッドとしてマークを付けられる。注入されたスレッドは悪意のあるコードを示唆する。代替としてまたは追加として、516Aにおいて、現在のスレッドを解析して、現在のスレッドが注入されたスレッドである場合を決定する。任意選択で、518Aにおいて、解析が、現在のスレッドを、注入されたスレッドとして識別した場合、現在のスレッドは注入されたコードとしてマークを付けられる。
次に、本発明のいくつかの実施形態による、プロセス関連フローデータを収集するコンピュータ化された方法のフローチャートである図5Bを参照する。方法は、クライアント202にインストールされたエンドポイントモジュール208Aで実行することができる。
ブロック502B〜518Bは、図5Aのブロック502A〜518Aに対応し、図5Aのスレッドの代わりにプロセスを参照する。注目すべきことに、ブロック512Bにおいて、解析を実行して、注入されたスレッドによってプロセスが作り出された場合を決定する。ブロック516Bにおいて、現在のメインモジュールフォーマットを解析して、モジュールフォーマットが有効であるか無効であるかを識別する。518Bにおいて、現在のプロセスは、プロセス実行可能フォーマットが無効として識別される場合、悪意のあるものとしてマークを付けられる。
次に、本発明のいくつかの実施形態による、モジュール関連フローデータを収集するコンピュータ化された方法のフローチャートである図5Cを参照する。方法は、クライアント202にインストールされたエンドポイントモジュール208Aで実行することができる。
508Cにおいて、解析を実行して、新しいモジュールがプロセスにロードされた場合を決定する。
504Cにおいて、新しいモジュールのローディングスレッドを解析して、ローディングスレッドが悪意のあるアクティビティに関連づけられる場合を決定する。ローディングスレッドの解析は、例えば、図1Aのブロック112を参照して説明したように実行される。
任意選択で、506Cにおいて、ローディングスレッドが悪意性であると決定された場合、現在のモジュールは、悪意のあるものとしてマークを付けられる。代替としてまたは追加として、508Cにおいて、例えば、図5Aで実行された解析に基づいて、解析を実行して、ローディングスレッドが注入された場合を決定する。
任意選択で、510Cにおいて、現在のモジュールは、ローディングスレッドが注入されている場合、悪意のあるものとしてマークを付けられる。代替としてまたは追加として、512Cにおいて、モジュールフォーマットを解析して、モジュールフォーマットがいつ有効であるか無効であるか、例えば、ポータブル実行可能コードが、無効であるヘッダのフィールドを含むか、例えば、エントリーポイントフィールドがコードの外の場所を指し示すかを決定する。
任意選択で、514Cにおいて、モジュールフォーマットが無効であると決定された場合、現在のモジュールは、悪意のあるものとしてマークを付けられる。代替としてまたは追加として、516Cにおいて、解析を実行して、モジュールがグローバルローディング方法を使用してロードされた場合を決定する。本明細書で説明するグローバルローディング方法という用語は、互いに無関係であり得る異なるプロセスのためにロードするモジュールを意味する。グローバルにロードされたモジュールは、悪意のあるアクティビティを示唆する。
任意選択で、518Cにおいて、現在のモジュールは、解析が現在のモジュールをグローバルにロードされたモジュールであるとして識別するとき、グローバルであるとしてマークを付けられる。
図のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータプログラム製品のあり得る実施態様のアーキテクチャ、機能、および動作を示す。この点に関して、フローチャートまたはブロック図の各ブロックは、特定の論理機能を実装するための1つまたは複数の実行可能命令を含むコードのモジュール、セグメント、または一部分を表すことができる。いくつかの代替実施態様では、ブロックに記された機能は、図に記された順序から外れて行われることがあることにも留意されたい。例えば、連続して示された2つのブロックは、関連する機能に応じて、実際には実質的に同時に実行されることがあり、またはブロックは時には逆の順序で実行されることがある。ブロック図および/またはフローチャート図の各ブロック、およびブロック図および/またはフローチャート図のブロックの組合せは、特定の機能もしくは動作を実行する専用ハードウェアベースシステム、または専用ハードウェアとコンピュータ命令との組合せによって実装され得ることにも留意されたい。
本発明の様々な実施形態の説明は、例証のために提示されたが、網羅的であることまたは開示された実施形態に限定されることを意図していない。説明した実施形態の範囲および趣旨から逸脱することなく、多くの変形および変更が当業者には明らかであろう。本明細書で使用された用語は、実施形態の原理、実際的用途、もしくは市場で見いだされる技術に対する技術的改善を最も良く説明するように、または他の当業者が本明細書で開示した実施形態を理解できるように選択された。
本出願から成熟する特許権存続期間中に、多くの関連する悪意のあるエージェント、クライアント、ネットワーク、スタック、およびサーバが開発されることが予想され、悪意のあるエージェント、クライアント、ネットワーク、スタック、およびサーバという用語の範囲は、そのような新技術をすべて先験的に含むように意図される。
本明細書で使用する「約」という用語は±10%を指す。
「備える」、「備えている」、「含む」、「含んでいる」、「有している」、という用語およびそれらの活用形は、「限定はしないが、含む」を意味する。この用語は、「からなる」および「から本質的になる」という用語を包含する。
「から本質的になる」という語句は、組成物または方法が追加の要素またはステップを含み得るが、追加の要素またはステップが特許請求する組成物または方法の基本および新規な特性を実質的に変えない場合に限られることを意味する。
本明細書で使用する単数形「a」、「an」、および「the」は、文脈上別段明確に示されない限り複数の指示内容を含む。例えば、「化合物」または「少なくとも1つの化合物」という用語は、それらの混合物を含む複数の化合物を含むことができる。
「例示的な」という単語は、本明細書では、「例、実例、または例示として役立つこと」を意味するように使用される。「例示的な」として説明されたいかなる実施形態も、必ずしも、他の実施形態と比較して好ましいもしくは有利であると解釈されるべきではなく、および/または他の実施形態からの特徴の組み込みを排除すべきではない。
「任意選択で」という単語は、本明細書では、「ある実施形態では提供され、他の実施形態では提供されない」ことを意味するように使用される。本発明のいかなる特定の実施形態も、複数の「任意選択の」特徴が矛盾しない限り、そのような特徴を含むことができる。
本出願の全体を通して、本発明の様々な実施形態は、範囲形式で提示されることがある。範囲形式での説明は、単に便宜および簡潔のためであり、本発明の範囲に対する柔軟性がない限定と解釈されるべきでないことを理解されたい。したがって、範囲の説明は、すべての可能な部分範囲ならびにその範囲内の個々の数値を具体的に開示したものと考えるべきである。例えば、1から6までなどの範囲の説明は、1から3まで、1から4まで、1から5まで、2から4まで、2から6まで、3から6まで等のような部分範囲、ならびにその範囲内の個々の数、例えば、1、2、3、4、5、および6を具体的に開示したものと考えるべきである。これは、範囲の広さに関係なく適用される。
数の範囲が本明細書で示されるときは常に、数の範囲は、示された範囲内の任意の引用される数字(小数または整数)を含むように意図される。第1の表示数と第2の表示数との「間に及んでいる/及ぶ」、ならびに第1の表示数「から」第2の表示数「まで」「及んでいる/及ぶ」という語句は、本明細書では交換可能に使用され、第1および第2の表示された数、ならびにそれらの数の間のすべての小数および整数を含むことを意味する。
明確にするために別々の実施形態の文脈で説明されている本発明の特定の特徴は、単一の実施形態において組み合わせて提供されることも可能であることが理解される。逆に、簡潔にするために単一の実施形態の文脈で説明されている本発明の様々な特徴は、本発明の任意の他の説明されている実施形態において、別々に、または任意の適切な部分的組合せで、または好適であるように提供されることも可能である。様々な実施形態の文脈で説明したいくつかの特徴は、それらの要素なしでは実施形態が動作不能である場合を除いて、それらの実施形態の必須の特徴と考えるべきではない。
本発明をその特定の実施形態に関連して説明したが、多くの代替、変更、および変形が当業者には明らかであることは明白である。したがって、添付の特許請求範囲の趣旨および広い範囲内に入るすべてのそのような代替、変更、および変形を包含することが意図される。
本明細書において述べたすべての刊行物、特許、および特許出願は、各々個々の出版物、特許、または特許出願が、具体的におよび個々に、参照により本明細書に組み込まれるように示されているのと同じ程度に、それらの全体が参照により本明細書に組み込まれる。加えて、本出願のいかなる参考文献の引用または特定も、そのような参考文献が本発明への先行技術として利用可能であることを認めるものとして解釈されないものとする。セクションの見出しが使用される限り、見出しは必ずしも限定するものと解釈されるべきではない。

Claims (18)

  1. 悪意のある通信のためのネットワーク接続の確立の試みの検出および防止のためのコンピュータ実施方法であって、
    クライアント端末実行されるエンドポイントコードによって、前記クライアント端末からサーバへのネットワーク接続の確立のための接続確立プロセスを検出することであり、前記接続確立プロセスが、前記クライアント端末実行されるコードによって開始される、接続確立プロセスを検出することと、
    前記クライアント端末で管理される開始する前記コードの少なくとも1つのスタックトレース内の記録を、前記ネットワーク接続の確立の前、かつ、前記クライアント端末から前記サーバへのデータ通信の前に、前記ネットワーク接続悪意のあるアクティビティに使用される悪意のある通信を確立する試行を検出するために、前記クライアント端末とネットワーク通信するとともに前記サーバとネットワーク通信するネットワークゲートウェイによって解析することであって前記解析を実行する中央サーバにおいて有効なものとして指定された感染していないアプリケーションによって使用される接続確立フローデータ解析のために前記少なくとも1つのスタックトレースを解析すること、または、アプリケーションが前記悪意のある通信を確立する前記試行を開始する注入されたコードに感染していない場合に前記アプリケーションによって生成されると予想される接続確立スタックフローデータ解析との少なくとも1つのスタックトレースの比較を含む、解析することと、
    前記解析が前記ネットワーク接続に基づいて前記悪意のある通信を確立する前記試行を検出しないとき、前記ネットワークゲートウェイによって、前記クライアント端末から前記サーバへのデータ通信のためのネットワーク接続を確立し、前記解析が前記ネットワーク接続に基づいて前記悪意のある通信を確立する前記試行を検出したとき、前記ネットワークゲートウェイによって、前記ネットワーク接続の確立をブロックすることとを含む、コンピュータ実施方法。
  2. 前記記録を解析することが、前記少なくとも1つのスタックトレースと、接続確立に関連するスレッドデータ、モジュールデータ、およびプロセスデータからなる群の少なくとも1つのメンバとを含むフローデータ解析することを含む、請求項1に記載のコンピュータ実施方法。
  3. 記少なくとも1つのスタックトレースに関連するデータが、動的なコードを含む、請求項に記載のコンピュータ実施方法。
  4. 前記ネットワーク接続に基づく前記悪意のある通信を確立する前記試行が検出されない場合、前記接続確立プロセスに、前記ネットワーク接続のアクティブ化を許可することをさらに含む、請求項1に記載のコンピュータ実施方法。
  5. 前記解析することが、前記ネットワーク接続のアクティブ化の前に実行される、請求項1に記載のコンピュータ実施方法。
  6. 前記少なくとも1つのスタックトレースが、前記接続確立プロセスの開始のためのインターネットプロトコル群の伝送制御プロトコル(TCP)に従って実行される接続確立中に収集される、請求項1に記載のコンピュータ実施方法。
  7. 前記検出することの後に前記接続確立プロセスを停止することをさらに含む、請求項1に記載のコンピュータ実施方法。
  8. 前記少なくとも1つのスタックトレースおよび/またはフローデータが、前記接続確立プロセスの開始時に得られる、請求項1に記載のコンピュータ実施方法。
  9. 前記少なくとも1つのスタックトレースが、前記接続確立プロセスの間に多数のポイントで得られた多数のスタックトレースの少なくとも1つのシーケンスを含み、前記解析することが、前記悪意のある通信を確立する前記試行を表すフローデータ解析に前記多数のスタックトレースを突き合わせることを含む、請求項1に記載のコンピュータ実施方法。
  10. 前記解析することが、開始した前記アプリケーションの感染を表す、未知のモジュールおよびブラックリストもしくはホワイトリストに載ったモジュールの少なくとも一方のための前記少なくとも1つのスタックトレースの前記記録を解析することを含む、請求項1に記載のコンピュータ実施方法。
  11. 悪意のある通信のためのネットワーク接続の確立の試みの検出のためのシステムであって、
    クライアント端末とネットワーク通信するとともにネットワークベースサーバとネットワーク通信する少なくとも1つのネットワークゲートウェイであり、
    クライアント端末から前記ネットワークベースサーバへのネットワーク接続を確立するための接続確立プロセスの間クライアント端末実行されるコードの少なくとも1つのスタックトレースを受信することであって、前記接続確立プロセスは、前記クライアント端末で実行されるエンドポイントコードによって検出され、前記接続確立プロセスは、前記クライアント端末実行されるコードによって開始される、受信することと、
    前記少なくとも1つのスタックトレース内の記録を、前記ネットワーク接続の確立の前、かつ、前記クライアント端末から前記ネットワークベースサーバへのデータ通信の前に、前記ネットワーク通信を悪意のあるアクティビティに使用される悪意のある通信の確立の試行の有無を判定するために、解析することであって前記解析を実行する中央サーバにおいて有効なものとして指定された感染していないアプリケーションによって使用される接続確立フローデータ解析のために前記少なくとも1つのスタックトレースを解析すること、または、アプリケーションが前記悪意のある通信を確立する前記試行を開始する注入されたコードに感染していない場合に前記アプリケーションによって生成されると予想される接続確立スタックフローデータ解析との前記少なくとも1つのスタックトレースの比較を含む、解析することと、
    前記解析が前記ネットワーク接続に基づいて前記悪意のある通信を確立する前記試行を検出しないとき、前記クライアント端末から前記ネットワークベースサーバへのデータ通信のためのネットワーク接続を確立し、前記解析が前記ネットワーク接続に基づいて前記悪意のある通信を確立する前記試行を検出したとき、前記ネットワーク接続を使用して前記悪意のある通信を確立する前記試行を表す信号を生成することと
    を行うように構成された、少なくとも1つのネットワークゲートウェイ
    を含む、システム。
  12. 受信することが、少なくとも1つのフローデータを受信することを含み、記録を解析することが、前記少なくとも1つのスタックトレースと、前記ネットワーク接続の確立に関連するスレッドデータ、モジュールデータ、およびプロセスデータからなる群の少なくとも1つのメンバとを含む前記フローデータを解析することを含む、請求項11に記載のシステム。
  13. 前記少なくとも1つのネットワークゲートウェイが、ネットワークを通じて前記クライアント端末と通信するリモートサーバに常駐する、請求項11に記載のシステム。
  14. 前記少なくとも1つのネットワークゲートウェイが、前記クライアント端末に常駐するソフトウェアモジュールである、請求項11に記載のシステム。
  15. 前記少なくとも1つのネットワークゲートウェイがプロキシサーバである、請求項11に記載のシステム。
  16. 前記クライアント端末へのインストールのためのエンドポイントモジュールであり、
    前記コードによる前記ネットワーク接続の確立の開始を検出し、
    前記少なくとも1つのスタックトレースおよび/またはフローデータを前記ネットワークゲートウェイに送信し、
    前記ネットワークゲートウェイからの前記信号を受信し、
    前記受信した信号に基づいて前記ネットワーク接続のアクティブ化を防止するために前記接続確立プロセスをブロックする
    ように構成された、エンドポイントモジュール
    をさらに含む、請求項11に記載のシステム。
  17. 前記少なくとも1つのネットワークゲートウェイは、受信した前記信号に基づいて、前記ネットワーク接続のアクティブ化を防止するようにさらに構成され、請求項11に記載のシステム。
  18. 悪意のあるアクティビティのためのネットワーク接続の確立の試みの検出のためのコンピュータプログラムであって、前記コンピュータプログラムが、
    クライアント端末からサーバへのネットワーク接続の確立のための接続確立プロセスを検出するためのプログラム命令であり、前記接続確立プロセスが、クライアント端末実行されるコードによって開始される、検出するためのプログラム命令と、
    前記ネットワーク接続の確立の前、かつ、前記クライアント端末から前記サーバへのデータ通信の前に、前記クライアント端末で管理される開始する前記コードの少なくとも1つのスタックトレース内の記録を前記ネットワーク接続が悪意のあるアクティビティで使用される悪意のある通信を確立する試行を検出するために、解析するためのプログラム命令であって前記解析することは、
    前記解析を実行する中央サーバにおいて有効なものとして指定された感染していないアプリケーションによって使用される接続確立フローデータ解析のために前記少なくとも1つのスタックトレースを解析すること、または、アプリケーションが前記悪意のある通信を確立する前記試行を開始する注入されたコードに感染していない場合に前記アプリケーションによって生成されると予想される接続確立スタックフローデータ解析との少なくとも1つのスタックトレースの比較を含む、解析することである、プログラム命令と、
    前記解析が前記ネットワーク接続に基づいて前記悪意のある通信を確立する前記試行を検出しないとき、前記クライアント端末から前記サーバへのデータ通信のためのネットワーク接続を確立し、前記解析が、前記ネットワーク接続に基づいて前記悪意のある通信を確立する前記試行を検出したとき前記クライアント端末から前記サーバへのデータ通信のための前記ネットワーク接続の確立をブロックするためのプログラム命令と
    を含む、コンピュータプログラム。
JP2017546273A 2014-11-25 2015-11-24 悪意のあるコードの検出のためのシステムおよび方法 Active JP6758581B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462083985P 2014-11-25 2014-11-25
US62/083,985 2014-11-25
US201562147040P 2015-04-14 2015-04-14
US62/147,040 2015-04-14
PCT/IL2015/051136 WO2016084073A1 (en) 2014-11-25 2015-11-24 Systems and methods for malicious code detection

Publications (3)

Publication Number Publication Date
JP2017539039A JP2017539039A (ja) 2017-12-28
JP2017539039A5 JP2017539039A5 (ja) 2019-01-10
JP6758581B2 true JP6758581B2 (ja) 2020-09-23

Family

ID=54979890

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2017546273A Active JP6758581B2 (ja) 2014-11-25 2015-11-24 悪意のあるコードの検出のためのシステムおよび方法
JP2017546274A Active JP6334069B2 (ja) 2014-11-25 2015-11-24 悪意のあるコードの検出の精度保証のためのシステムおよび方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2017546274A Active JP6334069B2 (ja) 2014-11-25 2015-11-24 悪意のあるコードの検出の精度保証のためのシステムおよび方法

Country Status (9)

Country Link
US (3) US9954980B2 (ja)
EP (2) EP3225009B1 (ja)
JP (2) JP6758581B2 (ja)
CN (2) CN107211011A (ja)
CA (2) CA2968327C (ja)
HK (1) HK1244125B (ja)
IL (2) IL252501B (ja)
SG (2) SG11201704059RA (ja)
WO (2) WO2016084073A1 (ja)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9495395B2 (en) 2013-04-11 2016-11-15 Oracle International Corporation Predictive diagnosis of SLA violations in cloud services by seasonal trending and forecasting with thread intensity analytics
CA2968327C (en) 2014-11-25 2021-04-06 enSilo Ltd. Systems and methods for malicious code detection accuracy assurance
US20160225652A1 (en) 2015-02-03 2016-08-04 Applied Materials, Inc. Low temperature chuck for plasma processing systems
US10594731B2 (en) * 2016-03-24 2020-03-17 Snowflake Inc. Systems, methods, and devices for securely managing network connections
WO2017175158A1 (en) * 2016-04-06 2017-10-12 Karamba Security Reporting and processing controller security information
WO2017175157A1 (en) * 2016-04-06 2017-10-12 Karamba Security Secure controller operation and malware prevention
US10417111B2 (en) 2016-05-09 2019-09-17 Oracle International Corporation Correlation of stack segment intensity in emergent relationships
US10348755B1 (en) * 2016-06-30 2019-07-09 Symantec Corporation Systems and methods for detecting network security deficiencies on endpoint devices
CN106101130B (zh) * 2016-07-08 2019-05-17 北京易华录信息技术股份有限公司 一种网络恶意数据检测方法、装置及系统
JP2018019207A (ja) * 2016-07-27 2018-02-01 富士ゼロックス株式会社 連携管理装置及び通信システム
RU2634174C1 (ru) 2016-10-10 2017-10-24 Акционерное общество "Лаборатория Касперского" Система и способ выполнения банковской транзакции
US10778722B2 (en) * 2016-11-08 2020-09-15 Massachusetts Institute Of Technology Dynamic flow system
US10169576B2 (en) 2016-11-15 2019-01-01 International Business Machines Corporation Malware collusion detection
US10298605B2 (en) * 2016-11-16 2019-05-21 Red Hat, Inc. Multi-tenant cloud security threat detection
TWI617940B (zh) * 2016-12-01 2018-03-11 財團法人資訊工業策進會 資料保護方法與資料保護系統
US10325108B2 (en) * 2016-12-30 2019-06-18 Intel Corporation Method and apparatus for range based checkpoints in a storage device
CN106790292A (zh) * 2017-03-13 2017-05-31 摩贝(上海)生物科技有限公司 基于行为特征匹配和分析的web应用层攻击检测与防御方法
CN108664519B (zh) * 2017-04-01 2021-03-30 北京京东尚科信息技术有限公司 业务规则管理的方法、装置、电子设备和存储介质
TWI648650B (zh) * 2017-07-20 2019-01-21 中華電信股份有限公司 閘道裝置、其惡意網域與受駭主機的偵測方法及非暫態電腦可讀取媒體
US11102219B2 (en) * 2017-08-24 2021-08-24 At&T Intellectual Property I, L.P. Systems and methods for dynamic analysis and resolution of network anomalies
TWI650671B (zh) * 2017-10-17 2019-02-11 中華電信股份有限公司 惡意程式分析方法及裝置
US10990975B2 (en) * 2017-11-08 2021-04-27 Paypal, Inc. Detecting malware by monitoring client-side memory stacks
US11017084B2 (en) * 2017-11-21 2021-05-25 International Business Machines Corporation Detection of malicious code fragments via data-flow isolation
US11849000B2 (en) 2017-11-27 2023-12-19 Lacework, Inc. Using real-time monitoring to inform static analysis
US11818156B1 (en) 2017-11-27 2023-11-14 Lacework, Inc. Data lake-enabled security platform
US10425437B1 (en) * 2017-11-27 2019-09-24 Lacework Inc. Extended user session tracking
US11973784B1 (en) 2017-11-27 2024-04-30 Lacework, Inc. Natural language interface for an anomaly detection framework
US20220232024A1 (en) 2017-11-27 2022-07-21 Lacework, Inc. Detecting deviations from typical user behavior
US11741238B2 (en) 2017-11-27 2023-08-29 Lacework, Inc. Dynamically generating monitoring tools for software applications
US11770398B1 (en) 2017-11-27 2023-09-26 Lacework, Inc. Guided anomaly detection framework
US11894984B2 (en) 2017-11-27 2024-02-06 Lacework, Inc. Configuring cloud deployments based on learnings obtained by monitoring other cloud deployments
US11785104B2 (en) 2017-11-27 2023-10-10 Lacework, Inc. Learning from similar cloud deployments
US11979422B1 (en) 2017-11-27 2024-05-07 Lacework, Inc. Elastic privileges in a secure access service edge
US20220232025A1 (en) 2017-11-27 2022-07-21 Lacework, Inc. Detecting anomalous behavior of a device
US11765249B2 (en) 2017-11-27 2023-09-19 Lacework, Inc. Facilitating developer efficiency and application quality
US11792284B1 (en) 2017-11-27 2023-10-17 Lacework, Inc. Using data transformations for monitoring a cloud compute environment
CN108846287A (zh) * 2018-06-26 2018-11-20 北京奇安信科技有限公司 一种检测漏洞攻击的方法及装置
US20190347408A1 (en) * 2018-05-11 2019-11-14 Npx Usa, Inc. Process identifier transition monitoring and assessment
US10997289B2 (en) * 2018-05-21 2021-05-04 International Business Machines Corporation Identifying malicious executing code of an enclave
GB2602254B (en) 2020-12-15 2023-04-05 Senseon Tech Ltd Network traffic monitoring
GB201810294D0 (en) 2018-06-22 2018-08-08 Senseon Tech Ltd Cybe defence system
US11438357B2 (en) 2018-06-22 2022-09-06 Senseon Tech Ltd Endpoint network sensor and related cybersecurity infrastructure
CN110020530B (zh) * 2018-12-24 2023-07-04 中国银联股份有限公司 用于确定应用程序在运行时的安全性的方法及其装置
US11108790B1 (en) * 2019-04-30 2021-08-31 Rapid7, Inc. Attack signature generation
US11538038B2 (en) * 2019-05-31 2022-12-27 Paypal, Inc. Systems and methods for remote detection of computer device attributes
US11178178B2 (en) 2019-07-29 2021-11-16 Material Security Inc. Secure communications service for intercepting suspicious messages and performing backchannel verification thereon
CN110532768A (zh) * 2019-08-21 2019-12-03 东软医疗系统股份有限公司 系统安全加固方法及装置
US11463443B2 (en) 2019-09-19 2022-10-04 Bank Of America Corporation Real-time management of access controls
GB201915265D0 (en) 2019-10-22 2019-12-04 Senseon Tech Ltd Anomaly detection
TWI747093B (zh) * 2019-12-03 2021-11-21 中華電信股份有限公司 驗證惡意加密連線的方法及系統
US11201955B1 (en) 2019-12-23 2021-12-14 Lacework Inc. Agent networking in a containerized environment
US11256759B1 (en) 2019-12-23 2022-02-22 Lacework Inc. Hierarchical graph analysis
US11627113B2 (en) * 2020-04-01 2023-04-11 The Westem Union Company Network-based authentication rule cleaning and optimization
US11146472B1 (en) 2020-07-21 2021-10-12 Bank Of America Corporation Artificial intelligence-based lateral movement identification tool
CN112488246A (zh) * 2020-08-06 2021-03-12 蔡淦祺 一种基于网络直播和在线电商带货的信息处理方法及系统
US11386197B1 (en) 2021-01-11 2022-07-12 Bank Of America Corporation System and method for securing a network against malicious communications through peer-based cooperation
US11641366B2 (en) 2021-01-11 2023-05-02 Bank Of America Corporation Centralized tool for identifying and blocking malicious communications transmitted within a network
US11989188B2 (en) 2021-08-25 2024-05-21 Bank Of America Corporation Aggregating access to third party data sources and intelligently managing access through request quotas
SE2151287A1 (en) * 2021-10-21 2023-04-22 Assa Abloy Ab Transmitting data for detecting suspicious activity by an electronic device

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2002242043B2 (en) 2001-01-31 2006-12-14 Cisco Technology, Inc. Network port profiling
US7793346B1 (en) * 2003-01-17 2010-09-07 Mcafee, Inc. System, method, and computer program product for preventing trojan communication
US7287281B1 (en) * 2003-06-17 2007-10-23 Symantec Corporation Send blocking system and method
GB0426176D0 (en) * 2004-11-29 2004-12-29 Tang Bob Immediate ready implementation of virtually congestion free guaranteed service capable network
JP4091528B2 (ja) 2003-11-20 2008-05-28 日本電信電話株式会社 不正アクセス対処ルール生成方法,不正アクセス対処方法,不正アクセス対処ルール生成装置,不正アクセス対処装置およびスタックスマッシング攻撃対策システム
JP2006053788A (ja) * 2004-08-12 2006-02-23 Ntt Docomo Inc ソフトウェア動作監視装置及びソフトウェア動作監視方法
US7756932B2 (en) * 2005-07-29 2010-07-13 Research In Motion Limited System and method for processing messages being composed by a user
US7948977B2 (en) * 2006-05-05 2011-05-24 Broadcom Corporation Packet routing with payload analysis, encapsulation and service module vectoring
US8032940B1 (en) * 2006-10-25 2011-10-04 Chaperon, LLC Method and system for generating and employing a secure integrated development environment
KR100843701B1 (ko) 2006-11-07 2008-07-04 소프트캠프(주) 콜 스택에 기록된 정보를 이용한 에이피아이 확인방법
CN101207475B (zh) * 2006-12-15 2010-05-26 友劲科技股份有限公司 一种网络系统的防止非授权连结方法
CN101206467B (zh) * 2006-12-22 2010-09-29 南京理工大学 通用数控代码解析方法
US9392452B2 (en) * 2007-12-26 2016-07-12 General Motors Llc Processing electronic messages wirelessly sent to a vehicle
US8931086B2 (en) 2008-09-26 2015-01-06 Symantec Corporation Method and apparatus for reducing false positive detection of malware
US20100293618A1 (en) 2009-05-12 2010-11-18 Microsoft Corporation Runtime analysis of software privacy issues
CN101594269B (zh) * 2009-06-29 2012-05-02 成都市华为赛门铁克科技有限公司 一种异常连接的检测方法、装置及网关设备
KR101122650B1 (ko) * 2010-04-28 2012-03-09 한국전자통신연구원 정상 프로세스에 위장 삽입된 악성코드 탐지 장치, 시스템 및 방법
US8925101B2 (en) * 2010-07-28 2014-12-30 Mcafee, Inc. System and method for local protection against malicious software
US9189363B2 (en) 2010-10-07 2015-11-17 Mcafee, Inc. System, method, and computer program product for monitoring an execution flow of a function
WO2012166120A1 (en) * 2011-05-31 2012-12-06 Hewlett-Packard Development Company, L.P. Application security testing
US8893278B1 (en) 2011-07-12 2014-11-18 Trustwave Holdings, Inc. Detecting malware communication on an infected computing device
CN102360408A (zh) * 2011-09-28 2012-02-22 国家计算机网络与信息安全管理中心 恶意代码的检测方法及其系统
US8984331B2 (en) 2012-09-06 2015-03-17 Triumfant, Inc. Systems and methods for automated memory and thread execution anomaly detection in a computer network
CN102932329B (zh) * 2012-09-26 2016-03-30 北京奇虎科技有限公司 一种对程序的行为进行拦截的方法、装置和客户端设备
CN103716284B (zh) * 2012-09-29 2016-12-21 清华大学 网络协议自动化逆向分析方法
JP5727991B2 (ja) * 2012-11-12 2015-06-03 株式会社オプティム ユーザ端末、不正サイト情報管理サーバ、不正リクエスト遮断方法、及び不正リクエスト遮断プログラム
US9355247B1 (en) * 2013-03-13 2016-05-31 Fireeye, Inc. File extraction from memory dump for malicious content analysis
GB201306628D0 (en) 2013-04-11 2013-05-29 F Secure Oyj Detecting and marking client devices
CN103281301B (zh) * 2013-04-28 2017-02-08 上海海事大学 云安全恶意程序判断系统及方法
CN103428212A (zh) * 2013-08-08 2013-12-04 电子科技大学 一种恶意代码检测及防御的方法
CA2968327C (en) 2014-11-25 2021-04-06 enSilo Ltd. Systems and methods for malicious code detection accuracy assurance

Also Published As

Publication number Publication date
SG11201704060RA (en) 2017-06-29
IL252500B (en) 2018-07-31
CA2968201A1 (en) 2016-06-02
IL252501B (en) 2020-09-30
EP3225009A1 (en) 2017-10-04
US10334083B2 (en) 2019-06-25
JP2018501591A (ja) 2018-01-18
JP6334069B2 (ja) 2018-05-30
EP3225010A1 (en) 2017-10-04
CN107211011A (zh) 2017-09-26
CN107251513A (zh) 2017-10-13
US9954980B2 (en) 2018-04-24
CA2968327C (en) 2021-04-06
SG11201704059RA (en) 2017-06-29
US20180241853A1 (en) 2018-08-23
HK1244125B (zh) 2019-08-02
IL252501A0 (en) 2017-07-31
CN107251513B (zh) 2020-06-09
WO2016084076A1 (en) 2016-06-02
WO2016084073A1 (en) 2016-06-02
US10264104B2 (en) 2019-04-16
CA2968201C (en) 2021-01-05
US20160149937A1 (en) 2016-05-26
EP3225010B1 (en) 2018-09-26
JP2017539039A (ja) 2017-12-28
EP3225009B1 (en) 2024-01-03
US20160149887A1 (en) 2016-05-26
CA2968327A1 (en) 2016-06-02
IL252500A0 (en) 2017-07-31

Similar Documents

Publication Publication Date Title
JP6758581B2 (ja) 悪意のあるコードの検出のためのシステムおよび方法
US20180359272A1 (en) Next-generation enhanced comprehensive cybersecurity platform with endpoint protection and centralized management
EP3430557B1 (en) System and method for reverse command shell detection
KR101057432B1 (ko) 프로세스의 행위 분석을 통한 유해 프로그램을 실시간으로 탐지하고 차단하는 시스템, 방법, 프로그램 및 기록매체
US10447730B2 (en) Detection of SQL injection attacks
US9680849B2 (en) Rootkit detection by using hardware resources to detect inconsistencies in network traffic
KR102368170B1 (ko) 멀웨어의 자동화된 런타임 검출
US9325725B2 (en) Automated deployment of protection agents to devices connected to a distributed computer network
US10867049B2 (en) Dynamic security module terminal device and method of operating same
US8955138B1 (en) Systems and methods for reevaluating apparently benign behavior on computing devices
US20160373447A1 (en) Unauthorized access detecting system and unauthorized access detecting method
WO2019070460A1 (en) Bait monitoring systems and methods for protecting users against security threats
Deng et al. Lexical analysis for the webshell attacks
US20210165879A1 (en) Analysis of historical network traffic to identify network vulnerabilities
TWI711939B (zh) 用於惡意程式碼檢測之系統及方法
KR101614809B1 (ko) 엔드포인트 응용프로그램 실행 제어 시스템 및 그 제어 방법
US20200382552A1 (en) Replayable hacktraps for intruder capture with reduced impact on false positives
JP2021064358A (ja) 悪意あるソフトウェアによるデジタルフォレンジック情報の破棄を阻止するシステムおよび方法
Shouman et al. Surviving cyber warfare with a hybrid multiagent-based intrusion prevention system
Sharma A multilayer framework to catch data exfiltration

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20170810

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20170809

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181121

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190716

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190920

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200116

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: 20200602

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200622

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20200721

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200729

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20200721

R150 Certificate of patent or registration of utility model

Ref document number: 6758581

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250