特許第6176622号(P6176622)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

<>
  • 特許6176622-マルウェアの検出方法 図000002
  • 特許6176622-マルウェアの検出方法 図000003
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6176622
(24)【登録日】2017年7月21日
(45)【発行日】2017年8月9日
(54)【発明の名称】マルウェアの検出方法
(51)【国際特許分類】
   G06F 21/56 20130101AFI20170731BHJP
【FI】
   G06F21/56 360
【請求項の数】12
【外国語出願】
【全頁数】9
(21)【出願番号】特願2013-15153(P2013-15153)
(22)【出願日】2013年1月30日
(65)【公開番号】特開2013-168141(P2013-168141A)
(43)【公開日】2013年8月29日
【審査請求日】2016年1月14日
(31)【優先権主張番号】13/362,963
(32)【優先日】2012年1月31日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
(74)【代理人】
【識別番号】100108501
【弁理士】
【氏名又は名称】上野 剛史
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】アミット、クライン
(72)【発明者】
【氏名】エルダン、ベン‐ハイム
(72)【発明者】
【氏名】ガル、フリシュマン
【審査官】 宮司 卓佳
(56)【参考文献】
【文献】 米国特許第07340777(US,B1)
【文献】 特開2006−268687(JP,A)
【文献】 特表2011−501279(JP,A)
【文献】 特開2010−262609(JP,A)
【文献】 特開2009−238153(JP,A)
【文献】 特開2009−037642(JP,A)
【文献】 特開2011−145945(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/56
(57)【特許請求の範囲】
【請求項1】
セキュリティアプリケーションにより、検査対象プロセスコードがマルウェアであるか否かを、判定するための方法であって、
a.前記検査対象プロセスコードが呼び出しアクティビティを行う度に、当該呼び出しアクティビティを検出するステップと、
b.前記検査対象プロセスコード内のサイトである呼び出しサイトを検出するステップであって、前記呼び出しアクティビティが前記サイトから起動されたものである、前記検出するステップと、
c.前記サイトの周囲の領域内コードの1つまたは2以上の部分を解析するステップと、
d.前記コードの解析対象部分のプロパティの少なくとも一部と、定義済みのソフトウェア・コード・パターンとを比較し、前記検査対象プロセスコードが前記定義済みのソフトウェア・コード・パターンのうちの1つに対応するか否か判定するステップと、
e.前記比較結果に従って前記検査対象プロセスコードを分類するステップと
を含む、前記方法。
【請求項2】
前記検査対象プロセスコードは、有害または無害として分類される、請求項1に記載の方法。
【請求項3】
前記検査対象プロセスコードは、実行ファイルから、またはDLLからロードされる、請求項1に記載の方法。
【請求項4】
前記検査対象プロセスコードは、関数呼び出しツリーの一部分、特定のサブルーチン、または、複数のコード命令によって相互に間隔を置いた特定のコードラインの組み合わせである、請求項1に記載の方法。
【請求項5】
前記セキュリティアプリケーション、または、その少なくとも一部分がクライアント装置にある、請求項1に記載の方法。
【請求項6】
マルウェアをインストールしようとする試みの検出がリアルタイムで行われる、請求項1に記載の方法。
【請求項7】
検出されると、前記マルウェアが、そのインストール完了を妨げられる、請求項6に記載の方法。
【請求項8】
前記呼び出しアクティビティがシステムコールである、請求項1に記載の方法。
【請求項9】
前記セキュリティアプリケーションは、前記コードの各解析対象部分を公知のマルウェアパターンのブラックリストと比較する、請求項1に記載の方法。
【請求項10】
アプリケーション、または、オペレーティングシステムから、前記セキュリティアプリケーションを呼び出すことができる、請求項1に記載の方法。
【請求項11】
検査対象プロセスコードがマルウェアであるか否かを判定するためのシステムであって、
a.前記検査対象プロセスコードが呼び出しアクティビティを行う度に、当該呼び出しアクティビティを検出すること、
b.前記検査対象プロセスコード内のサイトである呼び出しサイトを検出すること、前記呼び出しアクティビティが前記サイトから起動されたものである、
c.前記サイトの周囲の領域内のコードの1つまたは2以上の部分を解析すること
d.前記コードの解析対象部分のプロパティの少なくとも一部と、定義済みのソフトウェア・コード・パターンとを比較し、前記検査対象プロセスコードが前記定義済みのソフトウェア・コード・パターンのうちの1つに対応するか否か判定すること
e.前記比較の結果に従って前記検査対象プロセスコードを分類すること
を実行する、前記システム。
【請求項12】
検査対象プロセスコードがマルウェアであるか否かを判定するためのコンピュータ・プログラムであって、コンピュータに請求項1〜10のいずれか一項に記載の方法の各ステップを実行させる、前記コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はインターネットセキュリティの分野に関する。より詳細には、本発明は、より安全なブラウジングを提供するとともに、オンラインの機密情報の盗用を防止するための方法に関する。
【背景技術】
【0002】
ウェブブラウザがパーソナルコンピュータ上で最も頻繁に使用されるアプリケーションになり、銀行取引や買物取引など、より多くのユーザ機密データがウェブブラウザを介して入力されるようになるにつれて、悪質な攻撃がウェブブラウザにますます集中するようになってきている。悪質なコードをインストールできる悪質なセキュリティー上の弱点(exploit)の数がますます増加しており、悪質なブラウザ拡張機能が標的コンピュータシステム上で存続し続ける。悪質なブラウザ拡張機能がコンピュータシステム上で存続するために、典型的には、悪質な拡張機能がディスク上で存続するための悪質なファイルが作成され、ブラウザ拡張機能がオペレーティングシステムに登録されていることをウェブブラウザに通知するために、悪質なブラウザ拡張機能と関連付けられたレジストリエントリが作成される。
【0003】
したがって、例えば、ユーザがユーザ機密データをウェブページのフォームフィールドに入力し、悪質なブラウザ拡張機能がウェブブラウザ上に存在している場合、悪質なブラウザ拡張機能がイベントを受け取るときに、悪質なブラウザ拡張機能は潜在的にそのイベントの内容にアクセスし、それを変更することができる。例えば、悪質なブラウザは、イベントの予定日超過(post data)パラメータにおける銀行口座の銀行進展コードといったユーザ機密データを複写または変更することができ、結果としてユーザ機密データが危険にさらされることになる。
【0004】
消費者およびサービス提供者を保護するために、多くのソフトウェアおよびハードウェア解決策が提案され、あるいは、開発されている。これらの方法はおおむねオンライン認証を強化するが、オンラインアクティビティのための最も普及しているツールであるウェブブラウザが安全であることを暗黙的に前提としている。また、これらの解決策は、マルウェアのインストールプロセスに対する保護の提供を対象とするものではない。
【0005】
既存の解決策の別の問題は、*.exeファイルを有害または無害として分類するために、保護ツールがそのファイルの内容をスキャンする必要があり得ることである。往々にしてこのプロセスは、悪質なファイルがそのファイル自身をインストールするのに必要とする時間より長い時間を要する場合がある。この限界は感染したシステムに不可避の損傷をもたらし得る。
【0006】
この問題に対処し、ウェブをブラウズしている間の悪用からユーザを保護するためには、ブラウザ感染検出ツールが必要である。
【発明の概要】
【発明が解決しようとする課題】
【0007】
したがって、本発明の目的は、マルウェアと関連付けられた挙動を検出することができるシステムを提供することである。
【0008】
本発明の別の目的は、マルウェアの完全なインストールを防止することができるシステムを提供することである。
【0009】
本発明の他の目的および利点は説明が進むにつれて明らかになるであろう。
【課題を解決するための手段】
【0010】
本発明は、セキュリティアプリケーションにより、検査対象ソフトウェアコードがマルウェアであるか否か判定するためのシステムおよび方法を対象とする。この方法に従って、システムは、検査対象プロセスコードが呼び出し(システムコールなど)を行う度に、検出し、呼び出し(call)サイト(検査対象プロセスコード内のサイトであって、呼び出しが当該サイトから起動された)をさらに検出する。サイトの周囲の領域内の、および/または、サイトに関連する分岐内のコードの1つまたは2以上の部分が解析され、検査対象プロセスコードが定義済みのソフトウェア・コード・パターンのうちの1つに対応するかどうか判定するために、コードの解析対象部分のプロパティの少なくとも一部が定義済みのソフトウェア・コード・パターンと比較される。次いで、検査対象プロセスコードが比較結果に従って分類される。
【0011】
検査対象プロセスコードは、有害または無害として分類され、実行ファイルから、またはDLLからロードされ得る。
【0012】
検査対象プロセスコードは、関数呼び出しツリーの一部分とすることも、特定のサブルーチンとすることも、数コード命令ずつ相互に間隔を置いた特定のコードラインの組み合わせとすることもできる。
【0013】
セキュリティアプリケーションまたはその少なくとも一部分は、クライアント装置上にあってよい。
【0014】
マルウェアをインストールしようとする試みの検出はオフラインで、または、リアルタイムで行われ得る。検出され次第、マルウェアはそのインストールの完了を妨げられる。
【0015】
一態様では、セキュリティアプリケーションは、アプリケーション、または、オペレーティングシステムから呼び出されることができ、ソフトウェアコードの各解析対象部分を公知のマルウェアパターンの「ブラックリスト」と比較する。
【図面の簡単な説明】
【0016】
図1】本発明の方法を大まかに説明するフローチャート。
図2】本発明の実施形態を大まかに説明するフローチャート。
【発明を実施するための形態】
【0017】
図面および以下の説明は単なる例としての本発明の実施形態に関するものである。以下の考察を読めば、本明細書で開示される構造および方法の代替の実施形態が、特許請求される発明の原理から逸脱しない限り、用いられ得る実行可能な選択肢として容易に認められるであろうことに留意すべきである。
【0018】
次に、その例が添付の図に示されている(1つまたは複数の)本発明のいくつかの実施形態を参照する。使用できる場合にはどこでも、同様の、または類似の参照番号が各図において使用され、同様の、または類似の機能を指示し得る。各図には、本発明の実施形態が例示としてのみ示されている。以下の説明を読めば、当業者は、本明細書で例示される構造および方法の代替の実施形態が、本明細書で説明される本発明の原理を逸脱することなく用いられ得ることを容易に理解するであろう。
【0019】
特に指示しない限り、ここで説明される機能は、コンピュータ可読媒体に記憶され、1つまたは複数のプロセッサベースのシステム上で走る実行可能コードおよび命令によって行われてよい。しかし、状態機械および/または配線による電子回路も利用することができる。さらに、ここで説明されるプロセスの例に関して、すべてのプロセス状態に到達される必要があるとは限らず、各状態が例示の順に行われる必要もない。さらに、順次に行われるものとして例示されるいくつかのプロセス状態を並列に行うこともできる。
【0020】
同様に、いくつかの例ではパーソナルコンピュータ(PC)システムに言及する場合もあるが、MAC、他のコンピュータまたは電子システム、例えば、それだけに限定されないが、ネットワーク対応の携帯情報端末(PDA)、スマートフォン、タブレットなども使用することができる。
【0021】
本発明は、(例えばウェブブラウザをマルウェアに感染させるために)コンピュータシステムにマルウェアをインストールしようとする試みをリアルタイムに検出するための方法に関するものである。本発明の一実施形態によれば、以下で例示するように、マルウェア(または他の疑わしいソフトウェアコード)が当該マルウェアのインストールを完了するのを防止するための方法が提供される。
【0022】
ここでは、「マルウェア」という用語は、権限が付与されたユーザが知ることなく、および/または、権限が付与されたユーザの同意なしに、コンピュータシステム環境に入る任意のコンピュータプログラム、モジュール、モジュールのセット、またはコードとして定義される悪質なコードを指す。ブラウザイベント内のユーザ私用データにアクセスすることのできる、悪質なBHOといった悪質なブラウザ拡張機能が、悪質なコードの一例である。さらにここでは、悪質なアクティビティとは、悪質なコードを実行した結果として生じる任意のアクティビティである。
【0023】
本実施形態では、ウェブブラウザは、マイクロソフト・インターネット・エクスプローラやファイアフォックスといった数ある従来のウェブ・ブラウザ・アプリケーションのうちのいずれか1つである。
【0024】
本発明による実施形態は、マルウェアをインストールしようとする試みを検出および防止し得る。一実施形態では、ホストコンピュータのOSからの呼び出しを検出するように登録されているセキュリティアプリケーションが、ホスト・コンピュータ・システム上にインストールされる。そのような呼び出しは、(OSがマイクロソフトウィンドウズである場合には)ホストコンピュータのウィンドウズレジストリ、または、ファイルシステム操作とやりとりをする関数呼び出しとすることができる。
【0025】
呼び出しが検出されると、プログラムコードであって、その呼び出しが当該プログラムコードから起動されたプログラムコードのプロパティが、マルウェアを表すかどうかの判定が行われる。一実施形態では、呼び出しが疑わしいイベントであると判定されない場合、そのイベントをさらに処理する(例えばインストールプロセスを完了する)ことができる。一方、呼び出しがマルウェアであると判定される場合、当該ソフトウェアコードのインストールプロセスが打ち切られる。
【0026】
次に図1を参照すると、本発明の一実施形態によるコンピュータシステムの図が示されており、このコンピュータシステムは、ホスト・コンピュータ・システム上にマルウェアをインストールし、実行しようとする試みを検出するためのセキュリティアプリケーションを含む。ホスト・コンピュータ・システムは、ユーザ装置ともいい、典型的には、中央処理装置(CPU)、入力出力(I/O)インターフェース、およびメモリを含み、メモリはオペレーティングシステムおよびウェブブラウザを含む。一実施形態では、オペレーティングシステムが、呼び出しイベントがそこから受け取られるサイトを提供する呼び出しイベント順序リストを維持する。
【0027】
一実施形態では、メモリはセキュリティアプリケーションを含み、セキュリティアプリケーションは2つの主要なコンポーネント、すなわち、a)オペレーティングシステム(OS)の設定レジストリパスをリッスンすることによって、OSのレジストリの呼び出しを監視するように構成されている検出エンジンと、b)様々なマルウェアのソフトウェアコードの選択部分の挙動を表す定義済みのパラメータが事前ロードされたデータベースとを備える。
【0028】
本発明の一実施形態によれば、セキュリティアプリケーションは以下のタスクを実行する。まず、セキュリティアプリケーションは、ソフトウェアコードが呼び出しアクティビティ(システムコールなど)を行う度に検出する。次のステップで、セキュリティアプリケーションは、サイトであって、呼び出しが当該サイトから起動された呼び出し側コード内のサイトを検出する。これがなされるのは、当該サイトの周囲の領域内、および/または、呼び出しの起動に関与する当該サイトに関連した分岐内における(実行可能ファイルまたはDLLに属し得る)コードの1つまたは複数の部分を解析するためである。例えば、解析されるべきコードの部分は、特定のサブルーチンや、数コード命令ずつ相互に間隔を置いた特定のコードラインの組み合わせといった、(プログラム内の関数呼び出しの階層を示す)関数呼び出しツリーの部分と関連付けられていてもよい。この結果として、一意のパターンとしての形式でプロパティのサブセットがもたらされ、次いでそれを、マルウェアの存在、さらには、マルウェアの種類とさえも関連付けることができる。
【0029】
次のステップで、セキュリティアプリケーションは、コードの解析対象部分(またはその少なくとも一部)のプロパティが、データベースに記憶された定義済みのソフトウェア・コード・パラメータまたはパターンと一致するかどうか検査する。コードの解析対象部分のプロパティと定義済みのソフトウェアコードとが一致することは、そのソフトウェアが、マルウェア、または、検出される必要のある他の種類のソフトウェアコードであることを示す。このことは、コードの解析対象部分のプロパティと定義済みのソフトウェア・コード・パターンとを比較し、検査対象プロセスコードが定義済みのソフトウェア・コード・パターンのうちの1つに対応するかどうかを判定することによってなされ得る。次いで、検査対象プロセスコードが比較結果に従って分類される。
【0030】
例えば、SpyEyeといった数種類のマルウェアの公知の挙動は、まず、(ユーザがログインするときに)ウィンドウズのスタートアップシーケンスにおいて、そのマルウェア自体をロードするために、HKCU\Software\Microsoft\Windows\CurrentVersion\Run Windows\Registy keyにエントリを追加するものである。
【0031】
典型的には、OSは、呼び出しを受け取ると、様々な階層を介してシステム要求を転送する。前述のように、ウィンドウズレジストリのレジストリキーへ値を追加することにより、マルウェアコードがマルウェア自体を永続的にインストールしようと試みたとしても、セキュリティアプリケーションは、この試みを監視し、サイトであって、上記呼び出しが当該サイトから起動されたサイト、および、このサイトの周囲の領域内のコードの部分を検出する。
【0032】
一態様では、セキュリティアプリケーションは、ソフトウェアコードの各解析対象部分を、公知のマルウェアパターンの「ブラック」リストと比較する。コードの1つまたは複数の部分が「ブラック」リスト内のエントリと一致する場合、自身をインストールしようと試みる関連ソフトウェアコードは終了または阻止され、それ以外の場合、ソフトウェアコードはインストールを完了することができる。
【0033】
次に図2を参照すると、本発明の一実施形態による、マルウェアインストールの試みの初期段階でのOSのレジストリパスにおける、通知順序リストの図が示されている。
【0034】
ここでは、コンピュータメモリは、揮発性メモリ、不揮発性メモリ、またはこれら2つの組み合わせを指す。セキュリティアプリケーションはアプリケーションと呼ばれているが、これは例示にすぎない。セキュリティアプリケーションは、アプリケーションまたはオペレーティングシステムから呼び出すことができるはずである。一実施形態では、アプリケーションは一般に任意の実行可能コードであると定義される。さらに、「アプリケーションまたはオペレーションがある動作を行う」という場合、その動作は、プロセッサが1つまたは複数の命令を実行した結果であることを当業者は理解するであろう。
【0035】
図1に示すように、セキュリティアプリケーションはOSレベルの呼び出し時に通知されるため、この媒体またはその少なくとも一部分がコンピュータシステム自体(クライアント装置)に置かれ、残りの部分がホストコンピュータと異なる場所に物理的に位置するメモリに記憶されてもよい。これはクライアント・サーバシステムにおいて実現することもでき、あるいは、モデムおよびアナログ回線を介した別のコンピュータへの接続、または、ディジタルインターフェースおよびディジタル回線を介した別のコンピュータへの接続によって実現することもできるはずである。
【0036】
本開示を考慮すると、本発明の実施形態によるセキュリティアプリケーションの機能は、多種多様なコンピュータシステム構成において実施することができる。加えて、セキュリティアプリケーションの機能は、様々な装置のメモリに様々なモジュールとして記憶することもできるはずである。例えば、まず、セキュリティアプリケーションをコンピュータシステムに記憶し、次いで、必要に応じて、セキュリティアプリケーションの一部分をホスト・コンピュータ・システムへ転送し、ホスト・コンピュータ・システム上で実行することもできるはずである。したがって、セキュリティアプリケーションの機能の一部はサーバ・コンピュータ・システムのプロセッサ上で実行され、別の一部はホスト・コンピュータ・システムのプロセッサ上で実行されることになるはずである。
【0037】
本開示を考慮すると、当業者は、ユーザにとって関心のあるオペレーティングシステムおよびコンピュータプログラミング言語を使用して、多種多様な物理ハードウェア構成において本発明の様々な実施形態を実施することができる。さらに別の実施形態では、セキュリティアプリケーションは、サーバ・コンピュータ・システムのメモリに記憶される。セキュリティアプリケーションは、ネットワーク上でホスト・コンピュータ・システムのメモリへ転送される。
【0038】
以上、本発明のいくつかの実施形態を例として説明したが、本発明は、多くの改変、変形および適応と共に、当業者の範囲内の多数の均等物または代替の解決用を使用して、本発明の趣旨を逸脱せず、特許請求の範囲も超えずに実行することができることは明らかであろう。
図1
図2