(57)【要約】【課題】ＵＳＢマスストレージのオートランを確実に禁止し、また、コンピュータからＵＳＢマスストレージへのウィルスの書込みを確実に防止する、ＵＳＢマスストレージ通信制限方法を提供する。【解決手段】コンピュータ１０と、コンピュータ１０に接続されるＵＳＢマスストレージ２０の間の通信を行う際に、コンピュータ１０によって実行されるＵＳＢマスストレージとの通信制限方法において、上位プログラムによって実行され、コンピュータ１０とＵＳＢマスストレージ２０の間の通信を確立する、ＵＳＢ通信確立制御ステップＳ１３０と、ＵＳＢマスストレージ２０から上位プログラムに送信するモードパラメータリストに、書き込み禁止フラグを付加する、書き込み制限ステップＳ１４５と、を備えるＵＳＢマスストレージ通信制限方法とした。【選択図】図２
2010182131.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータと、該コンピュータに接続されるＵＳＢマスストレージの間の通信を行う際に、前記コンピュータによって実行されるＵＳＢマスストレージとの通信制限方法において、
上位プログラムによって実行され、前記コンピュータと、前記ＵＳＢマスストレージの間の通信を確立する、ＵＳＢ通信確立制御ステップと、
前記上位プログラムと、前記ＵＳＢマスストレージの間に介在して、前記ＵＳＢマスストレージから前記上位プログラムに送信されるマスストレージ側コマンドに、書き込み禁止フラグを付加する、書き込み制限ステップと、
を備えることを特徴とする、ＵＳＢマスストレージ通信制限方法。
【請求項２】
前記書き込み制限ステップは、
前記上位プログラムから前記ＵＳＢマスストレージに送信するコンピュータ側コマンドの種別を判定する、コマンド判定ステップと、
前記コマンド判定ステップにおいて、前記コンピュータ側コマンドが、ＵＳＢマスストレージへの書き込み禁止又は許可を表すコマンドの場合に、前記コンピュータ側コマンドに前記書き込み禁止フラグを付加する、書き込み禁止フラグ設定ステップと、
前記コマンド判定ステップにおいて、前記コンピュータ側コマンドが、前記ＵＳＢマスストレージへの書き込みを表すコマンドの場合に、前記コンピュータ側コマンドを前記ＵＳＢに送信せずに、前記上位プログラムに送信する書き込みエラーステータスを生成する、書き込みエラーステータス生成ステップと、
前記コマンド判定ステップにおいて、前記コンピュータ側コマンドが、前記ＵＳＢマスストレージへの書き込み禁止又は許可を表すコマンド、又は前記ＵＳＢマスストレージへの書き込みコマンド以外のコマンドの場合に、該コマンドをそのまま前記ＵＳＢマスストレージに送信し、該ＵＳＢマスストレージの応答をそのまま前記上位プログラムへ送信する、コマンド送信ステップと、を備えることを特徴とする、
請求項１に記載のＵＳＢマスストレージ通信制限方法。
【請求項３】
前記コンピュータに接続されたＵＳＢマスストレージにオートラン実行コマンドがあるか否かを判定するオートラン実行コマンド判定ステップと、
前記オートラン実行コマンド判定ステップにおいて、前記ＵＳＢマスストレージに前記オートラン実行コマンドがあると判定した場合に、前記上位プログラムにオートラン実行コマンドが存在しないという疑似データを送信する、疑似データ送信ステップと、を更に備えることを特徴とする、
請求項１又は２に記載のＵＳＢマスストレージ通信制限方法。
【請求項４】
前記コンピュータに接続されたＵＳＢデバイスが前記ＵＳＢマスストレージでない場合に、前記コンピュータのＵＳＢポートの動作を無効にする、ＵＳＢポート無効化ステップを、更に備えることを特徴とする、
請求項１乃至３のいずれか１項に記載のＵＳＢマスストレージ通信制限方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＵＳＢマスストレージへの書込みの防止及びオートランプログラムの実行を禁止するＵＳＢマスストレージ通信制限方法に関する。
【背景技術】
【０００２】
従来、ウィルスプログラムに感染したＵＳＢメモリ等がコンピュータに接続された場合、ウィルスプログラムが自動実行（以下、オートランと言うことがある）される前に、コンピュータがウィルスプログラムを検出して自動実行しないことにより、ウィルスに感染するのを防止する方法が発明されている（特許文献１参照）。
【０００３】
例えば、特許文献１に開示されている発明は、コンピュータ内にセキュリティドライバをプリインストールし、そのセキュリティドライバでウィルスを検出することによって、ウィルスの自動実行を阻止するものである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１８６４３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、前述した特許文献１に開示されている発明は、予めセキュリティドライバに登録された限られた種類のウィルスしか検出することができないという問題があった。つまり、前述したセキュリティドライバは、最新のウィルスプログラムには対応することができず、そのままオートランを実行してしまい、コンピュータがウィルスに感染する危険があるという問題があった。
【０００６】
また、前述したセキュリティドライバは、すでにウィルスに感染しているコンピュータに、ウィルスに感染していないＵＳＢメモリ等を接続した場合、ＵＳＢメモリ等にウィルスプログラムを書き込んでしまい、ＵＳＢメモリ等を媒介にして未感染のコンピュータにウィルスを感染させてしまう可能性があるという問題があった。
【０００７】
本発明は、斯かる実情に鑑み、ＵＳＢマスストレージのオートランを確実に禁止し、また、コンピュータからＵＳＢマスストレージへのウィルスプログラムの書込みを確実に防止する、ＵＳＢマスストレージ通信制限方法を提供しようとするものである。
【課題を解決するための手段】
【０００８】
（１）本発明は、コンピュータと、該コンピュータに接続されるＵＳＢマスストレージの間の通信を行う際に、前記コンピュータによって実行されるＵＳＢマスストレージとの通信制限方法において、上位プログラムによって実行され、前記コンピュータと、前記ＵＳＢマスストレージの間の通信を確立する、ＵＳＢ通信確立制御ステップと、前記上位プログラムと、前記ＵＳＢマスストレージの間に介在して、前記ＵＳＢマスストレージから前記上位プログラムに送信されるマスストレージ側コマンドに、書き込み禁止フラグを付加する、書き込み制限ステップと、を備えることを特徴とする、ＵＳＢマスストレージ通信制限方法である。
【０００９】
（２）また、本発明は、前記書き込み制限ステップは、前記上位プログラムから前記ＵＳＢマスストレージに送信するコンピュータ側コマンドの種別を判定する、コマンド判定ステップと、前記コマンド判定ステップにおいて、前記コンピュータ側コマンドが、ＵＳＢマスストレージへの書き込み禁止又は許可を表すコマンドの場合に、前記コンピュータ側コマンドに前記書き込み禁止フラグを付加する、書き込み禁止フラグ設定ステップと、前記コマンド判定ステップにおいて、前記コンピュータ側コマンドが、前記ＵＳＢマスストレージへの書き込みを表すコマンドの場合に、前記コンピュータ側コマンドを前記ＵＳＢに送信せずに、前記上位プログラムに送信する書き込みエラーステータスを生成する、書き込みエラーステータス生成ステップと、前記コマンド判定ステップにおいて、前記コンピュータ側コマンドが、前記ＵＳＢマスストレージへの書き込み禁止又は許可を表すコマンド、又は前記ＵＳＢマスストレージへの書き込みコマンド以外のコマンドの場合に、該コマンドをそのまま前記ＵＳＢマスストレージへ送信し、該ＵＳＢマスストレージの応答をそのまま前記上位プログラムへ送信する、コマンド送信ステップと、を備えることを特徴とする、（１）に記載のＵＳＢマスストレージ通信制限方法である。
【００１０】
（３）また、本発明は、前記コンピュータに接続されたＵＳＢマスストレージにオートラン実行コマンドがあるか否かを判定するオートラン実行コマンド判定ステップと、前記オートラン実行コマンド判定ステップにおいて、前記ＵＳＢマスストレージに前記オートラン実行コマンドがあると判定した場合に、前記上位プログラムにオートラン実行コマンドが存在しないという疑似データを送信する、疑似データ送信ステップと、を更に備えることを特徴とする、（１）又は（２）に記載のＵＳＢマスストレージ通信制限方法である。
【００１１】
（４）また、本発明は、前記コンピュータに接続されたＵＳＢデバイスが前記ＵＳＢマスストレージでない場合に、前記コンピュータのＵＳＢポートの動作を無効にする、ＵＳＢポート無効化ステップを、更に備えることを特徴とする、（１）乃至（３）のいずれかに記載のＵＳＢマスストレージ通信制限方法である。
【発明の効果】
【００１２】
本発明によれば、ＵＳＢマスストレージのオートランを確実に禁止し、また、コンピュータからＵＳＢマスストレージへのウィルスプログラムの書込みを確実に防止する、ＵＳＢマスストレージ通信制限方法を提供できるという、優れた効果を奏し得る。
【図面の簡単な説明】
【００１３】
【図１】(ａ)第１実施形態に係るＵＳＢマスストレージ通信制限方法を実行するＵＳＢ動作制限プログラム１００をインストールしたコンピュータ１０の概略を示すブロック図であり、（ｂ）同コンピュータ１０の各プログラムの機能を示す機能ブロック図である。
【図２】同ＵＳＢ動作制限プログラム１００による、ＵＳＢマスストレージ通信制限方法の一機能であるＵＳＢマスストレージ書込み防止処理の流れを表すフローチャートである。
【図３】同ＵＳＢ動作制限プログラム１００による、ＵＳＢマスストレージ通信制限方法の一機能であるオートラン禁止処理の流れを表すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態を添付図面を参照して説明する。
【００１５】
＜基本構成＞
【００１６】
まず、図１（ａ）を用いて、本発明の第１実施形態に係るＵＳＢマスストレージ通信制限方法を実行するＵＳＢ動作制限プログラム１００を記憶したコンピュータ１０について説明する。
【００１７】
コンピュータ１０は、ＣＰＵ１２やＲＯＭ１４、ＲＡＭ１６、ＨＤＤ（ハードディスクドライブ）１７などを備え、ＣＰＵ１２において、ＲＯＭ１４やＨＤＤ１７等に記憶されているプログラム（ファームウェア）を実行することにより、一定の目的を達成するように機能する一般的な情報処理装置である。
【００１８】
コンピュータ１０のＣＰＵ１２は、詳細に、コンピュータ１０の全体処理を行うものである。ＲＡＭ１６は、ＣＰＵ１２の情報処理の作業領域として機能し、一時的にデータを記憶する。
【００１９】
ＲＯＭ１４、ＲＡＭ１６、ＨＤＤ１７やＵＳＢホストコントローラ１８は、アドレスバスやデータバス（以下これらを含めて、バス１１と言う）によって接続されており、互いにデータの送受信を行えるようになっている。このデータの送受信は、このバス１１に接続されるＣＰＵ１２の指令に基づいて行われる。
【００２０】
本実施形態では、ＵＳＢ動作制限プログラム１００は、ＨＤＤ１７に予めインストールされている。ＵＳＢ動作制限プログラム１００は、ＵＳＢマスストレージ２０（例えば、ＵＳＢメモリ）へのデータ書き込みを防止する処理やＵＳＢマスストレージ２０に記憶されているオートラン実行コマンドの自動実行を禁止する処理が任意のプログラミング言語によって記述されているものである。なお、ＵＳＢ動作制限プログラム１００のインストールは、例えば、ＵＳＢ動作制限プログラム１００をＣＤ−ＲＯＭメディア（図示省略）に記憶しておき、そのＣＤ−ＲＯＭメディアをコンピュータ１０のＣＤ−ＲＯＭドライブ（図示省略）に挿入して、ＵＳＢ動作制限プログラム１００のインストールプログラムを実行することで実現することができる。なお、ここではＨＤＤ１７にインストールする場合を示すが、ＲＯＭライターなどによって、ＲＯＭ１４に予めインストールしておいても好ましい。
【００２１】
ＵＳＢホストコントローラ１８は、ＵＳＢポート１９を制御し、ＵＳＢポート１９に接続されるＵＳＢマスストレージ２０とデータの送受信を行う。また、ＵＳＢホストコントローラ１８は、ＲＡＭ１６とＵＳＢマスストレージ２０との間でデータの送受信の制御を行う。
【００２２】
なお、コンピュータ１０には、表示装置１３（例えば、ＬＣＤなどの液晶表示装置）が接続されている。これにより、コンピュータ１０は、操作画面を表示し、またコンピュータ１０内部の処理状態を表示できるようになっている。
【００２３】
図１（ｂ）には、コンピュータ１０の主な機能構成を示したブロック図である。これらは、ＨＤＤ１７等に記憶されているオペレーティングシステムプログラムやＵＳＢ動作制限プログラム１００、ＵＳＢポート制御プログラム等がＣＰＵ１２で実行されることで実現される。
【００２４】
コンピュータ１０は、全体的な基本動作を行うオペレーティングシステム３６と、記憶データの管理を行うファイルシステム３４と、ＵＳＢポート１９を制御するＵＳＢポート制御部３０と、ファイルシステム３４とＵＳＢポート制御部３０の間に介在するＵＳＢ動作制限部３２を備える。オペレーティングシステム３６、ファイルシステム３４、ＵＳＢポート制御部３０は、汎用のプログラムで実現されており、ＵＳＢ動作制限部３２は、ＵＳＢ動作制限プログラム１００によって実現されている。
【００２５】
＜ＵＳＢマスストレージ書込み防止処理＞
【００２６】
次に、図２を用いて、ＵＳＢマスストレージ書込み防止処理について説明する。以下に説明する処理は、コンピュータ１０のＨＤＤ１７に記憶されているＵＳＢ動作制限プログラム１００やその他の関連プログラムを実行することによって、ＵＳＢ動作制限プログラム１００に従ってコンピュータ１０のＣＰＵ１２が行う処理である。このＵＳＢマスストレージ書込み防止処理は、ＵＳＢマスストレージ２０（例えば、ＵＳＢメモリ）がコンピュータ１０のＵＳＢポート１９に接続されている間、コンピュータ１０の電源の遮断がない限り繰り返される。
【００２７】
まず、ステップ１１０では、コンピュータ１０の各種デバイスの初期設定を行う。具体的には、コンピュータ１０のＣＰＵ１２は、ＲＯＭ１４やＨＤＤ１７に記憶されている初期設定データを読み出し、ＲＡＭ１６やＵＳＢホストコントローラ１８の初期設定を行う。初期設定を行った後、ステップ１２０へ進む。
【００２８】
ステップ１２０では、ＵＳＢポート１９に接続されたＵＳＢ対応デバイス（以下、単にＵＳＢデバイスと言う）が、ＵＳＢマスストレージ２０か否かを判定する。具体的には、ＵＳＢデバイスがＵＳＢポート１９に差し込まれると、ＵＳＢデバイスからＵＳＢデバイス情報（Ｕｓｂ  Ｄｅｖｉｃｅ  Ｄｅｓｃｒｉｐｔｏｒ）がコンピュータ１０に送信される。コンピュータ１０は、このＵＳＢデバイス情報の中からデバイス種別を特定するデバイスクラス（ｂＤＥＶＩＣＥ  ＣＬＡＳＳ）を認識し、差し込まれたＵＳＢデバイスの種別を判定する。ＵＳＢデバイスがＵＳＢマスストレージ２０であると判定した場合、ステップＳ１３０に進む。なお、ＵＳＢマスストレージとしては、ＵＳＢメモリ、ＵＳＢ−ＣＤ、ＵＳＢ−ＤＶＤ、ＵＳＢ−ＦＤ、ＵＳＢ−ＨＤＤ等がある。なお、ＵＳＢデバイスが非マスストレージである場合にはステップＳ１２５に進み、ＵＳＢポート１９を無効化する。ＵＳＢポート１９を無効にする方法はいくつかあるが、例えば、ＵＳＢデバイスのドライバの読込みを強制的に禁止したり、ＵＳＢデバイスのドライバの動作を停止したり又はＵＳＢポート１９を「Ｄｉｓａｂｌｅ」に設定することにより無効化できる。
【００２９】
ステップＳ１３０では、コンピュータ１０とＵＳＢマスストレージ２０の間の通信を確立する。具体的には、ＣＰＵ１２は、ＵＳＢマスストレージ２０からのデバイス情報を受信し、そのデバイス情報の中のサブクラス情報（例えば、サブクラスコード）を参照してマスストレージの詳細な特定を行う。そして、コンピュータ１０は、特定したＵＳＢマスストレージに応じたプロトコルを用いてＵＳＢマスストレージ２０と通信を行う。例えば、接続されたＵＳＢマスストレージ２０がＵＳＢメモリである場合、ＵＳＢメモリのプロトコルを用いて通信を行う。
【００３０】
ステップＳ１４０では、ＵＳＢマスストレージ２０を特定した後、上位プログラムによって、ＵＳＢマスストレージ２０に送信するコマンド（以下、マスストレージコマンドと言うことがある）の種類をＵＳＢ動作制限部３２が判定する。ＵＳＢマスストレージ２０に送信するコマンドが、ＵＳＢマスストレージ２０へのデータ書込み禁止又は許可を確認するモードセンスコマンド（Ｍｏｄｅ  Ｓｅｎｃｅ）であると判定した場合にはステップＳ１５０に進む。また、送信するコマンドがＵＳＢマスストレージ２０にデータを書込むライトコマンド（Ｗｒｉｔｅ）であると判定した場合にはステップＳ１６０に進み、送信するコマンドが上述したモードセンスコマンド又はライトコマンド以外のコマンド（例えば、ＵＳＢマスストレージ２０に記憶されているデータを読込むコマンド等）と判定した場合にはステップＳ１７０に進む。なお、本実施形態では、上位プログラムから送信されるコマンドの種別をＵＳＢ動作制限部３２が判定して、そこに上記の特定のコマンドが含まれていないか監視するようになっている。つまり、以下に示す特別な応答を除き、ＵＳＢマスストレージ２０からの応答信号は、定常的に監視することは行わない。
【００３１】
ステップＳ１５０では、ＵＳＢ動作制限部３２が、モードセンスコマンドをＵＳＢマスストレージ２０にそのまま送信すると共に応答監視フラグを立てて、ステップＳ１５２に進んでＵＳＢマスストレージ２０から次の応答信号が送信されるのを待つ。
【００３２】
ステップＳ１５２では、ＵＳＢ動作制限部３２が、ＵＳＢマスストレージ２０から送信される情報であるモードパラメータリスト（Ｍｏｄｅ  Ｐａｒａｍｅｔｅｒ  Ｌｉｓｔ）を受信した場合、その中のモードパラメータヘッダー（Ｍｏｄｅ  Ｐａｒａｍｅｔｅｒ  Ｈｅａｄｅｒ）のデバイススペシフィク・パラメータ（Ｄｅｖｉｃｅ  Ｓｐｅｃｉｆｉｃ  Ｐａｒａｍｅｔｅｒ）のライトプロテクトビット（Ｗｒｉｔｅ  Ｐｒｏｔｅｃｔ  Ｂｉｔ）を強制的に１にセットしてから、ＵＳＢマスストレージ２０に情報の読み込み及び書き込みを実行する上位プログラムに、このモードパラメータリストを提供する。
【００３３】
具体的に、モードセンスコマンドは、モードセンス（６）コマンドと、モードセンス（１０）コマンドの２つがある。コンピュータ１０が、ＵＳＢマスストレージ２０からモードセンス（６）コマンドに応じたモードパラメータヘッダー（６）を受け付けた場合には、モードパラメータヘッダー（６）のバイト−２（Ｂｙｔｅ−２）のビット−７（Ｂｉt−7）を１にセットする。コンピュータ１０は、ＵＳＢマスストレージ２０からモードセンス（１０）コマンドに応じたモードパラメータヘッダー（１０）のバイト−３（Ｂｙｔｅ−３）のビット７（Ｂｉｔ−７）を１にセットする。
【００３４】
上記により、ＵＳＢ動作制限部３２は、モードパラメータヘッダーを強制的に書き換えて書込み禁止フラグをセットして、上位プログラムに提供することになる。つまり、その後、ステップＳ１８０に進んで、ＵＳＢマスストレージ２０の応答信号として、このモードパラメータヘッダーを上位プログラム（ファイルシステム３４）に提供する。これにより、コンピュータ１０のオペレーティングシステム３６は、ＵＳＢマスストレージ２０が書込み禁止メモリであると認識（誤認）する。
【００３５】
なお、コマンド判定ステップＳ１４０からＵＳＢ書き込み禁止ステップＳ１５２を含めて、書き込み制限ステップＳ１４５ということがある。
【００３６】
なお、ステップＳ１４０において、上位プログラムから送信されるマスストレージコマンドが通常動作のコマンド（監視対象外信号）である場合には、ステップＳ１７０に進んで、ＵＳＢ動作制限部３２は、コマンドをそのままＵＳＢマスストレージ２０に転送し、ステップＳ１７２において、ＵＳＢマスストレージ２０の応答信号を受信して、更にステップＳ１８０に進んで、この応答信号をそのまま上位プログラム（例えば、ファイルシステム３４）に転送する。
【００３７】
更に、ステップＳ１４０において、ＵＳＢ動作制限部３２は、マスストレージコマンドが特定のコマンド、具体的には、ライトコマンドであると判定した場合には、ステップＳ１６０に進む。ステップ１６０では、ＵＳＢ動作制限部３２は、ライトコマンドをＵＳＢマスストレージ２０に送信することなく、ライトコマンドを削除する。つまり、ＵＳＢ動作制限部３２は、ライトコマンドに基づくＵＳＢマスストレージ２０への書込みは行わない。更に、ステップＳ１６２において、ＵＳＢ動作制限部３２は、ファイルシステム３４に提供するためのライトエラーステータスを生成する。具体的には、ＣＰＵ１２の指令に基づいてＲＡＭ１６に一時的に保管されたマスストレージコマンドが、ＵＳＢ規格に基づくライトコマンド（Ｗｒｉｔｅ  Ｃｏｍｍａｎｄ）、フォーマットユニットコマンド（Ｆｏｒｍａｔ  Ｕｎｉｔ  Ｃｏｍｍａｎｄ）等のデータ書込みコマンドである場合、ＵＳＢ動作制限部３２は、ＵＳＢマスストレージ２０にこれらのマスストレージコマンドを送信しないでブロックする。なお、ＵＳＢ規格のライトコマンドの中には、ライト（６）コマンド、ライト（１０）コマンド、ライト（１２）コマンド等の種類があるが、これらはすべてコンピュータ１０からマスストレージ２０に対するデータ書込みコマンドを意味している。
【００３８】
このように、ライトコマンドを削除（停止）する一方、上位のファイルシステム３４やオペレーティングシステム３６に送信する為のライトプロテクトエラー（Ｗｒｉｔｅ  Ｐｒｏｔｅｃｔ  Ｅｒｒｏｒ）のステータス信号を生成する。その後、ステップＳ１８０に進んで、このライトプロテクトエラーステータス信号をコンピュータ１０に提供する。
【００３９】
上記の構成によって、例えば、オペレーティングシステム３６は、ＵＳＢマスストレージ２０へのデータ書き込みが実行できないと誤認する。また、仮に、コンピュータ１０がデータ書き込みを行おうとしても、ＵＳＢ動作制限部３２により、強制的に書込みエラーとなって、ＵＳＢマスストレージ２０の情報を保護することができる。
【００４０】
したがって、ＵＳＢ動作制限部３２を利用したＵＳＢマスストレージ通信制限方法は、初期設定ステップ（Ｓ１１０）と、コンピュータ１０に接続されたＵＳＢデバイスがＵＳＢマスストレージ２０か否かを判定するマスストレージ判定ステップ（Ｓ１２０）と、コンピュータ１０とＵＳＢマスストレージ２０の間の通信を確立する、通信確立制御ステップ（Ｓ１３０）を備えている。また、ＵＳＢマスストレージ通信制限方法は、コマンド判定ステップ（Ｓ１４０）を更に備え、コマンド判定ステップ（Ｓ１４０）により、ストレージコマンドがモードセンスコマンドの場合、書き込み防止フラグを設定し、上位プログラムに提供する。ストレージコマンドが書込みコマンド（ライトコマンド）の場合、書き込みエラーステータスを生成し、上位プログラムに提供する。また、ストレージコマンドがモードセンスコマンド及びライトコマンドのいずれのコマンドでもない通常動作コマンドの場合、そのマスストレージコマンドをそのままＵＳＢマスストレージ２０に送信し、ＵＳＢマスストレージ２０の応答をそのまま上位プログラムに提供する。したがって、コンピュータ１０は、ＵＳＢ動作制限プログラム１００をインストールして実行することにより、書込み防止装置を有しないマスストレージ内部に記憶しているデータを誤動作により破壊し、または、消失してしまうことを防止することができる。
【００４１】
＜ＵＳＢマスストレージのオートラン禁止処理＞
【００４２】
次に、本発明の第２実施形態に係るコンピュータ１０について説明する。この第２実施形態は、コンピュータ１０に接続されたＵＳＢマスストレージ２０に記憶されているプログラムの自動実行（いわゆるオートラン）をＵＳＢ動作制限プログラム１００によって確実に禁止できるところに特徴がある。なお、このコンピュータ１０の内部構成は、第１実施形態と同様であるので、詳細な説明は省略する。
【００４３】
まず、ステップＳ２１０では、ＵＳＢ動作制限部３２が、コンピュータ１０に接続されたＵＳＢデバイスがＵＳＢマスストレージか否かを判定する。具体的には、コンピュータ１０に接続されたＵＳＢデバイスから受信したＵＳＢデバイス情報のデバイスクラスを参照し、接続されたＵＳＢデバイスがＵＳＢマスストレージ２０か否かを判定する。ＵＳＢマスストレージ２０の場合はステップＳ２１２に進み、ＵＳＢマスストレージでない場合はステップＳ２１４に進む。
【００４４】
ステップＳ２１２では、接続されたＵＳＢデバイスがＵＳＢマスストレージ２０である場合、ＵＳＢマスストレージ２０とコンピュータ１０の間の通信を確立する。具体的には、コンピュータ１０は、判定したマスストレージ用のプロトコルを用いて通信を行うことにより、ＵＳＢマスストレージ２０と通信を確立することができる。ＵＳＢマスストレージ２０との通信を確立した後、ステップＳ２１６に進む。
【００４５】
一方、ステップＳ２１４では、ＵＳＢデバイスがＵＳＢマスストレージ２０でないので、ＵＳＢ動作制限部３２は、コンピュータ１０のＵＳＢポート１９の無効化を行う。これによって、ＵＳＢマスストレージ２０以外のデバイスにより、ＵＳＢポート１９を介してコンピュータ１０にウィルスが進入するのを防ぐことができる。ＵＳＢポート１９を無効にする方法はいくつかあるが、例えば、ＵＳＢデバイスのドライバの読込みを強制的に禁止したり、ＵＳＢデバイスのドライバの動作を停止したり又はＵＳＢポート１９を「Ｄｉｓａｂｌｅ」に設定することにより無効化できる。
【００４６】
ステップＳ２１６では、ＵＳＢ動作制限部３２は、ステップＳ２１０で認識したＵＳＢマスストレージ２０がリムーバブルデバイスであるか否かを判定する。なお、リムーバブルデバイスとは、メディア（記憶媒体）を容易に取り外し（交換）できる記憶装置を言う。具体的には、ＵＳＢマスストレージ２０から受信したＵＳＢデバイス情報を参照することにより、リムーバブルデバイスか否かを判定することができる。マスストレージがリムーバブルデバイスである場合は、ステップＳ２２０に進み、リムーバブルデバイスでない場合は、ステップＳ２３０に進む。
【００４７】
ステップＳ２２０では、リムーバブルデバイスにメディアがセットされているか否かを判定する。つまり、ＵＳＢポート制御部３０が、リムーバルブデバイスの状態を常時監視し、リムーバブルデバイスにメディアがセットされた場合は、ステップＳ２２２に進み、メディアがセットされていない場合は、メディアがセットされるまでステップＳ２２０の処理を繰り返す（つまり、メディアがセットされるまで監視する）。なお、リムーバブルデバイスにメディアがセットされた場合とは、リムーバブルデバイスにメディアが新規にセットされた場合及びメディアが交換されてセットされた場合を含むものである。
【００４８】
ステップＳ２２２では、ステップ２２０でリムーバブルデバイスにメディアがセットされたと判定した後、リムーバブルデバイスにセットされたメディアにオートラン実行コマンド（以下、「Ａｕｔｏｒｕｎ．Ｉｎｆ」ファイルと言う）があるか否かを判定する。「Ａｕｔｏｒｕｎ．Ｉｎｆ」ファイルがあると判定した場合、ステップＳ２２４に進む。一方、「Ａｕｔｏｒｕｎ．Ｉｎｆ」ファイルが無いと判定した場合は、ステップＳ２２６に進み、「Ａｕｔｏｒｕｎ．Ｉｎｆ」の自動実行を行わない状況によるコンピュータ１０の通常動作を行う。
【００４９】
ステップＳ２２４で、ＵＳＢ動作制限部３２は、メディアにオートラン実行コマンドが記憶されているにも関わらず、「Ａｕｔｏｒｕｎ．Ｉｎｆ」ファイルがない旨の信号を上位のファイルシステム３４に提供する。この様に、疑似データを送信することにより、上位プログラムに「Ａｕｔｏｒｕｎ．Ｉｎｆ」ファイルが存在しないと誤認させ、そのまま、ステップＳ２２６に進んで通常動作を行う。
【００５０】
ステップＳ２３０で、ＵＳＢ動作制限部３２は、リムーバブルデバイスでないＵＳＢマスストレージ２０（例えば、ＵＳＢメモリやハードディスク等）に「Ａｕｔｏｒｕｎ．Ｉｎｆ」ファイルがあるか否かを判定する。「Ａｕｔｏｒｕｎ．Ｉｎｆ」ファイルがあると判定した場合、ステップＳ２３２に進む。また、「Ａｕｔｏｒｕｎ．Ｉｎｆ」ファイルが無いと判定した場合は、ステップＳ２３４に進み、「Ａｕｔｏｒｕｎ．Ｉｎｆ」の自動実行を行わない状況によるコンピュータ１０の通常動作を行う。
【００５１】
ステップＳ２３２では、ＵＳＢマスストレージ２０にオートラン自動実行コマンドが存在するにも関わらず、「Ａｕｔｏｒｕｎ．Ｉｎｆ」ファイルが無い旨の信号を上位のファイルシステム３４に提供する。つまり、「Ａｕｔｏｒｕｎ．Ｉｎｆ」ファイルが無い旨の疑似データを送信することにより、上位プログラムに「Ａｕｔｏｒｕｎ．Ｉｎｆ」ファイルが存在しないと誤認させ、そのまま、ステップＳ２３４に進んで通常動作を行う。
【００５２】
したがって、本方法によれば、ＵＳＢマスストレージ２０に「Ａｕｔｏｒｕｎ．Ｉｎｆ」ファイルがある場合でも、ＵＳＢ動作制限部３２が「Ａｕｔｏｒｕｎ．Ｉｎｆ」ファイルが存在しないという疑似データを発生させる。これにより、ＵＳＢマスストレージ２０に「Ａｕｔｏｒｕｎ．Ｉｎｆ」ファイルがあった場合でも、上位のファイルシステム３４において、「Ａｕｔｏｒｕｎ．Ｉｎｆ」の自動実行を確実に禁止することができる。また、コンピュータ１０に接続したＵＳＢデバイスがＵＳＢマスストレージでない場合、ＵＳＢポート１９を無効化するようにしているので、ＵＳＢデバイスからコンピュータ１０にウィルスを移されることを確実に防止することができる。
【００５３】
また、本方法では、ＵＳＢポート１９に接続されたＵＳＢデバイスがＵＳＢマスストレージ２０か否かを判定し、ＵＳＢマスストレージ２０でないと判定した場合は、ＵＳＢポート１９を無効化する。これにより、ＵＳＢポート１９を介して、ＵＳＢデバイスからコンピュータ１０にウィルスが感染するのを防止することができる。
【００５４】
更に、本方法では、デバイス判定ステップ（Ｓ２１６）において、ＵＳＢポート１９に接続されたＵＳＢマスストレージ２０がリムーバブルデバイスであると判定した場合でも、そのリムーバブルデバイスに接続されるメディアにオートラン実行コマンドが格納されているか否かを判定する。メディアにオートラン実行コマンドが格納されていると判定した場合は、上位プログラムにオートラン実行コマンドが格納されていないという疑似データを提供するので、メディアにオートラン実行コマンド（「Ａｕｔｏｒｕｎ．Ｉｎｆ」ファイル）がある場合でも、オートラン実行コマンドが無いという疑似データを上位のファイルシステム３４に送信することにより、オートラン実行コマンドの自動実行を確実に禁止することができる。なお、この第２実施形態においても、例えば、ステップＳ２１２の後に、第１実施形態で説明したＵＳＢマスストレージへの書き込み防止制御（ステップＳ１４０〜Ｓ１８０）を介在させることが望ましい。この様にすると、マスストレージへの書き込み禁止とオートランの実行の双方が同時に制限できるので、より安全な読み込みが可能となる。
【産業上の利用可能性】
【００５５】
本発明は、ＵＳＢマスストレージの通信制限を必要とする分野、特にＵＳＢマスストレージへの書き込み防止やオートランを強制的に禁止することによる、コンピュータウィルスの感染防止の分野に利用することができる。
【符号の説明】
【００５６】
１０      コンピュータ
１１      バス
１２      ＣＰＵ
１３      液晶表示装置
１４      ＲＯＭ
１６      ＲＡＭ
１７      ＨＤＤ
１８      ＵＳＢホストコントローラ
１９      ＵＳＢポート
２０      ＵＳＢマスストレージ
３０      ＵＳＢポート制御部
３２      ＵＳＢ動作制限部
３４      ファイルシステム
３６      オペレーティングシステム
１００    ＵＳＢマスストレージ動作制限プログラム
【図１】
2010182131.tif 000003
【図２】
2010182131.tif 000004
【図３】
2010182131.tif 000005