(57)【要約】【課題】エクスプロイト攻撃を検出及び／又は防止するためのエージェント、及びエクスプロイト攻撃を検出及び／又は防止するための方法を提供すること。【解決手段】エクスプロイト攻撃を検出及び／又は防止するためのエージェントであって、エージェントは、コンピュータ・システムにおける１つ又は複数の処理要素の動作を監視するための手段と、前記１つ又は複数の処理要素が生成プロセス動作を起動したか、又は正に開始しようとしているところであるかどうかを決定するための手段と、決定の結果として防止アクティビティを実施するための手段とを備えている。【選択図】図１
2015082325.tif 000002
【特許請求の範囲】
【請求項１】
エクスプロイト攻撃を検出及び／又は防止するためのエージェントであって、
（ａ）コンピュータ・システムにおける１つ又は複数の処理要素の動作を監視するための手段と、
（ｂ）前記１つ又は複数の処理要素が生成プロセス動作を起動したか、又は正に起動しようとしているところであるかどうかを決定するための手段と、
（ｃ）前記決定の結果として防止アクティビティを実施するための手段と
を備えるエージェント。
【請求項２】
前記処理要素が、リーダ、プレーヤ、ブラウザ、及びプロセスを開始することができる同様のソフトウェア要素からなる、請求項１に記載のエージェント。
【請求項３】
プロセスの生成を阻止するのに適した、請求項１に記載のエージェント。
【請求項４】
プロセス生成の前記阻止が、
（ａ）Ｗｉｎｄｏｗｓ（登録商標）  ＸＰのカーネルにおいて、ＮｔＣｒｅａｔｅＰｒｏｃｅｓｓのためのＳＳＤＴエントリをフッキングすること、
（ｂ）Ｗｉｎｄｏｗｓ  ＸＰ及びそれ以上のカーネルにおいて、Ｗｉｎｄｏｗｓ  ｋｅｒｎｅｌ  Ｏｂｊｅｃｔ  Ｍａｎａｇｅｒ  ｃａｌｌｂａｃｋを登録すること、及び
（ｃ）ユーザ空間において、潜在呼出しプロセスのＣｒｅａｔｅＰｒｏｃｅｓｓＡ／ＣｒｅａｔｅＰｒｏｃｅｓｓＷ／ＣｒｅａｔｅＰｒｏｃｅｓｓＥｘＡ／ＣｒｅａｔｅＰｒｏｃｅｓｓＥｘＷをフッキングすること
のうちの１つ又は複数によって実施される、請求項３に記載のエージェント。
【請求項５】
正に生成されようとしているプロセスを検査するのに適した、請求項１に記載のエージェント。
【請求項６】
正に生成されようとしている前記プロセスの検査が、発端となるプロセスを調べ、且つ、前記プロセスが攻撃の影響を受け易いプロセスであるかどうかを決定することによって実行される、請求項５に記載のエージェント。
【請求項７】
前記プロセスが、ブラウザ、ビューワ又はプレーヤのうちの１つに端を発する、請求項５に記載のエージェント。
【請求項８】
正に生成されようとしている前記プロセスの検査が、
（ａ）発端となるプロセス・データ源を調べること、
（ｂ）正に送り出されようとしているプロセス・イメージの位置を調べること、及び
（ｃ）サイズ又はディジタル署名などの前記正に送り出されようとしている前記プロセス・イメージの特徴を調べること
のうちの１つ又は複数によって実行される、請求項５に記載のエージェント。
【請求項９】
プロセス・イメージのブラックリスト及び／又はホワイトリストを備える、請求項５に記載のエージェント。
【請求項１０】
送り出されるプロセスが他のプロセスを送り出し／登録するために使用されるかどうかを決定し、それにより前記プロセス自体の上でではなく、その代わりにそのターゲット・アーギュメント上で正に生成されようとしているプロセスの検査を実行するのに適した、請求項５に記載のエージェント。
【請求項１１】
防止アクティビティを実施するための前記手段がソフトウェアを含む、請求項１に記載のエージェント。
【請求項１２】
前記防止アクティビティが警報の生成を含む、請求項１に記載のエージェント。
【請求項１３】
警報がユーザに提供される、請求項３に記載のエージェント。
【請求項１４】
警報が遠隔位置に提供される、請求項３に記載のエージェント。
【請求項１５】
（ａ）コンピュータ・システムにおける１つ又は複数のリーダ及び／又はプレーヤの動作を監視するステップと、
（ｂ）前記１つ又は複数のリーダ及び／又はプレーヤが生成プロセス動作を起動したか、又は正に開始しようとしているところであるかどうかを決定するステップと、
（ｃ）前記決定の結果として防止アクティビティを実施するステップであって、前記アクティビティが、ユーザ及び／又は遠隔位置に警報を発すること、及び生成中のプロセスの継続を防止することのうちから選択される、前記実施するステップと
を含む、エクスプロイト攻撃を検出及び／又は防止するための方法。
【請求項１６】
プロセスの前記生成を阻止するステップを含む、請求項１５に記載の方法。
【請求項１７】
プロセス生成の阻止が、
（ｇ）Ｗｉｎｄｏｗｓ（登録商標）  ＸＰのカーネルにおいて、ＮｔＣｒｅａｔｅＰｒｏｃｅｓｓのためのＳＳＤＴエントリをフッキングすること、
（ｈ）Ｗｉｎｄｏｗｓ  ＸＰ及びそれ以上のカーネルにおいて、Ｗｉｎｄｏｗｓ  ｋｅｒｎｅｌ  Ｏｂｊｅｃｔ  Ｍａｎａｇｅｒ  ｃａｌｌｂａｃｋを登録すること、及び
（ｉ）ユーザ空間において、潜在呼出しプロセスのＣｒｅａｔｅＰｒｏｃｅｓｓＡ／ＣｒｅａｔｅＰｒｏｃｅｓｓＷ／ＣｒｅａｔｅＰｒｏｃｅｓｓＥｘＡ／ＣｒｅａｔｅＰｒｏｃｅｓｓＥｘＷをフッキングすること
のうちの１つ又は複数によって実施される、請求項１６に記載の方法。
【請求項１８】
正に生成されようとしているプロセスを検査するステップを含む、請求項１５に記載の方法。
【請求項１９】
正に生成されようとしている前記プロセスの検査が、
（ａ）発端となるプロセスが攻撃の影響を受け易いプロセスであるかどうかを決定するために、前記発端となるプロセスを調べること、
（ｂ）発端となるプロセス・データ源を調べること、及び
（ｃ）正に送り出されようとしているプロセス・イメージの位置を調べること
のうちの１つ又は複数によって実行される、請求項１８に記載の方法。
【請求項２０】
前記プロセスが、ブラウザ、ビューワ又はプレーヤのうちの１つに端を発する、請求項１８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・システムをマルウェア感染から保護するための方法に関する。より詳細には、本発明は、「エクスプロイト攻撃」として知られている攻撃を介してもたらされるマルウェア感染の検出及び防止に関する。
【背景技術】
【０００２】
マルウェア作成者は、いわゆる「マルウェア」をコンピュータ・システムに展開し、それにより他のサブシステムに展開し、且つ、侵入するために、コンピュータ・システムによって提供された保護を巧みに免れる方法を常に探し求めている。異なるマルウェアは異なるターゲットを有しているが、一般的な目的は、ほとんどの場合、金融機関へのアクシス情報、パスワード及び他の個人情報などのマルウェア開発者にとって価値のある情報をコンピュータ・ユーザに気づかれずに引き出すことがしばしばである。
【０００３】
マルウェアをコンピュータ・システムに首尾良く引き渡すためには、その展開プロセスが生じていることをシステムのユーザに気づかれてはならないため、攻撃者は、この目的のために明らかに害のないウェブサイトをしばしば使用している。１つの例は、ユーザが広告を表示している明らかに正当なウェブサイトを検索している場合であり、また、他の例は、例えばパンフレットのダウンロードを許容している場合であろう。パンフレットがダウンロードされると、ＰＤＦリーダは、正当なファイルではなく、ウェブからの悪意のあるファイルのダウンロード及び実行を含むリーダにとってはむしろ異常なプライム・アクティビティであるＰＤＦファイルを開く。このプロセスは、「ドライブ・バイ・ダウンロード」として知られている。このプロセスは、典型的にはＪａｖａ（登録商標）、ＰＤＦ及びＦｌａｓｈ（登録商標）などのファイルを走らせる様々なリーダ及びプレーヤを使用して実施することができる。また、このプロセスは、ブラウザ自体をターゲットにすることも可能である。このようなプロセスは単独で実施することができ、或いはエクスプロイトされる被害者の可能性を最大にするために、被害者のＯＳ、ブラウザ及びプラグイン・インベントリ毎にいくつかの（時には数十の）異なるエクスプロイトを試行することができる「シュリンク・ラップ」システムであるいわゆる「エクスプロイト・キット」の一部であってもよい。
【０００４】
Ａｄｏｂｅ（登録商標）  Ｒｅａｄｅｒが（悪意のある）ＰＤＦファイルを処理する際に、Ａｄｏｂｅ  Ｒｅａｄｅｒプロセス内で生じるアクティビティをさらに説明するために、以下は典型的なエクスプロイテーション・フローである。
１．Ａｃｒｏｂａｔ（登録商標）リーダ・プロセスがＰＤＦ文書を受け取る。
２．ＡｃｒｏｂａｔリーダがそのＰＤＦ文書を分析し、且つ、その内部のスクリプトを実行する。
３．スクリプトは、Ａｃｒｏｂａｔリーダ・プロセスが悪意のある命令（準備されたメモリ・セクションに明記されている）の実行を開始するよう、所望の値（例えばヒープ・スプレーイング）を有する何らかのメモリ領域を準備する何らかの方法と共に、脆弱性、例えばスタック・オーバフロー（今日では一般的ではない脆弱性）又はヒープ・オーバフロー或いは「解放後使用」条件をエクスプロイトする。
４．次に、悪意のあるコードが、エクスプロイト・コード又はそのエクスプロイト・コードに提供されているパラメータの中から見出されたＵＲＬから最終ペイロードを局所ファイルにダウンロードし、例えばＷｉｎｄｏｗｓ（登録商標）内では、％ＴＥＭＰ％フォルダの下でランダム・ファイル名にダウンロードする。
５．最後に、エクスプロイト・コードが新しく作成されたファイルを走らせる（例えばＷｉｎｄｏｗｓ内では、ＣｒｅａｔｅＰｒｏｃｅｓｓ  Ｗｉｎｄｏｗｓ  ＡＰＩを呼び出すことによって）。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、エクスプロイト試行を検出し、それによりその存在をユーザに知らせることができる手段を提供することである。
【０００６】
本発明の他の目的は、エクスプロイト試行を防止する手段を提供することである。
【０００７】
本発明の他の目的及び利点は、説明の進行に応じて明らかになるであろう。
【課題を解決するための手段】
【０００８】
エクスプロイト攻撃を検出及び／又は防止するためのエージェントは、
（ａ）コンピュータ・システムにおける１つ又は複数の処理要素の動作を監視するための手段と、
（ｂ）前記１つ又は複数の処理要素が「生成プロセス」動作を起動したか、又は正に起動しようとしているところであるかどうかを決定するための手段と、
（ｃ）決定の結果として防止アクティビティを実施するための手段と
を備えている。
【０００９】
本発明の一実施例によれば、処理要素は、リーダ、プレーヤ、ブラウザ、及びプロセスを開始することができる同様のソフトウェア要素からなっている。本発明の他の実施例によれば、エージェントは、プロセスの生成を阻止するのに適している。プロセス生成の阻止は、例えば、
（ｄ）カーネル（Ｗｉｎｄｏｗｓ  ＸＰ）において、ＮｔＣｒｅａｔｅＰｒｏｃｅｓｓのためのＳＳＤＴエントリをフッキングすること、
（ｅ）カーネル（Ｗｉｎｄｏｗｓ  ＸＰ及びそれ以上）において、Ｗｉｎｄｏｗｓ  ｋｅｒｎｅｌ  Ｏｂｊｅｃｔ  Ｍａｎａｇｅｒ  ｃａｌｌｂａｃｋを登録すること、又は
（ｆ）ユーザ空間において、潜在呼出しプロセスのＣｒｅａｔｅＰｒｏｃｅｓｓＡ／ＣｒｅａｔｅＰｒｏｃｅｓｓＷ／ＣｒｅａｔｅＰｒｏｃｅｓｓＥｘＡ／ＣｒｅａｔｅＰｒｏｃｅｓｓＥｘＷをフッキングすること
のうちの１つ又は複数によって実施することができる。
【００１０】
本発明の一実施例では、エージェントは、例えば発端となるプロセスを調べ、且つ、そのプロセスが攻撃の影響を受け易いプロセスであるかどうかを決定することによって、正に生成されようとしているプロセスを検査するのに適している。本発明が参照するプロセスの実例は、ブラウザ、ビューワ又はプレーヤのうちの１つに端を発する実例を含む。
【００１１】
本発明の他の実施例では、正に生成されようとしているプロセスの検査は、
（ａ）発端となるプロセス・データ源を調べること、
（ｂ）正に送り出されようとしているプロセス・イメージの位置を調べること、及び
（ｃ）サイズ又はディジタル署名などの正に送り出されようとしているプロセス・イメージの特徴を調べること
のうちの１つ又は複数によって実行される。
【００１２】
また、本発明のエージェントは、プロセス・イメージのブラックリスト及び／又はホワイトリストを備えることも可能である。本発明のいくつかの実施例では、エージェントは、送り出されるプロセスが他のプロセスを送り出し／登録するために使用されるかどうかを決定し、それによりプロセス自体の上でではなく、その代わりにそのターゲット・アーギュメント上で正に生成されようとしているプロセスの検査を実行するのに適している。防止アクティビティを実施するための手段はソフトウェアを含むことができ、また、防止アクティビティは、ユーザ又は遠隔位置のいずれかに対する警報の生成を含むことができる。
【００１３】
また、本発明は、
ｉ．コンピュータ・システムにおける１つ又は複数のリーダ及び／又はプレーヤの動作を監視するステップと、
ｉｉ．前記１つ又は複数のリーダ及び／又はプレーヤが「生成プロセス」動作を起動したか、又は正に起動しようとしているところであるかどうかを決定するステップ、及び決定の結果として防止アクティビティを実施するステップであって、前記アクティビティが、ユーザ及び／又は遠隔位置に警報を発すること、及び生成中のプロセスの継続を防止することのうちから選択される、前記実施するステップと
を含む、エクスプロイト攻撃を検出及び／又は防止するための方法を包含している。
【００１４】
本発明の一実施例によれば、本発明の方法は、例えば、
（ａ）カーネル（Ｗｉｎｄｏｗｓ  ＸＰ）において、ＮｔＣｒｅａｔｅＰｒｏｃｅｓｓのためのＳＳＤＴエントリをフッキングすること、
（ｂ）カーネル（Ｗｉｎｄｏｗｓ  ＸＰ及びそれ以上）において、Ｗｉｎｄｏｗｓ  ｋｅｒｎｅｌ  Ｏｂｊｅｃｔ  Ｍａｎａｇｅｒ  ｃａｌｌｂａｃｋを登録すること、及び
（ｃ）ユーザ空間において、潜在呼出しプロセスのＣｒｅａｔｅＰｒｏｃｅｓｓＡ／ＣｒｅａｔｅＰｒｏｃｅｓｓＷ／ＣｒｅａｔｅＰｒｏｃｅｓｓＥｘＡ／ＣｒｅａｔｅＰｒｏｃｅｓｓＥｘＷをフッキングすること
のうちの１つ又は複数によってプロセスの生成を阻止するステップを含む。
【００１５】
本発明の一実施例では、方法は、例えば、
（ａ）発端となるプロセスが攻撃の影響を受け易いプロセスであるかどうかを決定するために、その発端となるプロセスを調べること、
（ｂ）発端となるプロセス・データ源を調べること、及び
（ｃ）正に送り出されようとしているプロセス・イメージの位置を調べること
のうちの１つ又は複数によって、正に生成されようとしているプロセスを検査するステップを含む。
【図面の簡単な説明】
【００１６】
【図１】ＰＤＦリーダがエクスプロイトされるサンプル・プロセスを示す図である。
【発明を実施するための形態】
【００１７】
図１は、ＰＤＦリーダを使用したエクスプロイト攻撃の一例を概略的に示したものである。当業者には容易に理解されるように、ＰＤＦリーダの代わりに異なるリーダ又はプレーヤ（例えばＦｌａｓｈプレーヤ）を使用した場合、又は簡潔にするためにブラウザ或いは電子メール・クライアント、及びこの特定の例が提供された場合にも同様の状況が存在するが、何ら本発明を制限することを意味するものではない。当業者には明らかなように、代表的なシステムとしてＷｉｎｄｏｗｓが使用されているが、本発明は、何らかの特定のオペレーティング・システムに何ら限定されず、Ｗｉｎｄｏｗｓが使用されているのは、それが幅広く使用されており、例として好都合であるからにすぎない。
【００１８】
プロセスは、ユーザがウェブをサーフィンし、広告２を表示している、一括して数表示１で示されているページに到達することで開始される。広告をクリックするとＰＤＦファイル３がダウンロードされる（このＰＤＦファイル３は、例えばパンフレットとして偽装させることができる）。ＰＤＦファイルがリーダ４によって読み取られると、リーダ４は、ウェブ（一括して数表示５で示されている）にアクセスし、且つ、悪意のあるファイル６をダウンロードする。リーダ４は、次に、ファイル６を実行する。
【００１９】
本発明によれば、このエクスプロイトは、リーダ、プレーヤ及びブラウザなどの処理要素の挙動を監視し、且つ、リーダ又はプレーヤが「生成プロセス」動作を開始すると、警報を生成するか、或いはプロセスを停止するかのいずれかによってそれを阻止するエージェントをユーザのシステムに提供することによって検出及び／又は防止される。この説明のために、「処理要素」は、プロセスを開始することができる任意のソフトウェアを意味している。多くの場合、生成プロセス動作を開始するためには、このような処理要素は正当であり、このような正当な場合をホワイトリストに挙げることが望ましい。しかしながら、このような攻撃の結果の重大さを考慮すると、少数の偽りの正の応答（つまり、この警報をトリガする動作が正当である間に、潜在的なエクスプロイト状況が生じていることを示す警報）は許容可能である。
【００２０】
本発明を実行するためには、本明細書においては集合的に「エージェント」と呼ぶことができる、様々な操作を実施するための適切なソフトウェアを提供しなければならない。プロセス生成の阻止は、前記エージェントによっていくつかの方法で実施することができ、例えば、
ａ．カーネル（Ｗｉｎｄｏｗｓ  ＸＰ）において、ＮｔＣｒｅａｔｅＰｒｏｃｅｓｓのためのＳＳＤＴエントリをフッキングすること、
ｂ．カーネル（Ｗｉｎｄｏｗｓ  ＸＰ及びそれ以上）において、Ｗｉｎｄｏｗｓ  ｋｅｒｎｅｌ  Ｏｂｊｅｃｔ  Ｍａｎａｇｅｒ  ｃａｌｌｂａｃｋを登録すること、及び
ｃ．ユーザ空間において、潜在呼出しプロセスのＣｒｅａｔｅＰｒｏｃｅｓｓＡ／ＣｒｅａｔｅＰｒｏｃｅｓｓＷ／ＣｒｅａｔｅＰｒｏｃｅｓｓＥｘＡ／ＣｒｅａｔｅＰｒｏｃｅｓｓＥｘＷをフッキングすることによって
実施することができる。
【００２１】
プロセス生成の阻止が保証されると、エージェントは、
−  発端となるプロセスが例えばブラウザ／ビューワ／プレーヤであるかどうかを調べ、その場合、その発端となるプロセスが攻撃の影響をより受け易いかどうかを決定するために、その発端となるプロセスを調べること、
−  例えばＡｃｒｏｂａｔ  Ｒｅａｄｅｒの場合、発端となるプロセス・データ源がインターネットからの文書（より怪しい）、又は局所ファイル・サーバからの文書（それほどには怪しくない）を消費するかどうか、その発端となるプロセス・データ源を調べること、
−  正に送り出されようとしているプロセス・イメージの位置を調べる（典型的には、エクスプロイト・キットの場合、正に送り出されようとしているプロセス・イメージが％ＴＥＭＰ％などの完全にアクセス可能な位置で生成されるかどうか、一方、システム・プロセスが％Ｗｉｎｄｏｗｓ％又はその真下から送り出されるかどうかを調べる）こと、
−  正に送り出されようとしているプロセス・イメージの他の特徴、例えばサイズ、ディジタル署名を調べること、
−  プロセスが送り出されるコマンド・ライン（つまりプロセスに提供されている追加パラメータ）を調べ、場合によっては正当性又は悪意を決定するためにこれらにテンプレート／レギュラー表現を適用すること、
−  最後に、暗合学的ハッシュ（ＭＤ５／ＳＨＡ１／ＳＨＡ２／ＳＨＡ３）を介して、正に送り出されようとしているプロセス・イメージに対してブラックリスト及びホワイトリストを適用すること
によって、正に生成されようとしているプロセスを検査しなければならない。
【００２２】
送り出されたプロセスを使用して、他のプロセス、例えばｃｍｄ．ｅｘｅ、ｊａｖａ．ｅｘｅ、ｒｕｎｄｌｌ３２．ｅｘｅ又はｒｅｇｓｖｒ３２．ｅｘｅを送り出し／登録する場合、「正に送り出されようとしているプロセス」に関するアーギュメントは、プロセス自体（それぞれｃｍｄ．ｅｘｅ、ｊａｖａ．ｅｘｅ、ｒｕｎｄｌｌ３２．ｅｘｅ、ｒｅｇｓｖｒ３２．ｅｘｅ）にではなく、どちらかと言えばそのターゲット・アーギュメントに適用しなければならないことに留意されたい（例えば「ｃｍｄ．ｅｘｅ／ｓｔａｒｔ  ｆｉｌｅ」−ｔｏ  ｆｉｌｅの場合）。
【００２３】
したがって、当業者には容易に理解されるように、本発明によれば、エクスプロイト攻撃を防止するための、上で詳細に説明したような操作によって容易に実施することができる単純で尚且つ強力なツールが提供される。
【００２４】
本発明の以上の説明及び例示的実施例は、すべて、実例による説明を目的として提供されたものであり、特許請求の範囲によって提供されている制限を除き、本発明を制限することは何ら意図されていない。
【符号の説明】
【００２５】
１  ページ
２  広告
３  ＰＤＦファイル
４  リーダ
５  ウェブ
６  悪意のあるファイル
【図１】
2015082325.tif 000003