JP2018028907A - 要求オリジネータを識別するためのリモートプロシージャリンケージにわたるシステム動作のトレーシング - Google Patents
要求オリジネータを識別するためのリモートプロシージャリンケージにわたるシステム動作のトレーシング Download PDFInfo
- Publication number
- JP2018028907A JP2018028907A JP2017153398A JP2017153398A JP2018028907A JP 2018028907 A JP2018028907 A JP 2018028907A JP 2017153398 A JP2017153398 A JP 2017153398A JP 2017153398 A JP2017153398 A JP 2017153398A JP 2018028907 A JP2018028907 A JP 2018028907A
- Authority
- JP
- Japan
- Prior art keywords
- request message
- rpc
- originator
- security agent
- thread
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Automation & Control Theory (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Quality & Reliability (AREA)
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
Abstract
【課題】要求オリジネータを識別するためのリモートプロシージャリンケージにわたるシステム動作のトレーシングを提供する。
【解決手段】本明細書では、監視されるコンピューティングデバイス上に実施されたセキュリティエージェントが述べられる。セキュリティエージェントは、カーネルモードイベントにそれぞれ関連付けられたイベント通知を受け取るように構成される。イベント通知に基づいてセキュリティエージェントは、カーネルモードイベントが、監視されるコンピューティングデバイスのRPC利用プロセスによる要求メッセージのユーザモード処理に関連付けられると決定する。次いでセキュリティエージェントは、RPCデータ構造に含まれた情報に基づいて、およびイベント通知に基づいて要求メッセージを取り出し、要求メッセージのメタデータに基づいて要求メッセージのオリジネータを識別する。
【選択図】図1
【解決手段】本明細書では、監視されるコンピューティングデバイス上に実施されたセキュリティエージェントが述べられる。セキュリティエージェントは、カーネルモードイベントにそれぞれ関連付けられたイベント通知を受け取るように構成される。イベント通知に基づいてセキュリティエージェントは、カーネルモードイベントが、監視されるコンピューティングデバイスのRPC利用プロセスによる要求メッセージのユーザモード処理に関連付けられると決定する。次いでセキュリティエージェントは、RPCデータ構造に含まれた情報に基づいて、およびイベント通知に基づいて要求メッセージを取り出し、要求メッセージのメタデータに基づいて要求メッセージのオリジネータを識別する。
【選択図】図1
Description
本発明は、要求オリジネータを識別するためのリモートプロシージャリンケージにわたるシステム動作のトレーシングに関する。
コンピュータシステム管理者は、他の理由の中でも特に、無許可のアクセスを防止すること、悪意のあるソフトウェアを識別すること、またはシステムリソースの割り当てを改善することを目的として、システムリソースの使用を特徴付ける助けとするためにシステムリソースの使用に関係する様々なデータを収集することができる。
このデータの収集は従来、オブザーバをオペレーティングシステム(OS)のカーネルおよび/またはシステムコールインターフェイスにアタッチさせることによって達成されることができる。それに従って、観察されるカーネルシステムコールを用いてユーザモードプロセスがシステムリソースを要求したときは、オブザーバは適宜、データを収集し、データを分析することができる。
さらにオペレーティングシステムは、カーネルシステムコール以外に、システムリソースへのインターフェイスをサポートするための機能を有する。例えば、OSは、リモートプロシージャコール(RPC)インターフェイスを通じて、機能をもたらすことができる。いくつかの例においてRPCインターフェイスは、RPC型トランスポート、シリアル化、および実行時バインディングを用いて、実際にリモートシステムにコールを送らずにLPCシステムコールを行うように構成された、ローカルプロシージャコール(LPC)インターフェイスとして実施され得る。
いくつかのLPCインターフェイスは専らユーザモードにおいて存在し、カーネルシステムコールをインターセプトすることによる意味のある従来の形の観察を妨げる。他のLPCインターフェイスはまたユーザモードに常駐し、クライアントの代わりに1つまたは複数の連鎖したカーネルシステムコールを行うことができ、それによって、システムコールがLPCインターフェイスから生じたように見え得るので、クライアントプロセスのアイデンティティをマスクする。
一般に、要求者の代わりにLPCインターフェイスによって行われる動作のソース/オリジネータは、上述のようにカーネルシステムコールによる直接の観察に適用可能となることができない。従って様々なカーネルオブザーバの使用にもかかわらず、LPCインターフェイスに対して行われるいずれのコールも、収集されないままおよび分析されないままとなり得る。それに従って、コンピュータシステム管理者は、システムリソースの使用の不完全な状況を捕捉する場合がある。
添付の図面を参照して、詳細な説明が述べられる。図において、参照番号の最も左側の数字は、参照番号が最初に現れる図を識別する。異なる図での同じ参照番号の使用は、同様なまたは同一の項目または機能を示す。
RPC利用プロセスによる要求メッセージのユーザモード処理を、カーネルモードから検出し、その要求メッセージのオリジネータを識別するように構成されたセキュリティエージェントの例示の概観を示す図である。
ユーザモードにおいて要求メッセージを取り扱うようにRPC利用プロセスを用いて構成された監視されるコンピューティングデバイス、およびそれらの要求メッセージのユーザモード処理をカーネルモードから検出するためのセキュリティエージェントを示すコンポーネントレベルの図である。
カーネルモードイベントがRPC利用プロセスによる要求メッセージのユーザモード処理に関連付けられると決定するステップ、RPCデータ構造およびイベント通知に基づいてその要求メッセージを取り出すステップ、および要求メッセージのオリジネータを識別するステップを含む、セキュリティエージェントによって行われる例示の動作を示す図である。
概要
本開示は一部において、監視されるコンピューティングデバイス上に実施されたセキュリティエージェントについて述べる。セキュリティエージェントは、1つまたは複数のカーネルモードイベントにそれぞれ関連付けられた1つまたは複数のイベント通知を受け取るように構成される。1つまたは複数のイベント通知に基づいてセキュリティエージェントは、1つまたは複数のカーネルモードイベントが、監視されるコンピューティングデバイスのRPC利用プロセスによる要求メッセージのユーザモード処理に関連付けられると決定する。本明細書で用いられる「RPC利用プロセス」とは、通信インターフェイスとしてRPCライブラリを利用する任意のプログラムを指し得る。次いでセキュリティエージェントは、RPC利用プロセスに関連付けられた1つまたは複数のデータ構造に含まれた情報に基づいて、および1つまたは複数のイベント通知に基づいて要求メッセージを取り出し、要求メッセージのメタデータに基づいて要求メッセージのオリジネータを識別する。要求メッセージが、悪意のある活動に関連付けられると決定された場合、セキュリティエージェントは、RPC利用プロセスによる要求メッセージのユーザモード処理を中止する、オリジネータの実行を停止する、またはオリジネータをミスリードするなどの予防的処置をとることができる。
本開示は一部において、監視されるコンピューティングデバイス上に実施されたセキュリティエージェントについて述べる。セキュリティエージェントは、1つまたは複数のカーネルモードイベントにそれぞれ関連付けられた1つまたは複数のイベント通知を受け取るように構成される。1つまたは複数のイベント通知に基づいてセキュリティエージェントは、1つまたは複数のカーネルモードイベントが、監視されるコンピューティングデバイスのRPC利用プロセスによる要求メッセージのユーザモード処理に関連付けられると決定する。本明細書で用いられる「RPC利用プロセス」とは、通信インターフェイスとしてRPCライブラリを利用する任意のプログラムを指し得る。次いでセキュリティエージェントは、RPC利用プロセスに関連付けられた1つまたは複数のデータ構造に含まれた情報に基づいて、および1つまたは複数のイベント通知に基づいて要求メッセージを取り出し、要求メッセージのメタデータに基づいて要求メッセージのオリジネータを識別する。要求メッセージが、悪意のある活動に関連付けられると決定された場合、セキュリティエージェントは、RPC利用プロセスによる要求メッセージのユーザモード処理を中止する、オリジネータの実行を停止する、またはオリジネータをミスリードするなどの予防的処置をとることができる。
様々な実装において、要求メッセージを取り出すステップは、イベント通知を受け取るステップ、および現在のスレッドに関連付けられたスレッド環境ブロック(TEB)を決定するステップを含むことができる。その現在のスレッドは、カーネルモードイベントに関連付けられることができ、RPC利用プロセスのワーカースレッドとすることができる。現在のスレッドはさらに、RPC利用プロセスによる要求メッセージのユーザモード処理に関連付けられたユーザモードスレッドとすることができる。TEBを決定した後にセキュリティエージェントは、OSデータ構造のRPC固有フィールドへのTEBにおけるポインタを決定することができ、そのRPC固有フィールドから要求メッセージを取り出すことができる。
例示の概観
図1は、カーネルモードから、RPC利用プロセスによる要求メッセージのユーザモード処理を検出し、その要求メッセージのオリジネータを識別するように構成された、セキュリティエージェントの例示の概観を示す。図1に示されるように、オリジネータ/クライアントアプリケーション102(本明細書の以下ではオリジネータ102と呼ばれる)、およびRPC利用プロセス104は、コンピューティングデバイスのユーザモード106に常駐することができ、セキュリティエージェント108は、例えばそのコンピューティングデバイスのカーネルモード110に常駐することができる。112においてオリジネータ102は、要求メッセージ114をRPC利用プロセス104に送ることができる。次いでRPC利用プロセス104は、ユーザモードにおいて要求メッセージ114を処理し、その処理の一部として、プロセスまたはスレッドを作成するための、またはレジストリキーを読み出すまたは書き込むための要求など、1つまたは複数のカーネルモード要求を行う。116でセキュリティエージェント108は、カーネルモード要求に関連付けられたカーネルモードイベントに対するイベント通知を受け取る。これらのイベント通知の1つまたは複数に基づいて、118でセキュリティエージェントは、RPC利用プロセス104が要求メッセージ114を処理していると決定する。次いで120でセキュリティエージェント108は、1つまたは複数のカーネルモード要求を行ったRPC利用プロセスのワークスレッドとすることができる現在のスレッドの、スレッド環境ブロック(TEB)122などのデータ構造を決定する。次いで124でセキュリティエージェント108は、TEB122から、OSデータ構造128のRPC固有フィールド126などのOSSデータ構造のフィールドまでをトレースする。次いで132でセキュリティエージェント108は、RPC固有フィールド126から要求メッセージ114を取り出す。
図1は、カーネルモードから、RPC利用プロセスによる要求メッセージのユーザモード処理を検出し、その要求メッセージのオリジネータを識別するように構成された、セキュリティエージェントの例示の概観を示す。図1に示されるように、オリジネータ/クライアントアプリケーション102(本明細書の以下ではオリジネータ102と呼ばれる)、およびRPC利用プロセス104は、コンピューティングデバイスのユーザモード106に常駐することができ、セキュリティエージェント108は、例えばそのコンピューティングデバイスのカーネルモード110に常駐することができる。112においてオリジネータ102は、要求メッセージ114をRPC利用プロセス104に送ることができる。次いでRPC利用プロセス104は、ユーザモードにおいて要求メッセージ114を処理し、その処理の一部として、プロセスまたはスレッドを作成するための、またはレジストリキーを読み出すまたは書き込むための要求など、1つまたは複数のカーネルモード要求を行う。116でセキュリティエージェント108は、カーネルモード要求に関連付けられたカーネルモードイベントに対するイベント通知を受け取る。これらのイベント通知の1つまたは複数に基づいて、118でセキュリティエージェントは、RPC利用プロセス104が要求メッセージ114を処理していると決定する。次いで120でセキュリティエージェント108は、1つまたは複数のカーネルモード要求を行ったRPC利用プロセスのワークスレッドとすることができる現在のスレッドの、スレッド環境ブロック(TEB)122などのデータ構造を決定する。次いで124でセキュリティエージェント108は、TEB122から、OSデータ構造128のRPC固有フィールド126などのOSSデータ構造のフィールドまでをトレースする。次いで132でセキュリティエージェント108は、RPC固有フィールド126から要求メッセージ114を取り出す。
様々な実装において、オリジネータ102、RPC利用プロセス104、およびセキュリティエージェント108を実施するコンピューティングデバイスは、サーバまたはサーバファーム、複数の分散型サーバファーム、メインフレーム、ワークステーション、パーソナルコンピュータ(PC)、ラップトップコンピュータ、タブレットコンピュータ、携帯情報端末(PDA)、携帯電話、メディアセンタ、組み込みシステム、または任意の他の種類のデバイスとすることができ、またはそれらを含むことができる。いくつかの実装においてコンピューティングデバイスは、コンピューティングデバイス上に実施された仮想マシンを表すことができる。オリジネータ102、RPC利用プロセス104、およびセキュリティエージェント108を実施するコンピューティングデバイスとして働く能力を有する例示のコンピューティングデバイスは、図2に示され、その図を参照して以下で述べられる。
いくつかの実装においてオリジネータ102は、RPC利用プロセス104を通じて要求を行うクライアントアプリケーションである。要求メッセージ114によって具体化されるこのような要求は、例えばドメイン名サービスクエリ、ドキュメントを印刷する要求、ファイアウォール設定を変更する要求、または新しいアカウントを作成する要求とすることができる。オリジネータ102は、RPC利用プロセス104と同じコンピューティングデバイス上でもよく、異なるコンピューティングデバイス上でもよい。またオリジネータ102は、RPC利用プロセス104と直接通信することができ、または別のプロセスまたはスレッドに、要求メッセージ114をRPC利用プロセス104に通信させることができる。例えばオリジネータ102は、結果として112で要求メッセージ114をRPC利用プロセス104に送ることを生じる、コマンドシェルを通じたコマンドをもたらすことができる。別の例ではオリジネータ102は、別のRPC利用プロセスを通じて中間スレッドを作成することができ、次いでこれはRPC利用プロセスの要求を行うことができる。他の例においてオリジネータ102は、他のRPC利用プロセスの要求を行うことができ、次いでその他方のRPC利用プロセスは、RPC利用プロセス104の要求を行うことができる。例示の実装においてオリジネータ102は、セキュリティエクスプロイトである場合があり、またはセキュリティエクスプロイトによって危険にさらされたコンポーネントの場合がある。
上記で述べられたようにRPC利用プロセス104は、通信インターフェイスとしてRPCライブラリを利用する任意の種類のプログラムとすることができる。RPC利用プロセス104と通信するプロセスまたはスレッドは、RPC利用プロセス104と同じコンピューティングデバイス上でもよく、異なるコンピューティングデバイス上でもよい。このようなプロセス/スレッドはそれぞれ、名前付きパイプ、ソケット、またはアドバンストローカルプロシージャコール(ALPC)ポートもしくはALPC接続の1つを通じて、RPC利用プロセス104と通信することができる。図1に示されるようにRPC利用プロセス104は、ユーザモード106で動作する。
さらなる実装において、受け取られた各要求に対してRPC利用プロセス104は、その要求を処理するためにユーザモードワーカースレッドを作成することができる。各ワーカースレッドはTEB122に関連付けられることができ、これはワーカースレッドについての情報を維持することができる。ワーカースレッドに対するTEB122はまた、要求メッセージ114のコピーを記憶するRPC固有フィールド126を指し示すことができる。RPC利用プロセス104のワーカースレッドのTEB126、およびRPC固有フィールド126は、本明細書では「RPCデータ構造」と呼ばれる。各ワーカースレッドはまた、要求メッセージ114の処理に関連付けられたカーネルモード要求を行うことができる。
いくつかの実装においてセキュリティエージェント108は、任意の種類のセキュリティエージェントである。セキュリティエージェント108は、カーネルモード110で実施されるカーネルモードセキュリティエージェント、ユーザモード106で実施されるセキュリティエージェント、部分的にユーザモード106および部分的にカーネルモード110で実施されるセキュリティエージェント、またはハイパーバイザによって実施されるセキュリティエージェントとすることができる。セキュリティエージェント108は、活性である間にセキュリティエージェント108のコンポーネントの再構成を受け取りそれらを適用する、リモートセキュリティサービスによってインストールされることができ構成可能とすることができる。このような再構成は、セキュリティエージェント108のいずれのコンポーネントに対しても、更新を引き起こすことができる。セキュリティエージェント108は、そのセキュリティエージェント108を実施するコンピューティングデバイス上のイベントを監視すること、そのコンピューティングデバイス上のイベントのいくつかまたはすべてについての状態を維持すること、コンピューティングデバイス上の1つまたは複数のイベントをリモートセキュリティサービスに通知すること、またはコンピューティングデバイス上の1つまたは複数のイベントに関連付けられたセキュリティエクスプロイトに対応して処置をとることの、少なくとも1つを行うことができる。セキュリティエージェント108の例は、2012年6月8日に出願した「Kernel―Level Security Agent」という名称の特許文献1に詳細に述べられている。
図1に示されるように、オリジネータ102を識別するためにとられる動作は、112でのオリジネータ102による初めの要求から結果として生じ得る。本明細書でさらに述べられるように、要求は112でオリジネータ102からRPC利用プロセス104に直接送られることができ、または112で例えば中間スレッドを通して、別のRPC利用プロセスを通して、またはコマンドシェルを通して間接的に送られ得る。要求に関連付けられた要求メッセージ114を受け取るとすぐに、RPC利用プロセス104はユーザモード106で要求メッセージ104を処理することができる。このようなユーザモード処理は、RPC利用プロセス104によるワーカースレッドの作成が関わり得る。ワーカースレッドはTEB122によって表されることができ、これは要求メッセージ114の処理に関連付けられた1つまたは複数のカーネルモード要求を行うことができる。このようなカーネルモード要求は、プロセス作成、スレッド作成、レジストリに書き込むこと、レジストリから読み出すこと、ファイルを作成すること、ファイルを開くこと、ファイルを読み出すこと、ファイルに書き込むこと、ファイルをマッピングすること、ネットワークパケットを送るかまたは受け取ること、オブジェクトに対するハンドルを作成するかまたは開くこと、またはレジストリ操作を行うことの少なくとも1つを含むことができる。
様々な実装において、116でセキュリティエージェント118は、RPC利用プロセス104のカーネルモード要求に基づくイベント通知を受け取る。これらのカーネルモード要求は、それぞれ1つまたは複数のカーネルモードイベントに対応することができ、セキュリティエージェント108は、それらのカーネルモードイベントに対するイベント通知を受け取るように登録することができる。例えばセキュリティエージェント108は、カーネルモードイベントの通知を受け取るようにフックまたはフィルタにより登録することができ、またはメモリもしくはログファイル内の位置を監視する、またはそうするために、ログファイルまたはメモリ位置に関連付けられたカーネルモードイベントを観察するスレッドを生じることができる。一例においてセキュリティエージェント108は、レジストリ書き込みについて通知されるように登録することができる。要求メッセージ114の処理に関わるRPC利用プロセス104のワーカースレッドが、レジストリに書き込むようにカーネルモード要求を行ったとき、セキュリティエージェント108は、そのカーネルモード要求の受け取りに対するイベント通知を受け取ることになる。
さらなる実装において、次いで118でセキュリティエージェント108は、RPC利用プロセス104が要求メッセージ114のユーザモード処理に関与しているかどうかを、1つまたは複数のイベント通知に基づいて決定する。いくつかの実装において、118で決定するステップは、セキュリティエージェント108の構成に基づく。例えば構成は、イベント通知の特定の組み合わせがある期間内に受け取られた場合、セキュリティエージェント108は、その処理がそれらのイベント通知に関連付けられた要求メッセージ114を取り出し、そのオリジネータ102を識別するべきであることを規定することができる。いくつかの実装においてセキュリティエージェント108は、イベント通知を蓄積し、イベント通知の特定の組み合わせが受け取られたときに検出イベントを発生する相関機構を含むことができる。このような検出イベントは、さらなる処理のためにセキュリティエージェント108の別のコンポーネント(例えばエンジンコンポーネント)にもたらされ得る。さらにセキュリティエージェント108は、誤検出(フォールスポジティブ)に対して保護するように構成され得る。いくつかの例ではイベント通知の特定の組み合わせは、さらなる処理は必要にならない追加的な無害な説明を有する場合がある。イベント通知の組み合わせがフォールスポジティブであるかどうかを決定するために、セキュリティエージェント108は、A)1つまたは複数のカーネルモードイベントのうちの1つに関連付けられたカーネルモード要求メッセージに含まれた情報、またはB)セキュリティエージェントおよび/またはOSによって保持された状態情報、を取り出し、それをセキュリティエージェント108の構成によって固有の予期される情報と比較することができる。一致がある場合、セキュリティエージェント108は、イベント通知の組み合わせはフォールスポジティブを表さないと決定し、オリジネータ102を識別するようにさらなる処理を進める。
RPC利用プロセス104が要求メッセージ114を処理しているとの決定の後すぐに、セキュリティエージェント108は要求メッセージ114を取り出すことができる。いくつかの実装においてセキュリティエージェント108は、要求メッセージ114を取り出し、オリジネータ102を識別するように構成されたエンジンコンポーネントを含む。本明細書でさらに述べられるようにエンジンコンポーネントは、要求メッセージ114の処理に関連付けられたイベント通知の組み合わせがセキュリティエージェント108の相関機構によって受け取られたとき、相関機構から検出イベントを受け取ることができる。さらにエンジンコンポーネントは、要求メッセージの各タイプ用のエンジンプラグインを含むことができる。
要求メッセージ114を取り出すために、120でセキュリティエージェント108は、現在のスレッドのTEB122などのデータ構造を始めに決定する。イベント通知を受け取り、それらが要求メッセージ114のユーザモード処理を示すと決定するとすぐに、セキュリティエージェント108は、OSから現在のスレッドのTEB122を要求する。現在のスレッドは、要求メッセージ114のユーザモード処理に関わるワーカースレッドになる。TEB122は、ワーカースレッドについての情報、およびOSデータ構造128のRPC固有フィールド126のポインタまたは識別子を含むことができる。RPC固有フィールド126のポインタ/識別子は、難読化されてもよく、されなくてもよい。次に124でセキュリティエージェント108は、TEB122におけるポインタまたは識別子から、要求メッセージ114のコピーを記憶するRPC固有フィールド126までをトレースする。ポインタ/識別子が難読化される場合は、セキュリティエージェント108は、124でトレースするステップの前にポインタ/識別子を難読化解除する。
要求メッセージ114をトレースするとすぐに、セキュリティエージェント108は要求メッセージ114を取り出すことができる。これは130で、要求メッセージ114に関連付けられたメタデータ(例えばヘッダ情報)に基づいて、要求メッセージ114のオリジネータを識別するステップを含むことができる。セキュリティエージェント108はまた、オリジネータ102が、RPC利用プロセス104およびセキュリティエージェント108を含んだコンピューティングデバイスに対してローカルであるかリモートであるかを示すものとなり得る、用いられる通信プロトコルなどの要求メッセージ114のメタデータから、他の情報を取り出すことができる。いくつかの実装において、セキュリティエージェント108は、要求メッセージ114に関連付けられた追加のパラメータを取り出すように構成されることができ、そうするために要求メッセージ114のペイロードを取り出し、デマーシャリングすることができる。
さらなる実装において、130でオリジネータ102を識別するステップは、要求メッセージ114に関連付けられた名前付きパイプ、ソケットアドレス、またはALPCポートもしくはALPC接続を取り出すステップ、および名前付きパイプ、ソケットアドレス、またはALPCポートもしくはALPC接続を利用して、プロセス識別子、スレッド識別子、リモートクライアントコンピュータ名もしくはIPアドレス、またはこのような識別子、名前、およびアドレスの任意の組み合わせを取り出すステップを含むことができる。さらに、または代わりにセキュリティエージェント108は、カーネルから要求メッセージ114のコピーを取り出すことができる。このようなカーネルコピーは、要求メッセージ114メタデータおよびペイロードを含むことができる。そのメタデータおよび/またはペイロードは、RPC利用プロセス104によってユーザモード106で記憶されたメタデータおよび/またはペイロードと比較されることができ、競合がある場合、セキュリティエージェント108は警告を発生することができる。さらに、いくつかの実装においてセキュリティエージェント108は、要求メッセージ114のカーネルコピーのメタデータに基づいてオリジネータ102を識別することのみを行うように、および/または要求メッセージ114のカーネルコピーのペイロードの取り出しおよび使用のみを行うように構成され得る。
いくつかの実装において、116で受け取るステップ、118で決定するステップ、120で決定するステップ、124でトレースするステップ、および130で取り出すステップは、すべてカーネルモード110でセキュリティエージェント108によって行われ得る。
様々な実装において要求メッセージ114のメタデータは、センダとしてコマンドシェルを識別することができる(例えばATまたはschtaskなどのコマンドプロンプトを通じて)。このようなセンダが識別されたとき、セキュリティエージェントは、オリジネータ102としてコマンドシェルの親プロセスを識別することができる。
いくつかの実装において、要求メッセージ114のメタデータは、センダとして特定のスレッドを識別することができる。それの構成に基づいてセキュリティエージェント108は、特定のスレッドがオリジネータ102ではなく、同じプロセス(例えばスクリプトエンジン)の他のスレッド(例えばRPC利用スレッド)によって呼び出された中間スレッドであると決定することができる。それの構成に基づいてセキュリティエージェント108は、その他方の呼び出しているスレッドを識別し、その他方の呼び出しているスレッドから実際のオリジネータ102までをトレースすることができる。このようなさらにトレースするステップには、本明細書でさらに述べられる動作のいくつかまたはすべてが関わり得る。
さらなる実装において、要求メッセージ114のメタデータは、センダとして他のRPC利用プロセス104を識別することができる。他のRPC利用プロセス104がセンダとして識別されたとき、セキュリティエージェント108は、本明細書でさらに述べられる動作を繰り返して、その他方のRPC利用プロセス104によって処理される要求メッセージのセンダを識別することができる。このような反復は、オリジネータ102が識別されるまで続くことができる。
様々な実装において、オリジネータ102のアイデンティティに基づいて、他の要因(例えば要求メッセージ114のペイロードからのパラメータ)に基づいて、または両方に基づいて、セキュリティエージェント108は、防止するかまたはミスリードするための処置をとることができる。例えばセキュリティエージェント108は、RPC利用プロセス104による要求メッセージ114の処理を中止することによって、要求メッセージ114に関連付けられたさらなる活動を防止することができる。さらに、または代わりにセキュリティエージェント108は、オリジネータ102の、またはオリジネータ102に関連付けられたプロセスの、実行を停止することができる。他の例において、ミスリードするためにセキュリティエージェント108は、要求メッセージ114の処理の一部としてRPC利用プロセス104によって作られたカーネルモード要求メッセージのペイロードを変更する、または他の方法で同様な効果を得るように、変更されていない要求メッセー114の処理を改変することができる(例えば要求メッセージ114を処理しているRPC利用プロセスのカーネルモード動作を実行するように「装う」)。このような処置は、オリジネータ102または関連付けられたプロセスに、要求メッセージ114の処理からミスリードさせる結果をもたらす。
例示のシステム
図2は、ユーザモードにおいて要求メッセージを取り扱うようにRPC利用プロセスを用いて構成された監視されるコンピューティングデバイス、およびカーネルモードから、それらの要求メッセージのユーザモード処理を検出するためのセキュリティエージェントの、コンポーネントレベルの図を示す。示されるようにコンピューティングデバイス200は、クライアント204と、レジストリ206と、スレッド210およびデータ構造212を含むRPC利用プロセス208と、プラグイン218を有するエンジン216およびまた相関機構220の両方を含むセキュリティエージェント214とを記憶する、システムメモリ202を備える。またコンピューティングデバイス200は、プロセッサ222、リムーバブル記憶装置224および非リムーバブル記憶装置226、入力デバイス228、出力デバイス230、および他のコンピューティングデバイス234と通信するための通信接続232を含む。
図2は、ユーザモードにおいて要求メッセージを取り扱うようにRPC利用プロセスを用いて構成された監視されるコンピューティングデバイス、およびカーネルモードから、それらの要求メッセージのユーザモード処理を検出するためのセキュリティエージェントの、コンポーネントレベルの図を示す。示されるようにコンピューティングデバイス200は、クライアント204と、レジストリ206と、スレッド210およびデータ構造212を含むRPC利用プロセス208と、プラグイン218を有するエンジン216およびまた相関機構220の両方を含むセキュリティエージェント214とを記憶する、システムメモリ202を備える。またコンピューティングデバイス200は、プロセッサ222、リムーバブル記憶装置224および非リムーバブル記憶装置226、入力デバイス228、出力デバイス230、および他のコンピューティングデバイス234と通信するための通信接続232を含む。
様々な実施形態においてシステムメモリ202は、揮発性(RAMなど)、不揮発性(ROM、フラッシュメモリなど)、または両方の組み合わせである。クライアント204、レジストリ206、RPC利用プロセス208、スレッド210、データ構造212、セキュリティエージェント214、エンジン216、プラグイン218、および相関機構220は、本明細書でさらに述べられる同様に名付けられたコンポーネントの例である。
いくつかの実施形態においてプロセッサ222は、中央処理装置(CPU)、グラフィックス処理装置(GPU)、またはCPUおよびGPUの両方、または当技術分野で知られている他の処理装置またはコンポーネントを含む。
コンピューティングデバイス200はまた、例えば磁気ディスク、光ディスク、またはテープなどの、追加のデータ記憶装置(リムーバブルおよび/または非リムーバブル)を含む。このような追加の記憶装置は図2において、リムーバブル記憶装置224および非リムーバブル記憶装置226によって示される。非一時的コンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの、情報の記憶のための任意の方法または技術において実施された、揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体を含むことができる。システムメモリ202、リムーバブル記憶装置224、および非リムーバブル記憶装置226は、すべて非一時的コンピュータ可読記憶媒体の例である。非一時的コンピュータ可読記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD―ROM、デジタル多用途ディスク(DVD)または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または所望の情報を記憶するために用いられることができ、コンピューティングデバイス200によってアクセスされ得る任意の他の非一時的媒体を含むが、それらに限定されない。任意のこのような非一時的コンピュータ可読媒体は、コンピューティングデバイス200の一部とすることができる。
コンピューティングデバイス200はまた、キーボード、マウス、タッチセンシティブディスプレイ、音声入力デバイスなどの入力デバイス228、およびディスプレイ、スピーカ、プリンタなどの出力デバイス230を有する。これらのデバイスは、当技術分野でよく知られており、ここで詳しく論じられる必要はない。
コンピューティングデバイス200はまた、コンピューティングデバイス200が他のコンピューティングデバイス234と通信することを可能にする通信接続232を含む。
例示のプロセス
図3は、例示のプロセスを示す。このプロセスは、論理フローグラフとして示され、その各動作は、ハードウェア、ソフトウェア、またはそれらの組み合わせにおいて実施され得る動作のシーケンスを表す。ソフトウェアとの関連において動作は、1つまたは複数のプロセッサによって実行されたときに列挙された動作を行う、1つまたは複数のコンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令を表す。一般にコンピュータ実行可能命令は、特定の機能を行うまたは特定の抽象データタイプを実施する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。動作が述べられる順序は、限定として解釈されることを意図するものではなく、プロセスを実施するために、任意の数の述べられた動作が、任意の順序でおよび/または並列に組み合わされ得る。
図3は、例示のプロセスを示す。このプロセスは、論理フローグラフとして示され、その各動作は、ハードウェア、ソフトウェア、またはそれらの組み合わせにおいて実施され得る動作のシーケンスを表す。ソフトウェアとの関連において動作は、1つまたは複数のプロセッサによって実行されたときに列挙された動作を行う、1つまたは複数のコンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令を表す。一般にコンピュータ実行可能命令は、特定の機能を行うまたは特定の抽象データタイプを実施する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。動作が述べられる順序は、限定として解釈されることを意図するものではなく、プロセスを実施するために、任意の数の述べられた動作が、任意の順序でおよび/または並列に組み合わされ得る。
図3は、セキュリティエージェントによって行われる例示の動作を示し、動作は、カーネルモードイベントがRPC利用プロセスによる要求メッセージのユーザモード処理に関連付けられると決定するステップ、RPCデータ構造およびイベント通知に基づいてその要求メッセージを取り出すステップ、および要求メッセージのオリジネータを識別するステップを含む。
動作は、302でクライアントアプリケーション(オリジネータとも呼ばれる)が、要求メッセージを、そのクライアントアプリケーションのコンピューティングデバイスのRPC利用プロセスに送るステップを含む。要求メッセージは、例えばドメイン名サービスクエリ、ドキュメントを印刷する要求、ファイアウォール設定を変更する要求、または新しいアカウントを作成する要求とすることができる。
304でRPC利用プロセスは、要求メッセージをユーザモードで処理することができる。このような処理は、プロセス作成、スレッド作成、レジストリに書き込むこと、レジストリから読み出すこと、ファイルを作成すること、ファイルを開くこと、ファイルを読み出すこと、ファイルに書き込むこと、ファイルをマッピングすること、ネットワークパケットを送るかまたは受け取ること、オブジェクトに対するハンドルを作成するかまたは開くこと、レジストリ操作を行うこと、に関連付けられた要求メッセージなどの1つまたは複数のカーネルモード要求メッセージを送ることを含むことができる。
306でコンピューティングデバイスのセキュリティエージェントは、1つまたは複数のカーネルモードイベントにそれぞれ関連付けられた1つまたは複数のイベント通知を受け取る。カーネルモードイベントは、RPC利用プロセスのカーネルモード要求メッセージによって求められる処置に対応することができる(例えばプロセス作成、スレッド作成、レジストリに書き込むこと、レジストリから読み出すこと、ユーザグループ作成、タスクキャッシュに書き込むこと、タスクキャッシュから読み出すこと、ファイルを作成すること、ファイルを開くこと、ファイルを読み出すこと、ファイルに書き込むこと、ファイルをマッピングすること、ネットワークパケットを送るかまたは受け取ること、オブジェクトに対するハンドルを作成するかまたは開くこと、レジストリ操作を行うこと)。
308でセキュリティエージェントは、1つまたは複数のイベント通知に基づいて、1つまたは複数のカーネルモードイベントがRPC利用プロセスによる要求メッセージのユーザモード処理に関連付けられると決定する。決定するステップは310で、少なくとも部分的にセキュリティエージェントの構成に基づくことができる。決定するステップは312で、フォールスポジティブを防止するために、A)1つまたは複数のカーネルモードイベントのうちの1つに関連付けられたカーネルモード要求メッセージの1つに含まれた情報、またはB)セキュリティエージェントおよび/またはOSによって保持された状態情報を、予期される情報と比較するステップをさらに含むことができる。
314でセキュリティエージェントは、1つまたは複数のRPCデータ構造(例えばワーカースレッドTEB、および/またはOSデータ構造のRPC固有フィールド)に含まれた情報に基づいて、および1または複数のイベント通知に基づいて、要求メッセージを取り出す。取り出すステップは316で、OSによって処理されている現在のスレッドのTEBを決定するステップを含むことができる。現在のスレッドは、要求メッセージのユーザモード処理に関わるRPC利用プロセスのワーカースレッドとすることができる。取り出すステップは318で、OSデータ構造のRPC固有フィールドを通じて、TEBから要求メッセージまでをトレースするステップをさらに含むことができる。TEBはRPC固有フィールドを指し示すことができ、RPC固有フィールドは要求メッセージのコピーを記憶することができる。次いでセキュリティエージェントは、RPC固有フィールドから要求メッセージを取り出すことができる。320で要求メッセージが、コマンドシェルからRPC利用プロセスによって、または別のRPC利用プロセスから受け取られたとき、セキュリティエージェントは、314での取り出すステップを繰り返すことができる。
322でセキュリティエージェントは、要求メッセージのメタデータに基づいて、要求メッセージのオリジネータを識別する。識別するステップは324で、要求メッセージに関連付けられた名前付きパイプ、ソケットアドレス、またはALPCポートもしくはALPC接続を決定するステップと、名前付きパイプ、ソケットアドレス、またはALPCポートもしくはALPC接続を利用して、オリジネータのプロセス識別子、オリジネータのスレッド識別子、オリジネータのリモートクライアントコンピュータ名もしくはIPアドレス、またはこのような識別子、名前、およびアドレスの任意の組み合わせを取り出すステップとを含む。識別するステップは326で、要求メッセージに関連付けられた名前付きパイプ、またはALPCポートもしくはALPC接続を決定するステップと、名前付きパイプ、またはALPCポートもしくはALPC接続を利用して、要求メッセージのメタデータからオリジネータの識別子を取り出すステップとを含む。
328でセキュリティエージェントは、要求メッセージのメタデータに基づいて、オリジネータがローカルであるかリモートであるかを決定することができる。
330でセキュリティエージェントは、要求メッセージのペイロードをデマーシャリングして、1つまたは複数のパラメータを取り出すことができる。いくつかの実装においてデマーシャリングするステップは、要求メッセージのカーネルモードコピーから、要求メッセージのペイロードを取り出すステップを含むことができる。
332でセキュリティエージェントは、RPC利用プロセスによる要求メッセージの処理を中止する、またはオリジネータまたはオリジネータに関連付けられたプロセスの実行を停止することができる。
334でセキュリティエージェントは、オリジネータをミスリードするための処置をとることができる。
結論
主題について構造的特徴および/または方法論的動作に固有の用語で述べてきたが、添付の「特許請求の範囲」において定義される主題は、必ずしも述べられた特定の特徴または動作に限定されないことを理解されたい。むしろ、特定の特徴および動作は、「特許請求の範囲」を実施する例示の形として開示されるものである。
主題について構造的特徴および/または方法論的動作に固有の用語で述べてきたが、添付の「特許請求の範囲」において定義される主題は、必ずしも述べられた特定の特徴または動作に限定されないことを理解されたい。むしろ、特定の特徴および動作は、「特許請求の範囲」を実施する例示の形として開示されるものである。
102 オリジネータ
104 RPC利用プロセス
106 ユーザモード
108 セキュリティエージェント
110 カーネルモード
114 要求メッセージ
126 RPC固有フィールド
128 OSデータ構造
104 RPC利用プロセス
106 ユーザモード
108 セキュリティエージェント
110 カーネルモード
114 要求メッセージ
126 RPC固有フィールド
128 OSデータ構造
Claims (21)
- コンピューティングデバイスであって、
1つまたは複数のプロセッサと、
動作を行うように前記1つまたは複数のプロセッサによって操作されるように構成されたセキュリティエージェントと
を備え、前記動作は、
1つまたは複数のカーネルモードイベントにそれぞれ関連付けられた1つまたは複数のイベント通知を受け取るステップと、
前記1つまたは複数のイベント通知に基づいて、前記1つまたは複数のカーネルモードイベントがリモートプロシージャコール利用(RPC利用)プロセスによる要求メッセージのユーザモード処理に関連付けられると決定するステップと、
1つまたは複数のリモートプロシージャコール(RPC)データ構造に含まれた情報に基づいて、および前記1つまたは複数のイベント通知に基づいて前記要求メッセージを取り出すステップであって、
前記RPC利用プロセスによる前記要求メッセージの前記ユーザモード処理に関連付けられたワーカースレッドのスレッド環境ブロック(TEB)を決定するステップ、および
オペレーティングシステム(OS)データ構造のRPC固有フィールドを通じて前記TEBから前記要求メッセージまでをトレースするステップ、
を含む、取り出すステップと、
前記要求メッセージのメタデータに基づいて、前記要求メッセージのオリジネータを識別するステップと
を含むこと特徴とするコンピューティングデバイス。 - 前記セキュリティエージェントは、前記取り出すステップおよび前記識別するステップを行うように構成されたエンジンと、要求メッセージの各タイプ用のエンジンプラグインとを含むことを特徴とする請求項1に記載のコンピューティングデバイス。
- 前記セキュリティエージェントは、前記1つまたは複数のイベント通知のイベント通知を蓄積し、前記1つまたは複数のイベント通知がすべて受け取られたときに前記エンジンに警告するための相関機構を含むことを特徴とする請求項2に記載のコンピューティングデバイス。
- コンピューティングデバイス上のセキュリティエージェントによって実施される方法であって、
1つまたは複数のカーネルモードイベントにそれぞれ関連付けられた1つまたは複数のイベント通知を受け取るステップと、
前記1つまたは複数のイベント通知に基づいて、前記1つまたは複数のカーネルモードイベントがリモートプロシージャコール利用(RPC利用)プロセスによる要求メッセージのユーザモード処理に関連付けられると決定するステップと、
1つまたは複数のリモートプロシージャコール(RPC)データ構造に含まれた情報に基づいて、および前記1つまたは複数のイベント通知に基づいて前記要求メッセージを取り出すステップと、
前記要求メッセージのメタデータに基づいて、前記要求メッセージのオリジネータを識別するステップと
を含むことを特徴とする方法。 - 前記1つまたは複数のカーネルモードイベントは、プロセス作成、スレッド作成、レジストリに書き込むこと、レジストリから読み出すこと、ファイルを作成すること、ファイルを開くこと、ファイルを読み出すこと、ファイルに書き込むこと、またはファイルをマッピングすること、ネットワークパケットを送るかまたは受け取ること、オブジェクトに対するハンドルを作成するかまたは開くこと、またはレジストリ操作を行うことの少なくとも1つを含むことを特徴とする請求項4に記載の方法。
- 前記決定するステップは、少なくとも部分的にセキュリティエージェントの構成に基づくことを特徴とする請求項4に記載の方法。
- 前記要求メッセージは、ドメイン名サービスクエリ、ドキュメントを印刷する要求、ファイアウォール設定を変更する要求、または新しいアカウントを作成する要求であることを特徴とする請求項4に記載の方法。
- 前記決定するステップは、フォールスポジティブを防止するために、A)前記1つまたは複数のカーネルモードイベントのうちの1つに関連付けられたカーネルモード要求メッセージに含まれた情報、またはB)前記セキュリティエージェントおよび/またはOSによって保持された状態情報を、予期される情報と比較するステップをさらに含むことを特徴とする請求項4に記載の方法。
- 前記取り出すステップは、
前記RPC利用プロセスによる前記要求メッセージの前記ユーザモード処理に関連付けられたワーカースレッドのスレッド環境ブロック(TEB)を決定するステップと、
オペレーティングシステム(OS)データ構造のRPC固有フィールドを通じて、前記TEBから前記要求メッセージまでトレースするステップと
を含み、前記RPCデータ構造は、前記TEBおよび前記RPC固有フィールドを含むことを特徴とする請求項4に記載の方法。 - 前記トレースするステップは、
前記RPC固有フィールドから前記要求メッセージを取り出すステップ
を含むことを特徴とする請求項9に記載の方法。 - 前記要求メッセージは、コマンドシェルから前記RPC利用プロセスによって受け取られ、前記方法は、前記オリジネータが識別されるまで、前記取り出すステップおよび前記識別するステップを繰り返すステップをさらに含むことを特徴とする請求項4に記載の方法。
- 前記取り出すステップは、
前記RPCデータ構造に含まれた情報に基づいて、および前記1つまたは複数のイベント通知に基づいて、中間要求メッセージを取り出すステップと、
前記中間要求メッセージのオリジネータは、同じプロセスの他のスレッドによって呼び出された中間スレッドであると決定するステップと、
前記他のスレッドに関連付けられた追加の1つまたは複数のRPCデータ構造に含まれた情報に基づいて、前記要求メッセージを取り出すステップと
を含むことを特徴とする請求項4に記載の方法。 - 前記識別するステップは、前記要求メッセージに関連付けられた名前付きパイプ、ソケットアドレス、またはアドバンストローカルプロシージャコール(ALPC)ポートもしくは接続を決定するステップと、前記名前付きパイプ、前記ソケットアドレス、または前記ALPCポートもしくは接続を利用して、前記オリジネータのプロセス識別子、前記オリジネータのスレッド識別子、前記オリジネータのリモートクライアントコンピュータ名もしくはIPアドレス、またはプロセス識別子、前記スレッド識別子、および/または前記リモートクライアントコンピュータ名もしくはIPアドレスの任意の組み合わせを取り出すステップとを含むことを特徴とする請求項4に記載の方法。
- 前記識別するステップは、前記要求メッセージに関連付けられた名前付きパイプ、またはALPCポートもしくは接続を決定するステップと、前記名前付きパイプ、または前記ALPCポートもしくは接続を利用して、前記要求メッセージのメタデータのカーネルモードコピーから前記オリジネータの識別子を取り出すステップとを含むことを特徴とする請求項4に記載の方法。
- 前記要求メッセージの前記メタデータに基づいて、オリジネータがローカルであるかリモートであるかを決定するステップをさらに含むことを特徴とする請求項4に記載の方法。
- 前記要求メッセージのペイロードをデマーシャリングして、1つまたは複数のパラメータを取り出すステップをさらに含むことを特徴とする請求項4に記載の方法。
- 前記RPC利用プロセスによる前記要求メッセージの処理を中止するステップ、または前記オリジネータまたは前記オリジネータに関連付けられたプロセスの実行を停止するステップをさらに含むことを特徴とする請求項4に記載の方法。
- 前記オリジネータをミスリードするための処置をとるステップをさらに含むことを特徴とする請求項4に記載の方法。
- 非一時的コンピュータ可読媒体であって、それに記憶されたセキュリティエージェントを実施する実行可能命令を有し、該実行可能命令は、コンピューティングデバイスによって実行されたときに、
1つまたは複数のカーネルモードイベントにそれぞれ関連付けられた1つまたは複数のイベント通知を受け取るステップと、
前記1つまたは複数のイベント通知に基づいて、前記1つまたは複数のカーネルモードイベントがリモートプロシージャコール利用(RPC利用)プロセスによる要求メッセージのユーザモード処理に関連付けられると決定するステップと、
1つまたは複数のリモートプロシージャコール(RPC)データ構造に含まれた情報に基づいて、および前記1つまたは複数のイベント通知に基づいて前記要求メッセージを取り出すステップと、
前記要求メッセージのオリジネータを識別するステップであって、前記要求メッセージに関連付けられた名前付きパイプ、またはアドバンストローカルプロシージャコール(ALPC)ポートもしくは接続を利用して、前記要求メッセージのメタデータのカーネルモードコピーから前記オリジネータの識別子を取り出すステップを含む、識別するステップと
を含む動作を行うことを特徴とする非一時的コンピュータ可読媒体。 - 前記要求メッセージの前記カーネルモードコピーから、前記要求メッセージのペイロードを取り出すステップをさらに含むことを特徴とする請求項19に記載の非一時的コンピュータ可読媒体。
- 前記取り出すステップは、
前記RPC利用プロセスによる前記要求メッセージの前記ユーザモード処理に関連付けられたワーカースレッドのスレッド環境ブロック(TEB)を決定するステップと、
オペレーティングシステム(OS)データ構造のRPC固有フィールドを通じて、前記TEBから前記要求メッセージまでトレースするステップと
を含み、前記RPCデータ構造は、前記TEBおよび前記RPC固有フィールドを含むことを特徴とする請求項19に記載の非一時的コンピュータ可読媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/240,860 | 2016-08-18 | ||
US15/240,860 US10191789B2 (en) | 2016-08-18 | 2016-08-18 | Tracing system operations across remote procedure linkages to identify request originators |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018028907A true JP2018028907A (ja) | 2018-02-22 |
Family
ID=59485180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017153398A Pending JP2018028907A (ja) | 2016-08-18 | 2017-08-08 | 要求オリジネータを識別するためのリモートプロシージャリンケージにわたるシステム動作のトレーシング |
Country Status (6)
Country | Link |
---|---|
US (1) | US10191789B2 (ja) |
EP (1) | EP3285194B1 (ja) |
JP (1) | JP2018028907A (ja) |
AU (1) | AU2017206284A1 (ja) |
CA (1) | CA2974250A1 (ja) |
IL (1) | IL253917A0 (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3635603A4 (en) * | 2017-05-30 | 2021-03-03 | Cyemptive Technologies, Inc. | REAL TIME DETECTION AND PROTECTION AGAINST MALWARE AND STEGANOGRAPHY IN ONE CORE MODE |
US10873589B2 (en) | 2017-08-08 | 2020-12-22 | Sonicwall Inc. | Real-time prevention of malicious content via dynamic analysis |
US11151252B2 (en) | 2017-10-13 | 2021-10-19 | Sonicwall Inc. | Just in time memory analysis for malware detection |
US10685110B2 (en) * | 2017-12-29 | 2020-06-16 | Sonicwall Inc. | Detection of exploitative program code |
US11232201B2 (en) | 2018-05-14 | 2022-01-25 | Sonicwall Inc. | Cloud based just in time memory analysis for malware detection |
US11409871B1 (en) * | 2019-03-22 | 2022-08-09 | Ca, Inc. | Universal tracing of side-channel processes in computing environments |
KR102170737B1 (ko) * | 2020-03-30 | 2020-10-27 | 국방과학연구소 | 악성 스레드를 추적하는 장치 및 방법 |
CN112068970B (zh) * | 2020-08-10 | 2024-04-19 | 珠海全志科技股份有限公司 | 基于异构多核处理器的rpc实现方法及介质 |
US11727111B1 (en) * | 2020-10-05 | 2023-08-15 | Gen Digital Inc. | Detecting malware by linking background intelligent transfer service (BITS) and scheduled task service (STS) activities to a source program |
CN112583733A (zh) * | 2020-12-01 | 2021-03-30 | 北京三快在线科技有限公司 | 一种接口的流量整形方法、装置、存储介质及电子设备 |
US20230134872A1 (en) * | 2021-10-29 | 2023-05-04 | Blackberry Limited | Thread state transitions |
CN117494117A (zh) * | 2023-11-17 | 2024-02-02 | 北京天融信网络安全技术有限公司 | 一种远程过程调用的跟踪***及跟踪方法 |
CN117978428A (zh) * | 2023-12-05 | 2024-05-03 | 北京天融信网络安全技术有限公司 | 用于解析wmi客户端进程的方法、装置、处理器及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100249797B1 (ko) * | 1997-12-09 | 2000-03-15 | 정선종 | 알피씨 기반 분산처리 프로그램의 통신 이벤트/메시지 추적 방법 |
US7017084B2 (en) * | 2001-09-07 | 2006-03-21 | Network Appliance Inc. | Tracing method and apparatus for distributed environments |
US20070169045A1 (en) * | 2005-12-01 | 2007-07-19 | Microsoft Corporation | Component tagging |
US20130247190A1 (en) | 2008-07-22 | 2013-09-19 | Joel R. Spurlock | System, method, and computer program product for utilizing a data structure including event relationships to detect unwanted activity |
US9043903B2 (en) * | 2012-06-08 | 2015-05-26 | Crowdstrike, Inc. | Kernel-level security agent |
US10356047B2 (en) * | 2013-12-05 | 2019-07-16 | Crowdstrike, Inc. | RPC call interception |
EP3248132B1 (en) | 2015-01-22 | 2021-03-03 | McAfee, LLC | Detection of malicious invocation of application program interface calls |
-
2016
- 2016-08-18 US US15/240,860 patent/US10191789B2/en active Active
-
2017
- 2017-07-20 CA CA2974250A patent/CA2974250A1/en not_active Abandoned
- 2017-07-21 AU AU2017206284A patent/AU2017206284A1/en not_active Abandoned
- 2017-07-25 EP EP17183148.0A patent/EP3285194B1/en active Active
- 2017-08-08 IL IL253917A patent/IL253917A0/en unknown
- 2017-08-08 JP JP2017153398A patent/JP2018028907A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP3285194A1 (en) | 2018-02-21 |
US10191789B2 (en) | 2019-01-29 |
CA2974250A1 (en) | 2018-02-18 |
EP3285194B1 (en) | 2020-05-06 |
US20180052720A1 (en) | 2018-02-22 |
AU2017206284A1 (en) | 2018-03-08 |
IL253917A0 (en) | 2017-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3285194B1 (en) | Tracing system operations across remote procedure linkages to identify request originators | |
EP2939173B1 (en) | Real-time representation of security-relevant system state | |
US8914892B2 (en) | Method and system to enhance accuracy of a data leak prevention (DLP) system | |
US8621282B1 (en) | Crash data handling | |
JP2016533564A (ja) | システムコンポーネントの状態を相関させるイベントモデル | |
US9811356B2 (en) | Automated software configuration management | |
Palisse et al. | Data aware defense (DaD): towards a generic and practical ransomware countermeasure | |
US11616790B2 (en) | Distributed digital security system | |
WO2017185827A1 (zh) | 用于确定应用程序可疑行为的方法和装置 | |
US20210329014A1 (en) | Distributed digital security system | |
US8775607B2 (en) | Identifying stray assets in a computing enviroment and responsively taking resolution actions | |
JP2017502394A (ja) | Rpcコールの傍受 | |
CN111183620B (zh) | 入侵调查 | |
US20230007014A1 (en) | Detection of replacement/copy-paste attacks through monitoring and classifying api function invocations | |
US20220237129A1 (en) | Providing a secure communication channel between kernel and user mode components | |
US10185613B2 (en) | Error determination from logs | |
JP2017191604A (ja) | エクスプロイトアクティビティーの相関ベースの検知 | |
US11251976B2 (en) | Data security processing method and terminal thereof, and server | |
US11113096B2 (en) | Permissions for a cloud environment application programming interface | |
US20230247040A1 (en) | Techniques for cloud detection and response from cloud logs utilizing a security graph | |
WO2021016517A1 (en) | Methods and system for identifying infrastructure attack progressions | |
Laurén et al. | Virtual machine introspection based cloud monitoring platform | |
US20170353485A1 (en) | Facilitating scanning of protected resources | |
US11050768B1 (en) | Detecting compute resource anomalies in a group of computing resources | |
US20240154992A1 (en) | Event-driven collection and monitoring of resources in a cloud computing environment |