(57)【要約】      （修正有）【課題】マルウェアと関連付けられた挙動を検出し、マルウェアのインストールを防止できるようにする。【解決手段】検査対象プロセスコードがシステムコールを行う度にそれを検出し、コールサイトをさらに検出する。サイトの周囲の領域内の、かつ／またはサイトに関連した分岐内のコードの部分が解析され、検査対象プロセスコードが定義済みのソフトウェア・コード・パターンのうちの１つに対応するかどうか判定するために、コードの解析対象部分のプロパティが定義済みのソフトウェア・コード・パターンと比較される。次いで、検査対象プロセスコードが比較結果に従って分類される。【選択図】図１
2013168141.tif 000002
【特許請求の範囲】
【請求項１】
セキュリティアプリケーションにより、検査対象ソフトウェアコードがマルウェアであるか否かを判定するための方法であって、
ａ．前記検査対象プロセスコードが呼び出しを行う度に、検出するステップと、
ｂ．前記検査対象プロセスコード内のサイトである呼び出しサイトを検出するステップであって、前記呼び出しが当該サイトから起動されたものである、ステップと、
ｃ．前記サイトの周囲の領域内、および／または、前記サイトに関連する分岐内のコードの１つまたは２以上の部分を解析するステップと、
ｄ．コードの解析対象部分のプロパティの少なくとも一部と、定義済みのソフトウェア・コード・パターンと、を比較し、前記検査対象プロセスコードが前記定義済みのソフトウェア・コード・パターンのうちの１つに対応するか否か判定するステップと、
ｅ．比較結果に従って前記検査対象プロセスコードを分類するステップと、
を含む方法。
【請求項２】
前記プロセスコードは、有害または無害として分類される、請求項１に記載の方法。
【請求項３】
前記検査対象プロセスコードは、実行ファイル、または、ＤＬＬからロードされる、請求項１に記載の方法。
【請求項４】
前記検査対象プロセスコードは、関数呼び出しツリーの一部分、特定のサブルーチン、または、複数のコード命令によって相互に間隔を置いた特定のコードラインの組み合わせである、請求項１に記載の方法。
【請求項５】
前記セキュリティアプリケーション、または、その少なくとも一部分がクライアント装置にある、請求項１に記載の方法。
【請求項６】
マルウェアをインストールしようとする試みの検出がリアルタイムで行われる、請求項１に記載の方法。
【請求項７】
検出されると、前記マルウェアが、そのインストール完了を妨げられる、請求項６に記載の方法。
【請求項８】
前記呼び出しアクティビティがシステムコールである、請求項１に記載の方法。
【請求項９】
前記セキュリティアプリケーションは、ソフトウェアコードの各解析対象部分を公知のマルウェアパターンの「ブラックリスト」と比較する、請求項１に記載の方法。
【請求項１０】
アプリケーション、または、オペレーティングシステムから、前記セキュリティアプリケーションを呼び出すことができる、請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はインターネットセキュリティの分野に関する。より詳細には、本発明は、より安全なブラウジングを提供するとともに、オンラインの機密情報の盗用を防止するための方法に関する。
【背景技術】
【０００２】
ウェブブラウザがパーソナルコンピュータ上で最も頻繁に使用されるアプリケーションになり、銀行取引や買物取引など、より多くのユーザ機密データがウェブブラウザを介して入力されるようになるにつれて、悪質な攻撃がウェブブラウザにますます集中するようになってきている。悪質なコードをインストールできる悪質なセキュリティー上の弱点（exploit）の数がますます増加しており、悪質なブラウザ拡張機能が標的コンピュータシステム上で存続し続ける。悪質なブラウザ拡張機能がコンピュータシステム上で存続するために、典型的には、悪質な拡張機能がディスク上で存続するための悪質なファイルが作成され、ブラウザ拡張機能がオペレーティングシステムに登録されていることをウェブブラウザに通知するために、悪質なブラウザ拡張機能と関連付けられたレジストリエントリが作成される。
【０００３】
したがって、例えば、ユーザがユーザ機密データをウェブページのフォームフィールドに入力し、悪質なブラウザ拡張機能がウェブブラウザ上に存在している場合、悪質なブラウザ拡張機能がイベントを受け取るときに、悪質なブラウザ拡張機能は潜在的にそのイベントの内容にアクセスし、それを変更することができる。例えば、悪質なブラウザは、イベントの予定日超過（post data）パラメータにおける銀行口座の銀行進展コードといったユーザ機密データを複写または変更することができ、結果としてユーザ機密データが危険にさらされることになる。
【０００４】
消費者およびサービス提供者を保護するために、多くのソフトウェアおよびハードウェア解決策が提案され、あるいは、開発されている。これらの方法はおおむねオンライン認証を強化するが、オンラインアクティビティのための最も普及しているツールであるウェブブラウザが安全であることを暗黙的に前提としている。また、これらの解決策は、マルウェアのインストールプロセスに対する保護の提供を対象とするものではない。
【０００５】
既存の解決策の別の問題は、＊．ｅｘｅファイルを有害または無害として分類するために、保護ツールがそのファイルの内容をスキャンする必要があり得ることである。往々にしてこのプロセスは、悪質なファイルがそのファイル自身をインストールするのに必要とする時間より長い時間を要する場合がある。この限界は感染したシステムに不可避の損傷をもたらし得る。
【０００６】
この問題に対処し、ウェブをブラウズしている間の悪用からユーザを保護するためには、ブラウザ感染検出ツールが必要である。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
したがって、本発明の目的は、マルウェアと関連付けられた挙動を検出することができるシステムを提供することである。
【０００８】
本発明の別の目的は、マルウェアの完全なインストールを防止することができるシステムを提供することである。
【０００９】
本発明の他の目的および利点は説明が進むにつれて明らかになるであろう。
【課題を解決するための手段】
【００１０】
本発明は、セキュリティアプリケーションにより、検査対象ソフトウェアコードがマルウェアであるか否か判定するためのシステムおよび方法を対象とする。この方法に従って、システムは、検査対象プロセスコードが呼び出し（システムコールなど）を行う度に、検出し、呼び出し（call）サイト（検査対象プロセスコード内のサイトであって、呼び出しが当該サイトから起動された）をさらに検出する。サイトの周囲の領域内の、および／または、サイトに関連する分岐内のコードの１つまたは２以上の部分が解析され、検査対象プロセスコードが定義済みのソフトウェア・コード・パターンのうちの１つに対応するかどうか判定するために、コードの解析対象部分のプロパティの少なくとも一部が定義済みのソフトウェア・コード・パターンと比較される。次いで、検査対象プロセスコードが比較結果に従って分類される。
【００１１】
検査対象プロセスコードは、有害または無害として分類され、実行ファイルから、またはＤＬＬからロードされ得る。
【００１２】
検査対象プロセスコードは、関数呼び出しツリーの一部分とすることも、特定のサブルーチンとすることも、数コード命令ずつ相互に間隔を置いた特定のコードラインの組み合わせとすることもできる。
【００１３】
セキュリティアプリケーションまたはその少なくとも一部分は、クライアント装置上にあってよい。
【００１４】
マルウェアをインストールしようとする試みの検出はオフラインで、または、リアルタイムで行われ得る。検出され次第、マルウェアはそのインストールの完了を妨げられる。
【００１５】
一態様では、セキュリティアプリケーションは、アプリケーション、または、オペレーティングシステムから呼び出されることができ、ソフトウェアコードの各解析対象部分を公知のマルウェアパターンの「ブラックリスト」と比較する。
【図面の簡単な説明】
【００１６】
【図１】本発明の方法を大まかに説明するフローチャート。
【図２】本発明の実施形態を大まかに説明するフローチャート。
【発明を実施するための形態】
【００１７】
図面および以下の説明は単なる例としての本発明の実施形態に関するものである。以下の考察を読めば、本明細書で開示される構造および方法の代替の実施形態が、特許請求される発明の原理から逸脱しない限り、用いられ得る実行可能な選択肢として容易に認められるであろうことに留意すべきである。
【００１８】
次に、その例が添付の図に示されている（１つまたは複数の）本発明のいくつかの実施形態を参照する。使用できる場合にはどこでも、同様の、または類似の参照番号が各図において使用され、同様の、または類似の機能を指示し得る。各図には、本発明の実施形態が例示としてのみ示されている。以下の説明を読めば、当業者は、本明細書で例示される構造および方法の代替の実施形態が、本明細書で説明される本発明の原理を逸脱することなく用いられ得ることを容易に理解するであろう。
【００１９】
特に指示しない限り、ここで説明される機能は、コンピュータ可読媒体に記憶され、１つまたは複数のプロセッサベースのシステム上で走る実行可能コードおよび命令によって行われてよい。しかし、状態機械および／または配線による電子回路も利用することができる。さらに、ここで説明されるプロセスの例に関して、すべてのプロセス状態に到達される必要があるとは限らず、各状態が例示の順に行われる必要もない。さらに、順次に行われるものとして例示されるいくつかのプロセス状態を並列に行うこともできる。
【００２０】
同様に、いくつかの例ではパーソナルコンピュータ（ＰＣ）システムに言及する場合もあるが、ＭＡＣ、他のコンピュータまたは電子システム、例えば、それだけに限定されないが、ネットワーク対応の携帯情報端末（ＰＤＡ）、スマートフォン、タブレットなども使用することができる。
【００２１】
本発明は、（例えばウェブブラウザをマルウェアに感染させるために）コンピュータシステムにマルウェアをインストールしようとする試みをリアルタイムに検出するための方法に関するものである。本発明の一実施形態によれば、以下で例示するように、マルウェア（または他の疑わしいソフトウェアコード）が当該マルウェアのインストールを完了するのを防止するための方法が提供される。
【００２２】
ここでは、「マルウェア」という用語は、権限が付与されたユーザが知ることなく、および／または、権限が付与されたユーザの同意なしに、コンピュータシステム環境に入る任意のコンピュータプログラム、モジュール、モジュールのセット、またはコードとして定義される悪質なコードを指す。ブラウザイベント内のユーザ私用データにアクセスすることのできる、悪質なＢＨＯといった悪質なブラウザ拡張機能が、悪質なコードの一例である。さらにここでは、悪質なアクティビティとは、悪質なコードを実行した結果として生じる任意のアクティビティである。
【００２３】
本実施形態では、ウェブブラウザは、マイクロソフト・インターネット・エクスプローラやファイアフォックスといった数ある従来のウェブ・ブラウザ・アプリケーションのうちのいずれか１つである。
【００２４】
本発明による実施形態は、マルウェアをインストールしようとする試みを検出および防止し得る。一実施形態では、ホストコンピュータのＯＳからの呼び出しを検出するように登録されているセキュリティアプリケーションが、ホスト・コンピュータ・システム上にインストールされる。そのような呼び出しは、（ＯＳがマイクロソフトウィンドウズである場合には）ホストコンピュータのウィンドウズレジストリ、または、ファイルシステム操作とやりとりをする関数呼び出しとすることができる。
【００２５】
呼び出しが検出されると、プログラムコードであって、その呼び出しが当該プログラムコードから起動されたプログラムコードのプロパティが、マルウェアを表すかどうかの判定が行われる。一実施形態では、呼び出しが疑わしいイベントであると判定されない場合、そのイベントをさらに処理する（例えばインストールプロセスを完了する）ことができる。一方、呼び出しがマルウェアであると判定される場合、当該ソフトウェアコードのインストールプロセスが打ち切られる。
【００２６】
次に図１を参照すると、本発明の一実施形態によるコンピュータシステムの図が示されており、このコンピュータシステムは、ホスト・コンピュータ・システム上にマルウェアをインストールし、実行しようとする試みを検出するためのセキュリティアプリケーションを含む。ホスト・コンピュータ・システムは、ユーザ装置ともいい、典型的には、中央処理装置（ＣＰＵ）、入力出力（Ｉ／Ｏ）インターフェース、およびメモリを含み、メモリはオペレーティングシステムおよびウェブブラウザを含む。一実施形態では、オペレーティングシステムが、呼び出しイベントがそこから受け取られるサイトを提供する呼び出しイベント順序リストを維持する。
【００２７】
一実施形態では、メモリはセキュリティアプリケーションを含み、セキュリティアプリケーションは２つの主要なコンポーネント、すなわち、ａ）オペレーティングシステム（ＯＳ）の設定レジストリパスをリッスンすることによって、ＯＳのレジストリの呼び出しを監視するように構成されている検出エンジンと、ｂ）様々なマルウェアのソフトウェアコードの選択部分の挙動を表す定義済みのパラメータが事前ロードされたデータベースとを備える。
【００２８】
本発明の一実施形態によれば、セキュリティアプリケーションは以下のタスクを実行する。まず、セキュリティアプリケーションは、ソフトウェアコードが呼び出しアクティビティ（システムコールなど）を行う度に検出する。次のステップで、セキュリティアプリケーションは、サイトであって、呼び出しが当該サイトから起動された呼び出し側コード内のサイトを検出する。これがなされるのは、当該サイトの周囲の領域内、および／または、呼び出しの起動に関与する当該サイトに関連した分岐内における（実行可能ファイルまたはＤＬＬに属し得る）コードの１つまたは複数の部分を解析するためである。例えば、解析されるべきコードの部分は、特定のサブルーチンや、数コード命令ずつ相互に間隔を置いた特定のコードラインの組み合わせといった、（プログラム内の関数呼び出しの階層を示す）関数呼び出しツリーの部分と関連付けられていてもよい。この結果として、一意のパターンとしての形式でプロパティのサブセットがもたらされ、次いでそれを、マルウェアの存在、さらには、マルウェアの種類とさえも関連付けることができる。
【００２９】
次のステップで、セキュリティアプリケーションは、コードの解析対象部分（またはその少なくとも一部）のプロパティが、データベースに記憶された定義済みのソフトウェア・コード・パラメータまたはパターンと一致するかどうか検査する。コードの解析対象部分のプロパティと定義済みのソフトウェアコードとが一致することは、そのソフトウェアが、マルウェア、または、検出される必要のある他の種類のソフトウェアコードであることを示す。このことは、コードの解析対象部分のプロパティと定義済みのソフトウェア・コード・パターンとを比較し、検査対象プロセスコードが定義済みのソフトウェア・コード・パターンのうちの１つに対応するかどうかを判定することによってなされ得る。次いで、検査対象プロセスコードが比較結果に従って分類される。
【００３０】
例えば、ＳｐｙＥｙｅといった数種類のマルウェアの公知の挙動は、まず、（ユーザがログインするときに）ウィンドウズのスタートアップシーケンスにおいて、そのマルウェア自体をロードするために、ＨＫＣＵ＼Ｓｏｆｔｗａｒｅ＼Ｍｉｃｒｏｓｏｆｔ＼Ｗｉｎｄｏｗｓ＼ＣｕｒｒｅｎｔＶｅｒｓｉｏｎ＼Ｒｕｎ  Ｗｉｎｄｏｗｓ＼Ｒｅｇｉｓｔｙ  ｋｅｙにエントリを追加するものである。
【００３１】
典型的には、ＯＳは、呼び出しを受け取ると、様々な階層を介してシステム要求を転送する。前述のように、ウィンドウズレジストリのレジストリキーへ値を追加することにより、マルウェアコードがマルウェア自体を永続的にインストールしようと試みたとしても、セキュリティアプリケーションは、この試みを監視し、サイトであって、上記呼び出しが当該サイトから起動されたサイト、および、このサイトの周囲の領域内のコードの部分を検出する。
【００３２】
一態様では、セキュリティアプリケーションは、ソフトウェアコードの各解析対象部分を、公知のマルウェアパターンの「ブラック」リストと比較する。コードの１つまたは複数の部分が「ブラック」リスト内のエントリと一致する場合、自身をインストールしようと試みる関連ソフトウェアコードは終了または阻止され、それ以外の場合、ソフトウェアコードはインストールを完了することができる。
【００３３】
次に図２を参照すると、本発明の一実施形態による、マルウェアインストールの試みの初期段階でのＯＳのレジストリパスにおける、通知順序リストの図が示されている。
【００３４】
ここでは、コンピュータメモリは、揮発性メモリ、不揮発性メモリ、またはこれら２つの組み合わせを指す。セキュリティアプリケーションはアプリケーションと呼ばれているが、これは例示にすぎない。セキュリティアプリケーションは、アプリケーションまたはオペレーティングシステムから呼び出すことができるはずである。一実施形態では、アプリケーションは一般に任意の実行可能コードであると定義される。さらに、「アプリケーションまたはオペレーションがある動作を行う」という場合、その動作は、プロセッサが１つまたは複数の命令を実行した結果であることを当業者は理解するであろう。
【００３５】
図１に示すように、セキュリティアプリケーションはＯＳレベルの呼び出し時に通知されるため、この媒体またはその少なくとも一部分がコンピュータシステム自体（クライアント装置）に置かれ、残りの部分がホストコンピュータと異なる場所に物理的に位置するメモリに記憶されてもよい。これはクライアント・サーバシステムにおいて実現することもでき、あるいは、モデムおよびアナログ回線を介した別のコンピュータへの接続、または、ディジタルインターフェースおよびディジタル回線を介した別のコンピュータへの接続によって実現することもできるはずである。
【００３６】
本開示を考慮すると、本発明の実施形態によるセキュリティアプリケーションの機能は、多種多様なコンピュータシステム構成において実施することができる。加えて、セキュリティアプリケーションの機能は、様々な装置のメモリに様々なモジュールとして記憶することもできるはずである。例えば、まず、セキュリティアプリケーションをコンピュータシステムに記憶し、次いで、必要に応じて、セキュリティアプリケーションの一部分をホスト・コンピュータ・システムへ転送し、ホスト・コンピュータ・システム上で実行することもできるはずである。したがって、セキュリティアプリケーションの機能の一部はサーバ・コンピュータ・システムのプロセッサ上で実行され、別の一部はホスト・コンピュータ・システムのプロセッサ上で実行されることになるはずである。
【００３７】
本開示を考慮すると、当業者は、ユーザにとって関心のあるオペレーティングシステムおよびコンピュータプログラミング言語を使用して、多種多様な物理ハードウェア構成において本発明の様々な実施形態を実施することができる。さらに別の実施形態では、セキュリティアプリケーションは、サーバ・コンピュータ・システムのメモリに記憶される。セキュリティアプリケーションは、ネットワーク上でホスト・コンピュータ・システムのメモリへ転送される。
【００３８】
以上、本発明のいくつかの実施形態を例として説明したが、本発明は、多くの改変、変形および適応と共に、当業者の範囲内の多数の均等物または代替の解決用を使用して、本発明の趣旨を逸脱せず、特許請求の範囲も超えずに実行することができることは明らかであろう。
【図１】
2013168141.tif 000003
【図２】
2013168141.tif 000004
【外国語明細書】
2013168141000001.pdf