(57)【特許請求の範囲】
【請求項１】
ブラウザ機能拡張モジュールによるアクセスがインターネットブラウザのデータを獲得するための悪意のあるアクセスであるか否かを判断するステップと、
前記アクセスが悪意のあるアクセスであると判断された場合、前記ブラウザ機能拡張モジュールによるアクセスを遮断するステップとを含み、
前記アクセスがインターネットブラウザのデータを獲得するための悪意のあるアクセスであるか否かを判断するステップは、
前記インターネットブラウザのデータを獲得できるオリジナルの関数を新しく定義した新規関数に置換するステップと、
前記ブラウザ機能拡張モジュールを介して新規関数が呼び出されると、前記新規関数を呼び出した対象を確認するステップと、
前記新規関数を呼び出した対象が安全であるか否かを判断するステップとを含み、
前記オリジナルの関数を新しく定義した新規関数に置換するステップは、
前記インターネットブラウザにおけるメインウィンドウを決定するステップと、
前記メインウィンドウを基準にして前記インターネットブラウザにおけるビューウィンドウを決定するステップと、
前記インターネットブラウザに送信されたメッセージを処理する前記ビューウィンドウのオリジナルのウィンドウプロシージャ関数を新規ウィンドウプロシージャ関数に置換するステップとを含むことを特徴とするブラウザベースの不正行為防止方法。
【請求項２】
前記ブラウザ機能拡張モジュールは、前記インターネットブラウザがインターネットエクスプローラである場合、前記インターネットブラウザにアドオン形態で接続できるブラウザヘルパーオブジェクトであることを特徴とする請求項１に記載のブラウザベースの不正行為防止方法。
【請求項３】
前記オリジナルの関数を新しく定義した新規関数に置換するステップは、
前記インターネットブラウザのブラウザオブジェクトと関連する関数のアドレス情報を獲得するステップと、
前記オリジナルの関数の位置に対応するオリジナルの関数のアドレスを格納してバックアップするステップと、
前記オリジナルの関数と形式が同一の前記新規関数を宣言するステップと、
前記宣言された新規関数のアドレスを前記オリジナルの関数の位置に記録するステップと、
をさらに含むことを特徴とする請求項１または２に記載のブラウザベースの不正行為防止方法。
【請求項４】
前記ブラウザオブジェクトは、予めビルドされたバイナリ形態のＣＯＭ（ｃｏｍｐｏｎｅｎｔ  ｏｂｊｅｃｔ  ｍｏｄｅｌ）ベースのオブジェクトを含むことを特徴とする請求項３に記載のブラウザベースの不正行為防止方法。
【請求項５】
前記オリジナルの関数は、前記インターネットブラウザを介して表示される文書を獲得する関数または文書の特定の構成要素を獲得する関数のうちいずれか１つであることを特徴とする請求項３または４に記載のブラウザベースの不正行為防止方法。
【請求項６】
前記新規関数を呼び出した対象を確認するステップは、前記新規関数がリターンされるアドレスに位置したブラウザ機能拡張モジュールの情報を用いて前記新規関数を呼び出したブラウザ機能拡張モジュールを確認することを特徴とする請求項３から５のいずれか一項に記載のブラウザベースの不正行為防止方法。
【請求項７】
前記新規関数を呼び出した対象が安全であるか否かを判断するステップは、前記新規関数を呼び出したブラウザ機能拡張モジュールが前記インターネットブラウザで用いられる正常なブラウザ機能拡張モジュールのリストに存在する場合、前記ブラウザ機能拡張モジュールを安全なモジュールとして判断することを特徴とする請求項３から６のいずれか一項に記載のブラウザベースの不正行為防止方法。
【請求項８】
前記ブラウザ機能拡張モジュールによるアクセスを遮断するステップは、前記新規関数を呼び出したブラウザ機能拡張モジュールが悪意のあるモジュールである場合、前記インターネットブラウザのデータを獲得できるオリジナルの関数の呼び出しを遮断することを特徴とする請求項１から７のいずれか一項に記載のブラウザベースの不正行為防止方法。
【請求項９】
前記メインウィンドウを決定するステップは、前記インターネットブラウザのブラウザオブジェクトが提供する関数を用いてメインウィンドウを決定し、
前記ブラウザオブジェクトは、前記インターネットブラウザがブラウザ機能拡張モジュールをロードする際に、前記インターネットブラウザが前記ブラウザ機能拡張モジュールに提供するオブジェクトであることを特徴とする請求項１に記載のブラウザベースの不正行為防止方法。
【請求項１０】
前記インターネットブラウザにおけるビューウィンドウを決定するステップは、前記インターネットブラウザのバージョンに応じたウィンドウ構造を参照して前記ビューウィンドウを決定し、
前記ビューウィンドウは、前記インターネットブラウザで実際にページが見える位置のウィンドウであることを特徴とする請求項１または９に記載のブラウザベースの不正行為防止方法。
【請求項１１】
前記ビューウィンドウのオリジナルのウィンドウプロシージャ関数を新規ウィンドウプロシージャ関数に置換するステップは、
前記ビューウィンドウのオリジナルのウィンドウプロシージャ関数が他のウィンドウプロシージャ関数の変更の有無を確認するステップと、
前記オリジナルのウィンドウプロシージャ関数が変更されていないと確認された場合、
前記ビューウィンドウのオリジナルのウィンドウプロシージャ関数のアドレスを格納してバックアップするステップと、
前記オリジナルのウィンドウプロシージャ関数のアドレスを前記新規ウィンドウプロシージャ関数のアドレスに変更するステップと、
を含むことを特徴とする請求項１または９または１０に記載のブラウザベースの不正行為防止方法。
【請求項１２】
前記新規関数を呼び出した対象を確認するステップは、前記ブラウザ機能拡張モジュールが送信したメッセージによって前記新規ウィンドウプロシージャ関数が呼び出されると、前記新規ウィンドウプロシージャ関数を呼び出したメッセージのメッセージ値を用いて前記メッセージを確認することを特徴とする請求項１または請求項９から１１のいずれか一項に記載のブラウザベースの不正行為防止方法。
【請求項１３】
前記新規関数を呼び出した対象が安全であるか否かを判断するステップは、前記メッセージが前記インターネットブラウザの文書を獲得するためのブラウザオブジェクトのメッセージではない場合、前記新規ウィンドウプロシージャ関数を呼び出した対象であるメッセージが安全であると判断することを特徴とする請求項１または請求項９から１２のいずれか一項に記載のブラウザベースの不正行為防止方法。
【請求項１４】
前記ブラウザ機能拡張モジュールによるアクセスを遮断するステップは、前記新規関数を呼び出した対象となるメッセージが前記インターネットブラウザのデータを獲得するための悪意のあるメッセージである場合、前記メッセージがオリジナルの関数に送信されることを防止することを特徴とする請求項１または請求項９から１３のいずれか一項に記載のブラウザベースの不正行為防止方法。
【請求項１５】
前記アクセスがインターネットブラウザのデータを獲得するための悪意のあるアクセスであるか否かを判断するステップは、
前記インターネットブラウザのブラウザオブジェクトによって前記インターネットブラウザのイベントと関連する少なくとも１つの接続ポイントを抽出するステップと、
前記抽出されたインターネットブラウザの接続ポイントそれぞれに接続されたブラウザ機能拡張モジュールを確認するステップと、
前記確認されたブラウザ機能拡張モジュールが安全であるか否かを判断するステップと、
をさらに含むことを特徴とする請求項１から１４のいずれか一項に記載のブラウザベースの不正行為防止方法。
【請求項１６】
前記インターネットブラウザのイベントと関連する少なくとも１つの接続ポイントを抽出するステップは、
前記ブラウザオブジェクトを用いて接続ポイントコンテナを獲得するステップと、
前記接続ポイントコンテナに含まれた接続ポイントリストを確認するステップと、
前記インターネットブラウザのイベントと関連する接続ポイントＩＤを用いて前記接続ポイントリストからイベントと関連する接続ポイントを検索するステップと、
を含むことを特徴とする請求項１５に記載のブラウザベースの不正行為防止方法。
【請求項１７】
前記ブラウザ機能拡張モジュールを確認するステップは、前記ブラウザ機能拡張モジュールのアドレスによって前記接続ポイントと前記ブラウザ機能拡張モジュールとの間の経路を決定し、前記接続ポイントと接続されたブラウザ機能拡張モジュールを確認することを特徴とする請求項１５または１６に記載のブラウザベースの不正行為防止方法。
【請求項１８】
前記確認されたブラウザ機能拡張モジュールが安全であるか否かを判断するステップは、前記インターネットブラウザで用いられる正常なブラウザ機能拡張モジュールが安全であるか否かを判断することを特徴とする請求項１５から１７のいずれか一項に記載のブラウザベースの不正行為防止方法。
【請求項１９】
前記ブラウザ機能拡張モジュールによるアクセスを遮断するステップは、前記接続ポイントに接続されたブラウザ機能拡張モジュールが悪意のあるモジュールである場合、前記接続ポイントの接続順序値を参照して前記ブラウザ機能拡張モジュールの接続を遮断することを特徴とする請求項１５から１８のいずれか一項に記載のブラウザベースの不正行為防止方法。
【請求項２０】
請求項１乃至請求項１９のいずれかに記載の方法を実行するためのプログラムが記録されていることを特徴とするコンピュータで読取可能な記録媒体。
【請求項２１】
ブラウザ機能拡張モジュールによるアクセスがインターネットブラウザのデータを獲得するための悪意のあるアクセスであるか否かを判断する不正行為判断部と、
前記アクセスが悪意のあるアクセスであると決定された場合、前記ブラウザ機能拡張モジュールによるアクセスを遮断する不正行為遮断部とを備え、
前記不正行為判断部は、
前記インターネットブラウザのデータを獲得できるオリジナルの関数を新しく定義した新規関数に置換する関数置換部と、
前記ブラウザ機能拡張モジュールを介して新規関数が呼び出されると、前記新規関数を呼び出した対象を確認する呼出対象確認部と、
前記新規関数を呼び出した対象が安全であるか否かを判断する呼出対象判断部とを備え、
前記関数置換部は、
前記インターネットブラウザにおけるメインウィンドウを決定するメインウィンドウ決定部と、
前記メインウィンドウを基準にして前記インターネットブラウザにおけるビューウィンドウを決定するビューウィンドウ決定部と、
前記インターネットブラウザに送信されたメッセージを処理する前記ビューウィンドウのオリジナルのウィンドウプロシージャ関数を新規ウィンドウプロシージャ関数に置換するオリジナルの関数置換部とを備えることを特徴とするブラウザベースの不正行為防止システム。
【請求項２２】
前記ブラウザ機能拡張モジュールは、前記インターネットブラウザがインターネットエクスプローラである場合、前記インターネットブラウザにアドオン形態で接続できるブラウザヘルパーオブジェクトであることを特徴とする請求項２１に記載のブラウザベースの不正行為防止システム。
【請求項２３】
前記関数置換部は、
前記インターネットブラウザのブラウザオブジェクトと関連する関数のアドレス情報を獲得するアドレス情報獲得部と、
前記アドレス情報に基づいて前記オリジナルの関数の位置に対応するオリジナルの関数のアドレスを格納してバックアップするオリジナルの関数バックアップ部と、
前記オリジナルの関数と形式が同一の前記新規関数を宣言する新規関数宣言部と、
前記宣言された新規関数のアドレスを前記オリジナルの関数の位置に記録するアドレス記録部と、
を備えることを特徴とする請求項２１または２２に記載のブラウザベースの不正行為防止システム。
【請求項２４】
前記ブラウザオブジェクトは、予めビルドされたバイナリ形態のＣＯＭベースのオブジェクトを含むことを特徴とする請求項２３に記載のブラウザベースの不正行為防止システム。
【請求項２５】
前記オリジナルの関数は、前記インターネットブラウザを介して表示される文書を獲得
する関数、または文書の特定の構成要素を獲得する関数のうちいずれか１つであることを特徴とする請求項２３または２４に記載のブラウザベースの不正行為防止システム。
【請求項２６】
前記呼出対象確認部は、前記新規関数がリターンされるアドレスに位置したブラウザ機能拡張モジュールの情報を用いて前記新規関数を呼び出したブラウザ機能拡張モジュールを確認することを特徴とする請求項２３から２５のいずれか一項に記載のブラウザベースの不正行為防止システム。
【請求項２７】
前記呼出対象判断部は、前記新規関数を呼び出したブラウザ機能拡張モジュールが前記インターネットブラウザで用いられる正常なブラウザ機能拡張モジュールのリストに存在する場合、前記ブラウザ機能拡張モジュールを安全なモジュールとして判断することを特徴とする請求項２３から２６のいずれか一項に記載のブラウザベースの不正行為防止システム。
【請求項２８】
前記不正行為遮断部は、前記新規関数を呼び出したブラウザ機能拡張モジュールが悪意のあるモジュールである場合、前記インターネットブラウザのデータを獲得できるオリジナルの関数の呼び出しを遮断することを特徴とする請求項２１から２７のいずれか一項に記載のブラウザベースの不正行為防止システム。
【請求項２９】
前記メインウィンドウ決定部は、前記インターネットブラウザのブラウザオブジェクトが提供する関数を用いてメインウィンドウを決定し、
前記ブラウザオブジェクトは、前記インターネットブラウザがブラウザ機能拡張モジュールをロードする際に、前記インターネットブラウザが前記ブラウザ機能拡張モジュールに提供するオブジェクトであることを特徴とする請求項２１に記載のブラウザベースの不正行為防止システム。
【請求項３０】
前記ビューウィンドウ決定部は、前記インターネットブラウザのバージョンに応じたウィンドウ構造を参照して前記ビューウィンドウを決定し、
前記ビューウィンドウは、前記インターネットブラウザで実際にページが見える位置のウィンドウであることを特徴とする請求項２１または２９に記載のブラウザベースの不正行為防止システム。
【請求項３１】
前記オリジナルの関数置換部は、
前記ビューウィンドウのオリジナルのウィンドウプロシージャ関数が他のウィンドウプロシージャ関数の変更の有無を確認する関数変更確認部と、
前記オリジナルのウィンドウプロシージャ関数が変更されていないと確認された場合、前記ビューウィンドウのオリジナルのウィンドウプロシージャ関数のアドレスを格納してバックアップする関数バックアップ部と、
前記オリジナルのウィンドウプロシージャ関数のアドレスを前記新規ウィンドウプロシージャ関数のアドレスに変更する関数アドレス変更部と、
を備えることを特徴とする請求項２１または２９または３０に記載のブラウザベースの不正行為防止システム。
【請求項３２】
前記呼出対象確認部は、前記ブラウザ機能拡張モジュールが送信したメッセージによって前記新規ウィンドウプロシージャ関数が呼び出されると、前記新規ウィンドウプロシージャ関数を呼び出したメッセージのメッセージ値を用いて前記メッセージを確認することを特徴とする請求項２１または２９から３１のいずれか一項に記載のブラウザベースの不正行為防止システム。
【請求項３３】
前記呼出対象判断部は、前記メッセージが前記インターネットブラウザの文書を獲得するためのブラウザオブジェクトのメッセージではない場合、前記新規ウィンドウプロシージャ関数を呼び出した対象であるメッセージが送信されていないと判断することを特徴とする請求項２１または２９から３２のいずれか一項に記載のブラウザベースの不正行為防止システム。
【請求項３４】
前記不正行為遮断部は、前記新規関数を呼び出した対象となるメッセージが前記インターネットブラウザのデータを獲得するための悪意のあるメッセージである場合、前記メッセージがオリジナルの関数に送信されることを防止することを特徴とする請求項２１または２９から３３のいずれか一項に記載のブラウザベースの不正行為防止システム。
【請求項３５】
前記不正行為判断部は、
前記インターネットブラウザのブラウザオブジェクトによって前記インターネットブラウザのイベントと関連する少なくとも１つの接続ポイントを抽出する接続ポイント抽出部と、
前記抽出されたインターネットブラウザの接続ポイントそれぞれに接続されたブラウザ機能拡張モジュールを確認するモジュール確認部と、
前記確認されたブラウザ機能拡張モジュールが安全であるか否かを判断するモジュール判断部と、
を備えることを特徴とする請求項２１から３４のいずれか一項に記載のブラウザベースの不正行為防止システム。
【請求項３６】
前記接続ポイント抽出部は、
前記ブラウザオブジェクトを用いて接続ポイントコンテナを獲得するコンテナ獲得部と、
前記接続ポイントコンテナに含まれた接続ポイントリストを確認するリスト確認部と、
前記インターネットブラウザのイベントと関連する接続ポイントＩＤを用いて前記接続ポイントリストからイベントと関連する接続ポイントを検索する接続ポイント検索部と、
を備えることを特徴とする請求項３５に記載のブラウザベースの不正行為防止システム。
【請求項３７】
前記モジュール確認部は、前記ブラウザ機能拡張モジュールのアドレスによって前記接続ポイントと前記ブラウザ機能拡張モジュールとの間の経路を決定し、前記接続ポイントと接続されたブラウザ機能拡張モジュールを確認することを特徴とする請求項３５または３６に記載のブラウザベースの不正行為防止システム。
【請求項３８】
前記モジュール判断部は、前記インターネットブラウザで用いられる正常なブラウザ機能拡張モジュールのリストを用いて前記ブラウザ機能拡張モジュールが安全であるか否かを判断することを特徴とする請求項３５から３７のいずれか一項に記載のブラウザベースの不正行為防止システム。
【請求項３９】
不正行為遮断部は、前記接続ポイントに接続されたブラウザ機能拡張モジュールが悪意のあるモジュールである場合、前記接続ポイントの接続順序値を参照して前記ブラウザ機能拡張モジュールの接続を遮断することを特徴とする請求項３５から３８のいずれか一項に記載のブラウザベースの不正行為防止システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブラウザベースの不正行為防止方法およびシステムに関し、インターネットブラウザにプラグインの形態で接続される悪意のあるブラウザ機能拡張モジュールを通じた様々な形態の不正行為を対処するためにブラウザ機能拡張モジュールの接続の遮断、ＨＴＭＬ文書の獲得の防止、およびＨＴＭＬ文書の構成要素の獲得を無力化するブラウザベースの不正行為防止方法およびシステムに関する。
【背景技術】
【０００２】
インターネットブラウザを介して多数のユーザがウェブサーフィンを行っている。ウェブサーフィンをするユーザの利便性のために、インターネットブラウザにブラウザ機能拡張モジュールをアドオン（ａｄｄ−ｏｎ）して機能を拡張することがある。インターネットブラウザの機能を拡張するためのブラウザ機能拡張モジュールをインターネットブラウザに接続し、ブラウザ機能拡張モジュールによりインターネットブラウザの動作イベントやその他の様々な情報を獲得して操作してもよい。ところが、インターネットブラウザの機能拡張モジュールが悪意をもって用いられることによって、これを用いるデータや実行中のプログラムを変更、偽造するなどをするハッキングの問題が発生している。
【０００３】
このようなブラウザ機能拡張モジュールは容易に開発することができ、インターネットブラウザの機能を容易に制御することができるため悪意をもって用いられることも多い。このような悪意のあるブラウザ機能拡張モジュールを通じた不正行為（ａｂｕｓｅ）事例は多く、またさらに増加している。例えば、ブラウザ機能拡張モジュールを介してインターネットブラウザベースのキーワード送信によって、検索、ポータルサイトのリアルタイム検索語、関連検索語、サイト検索結果などが操作されることがある（検索不正行為）。また、ブラウザ機能拡張モジュールを介してインターネットブラウザのイベントを受けて入力値を先取してポップアップウィンドウを生成したり本来のウェブページ内容を変更、置換したりすることがある（広告不正行為）。そして、ブラウザ機能拡張モジュールがユーザの正常なクリックのように装った虚偽クリックを検索、ポータルサイトに送信することがある（クリック不正行為）。また、ブラウザ機能拡張モジュールが他のウェブページで用いるクッキー値を変更することがある（クッキー不正行為）。
【０００４】
したがって、インターネットブラウザの機能を拡張するためには、ブラウザ機能拡張モジュールが必要であるが、上記したブラウザ機能拡張モジュールの悪意のある使用による不正行為を防止するための様々な解決策が求められている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、ブラウザ機能拡張モジュールによる不正行為を防止するためのブラウザベースの不正行為防止方法およびシステムを提供することにある。
【０００６】
本発明の他の目的は、ブラウザオブジェクトの文書を獲得する関数を先取して、悪意のあるブラウザ機能拡張モジュールがブラウザオブジェクトによって文書を獲得することを防止するブラウザベースの不正行為防止方法およびシステムを提供することにある。
【０００７】
本発明の更なる目的は、ブラウザオブジェクトの文書の構成要素を獲得する関数を先取して、悪意のあるブラウザ機能拡張モジュールがブラウザオブジェクトによって文書の構成要素を獲得することを防止するブラウザベースの不正行為防止方法およびシステムを提供することにある。
【０００８】
本発明の更なる目的は、ウィンドウメッセージを処理するウィンドウプロシージャ関数を先取して、ウィンドウメッセージによって文書を獲得することを防止するブラウザベースの不正行為防止方法およびシステムを提供する。
【０００９】
本発明の更なる目的は、インターネットブラウザに接続されたブラウザ機能拡張モジュールのうち不正なモジュールからの接続を遮断することによって、不正行為を防止するブラウザベースの不正行為防止方法およびシステムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明の一実施形態に係るブラウザベースの不正行為防止方法は、ブラウザ機能拡張モジュールによるアクセスがインターネットブラウザのデータを獲得するための悪意のあるアクセスであるか否かを判断するステップと、前記アクセスが悪意のあるアクセスであると判断された場合、前記ブラウザ機能拡張モジュールによるアクセスを遮断するステップとを含んでもよい。
【００１１】
本発明の一側面によると、前記アクセスがインターネットブラウザのデータを獲得するための悪意のあるアクセスであるか否かを判断するステップは、前記インターネットブラウザのデータを獲得できるオリジナルの関数を新しく定義した新規関数に置換するステップと、前記ブラウザ機能拡張モジュールを介して新規関数が呼び出されると、前記新規関数を呼び出した対象を確認するステップと、前記新規関数を呼び出した対象が安全であるか否かを判断するステップとを含んでもよい。
【００１２】
本発明の一側面によると、前記オリジナルの関数を新しく定義した新規関数に置換するステップは、前記インターネットブラウザのブラウザオブジェクトと関連する関数のアドレス情報を獲得するステップと、前記オリジナルの関数の位置に対応するオリジナルの関数のアドレスを格納してバックアップするステップと、前記オリジナルの関数と形式が同一の前記新規関数を宣言するステップと、前記宣言された新規関数のアドレスを前記オリジナルの関数の位置に記録するステップとを含んでもよい。
【００１３】
本発明の一側面によると、前記オリジナルの関数を新しく定義した新規関数に置換するステップは、前記インターネットブラウザにおけるメインウィンドウを決定するステップと、前記メインウィンドウを基準にして前記インターネットブラウザにおけるビューウィンドウを決定するステップと、前記インターネットブラウザに送信されたメッセージを処理する前記ビューウィンドウのオリジナルのウィンドウプロシージャ関数を新規ウィンドウプロシージャ関数に置換するステップとを含んでもよい。
【００１４】
本発明の一側面によると、前記アクセスがインターネットブラウザのデータを獲得するための悪意のあるアクセスであるか否かを判断するステップは、前記インターネットブラウザのブラウザオブジェクトによって前記インターネットブラウザのイベントと関連する少なくとも１つの接続ポイントを抽出するステップと、前記抽出されたインターネットブラウザの接続ポイントそれぞれに接続されたブラウザ機能拡張モジュールを確認するステップと、前記確認されたブラウザ機能拡張モジュールが安全であるか否かを判断するステップとを含んでもよい。
【００１５】
本発明の一実施形態に係るブラウザベースの不正行為防止システムは、ブラウザ機能拡張モジュールによるアクセスがインターネットブラウザのデータを獲得するための悪意のあるアクセスであるか否かを判断する不正行為判断部と、前記アクセスが悪意のあるアクセスであると判断された場合、前記ブラウザ機能拡張モジュールによるアクセスを遮断する不正行為遮断部とを備えてもよい。
【発明の効果】
【００１６】
本発明によると、ブラウザ機能拡張モジュールによる不正行為を防止するためのブラウザベースの不正行為防止方法およびシステムを提供することができる。
【００１７】
本発明によると、ブラウザオブジェクトの文書を獲得する関数を先取して、悪意のあるブラウザ機能拡張モジュールがブラウザオブジェクトによって文書を獲得することを防止するブラウザベースの不正行為防止方法およびシステムを提供することができる。
【００１８】
本発明によると、ブラウザオブジェクトの文書の構成要素を獲得する関数を先取して、悪意のあるブラウザ機能拡張モジュールがブラウザオブジェクトによって文書の構成要素を獲得することを防止するブラウザベースの不正行為防止方法およびシステムを提供することができる。
【００１９】
本発明によると、ウィンドウメッセージを処理するウィンドウプロシージャ関数を先取して、ウィンドウメッセージによって文書を獲得することを防止するブラウザベースの不正行為防止方法およびシステムを提供することができる。
【００２０】
本発明によると、インターネットブラウザに接続されたブラウザ機能拡張モジュールのうち不正なモジュールからの接続を遮断することによって、不正行為を防止するブラウザベースの不正行為防止方法およびシステムを提供することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の一実施形態に係るブラウザベースの不正行為防止方法における全体的な過程を説明するための図である。
【図２】本発明の一実施形態において、関数置換によってブラウザ機能拡張モジュールによるアクセスが悪意のあるアクセスであるかを判断する過程を示す図である。
【図３】本発明の一実施形態において、文書および文書の構成要素を獲得する関数を置換する過程を示す図である。
【図４】本発明の一実施形態において、文書および文書の構成要素を獲得するオリジナルの関数に対する不正行為を防止する過程を説明するための図である。
【図５】本発明の一実施形態において、ウィンドウメッセージを処理するオリジナルのウィンドウプロシージャ関数を置換する過程を示す図である。
【図６】本発明の一実施形態において、ウィンドウメッセージを処理するオリジナルの関数に対する不正行為を防止する過程を説明するための図である。
【図７】本発明の一実施形態において、接続ポイントを通じたブラウザ機能拡張モジュールによるアクセスが悪意のあるアクセスであるかを判断する過程を示す図である。
【図８】本発明の一実施形態において、インターネットブラウザの接続ポイントを抽出する過程を示す図である。
【図９】本発明の一実施形態において、接続ポイントに接続された悪意のあるブラウザ機能拡張モジュールを通じた不正行為を防止する過程を説明するための図である。
【図１０】本発明の一実施形態に係る関数置換を用いるブラウザベースの不正行為防止システムの全体構成を示す図である。
【図１１】本発明の一実施形態において、文書または文書の構成要素を獲得するオリジナルの関数を置換する関数置換部を具体的に示す図である。
【図１２】本発明の一実施形態において、ウィンドウメッセージを処理するオリジナルの関数を置換する関数置換部を具体的に示す図である。
【図１３】本発明の一実施形態において、接続ポイントを通じた不正行為を防止する不正行為判断部を具体的に示す図である。
【発明を実施するための形態】
【００２２】
以下、添付の図面に記載された内容を参照して本発明に係る実施形態を詳説する。ただし、本発明が実施形態によって制限されたり限定されたりすることはない。各図面に提示された同一の参照符号は同一の部材を示す。ブラウザベースの不正行為防止方法は、ブラウザベースの不正行為防止システムによって行われてもよい。ここで、ブラウザベースの不正行為防止システムは、不正行為防止モジュールにより代替してもよい。
【００２３】
図１は、本発明の一実施形態に係るブラウザベースの不正行為防止方法における全体的な過程を説明するための図である。
【００２４】
図１を参照すると、インターネットブラウジングは、ウェブサーバ１０１とクライアント１０２との間のモデルにより実現されてもよい。ここで、インターネットブラウザ１０３は、文書を解釈してクライアント１０２に提供する機能を果たしてもよい。
【００２５】
例えば、クライアント１０２はウェブサーバ１０１に接続して情報を要求してもよく、サーバ１０１は要求された情報を検索してクライアント１０２に送信してもよい。ここで、インターネットブラウザ１０３を介してサーバ１０１が送信した情報をユーザに提供してもよい。
【００２６】
ここで、インターネットブラウザ１０３の機能を拡張させるためにブラウザ機能拡張モジュールを用いてもよい。ここで、ブラウザ機能拡張モジュールは、インターネットブラウザにアドオン（Ａｄｄ−Ｏｎ）形態で接続されてメモリ上にロードされるプログラムであってもよい。一例として、インターネットブラウザ１０３がインターネットエクスプローラである場合、ブラウザ機能拡張モジュールは、ブラウザヘルパーオブジェクト（ＢＨＯ：Ｂｒｏｗｓｅｒ  Ｈｅｌｐｅｒ  Ｏｂｊｅｃｔ）であってもよい。インターネットブラウザ１０３が動作すると、インターネットブラウザ１０３は、接続されたブラウザ機能拡張モジュール１０４−１、１０４−２、１０４−３をメモリ上にロードしてもよい。ここで、ブラウザ機能拡張モジュール１０４−１、１０４−２、１０４−３は、インターネットブラウザ１０３と同一のメモリにロードしてもよい。このようなブラウザ機能拡張モジュールは他のインターネットブラウザに適用されてもよい。
【００２７】
例えば、インターネットブラウザ１０３がインターネットエクスプローラである場合、ブラウザ機能拡張モジュールは、インターネットエクスプローラそのものを示すオブジェクトであるＩＷｅｂＢｒｏｗｓｅｒ２をインターネットブラウザ１０３から提供されてもよい。これによって、ブラウザ機能拡張モジュール１０４−１、１０４−２、１０４−３は、ＩＷｅｂＢｒｏｗｓｅｒ２を介してインターネットブラウザ１０３の典型的なイベントを検出し、ブラウザで発生するメッセージを監視してもよい。このようなブラウザ機能拡張モジュール１０４−１、１０４−２、１０４−３は、インターネットブラウザ１０３に接続されてインターネットブラウザ１０３を制御してもよく、またこれらのモジュールは容易に開発することができる。一方、ブラウザ機能拡張モジュール１０４−１、１０４−２、１０４−３は悪意のある使用のため開発されることがあり、この場合、ブラウザ機能拡張モジュールの強力な機能により様々な形態の不正行為が行われている。
【００２８】
本発明の一実施形態に係る不正行為防止モジュール１０５は、ブラウザ機能拡張モジュール１０４−１、１０４−２、１０４−３のようにアドオン（Ａｄｄ−ｏｎ）形態のプログラムでインターネットブラウザ１０３に接続してもよい。不正行為防止モジュール１０５は、悪意のあるブラウザ機能拡張モジュールの不正行為を遮断することができる。
【００２９】
一例として、不正行為防止モジュール１０５は、ブラウザ機能拡張モジュール１０４−１、１０４−２、１０４−３の不正行為を次のように遮断してもよい。
【００３０】
ステップＳ１０１において、不正行為防止モジュール１０５は、ブラウザ機能拡張モジュールによるアクセスがインターネットブラウザのデータを獲得するための悪意のあるアクセスであるか否かを判断してもよい。一例として、ブラウザ機能拡張モジュールによるアクセスは、ブラウザ機能拡張モジュールがインターネットブラウザに接続されてインターネットブラウザを制御しようとするアクセスを含んでもよい。または、ブラウザ機能拡張モジュールによるアクセスは、ブラウザ機能拡張モジュールが関数呼出またはメッセージ送信によってインターネットブラウザのデータを獲得しようとするアクセスを含んでもよい。前述した一例のみならず、ブラウザ機能拡張モジュールによるアクセスは様々な形態であってもよい。
【００３１】
ステップＳ１０２において、不正行為防止モジュール１０５は、ブラウザ機能拡張モジュールによるアクセスが悪意のあるアクセスであると決定された場合、前記ブラウザ機能拡張モジュールによるアクセスを遮断してもよい。すなわち、不正行為防止モジュール１０５は、悪意のあるブラウザ機能拡張モジュールがインターネットブラウザに接続することを遮断して不正行為を防止したり、またはインターネットブラウザのデータの獲得を遮断して不正行為を防止したりすることができる。
【００３２】
図２〜図９を参照してブラウザ機能拡張モジュールによる様々な形態の不正行為を防止する技術について説明する。一例として、本発明の一実施形態に係るブラウザベース不正行為方法は、不正行為防止モジュールによって実現されてもよい。
【００３３】
ここで、不正行為防止モジュールはブラウザ機能拡張モジュールであってもよい。不正行為防止モジュールは、インターネットブラウザに接続されて不正行為を行う悪意のあるブラウザ機能拡張モジュールのアクセスを遮断してもよい。以下において、ブラウザベース不正行為方法は不正行為防止モジュールを例として説明される。
【００３４】
図２は、本発明の一実施形態において、関数置換によってブラウザ機能拡張モジュールによるアクセスが悪意のあるアクセスであるかを判断する過程を示す図である。
【００３５】
図２を参照して、インターネットブラウザのデータを獲得できるオリジナルの関数を予め先取して、悪意のあるブラウザ機能拡張モジュールがオリジナルの関数を呼び出すことを防止する方法を具体的に説明する。ここで、オリジナルの関数は、インターネットブラウザを介して表示される文書を獲得したり、または文書の構成要素を獲得したりできる関数を含んでもよい。すなわち、オリジナルの関数は、インターネットブラウザにおけるＨＴＭＬオブジェクトを獲得する関数であってもよい。
【００３６】
図２に示すように、ブラウザ機能拡張モジュールによるアクセスが悪意のあるアクセスであるかを判断するステップＳ１０１は、ステップＳ２０１、ステップＳ２０２およびステップＳ２０３を含んでもよい。
【００３７】
ステップＳ２０１において、不正行為防止モジュールは、インターネットブラウザのデータを獲得できるオリジナルの関数を新しく定義した新規関数に置換してもよい。ここで、不正行為防止モジュールは、インターネットブラウザのデータを獲得できる関数におけるオリジナルの関数をフック関数である新規関数に置換することによって、オリジナルの関数を先取してもよい。ここで、フック関数はオリジナルの関数と同一の形式を表してもよい。
【００３８】
言い換えれば、不正行為防止モジュールは、予めオリジナルの関数を先取して悪意のあるブラウザ機能拡張モジュールによるオリジナルの関数の呼び出しを予め防止することができる。これによって、ブラウザ機能拡張モジュールはオリジナルの関数を呼び出そうとする意図は有するものの、不正行為防止モジュールによって置換されたフック関数を呼び出すことになる。オリジナルの関数をフック関数の新規関数に置換する具体的な過程について、図３および図５を参照して説明する。
【００３９】
ステップＳ２０２において、ブラウザ機能拡張モジュールを介して新規関数が呼び出されると、不正行為防止モジュールは、前記新規関数を呼び出した対象を確認してもよい。一例として、ブラウザ機能拡張モジュールがフック関数の新規関数を呼び出した場合、不正行為防止モジュールは、新規関数を呼び出したブラウザ機能拡張モジュールがいかなるモジュールであるかを確認してもよい。
【００４０】
一例として、ブラウザ機能拡張モジュールは、新規関数がリターンされるアドレスに位置するブラウザ機能拡張モジュールの情報から、新規関数を呼び出したブラウザ機能拡張モジュールを確認してもよい。
【００４１】
ステップＳ２０１において、不正行為防止モジュールは新規関数を呼び出した対象が安全であるか否かを判断してもよい。
【００４２】
一例として、新規関数を呼び出した対象がブラウザ機能拡張モジュールである場合、不正行為防止モジュールは、インターネットブラウザで用いられる正常なブラウザ機能拡張モジュールのリストを用いてブラウザ機能拡張モジュールが安全であるか否かを判断してもよい。ここで、新規関数を呼び出したブラウザ機能拡張モジュールがインターネットブラウザで用いられる正常なブラウザ機能拡張モジュールのリストに存在する場合、不正行為防止モジュールはブラウザ機能拡張モジュールを安全なモジュールと判断してもよい。
【００４３】
図３は、本発明の一実施形態において、文書および文書の構成要素を獲得する関数を置換する過程を示す図である。
【００４４】
図３は、インターネットブラウザがＨＴＭＬ方式の文書をユーザに提供する際に、不正行為モジュールが文書または文書の構成要素をユーザへの提供前に先取して前記文書を変更、修正する不正行為を防止する過程を示している。以下は、ＨＴＭＬ方式の文書に対して説明するが、文書はＨＴＭＬの他に異なる形式の言語で構成されたものを含んでもよい。
【００４５】
図３に示すように、オリジナルの関数を新規関数に置換するステップＳ２０１は、ステップＳ３０１、ステップＳ３０３、ステップＳ３０３、およびステップＳ３０４を含んでもよい。
【００４６】
ステップＳ３０１において、不正行為防止モジュールは、インターネットブラウザのブラウザオブジェクトと関連する関数のアドレス情報を獲得してもよい。一例として、不正行為防止モジュールは、インターネットブラウザのブラウザオブジェクトと関連する関数のアドレスが格納された仮想関数テーブル（ｖｉｒｔｕａｌ  ｆｕｎｃｔｉｏｎ  ｔａｂｌｅ）を獲得してもよい。
【００４７】
ここで、ブラウザオブジェクトは、予めビルド（ｂｕｉｌｄ）されたバイナリ形態のＣＯＭ（Ｃｏｍｐｏｎｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）ベースのオブジェクトを含んでもよい。ＣＯＭベースのオブジェクトは、予めビルドされてバイナリ形態になったオブジェクトを呼び出して用いることを保障してもよく、オブジェクトの再使用も保障してもよい。
【００４８】
例えば、インターネットブラウザがインターネットエクスプローラであり、ブラウザオブジェクトがＩＷｅｂＢｒｏｗｓｅｒ２オブジェクトである場合、ブラウザベースの不正行為防止方法は、ＨＴＭＬ文書を獲得することを遮断するためのものといえる。ＩＷｅｂＢｒｏｗｓｅｒ２オブジェクトは、インターネットブラウザごとに有している固有なオブジェクトであってもよい。すなわち、ＩＷｅｂＢｒｏｗｓｅｒ２オブジェクトは、インターネットブラウザそのものを表すものともいえる。ここで、ＩＷｅｂＢｒｏｗｓｅｒ２オブジェクトは、特定のウェブページをナビゲータするようにインターネットブラウザに命令することで、インターネットブラウザを制御してもよい。そして、ＩＷｅｂＢｒｏｗｓｅｒ２オブジェクトは、現在のウェブページのＨＴＭＬ文書を獲得してＨＴＭＬ文書内容を参照したり修正したりしてもよい。
【００４９】
このようなＩＷｅｂＢｒｏｗｓｅｒ２オブジェクトは、インターネットブラウザがロードされたブラウザ機能拡張モジュールに提供するオブジェクトである。すなわち、悪意のあるブラウザ機能拡張モジュール（不正行為モジュール）は、インターネットブラウザからＩＷｅｂＢｒｏｗｓｅｒ２オブジェクトが提供されることによって、インターネットブラウザが見せる現在のウェブサイトのＨＴＭＬ文書を獲得して操作したり変更したりすることがある。ここで、不正行為防止モジュールは、不正行為モジュールがＩＷｅｂＢｒｏｗｓｅｒ２オブジェクトによってＨＴＭＬ文書を獲得することを防止するものといえる。
【００５０】
他の一例として、不正行為モジュールが獲得しようとするブラウザオブジェクトがＨＴＭＬインタフェースオブジェクトである場合、不正行為防止モジュールは、ＨＴＭＬ文書の構成要素を獲得することを遮断する。ただし、ＨＴＭＬ文書の構成要素を獲得することが全て悪意によるものとも言えないため、不正行為防止モジュールは不正行為事例と関連する特定関数だけを先取する。
【００５１】
例えば、インターネットエクスプローラにおけるＩＨＴＭＬＩｎｐｕｔＥｌｅｍｅｎｔオブジェクトのｇｅｔ＿ｖａｌｕｅ関数は、ポータルサイト検索ウィンドウの検索語を獲得することによって、検索者が入力する検索語を変更する不正行為に用いられることがある。また、ＩＨＴＭＬＤｏｃｕｍｅｎｔ３オブジェクトのｇｅｔＥｌｅｍｅｎｔＢｙＮａｍｅとｇｅｔＥｌｅｍｅｎｔｓＢｙＴａｇＮａｍｅ関数は、ＨＴＭＬ文書の特定の構成要素を獲得してウェブページを変更する不正行為に用いられることがある。そして、ＩＨＴＭＬＤｏｃｕｍｅｎｔ３オブジェクトのｇｅｔ＿Ｉｍａｇｅｓ関数は、ＨＴＭＬ文書のイメージを獲得して他のイメージに変更する不正行為に用いられることがある。このような不正行為に用いられる文書の構成要素を獲得する関数の種類は制限されない。
【００５２】
ここで、ＣＯＭベースのオブジェクトは仮想関数テーブルを有してもよい。仮想関数テーブルは、ブラウザオブジェクトの関数におけるアドレスを格納してもよい。具体的に、仮想関数テーブルは、オブジェクトから外部に提供する関数のアドレスを格納してもよい。ここで、ＣＯＭベースのオブジェクトが提供する関数のアドレスは一定の順に仮想関数テーブルに格納されてもよい。もし、ＣＯＭベースのオブジェクトの関数を呼び出すためにブラウザ機能拡張モジュールは、仮想関数テーブルを介して確認した該当関数のアドレスを用いて関数を呼び出してもよい。
【００５３】
ステップＳ３０２において、不正行為防止モジュールは、オリジナルの関数の位置に対応するオリジナルの関数のアドレスを格納してバックアップしてもよい。一例として、不正行為防止モジュールは、仮想関数テーブルを用いて先取しようとするオリジナルの関数の位置に対応するオリジナルの関数のアドレスを格納してバックアップしてもよい。
【００５４】
ここで、オリジナルの関数は、インターネットブラウザを介して文書を獲得する関数または文書の特定の構成要素を獲得する関数のうちのいずれかであってもよい。一例として、文書を獲得する関数はＩＷｅｂＢｒｏｗｓｅｒ２オブジェクトのｇｅｔ＿Ｄｏｃｕｍｅｎｔ関数であってもよい。ｇｅｔ＿Ｄｏｃｕｍｅｎｔ関数は、現在のインターネットブラウザのＨＴＭＬ文書を獲得して不正行為に用いられることがある。したがって、この場合、ブラウザベースの不正行為防止方法とは、ｇｅｔ＿Ｄｏｃｕｍｅｎｔ関数の呼び出しを防止するためにｇｅｔ＿Ｄｏｃｕｍｅｎｔ関数をフッキングして先取する方法である。
【００５５】
また、一例として、文書の特定の構成要素を獲得する関数は、ＩＨＴＭＬＩｎｐｕｔＥｌｅｍｅｎｔオブジェクトのｇｅｔ＿ｖａｌｕｅ関数、ＩＨＴＭＬＤｏｃｕｍｅｎｔ２オブジェクトのｇｅｔＥｌｅｍｅｎｔＢｙＮａｍｅとｇｅｔＥｌｅｍｅｎｔｓＢｙＴａｇＮａｍｅ関数、またはＩＨＴＭＬＤｏｃｕｍｅｎｔ２オブジェクトのｇｅｔ＿Ｉｍａｇｅｓ関数であってもよい。
【００５６】
ＣＯＭベースオブジェクトは提供する関数の順序が一定であるため、前記関数の順序に応じて仮想関数テーブルのオリジナルの関数の位置が決定されてもよい。例えば、ＯＬＥＶｉｅｗのようなプログラムによって仮想関数テーブル上のＩＷｅｂＢｒｏｗｓｅｒ２オブジェクトの関数の順序を確認してもよい。
【００５７】
オリジナルの関数のアドレスが確認されると、不正行為防止モジュールは、仮想関数テーブル上のオリジナルの関数の位置にあるアドレスを別に格納してバックアップしてもよい。すなわち、オリジナルの関数が特定のブラウザ機能拡張モジュールによって呼び出されたときに、不正行為防止モジュールはオリジナルの関数の呼び出しを無条件には遮断しない。すなわち、オリジナルの関数を呼び出したブラウザ機能拡張モジュールが安全なモジュールである場合、オリジナルの関数を呼び出すために不正行為防止モジュールはオリジナルの関数のアドレスを別に格納してもよい。
【００５８】
ステップＳ３０３において、不正行為防止モジュールはオリジナルの関数と形式が同一の新規関数を宣言してもよい。ここで、新規関数はオリジナルの関数を先取するためのフック関数であってもよい。
【００５９】
ステップＳ３０４において、不正行為防止モジュールは、宣言された新規関数のアドレスを仮想関数テーブルのオリジナルの関数の位置に記録してもよい。すなわち、不正行為防止モジュールは、オリジナルの関数を予め先取して仮想関数テーブルのオリジナルの関数の位置にフック関数のアドレスを記録することによって、ブラウザ機能拡張モジュールがオリジナルの関数を呼び出す場合、フック関数を呼び出すように誘導してもよい。
【００６０】
図４は、本発明の一実施形態において、文書および文書の構成要素を獲得するオリジナルの関数に対する不正行為を防止する過程を説明するための図である。
【００６１】
図４は、ブラウザオブジェクト４０１における仮想関数テーブル４０２を示している。ここで、不正行為防止モジュール４０３は、本発明の一実施形態に係るブラウザベースの不正行為防止方法を行なってもよい。そして、ブラウザ機能拡張モジュール４０４は、不正行為防止モジュール４０３と他のモジュールを意味する。ここで、不正行為防止モジュール４０３は、ブラウザ機能を拡張するモジュールの一種である。
【００６２】
不正行為防止モジュール４０３は、インターネットブラウザのブラウザオブジェクトに関連する関数のアドレス情報を獲得してもよい。ここで、不正行為防止モジュール４０３は、インターネットブラウザのブラウザオブジェクトに関連する関数のアドレスを格納する仮想関数テーブル４０２を獲得してもよい。一例として、ブラウザオブジェクト４０１は、ＣＯＭベースのオブジェクトであってもよい。ＣＯＭベースのオブジェクトに対して、仮想関数テーブル４０２における関数の順序が一定であってもよい。すなわち、仮想関数テーブル４０２における関数それぞれの位置は一定であってもよい。
【００６３】
不正行為防止モジュール４０３は、仮想関数テーブル４０２を参照してオリジナルの関数の位置に対応するアドレスを探してもよい。ここで、オリジナルの関数は、不正行為防止モジュール４０３が先取しようとする関数であり、インターネットブラウザを介して表示される文書を獲得する関数または文書の特定の構成要素を獲得する関数を含んでもよい。
【００６４】
不正行為防止モジュール４０３は、オリジナルの関数の位置に対応するオリジナルの関数のアドレスを格納してバックアップしてもよい。正常なモジュールがオリジナルの関数を呼び出す時、不正行為防止モジュール４０３は、バックアップしたオリジナルの関数のアドレスを介してオリジナルの関数を呼び出してもよい。
【００６５】
不正行為防止モジュール４０３はオリジナルの関数と形式が同一の新規関数を宣言し、宣言された新規関数のアドレスを仮想関数テーブル４０２のオリジナルの関数の位置に記録してもよい。ここで、新規関数はオリジナルの関数を先取するためのフック関数を意味する。
【００６６】
結果的に、図４から分かるように、不正行為防止モジュール４０３は、仮想関数テーブル４０２内でオリジナルの関数の位置においてオリジナルの関数のアドレスをフック関数のアドレスに置換してもよい。
【００６７】
その後、ブラウザ機能拡張モジュール４０４は、仮想関数テーブル４０２のオリジナルの関数の位置に記録されたフック関数のアドレスを参照してフック関数を呼び出してもよい。ここで、ブラウザ機能拡張モジュール４０４の目的はオリジナルの関数を呼び出すことにある。しかし、既に不正行為防止モジュール４０３によってオリジナルの関数がフック関数に置換されているため、ブラウザ機能拡張モジュール４０４はオリジナルの関数の位置に記録されたフック関数のアドレスによってフック関数を呼び出してもよい。
【００６８】
これによって、不正行為防止モジュール４０３は、フック関数を呼び出したブラウザ機能拡張モジュールを確認してもよい。ここで、フック関数が呼び出された時、不正行為防止モジュール４０３は、フック関数のうちフック関数がリターンされるアドレスに位置したブラウザ機能拡張モジュールの情報を用いてフック関数を呼び出したブラウザ機能拡張モジュールを確認してもよい。
【００６９】
そして、不正行為防止モジュール４０３は、フック関数を呼び出したモジュールが正常なモジュールであるか判断してもよい。ここで、不正行為防止モジュール４０３は、インターネットブラウザに用いられる正常なモジュールについてのリストであるホワイトリスト（ｗｈｉｔｅ  ｌｉｓｔ）にフック関数を呼び出したモジュールが存在する場合、前記モジュールを正常なモジュールとして判断してもよい。
【００７０】
もし、フック関数を呼び出したブラウザ機能拡張モジュール４０４が正常なモジュールである場合、不正行為防止モジュール４０３は、バックアップしたオリジナルの関数を呼び出してもよい。ここで、オリジナルの関数は、文書を獲得する関数または文書の特定の構成要素を獲得する関数であり、インターネットブラウザのデータを獲得できる関数を意味する。反対に、もし、フック関数を呼び出したブラウザ機能拡張モジュール４０４が不正な悪意のあるモジュールである場合、不正行為防止モジュール４０３は、予めバックアップしたオリジナルの関数に対する呼び出しを遮断してもよい。結果的に、不正行為防止モジュール４０３は、悪意のあるブラウザ機能拡張モジュール４０４が新規関数を呼び出そうとするアクセスを遮断することによって、不正行為を防止することができる。
【００７１】
図５は、本発明の一実施形態において、ウィンドウメッセージを処理するオリジナルのウィンドウプロシージャ関数を置換する過程を示す図である。
【００７２】
ブラウザ機能拡張モジュールを介して文書を獲得するためのオブジェクトのウィンドウメッセージがインターネットブラウザに送信されると、インターネットブラウザは現在閲覧できるＨＴＭＬ文書（ＨＴＭＬオブジェクト）を提供してもよい。すなわち、図５に示すブラウザベースの不正行為防止方法は、ウィンドウメッセージによって文書を獲得し、これを修正および変更する不正行為を防止することができる。
【００７３】
図５に示しているように、オリジナルの関数を新規関数に置換するステップＳ２０１は、ステップＳ５０１、ステップＳ５０２、およびステップＳ５０３を含んでもよい。
【００７４】
ステップＳ５０１において、不正行為防止モジュールは、インターネットブラウザにおけるメインウィンドウを決定してもよい。一例として、不正行為防止モジュールは、インターネットブラウザのブラウザオブジェクトが提供する関数を呼び出してメインウィンドウを決定してもよい。例えば、不正行為防止モジュールは、ＩＷｅｂＢｒｏｗｓｅｒ２オブジェクトまたはＣｒｅａｔｅＷｉｎｄｏｗＥｘ関数のＡＰＩ−Ｈｏｏｋを通じてインターネットブラウザにおけるメインウィンドウのハンドル（ｈａｎｄｌｅ）を求めてもよい。ここで、ブラウザオブジェクトは、インターネットブラウザがブラウザ機能拡張モジュールをロードする際に、インターネットブラウザがブラウザ機能拡張モジュールに提供するオブジェクトであってもよい。そして、メインウィンドウのハンドルはウィンドウを識別するための番号を意味する。
【００７５】
ステップＳ５０２において、不正行為防止モジュールは、メインウィンドウを基準にしてインターネットブラウザにおけるビューウィンドウを決定してもよい。一例として、不正行為防止モジュールは、インターネットブラウザのバージョンに応じたウィンドウ構造を参照してビューウィンドウを決定してもよい。インターネットブラウザのウィンドウ構造はバージョン別に異なる形態のため、不正行為防止モジュールは、バージョンに応じたインターネットブラウザのウィンドウ構造を調査してもよい。
【００７６】
ここで、ビューウィンドウとは、インターネットブラウザにおいて実際にページが見える位置にあるウィンドウを意味する。すなわち、ビューウィンドウは、インターネットブラウザ上に存在する複数のウィンドウのうち、ユーザが実際に見えるアクティブなウィンドウを意味する。
【００７７】
ステップＳ５０３において、不正行為防止モジュールは、インターネットブラウザに送信されたメッセージを処理するビューウィンドウのオリジナルのウィンドウプロシージャ関数を新規ウィンドウプロシージャ関数に置換してもよい。例えば、不正行為防止モジュールは、ＳｅｔＷｉｎｄｏｗＬｏｎｇ関数を介してウィンドウプロシージャ関数を置換する過程を行なってもよい。
【００７８】
一例として、新規ウィンドウプロシージャ関数に置換する過程は、ビューウィンドウのオリジナルのウィンドウプロシージャ関数の変更の有無を確認する過程、オリジナルのウィンドウプロシージャ関数が変更されていない場合、ビューウィンドウのオリジナルのウィンドウプロシージャ関数のアドレスを格納してバックアップする過程およびオリジナルのウィンドウプロシージャ関数のアドレスを前記新規ウィンドウプロシージャ関数のアドレスに変更する過程を含んでもよい。
【００７９】
一例として、ビューウィンドウのオリジナルのウィンドウプロシージャ関数の変更の有無を確認する過程は次のような過程により行なわれてもよい。まず、不正行為防止モジュールは、ビューウィンドウのオリジナルのウィンドウプロシージャ関数のアドレスを求める。そして、不正行為防止モジュールは、該当のプロシージャ関数が位置したブラウザ機能拡張モジュールの経路を検索してもよい。ここで、不正行為防止モジュールは、プロシージャ関数がいずれのモジュールに位置しているかをメモリによって確認してもよい。
【００８０】
不正行為防止モジュールは、検索したブラウザ機能拡張モジュールの経路を基準にしてブラウザ機能拡張モジュールを確認してもよい。ここで、確認したブラウザ機能拡張モジュールがインターネットブラウザと関連するモジュール（例えば、インターネットブラウザがインターネットエクスプローラである場合、ＩＥＦｒａｍｅ．ｄｌｌ、ｍｓｈｔｍｌ．ｄｌｌなどを含む）ではない場合、不正行為防止モジュールは、他のブラウザ機能拡張モジュールによってビューウィンドウのオリジナルのウィンドウプロシージャ関数が変更されたと判断してもよい。
【００８１】
図６は、本発明の一実施形態において、ウィンドウメッセージを処理するオリジナルの関数に対する不正行為を防止する過程を説明するための図である。
【００８２】
図６に示すように、インターネットブラウザは、メインウィンドウ６０１にウィンドウ６０５を含んでもよい。ウィンドウ６０５は複数であってもよい。そして、ウィンドウ６０５ごとにウィンドウプロシージャ関数６０６が存在してもよい。ウィンドウ６０５のうちユーザがインターネットブラウザを介して現在見られるウィンドウがビューウィンドウ６０２であると定義されてもよい。ウィンドウメッセージ６０４がウィンドウに送信される場合、ウィンドウプロシージャ関数は自動で呼び出されてメッセージを処理してもよい。
【００８３】
不正行為防止モジュールは、インターネットブラウザにおけるメインウィンドウを決定してもよい。ここで、不正行為防止モジュールは、インターネットブラウザのブラウザオブジェクトが提供する関数を用いてメインウィンドウを決定してもよい。そして、不正行為防止モジュールは、メインウィンドウ６０１を基準にしてインターネットブラウザにおけるビューウィンドウ６０２を決定してもよい。ここで、不正行為防止モジュールは、インターネットブラウザのバージョンに応じたウィンドウ構造を参照してビューウィンドウを決定してもよい。
【００８４】
これによって、不正行為防止モジュールは、ビューウィンドウ６０２のオリジナルのウィンドウプロシージャ関数６０３を新規ウィンドウプロシージャ関数に置換してもよい。ここで、オリジナルのウィンドウプロシージャ関数６０３のアドレスは、呼出のために別に格納されてもよい。すなわち、文書を獲得するためのオブジェクトについてのウィンドウメッセージ６０４がウィンドウに送信される場合これを遮断する必要があるため、不正行為防止モジュールは、オリジナルのウィンドウプロシージャ関数６０３をウィンドウメッセージ６０４をフッキングできる新規ウィンドウプロシージャ関数に置換してもよい。
【００８５】
ここで、不正行為防止モジュールは、ビューウィンドウ６０２のオリジナルのウィンドウプロシージャ関数６０３の変更の有無を確認し、変更されていなければ、オリジナルのウィンドウプロシージャ関数６０３のアドレスを格納してバックアップしてもよい。これによって、不正行為防止モジュールは、オリジナルのウィンドウプロシージャ関数６０３のアドレスを新規ウィンドウプロシージャ関数のアドレスに変更してもよい。このような過程によって、不正行為防止モジュールはオリジナルのウィンドウプロシージャ関数６０３を予め先取することができる。
【００８６】
インターネットブラウザは、ウィンドウプロシージャ関数を介してインターネットブラウザに送信されたウィンドウメッセージ６０４を処理してもよい。ここで、ビューウィンドウ６０２についてのウィンドウメッセージ６０４が送信されると、オリジナルのウィンドウプロシージャ関数６０３が呼び出されることなく、置換された新規ウィンドウプロシージャ関数は自動で呼び出される。
【００８７】
その後、ビューウィンドウについてのウィンドウメッセージ６０４が発生すると、不正行為防止モジュールは、ウィンドウメッセージ６０４が文書を獲得するためのオブジェクトのメッセージであるかを判断してもよい。
【００８８】
一例として、不正行為防止モジュールは、文書を獲得するためのオブジェクトのウィンドウメッセージ６０４についてのメッセージ値を確認する過程および発生したウィンドウメッセージ６０４のメッセージ値と前記確認されたオブジェクトのメッセージについてのメッセージ値を比較する過程を含んでもよい。
【００８９】
ここで、文書を獲得するためのオブジェクトについてのメッセージはウィンドウの基本メッセージではないため、不正行為防止モジュールは文書を獲得するためのオブジェクトについてのメッセージをユーザ定義メッセージとして登録して生成してもよい。既に文書を獲得するためのオブジェクトについてのメッセージが生成された場合、不正行為防止モジュールは、ウィンドウメッセージ６０４のメッセージ値を直ちに確認してもよい。そして、生成の前であれば、不正行為防止モジュールは文書を獲得するためのオブジェクトについてのメッセージを生成してメッセージ値を獲得してもよい。例えば、文書を獲得するためのオブジェクトについてのメッセージは、ＲｅｇｉｓｔｅｒＷｉｎｄｏｗＭｅｓｓａｇｅ関数を介して生成されてもよい。
【００９０】
もし、ウィンドウメッセージ６０４が文書を獲得するためのオブジェクトについてのメッセージである場合、不正行為防止モジュールはウィンドウメッセージについての処理過程を終了してもよい。そして、生成されたウィンドウメッセージが文書を獲得するためのオブジェクトについてのメッセージではない場合、不正行為防止モジュールはオリジナルのウィンドウプロシージャ関数を呼び出してもよい。
【００９１】
本発明の他の一実施形態によると、図３および図４を参照して説明した発明はキーメッセージ（ｋｅｙ  ｍｅｓｓａｇｅ）を介した不正行為にも適用されてもよい。すなわち、悪意のあるブラウザ機能拡張モジュールは、インターネットブラウザのキーメッセージを獲得して、ユーザが入力した検索語やＩＤなどの重要な情報のキーメッセージを先取することができる。
【００９２】
このような行為を防止するために不正行為防止モジュールは、メッセージフッキングを設定したり、またはウィンドウプロシージャを置換する関数についてフッキングによって制御したりすることで、キーメッセージ獲得を防止することができる。ここで、制御するものは正常なモジュールのリストを参照して、該当の関数を呼び出したブラウザ機能拡張モジュールが正常であるか否かに応じて決定してもよい。
【００９３】
図７は、本発明の一実施形態において、接続ポイントを通じたブラウザ機能拡張モジュールによるアクセスが悪意のあるアクセスであるかを判断する過程を示す図である。
【００９４】
図７に示す不正行為防止方法は、インターネットブラウザに接近するための悪意のあるブラウザ機能拡張モジュールの接続そのものを遮断して不正行為を防止してもよい。前述したように、ブラウザ機能拡張モジュールはインターネットブラウザにおけるＡｄｄ−Ｏｎプログラムであってもよいため、インターネットブラウザが実行されると自動でロードされてもよい。そして、ブラウザ機能拡張モジュールは、インターネットブラウザからブラウザオブジェクト（例えば、インターネットエクスプローラである場合ＩＷｅｂＢｒｏｗｓｅｒ２オブジェクト）が送信されるとＨＴＭＬ文書を操作および変更できるため、ブラウザベースの不正行為防止方法は、悪意をもって接続されたブラウザ機能拡張モジュールを遮断して無力化することができる。一例として、不正行為防止モジュールは、周期的に悪意のあるブラウザ機能拡張モジュールを検索して接続を遮断してもよい。
【００９５】
図７に示すように、ブラウザ機能拡張モジュールによるアクセスがインターネットブラウザのデータを獲得するための悪意のあるアクセスであるか否かを判断するステップＳ１０１は、ステップＳ７０１、ステップＳ７０２、およびステップＳ７０３を含んでもよい。
【００９６】
ステップＳ７０１において、不正行為防止モジュールは、インターネットブラウザのブラウザオブジェクトによってインターネットブラウザのイベントと関連する少なくとも１つの接続ポイントを抽出してもよい。
【００９７】
ここで、接続ポイントとは、ブラウザ機能拡張モジュールがインターネットブラウザに接続されるポイントを意味する。インターネットブラウザは複数の接続ポイントを有してもよく、接続ポイントごとに異なる情報及びイベントを提供してもよい。そして、接続ポイントコンテナは、接続ポイントを有する接続ポイントオブジェクトを有してもよい。接続ポイントオブジェクトは自身のＩＤを有してもよく、インターネットブラウザのイベントと関連するＩＤとの比較によって接続ポイントがイベントと関連する接続ポイントであるかを確認してもよい。各接続ポイントは自身に接続されたブラウザ機能拡張モジュールのリストを含んでもよい。
【００９８】
ステップＳ７０２において、不正行為防止モジュールは、抽出されたインターネットブラウザの接続ポイントそれぞれに接続されたブラウザ機能拡張モジュールを確認してもよい。一例として、不正行為防止モジュールは、ブラウザ機能拡張モジュールのアドレスによって接続ポイントとブラウザ機能拡張モジュール間の経路を決定し、前記接続ポイントと接続されたブラウザ機能拡張モジュールを確認してもよい。具体的に、不正行為防止モジュールは、ブラウザ機能拡張モジュールのアドレス値を用いてメモリ上にロードされたＤＬＬの位置に存在するブラウザ機能拡張モジュールを確認してもよい。
【００９９】
ステップＳ７０３において、不正行為防止モジュールは確認されたブラウザ機能拡張モジュールが安全であるか否かを判断してもよい。
【０１００】
一例として、ブラウザ機能拡張モジュールは、インターネットブラウザで用いられる正常なブラウザ機能拡張モジュールのリスト（例えば、ｗｈｉｔｅ  ｌｉｓｔ）を用いて前記ブラウザ機能拡張モジュールが安全であるか否かを判断してもよい。すなわち、確認されたブラウザ機能拡張モジュールがホワイトリストに存在する場合、不正行為防止モジュールは、前記ブラウザ機能拡張モジュールを安全なモジュールとして判断してもよい。
【０１０１】
そして、確認されたブラウザ機能拡張モジュールがホワイトリストに存在しない場合、不正行為防止モジュールは、前記ブラウザ機能拡張モジュールを悪意のあるモジュールとして判断してもよい。これによって、不正行為防止モジュールは、インターネットブラウザに対する悪意のあるモジュールの接続を遮断することができる。一例として、不正行為防止モジュールは、接続ポイントに接続されたブラウザ機能拡張モジュールが悪意のあるモジュールである場合、接続ポイントの接続順序値を参照してブラウザ機能拡張モジュールの接続を遮断してもよい。
【０１０２】
図８は、本発明の一実施形態において、インターネットブラウザの接続ポイントを抽出する過程を示す図である。
【０１０３】
図８に示すように、インターネットブラウザのイベントと関連する少なくとも１つの接続ポイントを抽出するステップＳ７０１は、ステップＳ８０１、ステップＳ８０２、およびステップＳ８０３を含んでもよい。
【０１０４】
ステップＳ８０１において、不正行為防止モジュールは、ブラウザオブジェクトを用いて接続ポイントコンテナを獲得してもよい。接続ポイントコンテナは、インターネットブラウザと関連する接続ポイントを含んでもよい。ここで、接続ポイントコンテナは接続ポイントを直接有さず、接続ポイントを有するオブジェクトを含んでもよい。インターネットブラウザの接続ポイントそれぞれは他の情報とイベントを提供してもよい。すなわち、ブラウザ機能拡張モジュールは、所望するイベントを獲得するために正確な接続ポイントに接続される。
【０１０５】
ステップＳ８０２において、不正行為防止モジュールは接続ポイントコンテナに含まれた接続ポイントリストを確認してもよい。一例として、不正行為防止モジュールは、接続ポイントコンテナのオブジェクトが提供する関数を呼び出して接続ポイントオブジェクトを求めてもよい。そして、不正行為防止モジュールは、接続ポイントオブジェクトが提供する関数を呼び出して接続ポイントリストを確認してもよい。
【０１０６】
ステップＳ８０３において、不正行為防止モジュールは、インターネットブラウザのイベントと関連する接続ポイントＩＤを用いて接続ポイントリストからイベントと関連する接続ポイントを検索してもよい。ここで、不正行為防止モジュールは、予め知っているインターネットブラウザのイベントと関連する接続ポイントＩＤを前記接続ポイントリストと比較して接続ポイントを検索してもよい。
【０１０７】
すなわち、不正行為防止モジュールは、検索された接続ポイントそれぞれに接続されたブラウザ機能拡張モジュールが安全であるか否かを判断し、悪意のあるブラウザ機能拡張モジュールの接続を遮断することができる。
【０１０８】
図９は、本発明の一実施形態において、接続ポイントに接続された悪意のあるブラウザ機能拡張モジュールを通じた不正行為を防止する過程を説明するための図である。
【０１０９】
図９に示すように、インターネットブラウザ９０１に接続される複数のブラウザ機能拡張モジュール９０９−１〜９０９−６が図示される。不正行為防止モジュールもブラウザ機能拡張モジュールの一種に属してもよい。不正行為防止モジュールは、インターネットブラウザ９０１のイベントと関連する少なくとも１つの接続ポイントを抽出してもよい。
【０１１０】
一例として、不正行為防止モジュールは、ブラウザオブジェクトを用いて接続ポイントコンテナ９０２を獲得してもよい。そして、不正行為防止モジュールは、接続ポイントコンテナ９０２に含まれた接続ポイントリスト９０３〜９０６を確認してもよい。その後、不正行為防止モジュールは、インターネットブラウザのイベントと関連する接続ポイントＩＤを用いて接続ポイントリスト９０３〜９０６からイベントと関連する接続ポイント９０４，９０６を検索してもよい。
【０１１１】
図９に示すように、不正行為防止モジュールは、インターネットブラウザ９０１のイベントと関連する接続ポイント２（９０４）、接続ポイント４（９０６）を抽出してもよい。ここで、接続ポイント９０３〜９０６は接続ポイントコンテナ９０２に含まれてもよい。接続ポイントコンテナはブラウザオブジェクトによって決定されてもよい。
【０１１２】
インターネットブラウザ９０１のイベントと関連する接続ポイント２（９０４）および接続ポイント４（９０６）は、それぞれ接続されたブラウザ機能拡張モジュールを確認してもよい。これによって、不正行為防止モジュールは、インターネットブラウザ９０１のイベントと関連する接続ポイント２（９０４）および接続ポイント４（９０６）それぞれに接続されたブラウザ機能拡張モジュールのリストを確認してもよい。ここで、ブラウザ機能拡張モジュールのリストは、ブラウザ機能拡張モジュールについてのアドレス値およびイベントと関連する接続ポイントに接続される際の接続順序値に構成されてもよい。
【０１１３】
図９において、接続ポイント２（９０４）に接続されたブラウザ機能拡張モジュールのリストは、ブラウザ機能拡張モジュール１（９０７−１）、ブラウザ機能拡張モジュール２（９０７−２）、およびブラウザ機能拡張モジュール３（９０７−３）を含んでもよい。そして、接続ポイント４（９０６）に接続されたブラウザ機能拡張モジュールのリストは、ブラウザ機能拡張モジュール４（９０７−４）、ブラウザ機能拡張モジュール５（９０７−５）、およびブラウザ機能拡張モジュール６（９０７−６）を含んでもよい。
【０１１４】
これによって、不正行為防止モジュールは、インターネットブラウザの接続ポイントに接続されたそれぞれのブラウザ機能拡張モジュールが正常なモジュールであるか否かを判断してもよい。ここで、不正行為防止モジュールは、インターネットブラウザで用いられる正常なブラウザ機能拡張モジュールのリスト（ホワイトリスト）を用いてリストに含まれたブラウザ機能拡張モジュールが正常なモジュールであるか否かを判断してもよい。
【０１１５】
もし、接続ポイント２（９０４）によってインターネットブラウザ９０１に接続されたブラウザ機能拡張モジュール２（９０７−２）と接続ポイント４（９０６）によってインターネットブラウザ９０１に接続されたブラウザ機能拡張モジュール６（９０７−６）が不正なモジュールであると判断された場合、不正行為防止モジュールは、インターネットブラウザ９０１に接続されたブラウザ機能拡張モジュール２（９０７−２）およびブラウザ機能拡張モジュール６（９０７−６）を遮断してもよい。ここで、不正行為防止モジュールは、ブラウザ機能拡張モジュール２（９０７−２）およびブラウザ機能拡張モジュール６（９０７−６）の接続順序値を参照して遮断してもよい。そして、残りブラウザ機能拡張モジュール９０７−１、９０７−３、９０７−４、９０７−５は正常なモジュールと判断され、不正行為防止モジュールによって接続が遮断されることはない。悪意のあるブラウザ機能拡張モジュールの接続を遮断する過程は周期的に繰り返されてもよい。
【０１１６】
図１〜図９を参照して説明した実施形態と異なる本発明の他の実施形態によれば、悪意のあるブラウザ機能拡張モジュールである不正行為モジュールが変更したデータをインターネットブラウザに送信することを防止することができる。すなわち、不正行為モジュールはインターネットブラウザにデータを送信するためのデータ送信と関連する関数（例えば、ウィンドウで提供するＷｉｎＩｎｅｔ関数）をフッキングすることによって変更したデータをインターネットブラウザに送信してもよい。ここで、不正行為防止モジュールは、データ送信と関連する関数が不正行為モジュールによって変更され、フッキングされたか否かを確認して不正行為を防止することができる。
【０１１７】
具体的に、不正行為防止モジュールは、変更された疑いのあるデータの送信と関連する関数における開始の一部分を確認してＣＰＵジャンプ命令語が入力されたか否かを確認することで、関数がフッキングされたか否かを確認してもよい。そして、データ送信と関連する関数が不正行為モジュールによって変更されてフッキングされた場合、不正行為防止モジュールは変更されていない部分を読み出して変更された部分に上書きすることによって変更された関数を復元してもよい。このような復元過程によって関数を初期化し、該当関数を不正行為防止モジュールが同じ形式の関数にフッキングしてもよい。
【０１１８】
その後、ブラウザ機能拡張モジュールが不正行為防止モジュールのフッキングした関数を呼び出す場合、不正行為防止モジュールは、関数を呼び出したモジュールが正常なモジュールであるか否かを判断してもよい。関数を呼び出したモジュールが正常なモジュールとして判断された場合、不正行為防止モジュールは関数呼出を行うことのできない場合、不正行為防止モジュールは関数呼出を遮断してもよい。
【０１１９】
図１０は、本発明の一実施形態に係る関数置換を用いるブラウザベースの不正行為防止システムの全体構成を示す図である。
【０１２０】
図１０に示すように、ブラウザ機能不正行為防止システム１０００は、不正行為判断部１００１および不正行為遮断部１００２を備えてもよい。
【０１２１】
不正行為判断部１００１は、ブラウザ機能拡張モジュールによるアクセスがインターネットブラウザのデータを獲得するための悪意のあるアクセスであるか否かを判断してもよい。一例として、ブラウザ機能拡張モジュールによるアクセスは、ブラウザ機能拡張モジュールがインターネットブラウザに接続されてインターネットブラウザを制御しようとするアクセスを含んでもよい。または、ブラウザ機能拡張モジュールによるアクセスは、ブラウザ機能拡張モジュールが関数呼出またはメッセージ送信によってインターネットブラウザのデータを獲得しようとするアクセスを含んでもよい。前述した一例のみならず、ブラウザ機能拡張モジュールによるアクセスは様々な形態であってもよい。
【０１２２】
一例として、不正行為判断部１００１は、関数置換部１００３、呼出対象確認部１００４、および呼出対象判断部１００５を備えてもよい。
【０１２３】
ここで、ブラウザ機能拡張モジュールは、インターネットブラウザがインターネットエクスプローラである場合、前記インターネットブラウザにアドオン形態で接続されることができるブラウザヘルパーオブジェクト（ＢＨＯ：Ｂｒｏｗｓｅｒ  Ｈｅｌｐｅｒ  Ｏｂｊｅｃｔ）を含んでもよい。
【０１２４】
関数置換部１００３は、インターネットブラウザのデータを獲得できるオリジナルの関数を新しく定義した新規関数に置換してもよい。ここで、関数置換部１００３は、オリジナルの関数をフック関数の新規関数に予め置換することによって、悪意のあるブラウザ機能拡張モジュールがオリジナルの関数を呼び出すことを防止することができる。関数置換部１００３について図１１および図１２を参照して具体的に説明する。
【０１２５】
呼出対象確認部１００４は、ブラウザ機能拡張モジュールを介して置換された新規関数が呼び出されると、新規関数を呼び出した対象を確認してもよい。すなわち、ブラウザ機能拡張モジュールがフック関数の新規関数を呼び出した場合、呼出対象確認部１００４は、新規関数を呼び出した対象であるブラウザ機能拡張モジュールがいかなるモジュールであるかを確認してもよい。
【０１２６】
一例として、呼出対象確認部１００４は、新規関数がリターンされるアドレスに位置したブラウザ機能拡張モジュールの情報を用いて新規関数を呼び出したブラウザ機能拡張モジュールを確認してもよい。
【０１２７】
呼出対象判断部１００５は、新規関数を呼び出した対象が安全であるか否かを判断してもよい。一例として、新規関数を呼び出したブラウザ機能拡張モジュールがインターネットブラウザに用いられる正常なブラウザ機能拡張モジュールのリストに存在する場合、呼出対象判断部１００５は前記ブラウザ機能拡張モジュールを安全なモジュールとして判断してもよい。
【０１２８】
不正行為遮断部１００２は、ブラウザ機能拡張モジュールによるアクセスが悪意のあるアクセスであると決定された場合、前記ブラウザ機能拡張モジュールによるアクセスを遮断してもよい。一例として、不正行為遮断部１００２は、新規関数を呼び出したブラウザ機能拡張モジュールが悪意のあるモジュールである場合、前記インターネットブラウザのデータを獲得できるオリジナルの関数の呼び出しを遮断してもよい。
【０１２９】
すなわち、不正行為遮断部１００２は、悪意のあるブラウザ機能拡張モジュールがインターネットブラウザに接続することを遮断して不正行為を防止したり、またはインターネットブラウザのデータを獲得することを遮断して不正行為を防止したりすることができる。
【０１３０】
図１１は、本発明の一実施形態において、文書または文書の構成要素を獲得するオリジナルの関数を置換する関数置換部を具体的に示す図である。
【０１３１】
図１１に示すように、関数置換部１００３は、アドレス情報獲得部１１０１、オリジナルの関数バックアップ部１１０２、新規関数宣言部１１０３、およびアドレス記録部１１０４を備えてもよい。
【０１３２】
アドレス情報獲得部１１０１は、インターネットブラウザのブラウザオブジェクトと関連する関数のアドレス情報を獲得してもよい。ここで、ブラウザオブジェクトは、予めビルドされたバイナリ形態のＣＯＭ（ｃｏｍｐｏｎｅｎｔ  ｏｂｊｅｃｔ  ｍｏｄｅｌ）ベースのオブジェクトを含んでもよい。一例として、アドレス情報獲得部１１０１は、インターネットブラウザのブラウザオブジェクトと関連する関数のアドレスが格納された仮想関数テーブルを獲得してもよい。
【０１３３】
ここで、ＣＯＭベースのオブジェクトは仮想関数テーブルを有してもよい。仮想関数テーブルは、ブラウザオブジェクトの関数に対するアドレスを格納してもよい。具体的に、仮想関数テーブルはオブジェクトで外部に提供する関数に対するアドレスが格納されてもよい。ここで、ＣＯＭベースのオブジェクトが提供する関数のアドレスは、一定の順に仮想関数テーブルに格納されてもよい。ＣＯＭベースのオブジェクトの関数を呼び出すために、ブラウザ機能拡張モジュールは、仮想関数テーブルを介して確認した該当関数のアドレスを用いて関数を呼び出してもよい。
【０１３４】
オリジナルの関数バックアップ部１１０２は、アドレス情報に基づいてオリジナルの関数の位置に対応するオリジナルの関数のアドレスを格納してバックアップしてもよい。一例として、オリジナルの関数バックアップ部１１０２は、仮想関数テーブルを用いて先取しようとするオリジナルの関数の位置に対応するオリジナルの関数のアドレスを格納してバックアップしてもよい。ここで、オリジナルの関数は、インターネットブラウザを介して表示される文書を獲得する関数または文書の特定の構成要素を獲得する関数のうちのいずれか１つであってもよい。
【０１３５】
新規関数宣言部１１０３は、オリジナルの関数と形式が同一の新規関数を宣言してもよい。ここで、新規関数はオリジナルの関数を先取するためのフック関数であってもよい。
【０１３６】
アドレス記録部１１０４は、宣言された新規関数のアドレスをオリジナルの関数の位置に記録してもよい。アドレス記録部１１０４は、仮想関数テーブルのオリジナルの関数の位置にフック関数のアドレスを記録することによって、ブラウザ機能拡張モジュールがオリジナルの関数を呼び出す場合、フック関数を呼び出すよう誘導してもよい。
【０１３７】
図１２は本発明の一実施形態において、ウィンドウメッセージを処理するオリジナルの関数を置換する関数置換部を具体的に示す図である。
【０１３８】
図１２に示すように、関数置換部１００３は、メインウィンドウ決定部１２０１、ビューウィンドウ決定部１２０２、およびオリジナルの関数置換部１２０３を備えてもよい。
【０１３９】
メインウィンドウ決定部１２０１は、インターネットブラウザにおけるメインウィンドウを決定してもよい。一例として、メインウィンドウ決定部１２０１は、インターネットブラウザのブラウザオブジェクトが提供する関数を用いてメインウィンドウを決定してもよい。ここで、ブラウザオブジェクトは、インターネットブラウザがブラウザ機能拡張モジュールをロードする際に、前記インターネットブラウザが前記ブラウザ機能拡張モジュールに提供するオブジェクトを意味する。
【０１４０】
ビューウィンドウ決定部１２０２は、メインウィンドウを基準にして前記インターネットブラウザにおけるビューウィンドウを決定してもよい。一例として、ビューウィンドウ決定部１２０２は、インターネットブラウザのバージョンに応じたウィンドウ構造を参照してビューウィンドウを決定してもよい。インターネットブラウザのウィンドウ構造はバージョン別に異なる形態を表すため、ビューウィンドウ決定部１２０２は、バージョンに応じたインターネットブラウザのウィンドウ構造を調査してもよい。ここで、ビューウィンドウは、インターネットブラウザで実際にページが見える位置のウィンドウを意味する。
【０１４１】
オリジナルの関数置換部１２０３は、インターネットブラウザに送信されたメッセージを処理するビューウィンドウのオリジナルのウィンドウプロシージャ関数を新規ウィンドウプロシージャ関数に置換してもよい。
【０１４２】
これによって、呼出対象確認部１００４は、ブラウザ機能拡張モジュールが送信したメッセージによって新規ウィンドウプロシージャ関数が呼び出されると、前記新規ウィンドウプロシージャ関数を呼び出したメッセージのメッセージ値を用いてメッセージを確認してもよい。
【０１４３】
呼出対象判断部１００５は、メッセージが前記インターネットブラウザの文書を獲得するためのブラウザオブジェクトのメッセージではない場合、前記新規関数を呼び出した対象であるメッセージが送信されていないと判断してもよい。
【０１４４】
不正行為判断部１００２は、新規関数を呼び出した対象となるメッセージが前記インターネットブラウザのデータを獲得するための悪意のあるメッセージである場合、前記メッセージがオリジナルの関数に送信されることを防止することができる。
【０１４５】
図１２に示すように、オリジナルの関数置換部１２０３は、関数変更確認部１２０４、関数バックアップ部１２０５、および関数アドレス変更部１２０６を備えてもよい。
【０１４６】
関数変更確認部１２０４は、ビューウィンドウのオリジナルのウィンドウプロシージャ関数が他のウィンドウプロシージャ関数に変更されたか否かを確認してもよい。
【０１４７】
一例として、関数変更確認部１２０４は、ビューウィンドウのオリジナルのウィンドウプロシージャ関数のアドレスを求める。そして、関数変更確認部１２０４は、該当のプロシージャ関数が位置したブラウザ機能拡張モジュールの経路を検索してもよい。ここで、関数変更確認部１２０４は、プロシージャ関数がいずれのモジュールに位置しているかをメモリを介して確認してもよい。
【０１４８】
関数変更確認部１２０４は、検索したブラウザ機能拡張モジュールの経路を基準にして、ブラウザ機能拡張モジュールを確認してもよい。ここで、確認したブラウザ機能拡張モジュールがインターネットブラウザと関連するモジュール（例えば、インターネットブラウザがインターネットエクスプローラである場合、ＩＥＦｒａｍｅ．ｄｌｌ、ｍｓｈｔｍｌ．ｄｌｌなどを含む）ではない場合、関数変更確認部１２０４は、他のブラウザ機能拡張モジュールによってビューウィンドウのオリジナルのウィンドウプロシージャ関数が変更されたと判断してもよい。
【０１４９】
関数バックアップ部１２０５は、オリジナルのウィンドウプロシージャ関数が変更されないと確認された場合、前記ビューウィンドウのオリジナルのウィンドウプロシージャ関数のアドレスを格納してバックアップしてもよい。すなわち、関数バックアップ部１２０５は、送信されたメッセージが文書を獲得するためのメッセージではない場合、オリジナルのウィンドウプロシージャ関数を呼び出すことができるようにビューウィンドウのオリジナルのウィンドウプロシージャ関数を格納してバックアップしてもよい。
【０１５０】
関数アドレス変更部１２０６は、オリジナルのウィンドウプロシージャ関数のアドレスを新規ウィンドウプロシージャ関数のアドレスに変更してもよい。すなわち、関数アドレス変更部１２０６は、オリジナルのウィンドウプロシージャ関数は新規ウィンドウプロシージャ関数に置換されることによって、悪意のあるメッセージを通じてオリジナルのウィンドウプロシージャが呼び出されることを防止することができる。
【０１５１】
図１３は、本発明の一実施形態において、接続ポイントを通じた不正行為を防止する不正行為判断部を具体的に示す図である。
【０１５２】
図１３に示すように、不正行為判断部１００１は、接続ポイント抽出部１３０１、モジュール確認部１３０２、およびモジュール判断部１３０３を備えてもよい。
【０１５３】
接続ポイント抽出部１３０１は、インターネットブラウザのブラウザオブジェクトによって前記インターネットブラウザのイベントと関連する少なくとも１つの接続ポイントを抽出してもよい。ここで、接続ポイントは、ブラウザ機能拡張モジュールがインターネットブラウザに接続されるポイントを意味する。
【０１５４】
一例として、接続ポイント抽出部１３０１は、コンテナ獲得部１３０４、リスト確認部１３０５、および接続ポイント検索部１３０６を備えてもよい。
【０１５５】
コンテナ獲得部１３０４は、ブラウザオブジェクトを用いて接続ポイントコンテナを獲得してもよい。接続ポイントコンテナはインターネットブラウザと関連する接続ポイントを含んでもよい。ここで、接続ポイントコンテナは接続ポイントを直接有さず、接続ポイントを有しているオブジェクトを含んでもよい。インターネットブラウザの接続ポイントそれぞれは他の情報とイベントを提供してもよい。
【０１５６】
リスト確認部１３０５は、接続ポイントコンテナに含まれた接続ポイントリストを確認してもよい。一例として、リスト確認部１３０５は、接続ポイントコンテナのオブジェクトが提供する関数を呼び出して接続ポイントオブジェクトを求めてもよい。そして、リスト確認部１３０５は、接続ポイントオブジェクトが提供する関数を呼び出して接続ポイントリストを確認してもよい。
【０１５７】
接続ポイント検索部１３０６は、インターネットブラウザのイベントと関連する接続ポイントＩＤを用いて接続ポイントリストからイベントと関連する接続ポイントを検索してもよい。ここで、接続ポイント検索部１３０６は、既知のインターネットブラウザのイベントと関連する接続ポイントＩＤを前記接続ポイントリストと比較して接続ポイントを検索してもよい。
【０１５８】
モジュール確認部１３０２は、前記抽出されたインターネットブラウザの接続ポイントそれぞれに接続されたブラウザ機能拡張モジュールを確認してもよい。一例として、モジュール確認部１３０２は、ブラウザ機能拡張モジュールのアドレスによって接続ポイントとブラウザ機能拡張モジュールとの間の経路を決定して接続ポイントと接続されたブラウザ機能拡張モジュールを確認してもよい。
【０１５９】
モジュール判断部１３０３は、確認されたブラウザ機能拡張モジュールが安全であるか否かを判断してもよい。一例として、モジュール判断部１３０３は、インターネットブラウザで用いられる正常なブラウザ機能拡張モジュールのリストを用いて前記ブラウザ機能拡張モジュールが安全であるか否かを判断してもよい。
【０１６０】
最終的に、不正行為遮断部１００２は、接続ポイントに接続されたブラウザ機能拡張モジュールが悪意のあるモジュールである場合、接続ポイントの接続順序値を参照してブラウザ機能拡張モジュールの接続を遮断してもよい。
【０１６１】
図１０〜図１３を参照した際に説明していない箇所については図１〜図９の説明を参照してもよい。
【０１６２】
また、本発明の一実施形態に係るブラウザベースの不正行為防止方法は、多様なコンピュータ手段を介して様々な処理を実行することができるプログラム命令の形態で実現され、コンピュータ読取可能な記録媒体に記録されてもよい。コンピュータ読取可能な媒体は、プログラム命令、データファイル、データ構造などの単独または組み合わせたものを含んでもよい。媒体に記録されるプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり使用可能なものであってもよい。コンピュータ読取可能な記録媒体の例としては、ハードディスク、フロッピー（登録商標）ディスク及び磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光記録媒体、光ディスクのような光磁気媒体、及びＲＯＭ、ＲＡＭ、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれてもよい。プログラム命令の例としては、コンパイラによって生成されるような機械語コード（ｍａｃｈｉｎｅ  ｃｏｄｅ）だけでなく、インタプリタなどを用いてコンピュータによって実行され得る高級言語コード（ｈｉｇｈｅｒ  ｌｅｖｅｌ  ｃｏｄｅ）を含む。上述したハードウェア装置は、本発明の動作を行うために１つ以上のソフトウェアのレイヤで動作するように構成されてもよい。
【０１６３】
上述したように本発明を限定された実施形態と図面によって説明したが、本発明は、上記の実施形態に限定されることなく、本発明が属する分野における通常の知識を有する者であれば、このような実施形態から多様な修正及び変形が可能である。
【０１６４】
したがって、本発明の範囲は、開示された実施形態に限定されて定められるものではなく、特許請求の範囲だけではなく特許請求の範囲と均等なものなどによって定められるものである。
【符号の説明】
【０１６５】
１０１      サーバ
１０２      クライアント
１０３      インターネットブラウザ
１０４−１、１０４−２、１０４−３      ブラウザ機能拡張モジュール（ＢＨＯ：Ｂｒｏｗｓｅｒ  Ｈｅｌｐｅｒ  Ｏｂｊｅｃｔ）
１０５      不正行為防止モジュール
【図１】
0005554338.tif 000002
【図２】
0005554338.tif 000003
【図３】
0005554338.tif 000004
【図４】
0005554338.tif 000005
【図５】
0005554338.tif 000006
【図６】
0005554338.tif 000007
【図７】
0005554338.tif 000008
【図８】
0005554338.tif 000009
【図９】
0005554338.tif 000010
【図１０】
0005554338.tif 000011
【図１１】
0005554338.tif 000012
【図１２】
0005554338.tif 000013
【図１３】
0005554338.tif 000014