(57)【特許請求の範囲】
【請求項１】
ネットワークに接続された管理サーバと、前記管理サーバに接続された端末と、を有する不正使用ソフトウェア検出システムにおいて、
前記管理サーバが、
或るソフトウェアに関連するファイルであって、アクティベーションの前後で変更される情報が格納されている領域を示すアクティベーション対象情報と、前記アクティベーション対象情報の領域内のアクティベーション前の値である初期データと、を少なくとも含むファイルである検出用パターンファイルを格納するアクティベーション情報格納領域と、
前記ネットワーク上に流出しているアクティベーション情報を取得し、当該アクティベーション情報に基づいて前記検出用パターンファイルを作成し、当該作成した検出用パターンファイルを前記アクティベーション情報格納領域に登録するアクティベーション情報登録手段と、を備え、
前記端末が、
前記管理サーバから前記検出用パターンファイルを取得し、当該端末自身に格納されている前記アクティベーション対象情報の内容が、前記取得した検出用パターンファイルに含まれている前記初期データと異なっているか否かを判別するアクティベーション判別手段と、
前記判別の結果、前記初期データと異なっていた場合は前記検出用パターンファイルに関連する前記或るソフトウェアについて不正使用の可能性があると判断し、当該端末を特定するための情報、当該或るソフトウェアを特定するための情報、及び、前記初期データと異なっていた前記アクティベーション対象情報の内容、を少なくとも含んだソフトウェア不正使用可能性情報を作成するアクティベーション登録手段と、
を備えることを特徴とする不正使用ソフトウェア検出システム。
【請求項２】
前記端末が備えている前記アクティベーション判別手段は、
当該端末自身に格納されている全てのファイルのファイル名を検索し、前記検出用パターンファイルに含まれているファイル名と一致するファイルが存在した場合、当該ファイルの形式に応じて、バイナリモード又はテキストモードで当該ファイルを開き、当該開いたファイルの前記アクティベーション対象情報の内容が、前記取得した検出用パターンファイルに含まれている前記初期データと異なっているか否かを判別することを特徴とする請求項１に記載の不正使用ソフトウェア検出システム。
【請求項３】
前記端末が備えている前記アクティベーション判別手段は、
当該端末自身に格納されている全てのレジストリキー名を検索し、前記検出用パターンファイルに含まれているレジストリキー名と一致するレジストリキーが存在した場合、当該レジストリキーの内容が、前記取得した検出用パターンファイルに含まれている前記初期データと異なっているか否かを判別することを特徴とする請求項１又は２に記載の不正使用ソフトウェア検出システム。
【請求項４】
前記管理サーバは、
前記アクティベーション登録手段が前記作成したソフトウェア不正使用可能性情報を格納するソフトウェア不正使用可能性情報格納領域と、
前記ソフトウェア不正使用可能性情報格納領域に格納されているソフトウェア不正使用可能性情報を外部に出力する出力手段と、
を更に備えていることを特徴とする請求項１乃至３の何れか１項に記載の不正使用ソフトウェア検出システム。
【請求項５】
ネットワークに接続された管理サーバに接続された不正使用ソフトウェア検出端末において、
前記管理サーバが前記ネットワーク上に流出しているアクティベーション情報に基づいて作成した、或るソフトウェアに関連するファイルであって、アクティベーションの前後で変更される情報が格納されている領域を示すアクティベーション対象情報と、前記アクティベーション対象情報の領域内のアクティベーション前の値である初期データと、を少なくとも含むファイルである検出用パターンファイルを取得し、当該端末自身に格納されている前記アクティベーション対象情報の内容が、前記取得した検出用パターンファイルに含まれている前記初期データと異なっているか否かを判別するアクティベーション判別手段と、
前記判別の結果、前記初期データと異なっていた場合は前記検出用パターンファイルに関連する前記或るソフトウェアについて不正使用の可能性があると判断し、当該端末を特定するための情報、当該或るソフトウェアを特定するための情報、及び、前記初期データと異なっていた前記アクティベーション対象情報の内容、を少なくとも含んだソフトウェア不正使用可能性情報を作成するアクティベーション登録手段と、
を備えることを特徴とする不正使用ソフトウェア検出端末。
【請求項６】
ネットワークに接続された管理サーバと、前記管理サーバに接続された端末と、を有する不正使用ソフトウェア検出方法において、
前記管理サーバが、或るソフトウェアに関連するファイルであって、アクティベーションの前後で変更される情報が格納されている領域を示すアクティベーション対象情報と、前記アクティベーション対象情報の領域内のアクティベーション前の値である初期データと、を少なくとも含むファイルである検出用パターンファイルを格納するアクティベーション情報格納領域を用意するステップと、
前記管理サーバが、前記ネットワーク上に流出しているアクティベーション情報を取得し、当該アクティベーション情報に基づいて前記検出用パターンファイルを作成し、当該作成した検出用パターンファイルを前記アクティベーション情報格納領域に登録するアクティベーション情報登録ステップと、
前記端末が、前記管理サーバから前記検出用パターンファイルを取得し、当該端末自身に格納されている前記アクティベーション対象情報の内容が、前記取得した検出用パターンファイルに含まれている前記初期データと異なっているか否かを判別するアクティベーション判別ステップと、
前記端末が、前記判別の結果、前記初期データと異なっていた場合は前記検出用パターンファイルに関連する前記或るソフトウェアについて不正使用の可能性があると判断し、当該端末を特定するための情報、当該或るソフトウェアを特定するための情報、及び、前記初期データと異なっていた前記アクティベーション対象情報の内容、を少なくとも含んだソフトウェア不正使用可能性情報を作成するアクティベーション登録ステップと、
を各々実行することを特徴とする不正使用ソフトウェア検出方法。
【請求項７】
前記端末が実行する前記アクティベーション判別ステップでは、
当該端末自身に格納されている全てのファイルのファイル名を検索し、前記検出用パターンファイルに含まれているファイル名と一致するファイルが存在した場合、当該ファイルの形式に応じて、バイナリモード又はテキストモードで当該ファイルを開き、当該開いたファイルの前記アクティベーション対象情報の内容が、前記取得した検出用パターンファイルに含まれている前記初期データと異なっているか否かを判別することを特徴とする請求項６に記載の不正使用ソフトウェア検出方法。
【請求項８】
前記端末が実行する前記アクティベーション判別ステップでは、
当該端末自身に格納されている全てのレジストリキー名を検索し、前記検出用パターンファイルに含まれているレジストリキー名と一致するレジストリキーが存在した場合、当該レジストリキーの内容が、前記取得した検出用パターンファイルに含まれている前記初期データと異なっているか否かを判別することを特徴とする請求項６又は７に記載の不正使用ソフトウェア検出方法。
【請求項９】
前記管理サーバが、前記アクティベーション登録ステップが前記作成したソフトウェア不正使用可能性情報を格納するソフトウェア不正使用可能性情報格納領域を用意するステップと、
前記管理サーバが、前記ソフトウェア不正使用可能性情報格納領域に格納されているソフトウェア不正使用可能性情報を外部に出力する出力ステップと、
を更に実行することを特徴とする請求項６乃至８の何れか１項に記載の不正使用ソフトウェア検出方法。
【請求項１０】
ネットワークに接続された管理サーバに接続された端末に組み込まれる不正使用ソフトウェア検出プログラムにおいて、
前記管理サーバが前記ネットワーク上に流出しているアクティベーション情報に基づいて作成した、或るソフトウェアに関連するファイルであって、アクティベーションの前後で変更される情報が格納されている領域を示すアクティベーション対象情報と、前記アクティベーション対象情報の領域内のアクティベーション前の値である初期データと、を少なくとも含むファイルである検出用パターンファイルを取得し、当該端末自身に格納されている前記アクティベーション対象情報の内容が、前記取得した検出用パターンファイルに含まれている前記初期データと異なっているか否かを判別するアクティベーション判別手段と、
前記判別の結果、前記初期データと異なっていた場合は前記検出用パターンファイルに関連する前記或るソフトウェアについて不正使用の可能性があると判断し、当該端末を特定するための情報、当該或るソフトウェアを特定するための情報、及び、前記初期データと異なっていた前記アクティベーション対象情報の内容、を少なくとも含んだソフトウェア不正使用可能性情報を作成するアクティベーション登録手段と、
を備える端末としてコンピュータを機能させることを特徴とする不正使用ソフトウェア検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は不正使用ソフトウェアの検出に関し、より詳細には、流出したアクティベーション情報の使用有無の判別に関する。
【背景技術】
【０００２】
一般的な技術では、コンピュータにインストールしている不正使用ソフトウェアを検出する場合、インストール済みソフトウェアを検出し、ソフトウェア名称を表示し、保有しているソフトウェアライセンスの情報と照合する。これにより検出したソフトウェアが不正使用されているか否か判断することが可能となる。
【０００３】
しかし、ソフトウェアには、シェアウェアのような不特定多数の種類が存在する。また、インストール後、一定の試用期間が認められているソフトウェアの場合、検出したソフトウェア名称と保有しているソフトウェアライセンスの情報と照合するだけでは不正使用の判断ができないという問題があった。
【０００４】
このような、不正使用ソフトウェアの検出に関する技術の一例が特許文献１に記載されている。
【０００５】
特許文献１では、ソフトウェアの著作権や使用許諾権を遵守、管理することを目的としたソフトウェアのインストール、使用判定を行う方法として、コンピュータの使用前、使用中、使用後の各時点において、実行形式ファイルを検出しファイル情報を取得し、判定に用いる方法が提案されている。この特許文献１に記載の方法ではユーザによるコンピュータの使用前と使用後の実行形式ファイルの有無の差異により新規インストールの有無を判定する。またログファイルの内容差異によりソフトウェアの使用、未使用を判定する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−２３５７７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述したように、特許文献１に記載の方法を用いることによりインストール有無差に基づいて判定をすることが可能となる。
【０００８】
しかしながら、インストール有無差のみでは有償ソフトウェアかどうかの判別が難しく、正確にソフトウェアの著作権や使用許諾権違反を判断することはできなかった。加えて実行形式ファイルのみの検知が対象であった。また、ソフトウェアの著作権や使用許諾権違反の観点からは検知する必要がない、無償ソフトウェアも検知してしまうという弊害もあった。更に、ログファイルの内容差異による使用判断でも、有償ソフトウェアの試用期間の判断ができない、ログを出力しないソフトウェアの検知ができない、逆に検知しなくてよい無償ソフトウェアも同様に検知するという弊害もあった。
【０００９】
そこで、本発明は、アクティベーションに関する情報に基づいて、より正確に不正使用ソフトウェアを検出することが可能な、不正使用ソフトウェア検出システム、不正使用ソフトウェア検出方法及び不正使用ソフトウェア検出プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の第１の観点によれば、ネットワークに接続された管理サーバと、前記管理サーバに接続された端末と、を有する不正使用ソフトウェア検出システムにおいて、前記管理サーバが、或るソフトウェアに関連するファイルであって、アクティベーションの前後で変更される情報が格納されている領域を示すアクティベーション対象情報と、前記アクティベーション対象情報の領域内のアクティベーション前の値である初期データと、を少なくとも含むファイルである検出用パターンファイルを格納するアクティベーション情報格納領域と、前記ネットワーク上に流出しているアクティベーション情報を取得し、当該アクティベーション情報に基づいて前記検出用パターンファイルを作成し、当該作成した検出用パターンファイルを前記アクティベーション情報格納領域に登録するアクティベーション情報登録手段と、を備え、前記端末が、前記管理サーバから前記検出用パターンファイルを取得し、当該端末自身に格納されている前記アクティベーション対象情報の内容が、前記取得した検出用パターンファイルに含まれている前記初期データと異なっているか否かを判別するアクティベーション判別手段と、前記判別の結果、前記初期データと異なっていた場合は前記検出用パターンファイルに関連する前記或るソフトウェアについて不正使用の可能性があると判断し、当該端末を特定するための情報、当該或るソフトウェアを特定するための情報、及び、前記初期データと異なっていた前記アクティベーション対象情報の内容、を少なくとも含んだソフトウェア不正使用可能性情報を作成するアクティベーション登録手段と、を備えることを特徴とする不正使用ソフトウェア検出システム  が提供される。
【００１１】
本発明の第２の観点によれば、ネットワークに接続された管理サーバに接続された不正使用ソフトウェア検出端末において、前記管理サーバが前記ネットワーク上に流出しているアクティベーション情報に基づいて作成した、或るソフトウェアに関連するファイルであって、アクティベーションの前後で変更される情報が格納されている領域を示すアクティベーション対象情報と、前記アクティベーション対象情報の領域内のアクティベーション前の値である初期データと、を少なくとも含むファイルである検出用パターンファイルを取得し、当該端末自身に格納されている前記アクティベーション対象情報の内容が、前記取得した検出用パターンファイルに含まれている前記初期データと異なっているか否かを判別するアクティベーション判別手段と、前記判別の結果、前記初期データと異なっていた場合は前記検出用パターンファイルに関連する前記或るソフトウェアについて不正使用の可能性があると判断し、当該端末を特定するための情報、当該或るソフトウェアを特定するための情報、及び、前記初期データと異なっていた前記アクティベーション対象情報の内容、を少なくとも含んだソフトウェア不正使用可能性情報を作成するアクティベーション登録手段と、を備えることを特徴とする不正使用ソフトウェア検出端末が提供される。
【００１２】
本発明の第３の観点によれば、ネットワークに接続された管理サーバと、前記管理サーバに接続された端末と、を有する不正使用ソフトウェア検出方法において、前記管理サーバが、或るソフトウェアに関連するファイルであって、アクティベーションの前後で変更される情報が格納されている領域を示すアクティベーション対象情報と、前記アクティベーション対象情報の領域内のアクティベーション前の値である初期データと、を少なくとも含むファイルである検出用パターンファイルを格納するアクティベーション情報格納領域を用意するステップと、前記管理サーバが、前記ネットワーク上に流出しているアクティベーション情報を取得し、当該アクティベーション情報に基づいて前記検出用パターンファイルを作成し、当該作成した検出用パターンファイルを前記アクティベーション情報格納領域に登録するアクティベーション情報登録ステップと、前記端末が、前記管理サーバから前記検出用パターンファイルを取得し、当該端末自身に格納されている前記アクティベーション対象情報の内容が、前記取得した検出用パターンファイルに含まれている前記初期データと異なっているか否かを判別するアクティベーション判別ステップと、前記端末が、前記判別の結果、前記初期データと異なっていた場合は前記検出用パターンファイルに関連する前記或るソフトウェアについて不正使用の可能性があると判断し、当該端末を特定するための情報、当該或るソフトウェアを特定するための情報、及び、前記初期データと異なっていた前記アクティベーション対象情報の内容、を少なくとも含んだソフトウェア不正使用可能性情報を作成するアクティベーション登録ステップと、を各々実行することを特徴とする不正使用ソフトウェア検出方法が提供される。
【００１３】
本発明の第４の観点によれば、ネットワークに接続された管理サーバに接続された端末に組み込まれる不正使用ソフトウェア検出プログラムにおいて、前記管理サーバが前記ネットワーク上に流出しているアクティベーション情報に基づいて作成した、或るソフトウェアに関連するファイルであって、アクティベーションの前後で変更される情報が格納されている領域を示すアクティベーション対象情報と、前記アクティベーション対象情報の領域内のアクティベーション前の値である初期データと、を少なくとも含むファイルである検出用パターンファイルを取得し、当該端末自身に格納されている前記アクティベーション対象情報の内容が、前記取得した検出用パターンファイルに含まれている前記初期データと異なっているか否かを判別するアクティベーション判別手段と、前記判別の結果、前記初期データと異なっていた場合は前記検出用パターンファイルに関連する前記或るソフトウェアについて不正使用の可能性があると判断し、当該端末を特定するための情報、当該或るソフトウェアを特定するための情報、及び、前記初期データと異なっていた前記アクティベーション対象情報の内容、を少なくとも含んだソフトウェア不正使用可能性情報を作成するアクティベーション登録手段と、を備える端末が提供される。
【発明の効果】
【００１４】
本発明によれば、流出しているアクティべーション情報と、コンピュータに格納されているアクティベーション情報を照合することから、アクティベーションに関する情報に基づいて、より正確に不正使用ソフトウェアを検出することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態の基本的構成を表す図である。
【図２】本発明の実施形態におけるアクティベーション情報登録部の基本的動作について示すフローチャートである。
【図３】本発明の実施形態におけるソフトウェアアクティベーション情報の具体例を示す図である。
【図４】本発明の実施形態におけるバイナリアクティベーション情報の具体例を示す図である。
【図５】本発明の実施形態におけるテキストアクティベーション情報の具体例を示す図である。
【図６】本発明の実施形態におけるレジストリアクティベーション情報の具体例を示す図である。
【図７】本発明の実施形態におけるアクティベーション判別／登録部の基本的動作について示すフローチャート（１／４）である。
【図８】本発明の実施形態におけるアクティベーション判別／登録部の基本的動作について示すフローチャート（２／４）である。
【図９】本発明の実施形態におけるアクティベーション判別／登録部の基本的動作について示すフローチャート（３／４）である。
【図１０】本発明の実施形態におけるアクティベーション判別／登録部の基本的動作について示すフローチャート（４／４）である。
【図１１】本発明の実施形態におけるソフトウェア不正使用可能性情報の具体例を示す図である。
【発明を実施するための形態】
【００１６】
まず、本発明の実施形態の概略を説明する。本発明の実施形態は、概略、不正使用ソフトウェア検出において、コンピュータにインストールしている不正使用ソフトウェアを検出する場合に、流出したアクティベーション情報の使用有無を判別する機構を使用することにより、不正使用の可能性のあるソフトウェアを使用しているコンピュータの検出ができるというものである。
【００１７】
次に、本発明の実施形態について図面を用いて詳細に説明する。
【００１８】
図１は、本発明の実施形態である不正使用ソフトウェア検出システムの構成例を示すブロック図である。図１を参照すると本実施形態は、クライアント端末１００、管理サーバ２００及びインターネットサーバ３００を有している。また、クライアント端末１００と、管理サーバ２００はネットワーク４００を介して接続されている。更に、管理サーバ２００と、インターネットサーバ３００はインターネット５００を介して接続されている。なお、ネットワーク４００は具体的にどのような接続方式に準拠したネットワークであってもよい。例えば、ＬＡＮ（Local Area Network）により実現されてもよいし、公衆回線網を利用した通信により実現されてもよい。また、インターネット５００も、インターネット以外のネットワークにより実現されてもよい。加えて、ネットワーク４００及びインターネット５００は有線接続により実現されてもよいが、その一部又は全部が無線接続により実現されてもよい。
【００１９】
クライアント端末１００は、ユーザにより使用されるコンピュータである。クライアント端末１００はどのような機器により実現されてもよく、例えばＰＣ（Personal computer）により実現される。また、クライアント端末１００は、アクティベーション判別／登録部１０１、バイナリアクティベーション情報格納領域１０２、テキストアクティベーション情報格納領域１０３、レジストリアクティベーション情報格納領域１０４及びファイル／レジストリ情報格納領域１０５を有する。
【００２０】
アクティベーション判別／登録部１０１は、クライアント端末１００が有する各領域から情報を読み込み、判別を行う。具体的には調査対象コンピュータであるクライアント端末１００の全ファイル、全レジストリ情報と、各アクティベーション情報格納領域に格納されているファイル名／レジストリキーが一致するか判定を行う。一致した場合、アクティベーション対象アドレス／ファイル項目、レジストリキーの内容がアクティベーション前初期情報と異なっているか判別する。異なっていた場合は、アクティベーション実施の可能性ありと判断し、サーバのソフトウェア不正使用可能性情報格納領域２０５にコンピュータ名、コンピュータＩＰアドレス、アクティベーション識別（バイナリ、テキスト、レジストリ）、ソフトウェア名称、ソフトウェアバージョン、ソフトウェアファイル名／レジストリキー、アクティベーション対象情報、アクティベーション前初期データ、アクティベーション領域検出データ（差異検出情報）を格納する。
【００２１】
バイナリアクティベーション情報格納領域１０２、テキストアクティベーション情報格納領域１０３及びレジストリアクティベーション情報格納領域１０４は管理サーバ２００より送られてきた検出用パターンファイルを格納するための領域である。
【００２２】
また、ファイル／レジストリ情報格納領域１０５は、クライアント端末１００の全ファイル情報／全レジストリ情報を格納するための領域である。
【００２３】
管理サーバ２００は、クライアント端末１００の管理者により用いられるサーバである。管理サーバ２００は、アクティベーション情報登録部２０１、バイナリアクティベーション情報格納領域２０２、テキストアクティベーション情報格納領域２０３、レジストリアクティベーション情報格納領域２０４、ソフトウェア不正使用可能性情報格納領域２０５及び出力部２０６を有する。
【００２４】
アクティベーション情報登録部２０１は、インターネットサーバ３００により実現されるインターネット上のソフトウェアアクティベーション情報掲載Ｗｅｂサイトのソフトウェアアクティベーション情報を元に検出用パターンファイルを作成する。具体的にはアクティベーション後データを除く情報を、バイナリ情報、テキスト情報、レジストリ情報毎に分別することにより検出用パターンファイルを作成する。また、アクティベーション情報登録部２０１は、作成した検出用パターンファイルの複製を、クライアント端末１００に送付する。なお、上記のソフトウェアアクティベーション情報掲載Ｗｅｂサイトのソフトウェアアクティベーション情報は、不正に流出してしまっているソフトウェアアクティベーション情報であるものとする。
【００２５】
バイナリアクティベーション情報格納領域２０２、テキストアクティベーション情報格納領域２０３及びレジストリアクティベーション情報格納領域２０４はアクティベーション情報登録部２０１が作成した検出用パターンファイルを格納するための領域である。
【００２６】
また、ソフトウェア不正使用可能性情報格納領域２０５は、アクティベーション判別／登録部１０１の判別結果を格納するための領域である。
【００２７】
出力部２０６は、アクティベーション判別／登録部１０１の判別結果を管理者に提示する。具体的にはディスプレイに表示する、又は紙媒体に印刷する、等することにより提示をする。管理者は出力された情報を不正使用の調査に利用することができる。
【００２８】
インターネットサーバ３００は、Ｗｅｂサイトの管理者が用いるサーバである。インターネットサーバ３００は、インターネット上のソフトウェアアクティベーション情報掲載Ｗｅｂサイトを実現する。また、インターネットサーバ３００は、ソフトウェアアクティベーション情報を格納するための領域であるソフトウェアアクティベーション情報格納領域３０１を有している。ここで、ソフトウェアアクティベーション情報とは、ソフトウェア（有償のもの）を使用可能にするための情報である。アクティベーション用情報としては例えば、アクティベーション識別（バイナリ、テキスト、レジストリといった区別をする）ソフトウェア名、ソフトウェアバージョン、ソフトウェアファイル名（アクティベーション格納ファイル名／レジストリキー）、アクティベーション対象情報（バイナリアドレス、ファイル項目、レジストリキー）、アクティベーション前初期データ、アクティベーション後データといった情報を用いる。
【００２９】
なお、上述した各領域はクライアント端末１００、管理サーバ２００及びインターネットサーバ３００がそれぞれ有する記憶装置により実現される。この記憶装置は、例えばＨＤＤ（Hard disk drive）やＦｌａｓｈ  ＳＳＤ（Solid State Drive）により実現される。また、クライアント端末１００及び管理サーバ２００がそれぞれ有する記憶装置には、予め管理者により検出プログラムがインストールされている。そして、これらの検出プログラムを、クライアント端末１００及び管理サーバ２００が有する中央演算処理装置（ＣＰＵ：Central Processing Unit）が読み込み演算処理を行うことにより、アクティベーション判別／登録部１０１及びアクティベーション情報登録部２０１は実現される。
【００３０】
次に、本実施形態の動作について説明する。図２及び図７乃至図１０は、本実施形態のデータ処理を示すフローチャートである。また、図３乃至図６及び図１１は、各種情報を蓄積しておくテーブルの構成の具体例を表したものである。これらの図を参照して本実施形態の判断条件、項目内容を説明する。
【００３１】
図２は、アクティベーション情報登録部２０１の動作を説明するフローチャートである。なお、図２に示す動作を説明するにあたり図１、図３乃至図５を参照する。
【００３２】
まず、アクティベーション情報登録部２０１は、インターネット５００を介してソフトウェアアクティベーション情報格納領域３０１からソフトウェアアクティベーション情報を読み出す（ステップＳ１１）。ソフトウェアアクティベーション情報には、図３に示すアクティベーション識別６０１〜アクティベーション後初期データ６０７が含まれている。
【００３３】
アクティベーションの識別情報がバイナリであれば（ステップＳ１２においてＹｅｓ）、バイナリアクティベーション情報書き出しを行う（ステップＳ１３）。具体的には、図４に示すソフトウェア名７０１〜アクティベーション前初期データ７０５までの情報をバイナリアクティベーション情報格納領域２０２に書き出す。
【００３４】
一方（ステップＳ１２においてＮｏ）、アクティベーションの識別情報がテキストであれば（ステップＳ１４においてＹｅｓ）、テキストアクティベーション情報書き出しを行う（ステップＳ１５）。具体的には、図５に示すソフトウェア名８０１〜アクティベーション前初期データ８０５までの情報をテキストアクティベーション情報格納領域２０３に書き出す。
【００３５】
他方、（ステップＳ１４においてＮｏ）、アクティベーションの識別情報がレジストリであれば（ステップＳ１６においてＹｅｓ）、レジストリアクティベーション情報書き出しを行う（ステップＳ１７）。具体的には、図６に示すソフトウェア名９０１〜アクティベーション前初期データ９０５までの情報をレジストリアクティベーション情報格納領域２０４に書き出す。
【００３６】
その後、インターネットを介してソフトウェアアクティベーション情報格納領域３０１から全てのソフトウェアアクティベーション情報を読み出すまで動作を継続する（ステップＳ１８においてＮｏ）。そして、全てのデータを読み終えると動作を終了する（ステップＳ１８においてＹｅｓ）。
【００３７】
図３は、ソフトウェアアクティベーション情報６００の具体例を示す図である。ソフトウェアアクティベーション情報６００は、ソフトウェアアクティベーション情報格納領域３０１に格納される。また、ソフトウェアアクティベーション情報６００は、インターネット上に存在するソフトウェア（有償）のアクティベーション情報を登録しているテーブルである。
【００３８】
ソフトウェアアクティベーション情報６００は、アクティベーション識別６０１、ソフトウェア名６０２、ソフトウェアバージョン６０３、ソフトウェアファイル名／レジストリキー名６０４、アクティベーション対象情報６０５、アクティベーション前初期データ６０６、アクティベーション後初期データ６０７を有する。
【００３９】
アクティベーション識別６０１は、アクティベーション情報の形式がバイナリ、テキスト、レジストリの何れであるかを識別するための情報である。ソフトウェア名６０２及び
ソフトウェアバージョン６０３はそれぞれ、ソフトウェアの名称とそのバージョンを示す。
【００４０】
ソフトウェアファイル名／レジストリキー名６０４は、ソフトウェアの具体的なファイル名若しくはレジストリキー名である。
【００４１】
アクティベーション対象情報６０５は、バイナリでは書き換え対象の１６進アドレス、テキストではファイル内の項目名、レジストリではレジストリキーの項目名、により表現される。アクティベーション前初期データ６０６は、アクティベーションされる前の値である。また、アクティベーション後初期データ６０７は、ソフトウェアがアクティベーション登録（無期限使用可等の状態）された状態の値である。
【００４２】
図４は、バイナリアクティベーション情報７００の具体例を示す図である。バイナリアクティベーション情報７００は、バイナリアクティベーション情報格納領域１０２及びバイナリアクティベーション情報格納領域２０２に格納される。また、バイナリアクティベーション情報７００は、ソフトウェアアクティベーション情報６００からバイナリアクティベーションに関する情報を抽出したテーブルである。バイナリアクティベーション情報７００は、ソフトウェア名７０１、ソフトウェアバージョン７０２、ソフトウェアファイル名７０３、アクティベーション対象情報７０４、アクティベーション前初期データ７０５を有する。
【００４３】
図５は、テキストアクティベーション情報８００の具体例を示す図である。テキストアクティベーション情報８００は、テキストアクティベーション情報格納領域１０３及びテキストアクティベーション情報格納領域２０３に格納される。また、テキストアクティベーション情報８００は、ソフトウェアアクティベーション情報６００からテキストアクティベーションに関する情報を抽出したテーブルである。テキストアクティベーション情報８００は、ソフトウェア名８０１、ソフトウェアバージョン８０２、ソフトウェアファイル名８０３、アクティベーション対象情報８０４、アクティベーション前初期データ８０５を有する。
【００４４】
図６は、レジストリアクティベーション情報９００の具体例を示す図である。レジストリアクティベーション情報９００は、レジストリアクティベーション情報格納領域１０４及びレジストリアクティベーション情報格納領域２０４に格納される。また、レジストリアクティベーション情報９００は、ソフトウェアアクティベーション情報６００からレジストリアクティベーションに関する情報を抽出したテーブルである。レジストリアクティベーション情報９００は、ソフトウェア名９０１、ソフトウェアバージョン９０２、レジストリキー名９０３、アクティベーション対象情報９０４、アクティベーション前初期データ９０５を有する。
【００４５】
図７は、アクティベーション判別／登録部１０１の動作全体を示すフローチャートである。アクティベーション判別／登録部１０１の動作は３つの処理に大きく分類できる。具体的には、バイナリアクティベーション情報照合処理（ステップＳ２１：詳細は図８に示す）、テキストアクティベーション情報照合処理（ステップＳ２２：詳細は図９に示す）、レジストリアクティベーション情報照合処理（ステップＳ２３：詳細は図１０に示す）の３つである。続いて図８乃至図１０を参照して各ステップの詳細について説明する。
【００４６】
図８は、図７中のバイナリアクティベーション情報照合処理（ステップＳ２１）の動作をフローチャートに基づいて説明している。
【００４７】
アクティベーション判別／登録部１０１は、ファイル／レジストリ情報格納領域１０５からファイル情報としてファイル名を読み出す（ステップＳ２１−１）。
【００４８】
ソフトウェアファイル名が図４のソフトウェアファイル名７０３（ＳＯＦＴ−Ａ．ＥＸＥ、ＳＯＦＴ−Ｂ．ＤＬＬ）と一致しているか照合する（ステップＳ２１−２）。一致した場合は（ステップＳ２１−２においてＹｅｓ）、バイナリモードでファイルを開き（ステップＳ２１−３）、図４のアクティベーション対象情報７０４（１６進の１９３Ｆ、６ＢＢ６）の領域の内容を図４のアクティベーション前初期データ７０５（００、００）と照合する（ステップＳ２１−４）。異なっていた場合は（ステップＳ２１−４においてＹｅｓ）、不正アクティベーションの可能性ありとみなし、ソフトウェア不正使用可能性情報格納領域２０５に図１１の検出コンピュータ名１００１〜アクティベーション領域検出データ１００９までの情報を書き込む（ステップＳ２１−５）。
【００４９】
その後、コンピュータ上の全てのファイル情報を読み出すまで動作を継続する（ステップＳ２１−２においてＮｏ、ステップＳ２１−４においてＮｏ、ステップＳ２１−６においてＮｏ）。そして、全てのファイル情報を読み終えると動作を終了する（ステップＳ２１−６においてＹｅｓ）。
【００５０】
図９は、図７中のテキストアクティベーション情報照合処理（ステップＳ２２）の動作をフローチャートに基づいて説明している。
【００５１】
アクティベーション判別／登録部１０１は、ファイル／レジストリ情報格納領域１０５からファイル情報としてファイル名を読み出す（ステップＳ２２−１）。
【００５２】
ファイル名が図５のソフトウェアファイル名８０１（ＳＯＦＴ−Ｃ．ＩＮＩ）と一致しているか照合する（ステップＳ２２−２）。一致した場合は（ステップＳ２２−２においてＹｅｓ）、テキストモードでファイルを開き（ステップＳ２２−３）、図５のアクティベーション対象情報８０４（項目名Ｌｉｃｅｎｓｅｋｅｙ）の領域の内容を図５のアクティベーション前初期データ８０５（０００００−０００００）と照合する（ステップＳ２２−４）。異なっていた場合は（ステップＳ２２−４においてＹｅｓ）、不正アクティベーションの可能性ありとみなし、ソフトウェア不正使用可能性情報格納領域２０５に図１１の検出コンピュータ名１００１〜アクティベーション領域検出データ１００９までの情報を書き込む（ステップＳ２２−５）。
【００５３】
その後、コンピュータ上の全てのファイル情報を読み出すまで動作を継続する（ステップＳ２２−２においてＮｏ、ステップＳ２２−４においてＮｏ、ステップＳ２２−６においてＮｏ）。そして、全てのファイル情報を読み終えると動作を終了する（ステップＳ２２−６においてＹｅｓ）。
【００５４】
図１０は、図７中のレジストリアクティベーション情報照合処理（ステップＳ２３）の動作をフローチャートに基づいて説明している。
【００５５】
アクティベーション判別／登録部１０１は、ファイル／レジストリ情報格納領域１０５からレジストリ情報を読み出す（ステップＳ２３−１）。
【００５６】
レジストリキー名が図６のレジストリキー名９０３（ＨＫＥＹ＿ＬＯＣＡＬ＿ＭＡＣＨＩＮＥ￥ＳＯＦＴＷＡＲＥ￥ＳＯＦＴ−Ｄ￥１．０．０￥ＫＥＹ）と一致しているか照合する（ステップＳ２３−２）。一致した場合は（ステップＳ２３−２においてＹｅｓ）、図６のアクティベーション対象情報９０４（項目名ＲＥＧ＿ＤＷＡＲＤ）の領域の内容を図６のアクティベーション前初期データ９０５（００００００００）と照合する（ステップＳ２３−３）。異なっていた場合は不正アクティベーションの可能性ありとみなし、ソフトウェア不正使用可能性情報格納領域２０５に図１１の検出コンピュータ名１００１〜アクティベーション領域検出データ１００９までの情報を書き込む（ステップＳ２３−４）。
【００５７】
その後、コンピュータ上の全てのファイル情報を読み出すまで動作を継続する（ステップＳ２３−２においてＮｏ、ステップＳ２３−５においてＮｏ）。そして、全てのファイル情報を読み終えると動作を終了する（ステップＳ２３−５においてＹｅｓ）。
【００５８】
図１１は、ソフトウェア不正使用可能性情報１０００の具体例を示す図である。ソフトウェア不正使用可能性情報１０００は、ソフトウェア不正使用可能性情報格納領域２０５
に格納される。また、ソフトウェア不正使用可能性情報１０００は、ソフトウェア不正アクティベーションを実施した可能性のあるコンピュータ情報を抽出したテーブルである。ソフトウェア不正使用可能性情報１０００は、検出コンピュータ名１００１、ＩＰアドレス１００２、アクティベーション識別１００３、ソフトウェア名１００４、ソフトウェアバージョン１００５、ソフトウェアファイル名／レジストリキー名１００６、アクティベーション対象情報１００７、アクティベーション前初期データ１００８、アクティベーション領域検出データ１００９を有する。なお、本実施形態においては、検出コンピュータ名１００１における「ｃｏｍｐｕｔｅｒ  Ａ」は、クライアント端末１００に相当する。
【００５９】
また、ソフトウェア不正使用可能性情報１０００は出力部２０６から出力される。
【００６０】
管理者は出力部２０６から出力された情報を不正使用の調査に利用することができる。そして、検出したソフトウェアを購入していない場合は、管理者が検出したコンピュータ利用者に確認し対応することでソフトウェアの不正使用を防ぐことができる。
【００６１】
上述の実施形態では、バイナリアクティベーション、テキストアクティベーション、レジストリアクティベーションを例に取って説明をした。もっとも、本実施形態で取得するインターネット上のソフトウェアアクティベーション情報格納領域３０１の情報を継続的に収集すれば、実施例に記載したバイナリアクティベーション、テキストアクティベーション、レジストリアクティベーション以外の別のアクティベーション手法となった場合でも検出プログラムを修正することにより容易に対応可能である。
【００６２】
また、上述の実施形態では、保有ライセンスソフトウェア以外の不特定多数の不正アクティベーションを実行（ライセンス未購入）している不正使用の可能性があるソフトウェアが検出できる。これにより、ライセンス違反に伴う訴訟等莫大な損害を受けるリスクを管理者が未然に把握し、対応することで最小限にとどめることができる。
【００６３】
更に、上記実施形態では、検出プログラムが、記憶装置に予め記憶されているものとして説明した。しかし、装置の全部又は一部として動作させ、あるいは、上述の処理を実行させるためのプログラムを、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read-Only Memory）、ＤＶＤ（Digital Versatile Disc)、ＭＯ（Magneto Optical Disk(Disc)）ＢＤ（Blu-ray Disc）等のコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。
【００６４】
さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波にプログラムを重畳させて、コンピュータにダウンロード等してプログラムを実行してもよい。
【００６５】
なお、本発明の実施形態である、クライアント端末１００、管理サーバ２００及びインターネットサーバ３００は、ハードウェアにより実現することもできるが、コンピュータをそのクライアント端末１００、管理サーバ２００及びインターネットサーバ３００として機能させるためのプログラムをコンピュータがコンピュータ読み取り可能な記録媒体から読み込んで実行することによっても実現することができる。
【００６６】
また、本発明の実施形態による不正使用ソフトウェア検出方法は、ハードウェアにより実現することもできるが、コンピュータにその方法を実行させるためのプログラムをコンピュータがコンピュータ読み取り可能な記録媒体から読み込んで実行することによっても実現することができる。
【００６７】
また、上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【００６８】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００６９】
（付記１）  ネットワークに接続された管理サーバと、前記管理サーバに接続された端末と、を有する不正使用ソフトウェア検出システムにおいて、
前記管理サーバが、
或るソフトウェアに関連するファイルであって、アクティベーションの前後で変更される情報が格納されている領域を示すアクティベーション対象情報と、前記アクティベーション対象情報の領域内のアクティベーション前の値である初期データと、を少なくとも含むファイルである検出用パターンファイルを格納するアクティベーション情報格納領域と、
前記ネットワーク上に流出しているアクティベーション情報を取得し、当該アクティベーション情報に基づいて前記検出用パターンファイルを作成し、当該作成した検出用パターンファイルを前記アクティベーション情報格納領域に登録するアクティベーション情報登録手段と、を備え、
前記端末が、
前記管理サーバから前記検出用パターンファイルを取得し、当該端末自身に格納されている前記アクティベーション対象情報の内容が、前記取得した検出用パターンファイルに含まれている前記初期データと異なっているか否かを判別するアクティベーション判別手段と、
前記判別の結果、前記初期データと異なっていた場合は前記検出用パターンファイルに関連する前記或るソフトウェアについて不正使用の可能性があると判断し、当該端末を特定するための情報、当該或るソフトウェアを特定するための情報、及び、前記初期データと異なっていた前記アクティベーション対象情報の内容、を少なくとも含んだソフトウェア不正使用可能性情報を作成するアクティベーション登録手段と、
を備えることを特徴とする不正使用ソフトウェア検出システム。
【００７０】
（付記２）  前記端末が備えている前記アクティベーション判別手段は、
当該端末自身に格納されている全てのファイルのファイル名を検索し、前記検出用パターンファイルに含まれているファイル名と一致するファイルが存在した場合、当該ファイルの形式に応じて、バイナリモード又はテキストモードで当該ファイルを開き、当該開いたファイルの前記アクティベーション対象情報の内容が、前記取得した検出用パターンファイルに含まれている前記初期データと異なっているか否かを判別することを特徴とする付記１に記載の不正使用ソフトウェア検出システム。
【００７１】
（付記３）  前記端末が備えている前記アクティベーション判別手段は、
当該端末自身に格納されている全てのレジストリキー名を検索し、前記検出用パターンファイルに含まれているレジストリキー名と一致するレジストリキーが存在した場合、当該レジストリキーの内容が、前記取得した検出用パターンファイルに含まれている前記初期データと異なっているか否かを判別することを特徴とする付記１又は２に記載の不正使用ソフトウェア検出システム。
【００７２】
（付記４）  前記管理サーバは、
前記アクティベーション登録手段が前記作成したソフトウェア不正使用可能性情報を格納するソフトウェア不正使用可能性情報格納領域と、
前記ソフトウェア不正使用可能性情報格納領域に格納されているソフトウェア不正使用可能性情報を外部に出力する出力手段と、
を更に備えていることを特徴とする付記１乃至３の何れか１に記載の不正使用ソフトウェア検出システム。
【００７３】
（付記５）  ネットワークに接続された管理サーバに接続された不正使用ソフトウェア検出端末において、
前記管理サーバが前記ネットワーク上に流出しているアクティベーション情報に基づいて作成した、或るソフトウェアに関連するファイルであって、アクティベーションの前後で変更される情報が格納されている領域を示すアクティベーション対象情報と、前記アクティベーション対象情報の領域内のアクティベーション前の値である初期データと、を少なくとも含むファイルである検出用パターンファイルを取得し、当該端末自身に格納されている前記アクティベーション対象情報の内容が、前記取得した検出用パターンファイルに含まれている前記初期データと異なっているか否かを判別するアクティベーション判別手段と、
前記判別の結果、前記初期データと異なっていた場合は前記検出用パターンファイルに関連する前記或るソフトウェアについて不正使用の可能性があると判断し、当該端末を特定するための情報、当該或るソフトウェアを特定するための情報、及び、前記初期データと異なっていた前記アクティベーション対象情報の内容、を少なくとも含んだソフトウェア不正使用可能性情報を作成するアクティベーション登録手段と、
を備えることを特徴とする不正使用ソフトウェア検出端末。
【００７４】
（付記６）  ネットワークに接続された管理サーバと、前記管理サーバに接続された端末と、を有する不正使用ソフトウェア検出方法において、
前記管理サーバが、或るソフトウェアに関連するファイルであって、アクティベーションの前後で変更される情報が格納されている領域を示すアクティベーション対象情報と、前記アクティベーション対象情報の領域内のアクティベーション前の値である初期データと、を少なくとも含むファイルである検出用パターンファイルを格納するアクティベーション情報格納領域を用意するステップと、
前記管理サーバが、前記ネットワーク上に流出しているアクティベーション情報を取得し、当該アクティベーション情報に基づいて前記検出用パターンファイルを作成し、当該作成した検出用パターンファイルを前記アクティベーション情報格納領域に登録するアクティベーション情報登録ステップと、
前記端末が、前記管理サーバから前記検出用パターンファイルを取得し、当該端末自身に格納されている前記アクティベーション対象情報の内容が、前記取得した検出用パターンファイルに含まれている前記初期データと異なっているか否かを判別するアクティベーション判別ステップと、
前記端末が、前記判別の結果、前記初期データと異なっていた場合は前記検出用パターンファイルに関連する前記或るソフトウェアについて不正使用の可能性があると判断し、当該端末を特定するための情報、当該或るソフトウェアを特定するための情報、及び、前記初期データと異なっていた前記アクティベーション対象情報の内容、を少なくとも含んだソフトウェア不正使用可能性情報を作成するアクティベーション登録ステップと、
を備えることを特徴とする不正使用ソフトウェア検出方法。
【００７５】
（付記７）  前記端末が備えている前記アクティベーション判別ステップは、
当該端末自身に格納されている全てのファイルのファイル名を検索し、前記検出用パターンファイルに含まれているファイル名と一致するファイルが存在した場合、当該ファイルの形式に応じて、バイナリモード又はテキストモードで当該ファイルを開き、当該開いたファイルの前記アクティベーション対象情報の内容が、前記取得した検出用パターンファイルに含まれている前記初期データと異なっているか否かを判別することを特徴とする付記６に記載の不正使用ソフトウェア検出方法。
【００７６】
（付記８）  前記端末が備えている前記アクティベーション判別ステップは、
当該端末自身に格納されている全てのレジストリキー名を検索し、前記検出用パターンファイルに含まれているレジストリキー名と一致するレジストリキーが存在した場合、当該レジストリキーの内容が、前記取得した検出用パターンファイルに含まれている前記初期データと異なっているか否かを判別することを特徴とする付記６又は７に記載の不正使用ソフトウェア検出方法。
【００７７】
（付記９）  前記管理サーバが、前記アクティベーション登録ステップが前記作成したソフトウェア不正使用可能性情報を格納するソフトウェア不正使用可能性情報格納領域を用意するステップと、
前記管理サーバが、前記ソフトウェア不正使用可能性情報格納領域に格納されているソフトウェア不正使用可能性情報を外部に出力する出力ステップと、
を更に備えていることを特徴とする付記６乃至８の何れか１に記載の不正使用ソフトウェア検出方法。
【００７８】
（付記１０）  ネットワークに接続された管理サーバに接続された端末に組み込まれる不正使用ソフトウェア検出プログラムにおいて、
前記管理サーバが前記ネットワーク上に流出しているアクティベーション情報に基づいて作成した、或るソフトウェアに関連するファイルであって、アクティベーションの前後で変更される情報が格納されている領域を示すアクティベーション対象情報と、前記アクティベーション対象情報の領域内のアクティベーション前の値である初期データと、を少なくとも含むファイルである検出用パターンファイルを取得し、当該端末自身に格納されている前記アクティベーション対象情報の内容が、前記取得した検出用パターンファイルに含まれている前記初期データと異なっているか否かを判別するアクティベーション判別手段と、
前記判別の結果、前記初期データと異なっていた場合は前記検出用パターンファイルに関連する前記或るソフトウェアについて不正使用の可能性があると判断し、当該端末を特定するための情報、当該或るソフトウェアを特定するための情報、及び、前記初期データと異なっていた前記アクティベーション対象情報の内容、を少なくとも含んだソフトウェア不正使用可能性情報を作成するアクティベーション登録手段と、
を備える端末としてコンピュータを機能させることを特徴とする不正使用ソフトウェア検出プログラム。
【産業上の利用可能性】
【００７９】
本発明は、例えば、企業でのコンピュータソフトウェア資産管理における有償ソフトウェアの不正使用検知、防止に好適である。
【符号の説明】
【００８０】
１００  クライアント端末
１０１  アクティベーション判別／登録部
１０２  バイナリアクティベーション情報格納領域
１０３  テキストアクティベーション情報格納領域
１０４  レジストリアクティベーション情報格納領域
１０５  ファイル／レジストリ情報格納領域
２００  管理サーバ
２０１  アクティベーション情報登録部
２０２  バイナリアクティベーション情報格納領域
２０３  テキストアクティベーション情報格納領域
２０４  レジストリアクティベーション情報格納領域
２０５  ソフトウェア不正使用可能性情報格納領域
３００  インターネットサーバ
３０１  ソフトウェアアクティベーション情報格納領域
４００  ネットワーク
５００  インターネット
６００  ソフトウェアアクティベーション情報
６０１  アクティベーション識別
６０２  ソフトウェア名
６０３  ソフトウェアバージョン
６０４  ソフトウェアファイル名／レジストリキー名
６０５  アクティベーション対象情報
６０６  アクティベーション前初期データ
６０７  アクティベーション後初期データ
７００  バイナリアクティベーション情報
７０１  ソフトウェア名
７０２  ソフトウェアバージョン
７０３  ソフトウェアファイル名
７０４  アクティベーション対象情報
７０５  アクティベーション前初期データ
８００  テキストアクティベーション情報
８０１  ソフトウェア名
８０２  ソフトウェアバージョン
８０３  ソフトウェアファイル名
８０４  アクティベーション対象情報
８０５  アクティベーション前初期データ
９００  レジストリアクティベーション情報
９０１  ソフトウェア名
９０２  ソフトウェアバージョン
９０３  レジストリキー名
９０４  アクティベーション対象情報
９０５  アクティベーション前初期データ
１０００  ソフトウェア不正使用可能性情報
１００１  検出コンピュータ名
１００２  ＩＰアドレス
１００３  アクティベーション識別
１００４  ソフトウェア名
１００５  ソフトウェアバージョン
１００６  ソフトウェアファイル名／レジストリキー名
１００７  アクティベーション対象情報
１００８  アクティベーション前初期データ
１００９  アクティベーション領域検出データ
【図１】
0005557330.tif 000002
【図２】
0005557330.tif 000003
【図３】
0005557330.tif 000004
【図４】
0005557330.tif 000005
【図５】
0005557330.tif 000006
【図６】
0005557330.tif 000007
【図７】
0005557330.tif 000008
【図８】
0005557330.tif 000009
【図９】
0005557330.tif 000010
【図１０】
0005557330.tif 000011
【図１１】
0005557330.tif 000012