(57)【要約】      （修正有）【課題】外部メモリデータ読込装置を備えるコンピュータにおいて、従来のＯＳやアプリケーションソフトウェアを使用したままで、コンピュータウィルスの感染や拡散を抑制する。【解決手段】システム全体の制御を行うコンピュータ１０と、コンピュータ１０と外部メモリ２０の間に接続され、コンピュータ１０による外部メモリ２０へのデータ書込みを防止するＵＳＢメモリ用書込防止アダプタ２００と、を備え、コンピュータ１０は、コンピュータ１０に供給される電源の遮断を契機として、自身に記憶しているデータが消去される揮発性メモリ１６と、揮発性メモリ１６の記憶領域に仮想記憶領域Ａを形成する仮想記憶領域形成手段３４と、を備え、仮想記憶領域形成手段３４は、コンピュータ１０が外部メモリ２０から読込んだデータを、揮発性メモリ１６の仮想記憶領域Ａに保存する。【選択図】図１
2010262335.tif 000002
【特許請求の範囲】
【請求項１】
システム全体の制御を行うコンピュータと、
該コンピュータと外部メモリの間に接続され、前記コンピュータによる前記外部メモリへのデータ書込みを防止するメモリ書込防止手段と、
を備え、
前記コンピュータは、
該コンピュータに供給される電源の遮断を契機として、自身に記憶しているデータが消去される揮発性メモリと、
該揮発性メモリの記憶領域に仮想記憶領域を形成する仮想記憶領域形成手段と、
を備え、
前記仮想記憶領域形成手段は、前記コンピュータが前記外部メモリから読込んだデータを、前記揮発性メモリの前記仮想記憶領域に保存することを特徴とする、コンピュータウィルス感染防止機能付き外部メモリデータ読込装置。
【請求項２】
前記メモリ書込防止手段は、
前記コンピュータから受け付けたコマンドの種別を判定するコマンド判定手段を備え、
前記コマンド判定手段が、前記外部メモリへデータ書込みの禁止又は許可の確認を求めるモードセンスコマンドを、前記コンピュータから受け付けたと判定した場合、前記コンピュータに前記外部メモリへの書込禁止フラグを送信することを特徴とする、
請求項１に記載のコンピュータウィルス感染防止機能付き外部メモリデータ読込装置。
【請求項３】
前記コンピュータは、
該コンピュータに接続された前記外部メモリに記憶されているプログラムの自動実行を防止するオートラン禁止手段をさらに備え、
前記オートラン禁止手段は、
前記コンピュータに接続された前記外部メモリにオートラン実行コマンドがあるか否かを判定するオートラン実行コマンド判定手段と、
前記オートラン実行コマンド判定手段によって、前記オートラン実行コマンドがあると判定された場合、前記コンピュータの上位プログラムにオートラン実行コマンドが存在しないという疑似データを送信する、疑似データ送信手段と、
を備えることを特徴とする、
請求項１又は２に記載のコンピュータウィルス感染防止機能付き外部メモリデータ読込装置。
【請求項４】
コンピュータウィルスの感染を防止しつつ、外部メモリのデータを安全に読込むコンピュータウィルス感染防止機能付き外部メモリ読込方法において、
前記コンピュータで実行される上位プログラムから前記外部メモリへ送信されたコマンドの種別を判定し、前記コマンドが前記外部メモリへの書込みの禁止又は許可の確認を求めるモードセンスコマンドである場合、前記上位プログラムに書込み禁止フラグを設定し、前記外部メモリにオートラン実行コマンドがあるか否かを判定し、オートラン実行コマンドがあると判定した場合、前記コンピュータの前記上位プログラムにオートラン実行コマンドがないという疑似データを送信し、前記上位プログラムは、前記コンピュータが読込んだ前記外部メモリのデータを前記コンピュータの揮発性メモリに仮想的に形成された仮想記憶領域に記憶することを特徴とする、コンピュータウィルス感染防止機能付き外部メモリデータ読込方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータウィルスに感染するのを防止し、又は他のコンピュータや外部メモリへコンピュータウィルスを感染させるのを防止しつつ、外部メモリのデータを安全に読み込むことができる、コンピュータウィルス感染防止機能付き外部メモリデータ読込装置及びコンピュータウィルス感染防止機能付き外部メモリデータ読込方法に関する。
【背景技術】
【０００２】
従来、コンピュータウィルスによるコンピュータシステムの故障やマスストレージに保存されているデータの書換えなどの被害が問題になっている。また、近年では、デジタルカメラなどで撮影した画像データを手軽にプリントできる、フォト・キオスク・システム（Ｐｈｏｔｏ  ＫＩＯＳＫ  Ｓｙｓｔｅｍ）が公共施設やコンビニエンスストアなど、多くの場所に設置されている。このような、フォト・キオスク・システム（以下、省略してキオスクシステムと言う場合がある）では、不特定の利用者が自己の保有するＵＳＢメモリやメモリカードなどに画像データを保存し、店頭に設置されているキオスクシステムに自由に接続して利用できるシステムである。したがって、ＵＳＢメモリやメモリカードにコンピュータウィルスが混入していた場合、接続されたキオスクシステムにコンピュータウィルスが感染してしまう可能性があるという問題があった。
【０００３】
このような、コンピュータウィルスの感染を防止するため、キオスクシステムに予めウィルス対策用ソフトウェアをインストールし、そのウィルス対策用ソフトウェアがコンピュータウィルスを検出した場合に、検出したコンピュータウィルス（プログラム）を削除したり、コンピュータウィルスプログラムを実行しないようにする対策がとられている。
【０００４】
また、コンピュータウィルスプログラムを実行しない対策として、例えば、Ｗｉｎｄｏｗｓ（登録商標）が有する機能の一つであるオートラン（自動実行）機能を無効にする方法がある。オートラン機能の無効化は、Ｗｉｎｄｏｗｓ（登録商標）の機能設定により容易に実行できる。
【０００５】
また、キオスクシステムの多くは、一般に普及しているＷｉｎｄｏｗｓ（登録商標）ＶＩＳＴＡ、ＸＰ、２０００などをＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）として用いているが、コンピュータウィルスの多くは、これらのＯＳに対応できるように作られている。そこで、キオスクシステムのＯＳをＷｉｎｄｏｗｓ（登録商標）ではなく、例えば、Ｌｉｎｕｘ等で制作する方法も、コンピュータウィルス対策として有効な手段である。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述したように、ウィルス対策用ソフトウェアをキオスクシステムにインストールして感染を防止するためには、新しいコンピュータウィルスに対応するため、ウィルス対策用ソフトウェアの定期的な更新が必要であり、特に最新のコンピュータウィルスには対応できないという問題がある。
【０００７】
また、Ｗｉｎｄｏｗｓ（登録商標）の設定で、オートラン機能を無効にする方法は、Ｗｉｎｄｏｗｓ（登録商標）の有する一般的機能設定であり、すでに世の中で広く知られている機能（公開されている情報）であるため、その無効設定を解除するような方法でオートランが実行され、コンピュータウィルスを感染させられる可能性もある。
【０００８】
また、キオスクシステムのＯＳを、対応するコンピュータウィルスが少ない、ＬｉｎｕｘなどのＯＳで制作する場合、キオスクシステムの全てのアプリケーションソフトウェアをＬｉｎｕｘ用に作り直さなければならず、多くの時間と費用がかかってしまうという問題がある。
【０００９】
また、近年のキオスクシステムは、インターネットなどのネットワーク回線を介してホストコンピュータに接続し、利用者が入力した識別情報を認識することで、利用者ごとに様々なサービスを提供する機能を有している。しかし、このようなキオスクシステムは、利用者への高機能なサービスの提供というメリットに相反して、ネットワーク回線を介してコンピュータウィルスに感染する可能性が高くなるという問題がある。
【００１０】
また、前述したように、キオスクシステムは、不特定の利用者が自由に利用できるシステムであるため、利用者がＵＳＢメモリ等を介して、意図的にキオスクシステムにコンピュータウィルスを感染させてしまう可能性があるという問題があった。
【００１１】
本発明は、斯かる実情に鑑み、従来のＯＳやアプリケーションソフトウェアは、そのまま使用でき、コンピュータウィルスの感染や拡散を抑制できる、コンピュータウィルス感染防止機能付き外部メモリデータ読込装置及びコンピュータウィルス感染防止機能付き外部メモリデータ読込方法を提供しようとするものである。
【課題を解決するための手段】
【００１２】
本発明者の鋭意研究によって、上記目的は下記の手段によって達成される。
【００１３】
（１）本発明は、システム全体の制御を行うコンピュータと、該コンピュータと外部メモリの間に接続され、前記コンピュータによる前記外部メモリへのデータ書込みを防止するメモリ書込防止手段と、を備え、前記コンピュータは、該コンピュータに供給される電源の遮断を契機として、自身に記憶しているデータが消去される揮発性メモリと、該揮発性メモリの記憶領域に仮想記憶領域を形成する仮想記憶領域形成手段と、を備え、前記仮想記憶領域形成手段は、前記コンピュータが前記外部メモリから読込んだデータを、前記揮発性メモリの前記仮想記憶領域に保存することを特徴とする、コンピュータウィルス感染防止機能付き外部メモリデータ読込装置である。
【００１４】
（２）また、本発明は、前記メモリ書込防止手段は、前記コンピュータから受け付けたコマンドの種別を判定するコマンド判定手段を備え、前記コマンド判定手段が、前記外部メモリへデータ書込みの禁止又は許可の確認を求めるモードセンスコマンドを、前記コンピュータから受け付けたと判定した場合、前記コンピュータに前記外部メモリへの書込禁止フラグを送信することを特徴とする、（１）に記載のコンピュータウィルス感染防止機能付き外部メモリデータ読込装置である。
【００１５】
（３）また、本発明は、前記コンピュータは、該コンピュータに接続された前記外部メモリに記憶されているプログラムの自動実行を防止するオートラン禁止手段をさらに備え、前記オートラン禁止手段は、前記コンピュータに接続された前記外部メモリにオートラン実行コマンドがあるか否かを判定するオートラン実行コマンド判定手段と、前記オートラン実行コマンド判定手段によって、前記オートラン実行コマンドがあると判定された場合、前記コンピュータの上位プログラムにオートラン実行コマンドが存在しないという疑似データを送信する、疑似データ送信手段と、を備えることを特徴とする、（１）又は（２）に記載のコンピュータウィルス感染防止機能付き外部メモリデータ読込装置である。
【００１６】
（４）本発明は、コンピュータウィルスの感染を防止しつつ、外部メモリのデータを安全に読込むコンピュータウィルス感染防止機能付き外部メモリ読込方法において、前記コンピュータで実行される上位プログラムから前記外部メモリへ送信されたコマンドの種別を判定し、前記コマンドが前記外部メモリへの書込みの禁止又は許可の確認を求めるモードセンスコマンドである場合、前記上位プログラムに書込み禁止フラグを設定し、前記外部メモリにオートラン実行コマンドがあるか否かを判定し、オートラン実行コマンドがあると判定した場合、前記コンピュータの前記上位プログラムにオートラン実行コマンドがないという疑似データを送信し、前記上位プログラムは、前記コンピュータが読込んだ前記外部メモリのデータを前記コンピュータの揮発性メモリに仮想的に形成された仮想記憶領域に記憶することを特徴とする、コンピュータウィルス感染防止機能付き外部メモリデータ読込方法である。
【発明の効果】
【００１７】
本発明によれば、従来のＯＳやアプリケーションソフトウェアは、そのまま使用でき、コンピュータウィルスの感染や拡散を抑制できる、コンピュータウィルス感染防止機能付き外部メモリデータ読込装置及びコンピュータウィルス感染防止機能付き外部メモリデータ読込方法を提供できるという優れた効果を奏し得る。
【図面の簡単な説明】
【００１８】
【図１】（ａ）第１実施形態に係るコンピュータウィルス感染防止機能付き外部メモリデータ読込装置１の全体構成を示すブロック図であり、（ｂ）同コンピュータウィルス感染防止機能付き外部メモリデータ読込装置１の機能ブロック図である。
【図２】同コンピュータウィルス感染防止機能付き外部メモリデータ読込装置１の仮想記憶領域形成部３４の機能ブロック図である。
【図３】同コンピュータウィルス感染防止機能付き外部メモリデータ読込装置１のＵＳＢ動作制限部３２により行われるメモリ書込防止処理の動作の流れを示すフローチャートである。
【図４】同コンピュータウィルス感染防止機能付き外部メモリデータ読込装置１のＵＳＢ動作制限部３２により行われるオートラン禁止処理の動作の流れを示すフローチャートである。
【図５】同コンピュータウィルス感染防止機能付き外部メモリデータ読込装置１のＵＳＢメモリ用書込み防止アダプタ装置２００と、コンピュータ１０と、ＵＳＢメモリ２０の構成を示すブロック図である。
【図６】同コンピュータウィルス感染防止機能付き外部メモリデータ読込装置１のＵＳＢメモリ用書込み防止アダプタ装置２００により行われる動作の流れを示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明の実施の形態を添付図面を参照して説明する。
【００２０】
＜コンピュータウィルス感染防止機能付き外部メモリデータ読込装置１＞
【００２１】
まず、本発明の第１実施形態に係るコンピュータウィルス感染防止機能付き外部メモリデータ読込装置１について説明する。図１は、第１実施形態に係るコンピュータウィルス感染防止機能付き外部メモリデータ読込装置１の全体構成を示すブロック図である。
【００２２】
コンピュータウィルス感染防止機能付き外部メモリデータ読込装置１は、仮想記憶領域形成プログラム１００及びＵＳＢ動作制限プログラム３００をインストールしたコンピュータ１０と、ＵＳＢメモリ２０に装着し、装着した状態でコンピュータ１０のＵＳＢポート１９に接続されるＵＳＢメモリ用書込み防止アダプタ２００（メモリ書込防止手段と言うこともある）から構成される。
【００２３】
コンピュータ１０は、ＣＰＵ１２やＲＯＭ１４、ＲＡＭ１６、ＨＤＤ（ハードディスクドライブ）１７などを備え、ＣＰＵ１２において、ＲＯＭ１４やＨＤＤ１７等に記憶されているプログラム（ファームウェア）を実行することにより、一定の目的を達成するように機能する一般的な情報処理装置である。コンピュータ１０は、様々なシステム機器に組み込まれるコンピュータに用いられることができるが、本実施形態では、例えば、フォト・キオスク・システム（Ｐｈｏｔｏ  ＫＩＯＳＫ  Ｓｙｓｔｅｍ）に用いられるコンピュータである。
【００２４】
コンピュータ１０のＣＰＵ１２は、詳細に、コンピュータ１０の全体制御を行う演算処理装置である。ＲＡＭ１６は、ＣＰＵ１２の情報処理の作業領域として機能し、一時的にデータを記憶する揮発性の記憶装置（揮発性メモリ）である。つまり、ＲＡＭ１６は、コンピュータ１０の電源を遮断すると、記憶領域に保存されているデータが消去される。これに対して、ＲＯＭ１４は、コンピュータ１０の電源を遮断しても記憶領域に保存されているデータが残る不揮発性の記憶装置（不揮発性メモリ）である。
【００２５】
ＲＯＭ１４、ＲＡＭ１６、ＨＤＤ１７やＵＳＢホストコントローラ１８は、アドレスバスやデータバス（以下これらを含めて、バス１１と言う）によって接続されており、互いにデータの送受信を行えるようになっている。このデータの送受信は、バス１１に接続されるＣＰＵ１２の指令に基づいて行われる。
【００２６】
本実施形態では、仮想記憶領域形成プログラム１００及びＵＳＢ動作制限プログラム３００は、ＨＤＤ１７に予めインストールされている。仮想記憶領域形成プログラム１００は、例えば、外部メモリであるＵＳＢメモリ２０から読込んだデータをＲＡＭ１６またはＨＤＤ１７のどちらに記憶するかを切り替える処理（後述する、仮想記憶領域形成部３４による書込先切り替え処理）が任意のプログラミング言語によって記述されているものである。ＵＳＢ動作制限プログラム３００は、ＵＳＢメモリ２０に記憶されているプログラムのコンピュータ１０によるオートラン（自動実行）を禁止する処理及びＵＳＢメモリ２０に何らかのデータを書込まない処理（後述する、ＵＳＢ動作制限部３２によるオートラン禁止処理及びメモリ書込防止処理）が任意のプログラミング言語によって記述されているものである。なお、仮想記憶領域形成プログラム１００及びＵＳＢ動作制限プログラム３００のコンピュータ１０へのインストールは、例えば、仮想記憶領域形成プログラム１００及びＵＳＢ動作制限プログラム３００をＣＤ−ＲＯＭメディア（図示省略）に記憶しておき、そのＣＤ−ＲＯＭメディアをコンピュータ１０のＣＤ−ＲＯＭドライブ（図示省略）に挿入して、仮想記憶領域形成プログラム１００及びＵＳＢ動作制限プログラム３００のインストールプログラムを実行することで実現することができる。なお、ここではＨＤＤ１７にインストールする場合を示すが、ＲＯＭライターなどによって、ＲＯＭ１４に予めインストールしておいても好ましい。
【００２７】
ＵＳＢホストコントローラ１８は、ＵＳＢポート１９を制御し、ＵＳＢポート１９に接続されるＵＳＢメモリ２０とデータの送受信を行う。また、ＵＳＢホストコントローラ１８は、ＲＡＭ１６とＵＳＢメモリ２０との間でデータの送受信の制御を行う。
【００２８】
ＵＳＢメモリ用書込み防止アダプタ２００は、コンピュータ１０の上位プログラムからＵＳＢメモリ２０へデータの書込み等が行われる場合、その書込み情報を遮断して、コンピュータ１０の上位プログラムに書込みエラーコマンド（ステータス）等を返すように構成されている（詳細は後述）。
【００２９】
なお、コンピュータ１０には、表示装置１３（例えば、ＬＣＤなどの液晶表示装置）が接続されている。これにより、コンピュータ１０は、操作画面を表示し、またコンピュータ１０内部の処理状態を表示できるようになっている。
【００３０】
図１（ｂ）は、コンピュータ１０の主な機能構成を示したブロック図である。これらは、ＨＤＤ１７等に記憶されているオペレーティングシステムプログラム、仮想記憶領域形成プログラム１００、ＵＳＢ動作制限プログラム３００、ＵＳＢポート制御プログラム等がＣＰＵ１２で実行されることで実現される。
【００３１】
コンピュータ１０は、全体的な基本動作を行う上位プログラムとなるオペレーティングシステム３８と、記憶データの管理を行うファイルシステム３６と、ＲＡＭ１６に仮想記憶領域Ａを形成し、ＵＳＢメモリ２０等から読込んだデータを仮想記憶領域Ａに保存する仮想記憶領域形成部３４と、コンピュータ１０の上位プログラムとＵＳＢメモリ２０の間の通信の制限を行うＵＳＢ動作制限部３２と、ＵＳＢポート１９を制御するＵＳＢポート制御部３０を備える。オペレーティングシステム３８、ファイルシステム３６、ＵＳＢポート制御部３０は、ＣＰＵ１２が汎用のプログラムを実行することで実現されており、仮想記憶領域形成部３４は、仮想記憶領域形成プログラム１００を実行することにより実現され、ＵＳＢ動作制限部３２は、ＵＳＢ動作制限プログラム３００を実行することにより実現されている。
【００３２】
次に、図２を用いて、ＣＰＵ１２が仮想記憶領域形成プログラム１００を実行することによって実現される仮想記憶領域形成部３４の機能について説明する。図２は、仮想記憶領域形成部３４の機能の概略を示す図である。
【００３３】
仮想記憶領域形成部３４は、前述したように、ＲＡＭ１６に仮想記憶領域Ａを形成し、ＵＳＢメモリ２０等から読込んだデータをＲＡＭ１６の仮想記憶領域Ａに保存するだけでなく、読込んだデータを他の記憶装置に保存することもできる。
【００３４】
詳細に、仮想記憶領域形成部３４は、ディスクモード、ＲＡＭモード、ＲＡＭＲｅｇモードの３つのモード（機能）を備えている。ディスクモードは、コンピュータ１０が外部メモリから読込んだデータ（例えば、ＵＳＢメモリ２０から読込んだデータ）と、仮想記憶領域形成部３４のボリューム情報をＨＤＤ１７の任意の記憶領域（パーティション）に保存するモードである。したがって、仮想記憶領域形成部３４がディスクモードの場合、コンピュータ１０がＵＳＢメモリ２０から読込んだデータは、ＨＤＤ１７に保存され、保存されたデータはコンピュータ１０の電源を遮断しても残るようになっている。なお、仮想記憶領域形成部３４のボリューム情報とは、仮想記憶領域形成部３４の状態（モード情報）やデータを保存するパーティションの構成情報等である。
【００３５】
ＲＡＭモードは、コンピュータ１０がＵＳＢメモリ２０等から読込んだデータをＲＡＭ１６に形成した仮想記憶領域Ａに保存し、仮想記憶領域形成部３４のボリューム情報をＵＳＢメモリ２０の任意の記憶領域に保存するモードである。ＲＡＭモードでは、ＲＡＭ１６に形成された仮想記憶領域ＡがＨＤＤ１７の変わりとなり、コンピュータ１０がＵＳＢメモリ２０から読込んだデータは、ＨＤＤ１７に保存されずに、ＲＡＭ１６の仮想記憶領域Ａに保存される。したがって、仮想記憶領域形成部３４をＲＡＭモードに設定することによって、コンピュータ１０が、ＵＳＢメモリ２０やその他の外部メモリから読込んだデータは、ＲＡＭ１６の仮想記憶領域Ａに全て保存される。ＲＡＭ１６に保存されたデータは、コンピュータ１０の電源の遮断を契機として、ＲＡＭ１６の駆動電源の供給がなくなると完全に消去される。
【００３６】
ＲＡＭＲｅｇモードは、コンピュータ１０がＵＳＢメモリ２０等から読込んだデータをＲＡＭ１６に形成した仮想記憶領域Ａに保存し、仮想記憶領域形成部３４のボリューム情報をシステムのレジストリ（例えば、コンピュータ１０のＨＤＤ１７の所定の記憶領域）に保存するモードである。前述したＲＡＭモードと同じように、ＲＡＭＲｅｇモードでは、ＲＡＭ１６に形成された仮想記憶領域ＡがＨＤＤ１７の変わりとなり、コンピュータ１０がＵＳＢメモリ２０から読込んだデータは、ＨＤＤ１７に保存されずに、ＲＡＭ１６の仮想記憶領域Ａに保存される。したがって、仮想記憶領域形成部３４をＲＡＭＲｅｇモードに設定することによって、コンピュータ１０が、ＵＳＢメモリ２０やその他の外部メモリから読込んだデータは、ＲＡＭ１６の仮想記憶領域Ａに全て保存される。ＲＡＭ１６に保存されたデータは、コンピュータ１０の電源の遮断を契機として、ＲＡＭ１６の駆動電源の供給がなくなると完全に消去される。このＲＡＭＲｅｇモードは、ＵＳＢメモリやコンパクトフラッシュ（登録商標）のデータを保護する場合に用いられるモードである。
【００３７】
上述したように、仮想記憶領域形成部３４をＲＡＭモード又はＲＡＭＲｅｇモードに設定することによって、コンピュータ１０がＵＳＢメモリ２０や他の外部メモリから読込んだデータは、コンピュータ１０のＲＡＭ１６に全て保存される。したがって、コンピュータ１０が読込んだデータの中にコンピュータウィルスプログラムがあった場合、ＲＡＭ１６の仮想記憶領域Ａは、コンピュータウィルスに感染することになる。しかし、この場合、コンピュータ１０の電源を遮断することによって、ＲＡＭ１６内に保存されているコンピュータウィルスプログラムを含む全てのデータを消去することができる。例えば、ＵＳＢメモリ２０にコンピュータウィルスプログラムが潜入し、コンピュータ１０が、そのコンピュータウィルスプログラムを実行して感染した場合、コンピュータウィルスプログラムは、ＲＡＭ１６の仮想記憶領域Ａにインストールされる。この場合、感染したコンピュータ１０の電源を遮断することによって、ＲＡＭ１６の保存データは全て消去され、コンピュータ１０をウィルスに感染する前の状態に戻すことができる。
【００３８】
なお、上述した仮想記憶領域形成部３４の機能は、Ｗｉｎｄｏｗｓ（登録商標）ＸＰ  Ｅｍｂｅｄｄｅｄの機能の１つであるＥＷＦ（Ｅｎｈａｎｃｅｄ  Ｗｒｉｔｅ  Ｆｉｌｔｅｒ）を用いても同様の機能を実現できる。
【００３９】
次に、図３、４を用いて、ＣＰＵ１２がＵＳＢ動作制限プログラム３００を実行することによって実現されるＵＳＢ動作制限部３２の機能について説明する。ＵＳＢ動作制限部３２は、コンピュータ１０の上位プログラムがＵＳＢメモリ２０にデータを書込まないようにするメモリ書込防止処理と、ＵＳＢメモリ２０に記憶されているプログラムのオートラン（自動実行）を禁止するオートラン禁止処理を行う。図３は、ＵＳＢ動作制限部３２によるメモリ書込防止処理の動作の流れを示すフローチャートであり、図４は、ＵＳＢ動作制限部３２によるオートラン禁止処理の動作の流れを示すフローチャートである。
【００４０】
＜メモリ書込防止処理＞
【００４１】
まず、ステップＳ１０２では、コンピュータ１０の各種デバイスの初期設定を行う。具体的には、コンピュータ１０のＣＰＵ１２は、ＲＯＭ１４やＨＤＤ１７に記憶されている初期設定データを読み出し、ＲＡＭ１６やＵＳＢホストコントローラ１８の初期設定を行う。初期設定を行った後、ステップＳ１０４へ進む。
【００４２】
ステップＳ１０４では、ＵＳＢポート１９に接続されたＵＳＢ対応デバイス（以下、単にＵＳＢデバイスと言う）が、ＵＳＢマスストレージ（例えば、ＵＳＢメモリ２０）か否かを判定する。具体的には、ＵＳＢデバイスがＵＳＢポート１９に差し込まれると、ＵＳＢデバイスからＵＳＢデバイス情報（Ｕｓｂ  Ｄｅｖｉｃｅ  Ｄｅｓｃｒｉｐｔｏｒ）がコンピュータ１０の上位プログラムに送信される。コンピュータ１０の上位プログラムは、このＵＳＢデバイス情報の中からデバイス種別を特定するデバイスクラス（ｂＤＥＶＩＣＥ  ＣＬＡＳＳ）を認識し、差し込まれたＵＳＢデバイスの種別を判定する。コンピュータ１０の上位プログラムは、ＵＳＢデバイス情報に基づいて、ＵＳＢデバイスがＵＳＢマスストレージ（例えば、ＵＳＢメモリ２０）であると判定した場合、ステップＳ１０６に進む。なお、ＵＳＢマスストレージとしては、ＵＳＢメモリ２０の他に、ＵＳＢ−ＣＤ、ＵＳＢ−ＤＶＤ、ＵＳＢ−ＦＤ、ＵＳＢ−ＨＤＤ等がある。なお、ＵＳＢデバイスが非マスストレージである場合にはステップＳ１０８に進み、ＵＳＢポート１９を無効化する。ＵＳＢポート１９を無効にする方法はいくつかあるが、例えば、ＵＳＢデバイスのドライバの読込みを強制的に禁止したり、ＵＳＢデバイスのドライバの動作を停止したり又はＵＳＢポート１９を「Ｄｉｓａｂｌｅ」に設定することにより無効化できる。
【００４３】
ステップＳ１０６では、コンピュータ１０とＵＳＢマスストレージ（以下、ＵＳＢメモリ２０と言う）の間の通信を確立する。具体的には、コンピュータ１０の上位プログラムは、ＵＳＢメモリ２０からのデバイス情報を受信し、そのデバイス情報の中のサブクラス情報（例えば、サブクラスコード）を参照してマスストレージの詳細な特定を行う。そして、コンピュータ１０の上位プログラムは、特定したＵＳＢメモリ２０に応じたプロトコルを用いてＵＳＢメモリ２０と通信を行う。
【００４４】
ステップＳ１１０では、ＵＳＢメモリ２０を特定した後、コンピュータ１０の上位プログラムからＵＳＢメモリ２０に送信されるコマンド（以下、マスストレージコマンドと言うことがある）の種類を判定する。コンピュータ１０の上位プログラムからＵＳＢメモリ２０に送信されるコマンドが、ＵＳＢメモリ２０へのデータ書込み禁止又は許可を確認するモードセンスコマンド（Ｍｏｄｅ  Ｓｅｎｓｅ）であると判定した場合には、ステップＳ１１２に進む。また、送信されるコマンドがＵＳＢメモリ２０にデータを書込むライトコマンド（Ｗｒｉｔｅ）であると判定した場合には、ステップＳ１３０に進み、送信されるコマンドが上述したモードセンスコマンド又はライトコマンド以外のコマンド（例えば、ＵＳＢメモリ２０に記憶されているデータを読込むコマンド等）と判定した場合には、ステップＳ１２０に進む。なお、本実施形態では、上位プログラムから送信されるコマンドの種別をＵＳＢ動作制限部３２が判定して、そこに上記の特定のコマンドが含まれていないか監視するようになっている。つまり、以下に示す特別な応答を除き、ＵＳＢメモリ２０からの応答信号は、定常的に監視することは行わない。
【００４５】
ステップＳ１１２では、ＵＳＢ動作制限部３２が、モードセンスコマンドをＵＳＢメモリ２０にそのまま送信すると共に応答監視フラグを立てて、ステップＳ１１４に進んでＵＳＢメモリ２０から次の応答信号が送信されるのを待つ。
【００４６】
ステップＳ１１４では、ＵＳＢ動作制限部３２が、ＵＳＢメモリ２０から送信される情報であるモードパラメータリスト（Ｍｏｄｅ  Ｐａｒａｍｅｔｅｒ  Ｌｉｓｔ）を受信した場合、その中のモードパラメータヘッダー（Ｍｏｄｅ  Ｐａｒａｍｅｔｅｒ  Ｈｅａｄｅｒ）のデバイススペシフィク・パラメータ（Ｄｅｖｉｃｅ  Ｓｐｅｃｉｆｉｃ  Ｐａｒａｍｅｔｅｒ）のライトプロテクトビット（Ｗｒｉｔｅ  Ｐｒｏｔｅｃｔ  Ｂｉｔ）を強制的に１にセットしてから、ＵＳＢメモリ２０に情報の読込み及び書込みを実行するコンピュータ１０の上位プログラムにモードパラメータリストを提供する。
【００４７】
具体的に、モードセンスコマンドは、モードセンス（６）コマンドと、モードセンス（１０）コマンドの２つがある。コンピュータ１０の上位プログラムが、ＵＳＢメモリ２０からモードセンス（６）コマンドに応じたモードパラメータヘッダー（６）を受け付けた場合には、モードパラメータヘッダー（６）のバイト−２（Ｂｙｔｅ−２）のビット−７（Ｂｉt−7）を１にセットする。コンピュータ１０の上位プログラムは、ＵＳＢメモリ２０からモードセンス（１０）コマンドに応じたモードパラメータヘッダー（１０）のバイト−３（Ｂｙｔｅ−３）のビット７（Ｂｉｔ−７）を１にセットする。
【００４８】
上記により、ＵＳＢ動作制限部３２は、モードパラメータヘッダーを強制的に書き換えて書込み禁止フラグをセットして、コンピュータ１０の上位プログラムに提供することになる。つまり、その後、ステップＳ１４０に進んで、ＵＳＢメモリ２０の応答信号として、このモードパラメータヘッダーを上位プログラム（ファイルシステム３６）に提供する。これにより、コンピュータ１０のオペレーティングシステム３８は、ＵＳＢメモリ２０が書込み禁止メモリであると認識（誤認）する。
【００４９】
なお、ステップＳ１１０において、上位プログラムから送信されるマスストレージコマンドが通常動作のコマンド（監視対象外信号）である場合には、ステップＳ１２０に進んで、ＵＳＢ動作制限部３２は、コマンドをそのままＵＳＢメモリ２０に転送し、ステップＳ１２２において、ＵＳＢメモリ２０の応答信号を受信して、更にステップＳ１４０に進んで、この応答信号をそのままコンピュータ１０の上位プログラム（例えば、ファイルシステム３４）に転送する。
【００５０】
更に、ステップＳ１１０において、ＵＳＢ動作制限部３２は、マスストレージコマンドが特定のコマンド、具体的には、ライトコマンドであると判定した場合には、ステップＳ１３０に進む。ステップＳ１３０では、ＵＳＢ動作制限部３２は、ライトコマンドをＵＳＢメモリ２０に送信することなく、ライトコマンドを削除する。つまり、ＵＳＢ動作制限部３２は、ライトコマンドに基づくＵＳＢメモリ２０への書込みは行わない。更に、ステップＳ１３２において、ＵＳＢ動作制限部３２は、コンピュータ１０の上位プログラムであるファイルシステム３６に提供するためのライトエラーステータスを生成する。具体的には、上位プログラムの指令に基づいてＲＡＭ１６に一時的に保管されたマスストレージコマンドが、ＵＳＢ規格に基づくライトコマンド（Ｗｒｉｔｅ  Ｃｏｍｍａｎｄ）、フォーマットユニットコマンド（Ｆｏｒｍａｔ  Ｕｎｉｔ  Ｃｏｍｍａｎｄ）等のデータ書込みコマンドである場合、ＵＳＢ動作制限部３２は、ＵＳＢメモリ２０にこれらのマスストレージコマンドを送信しないでブロックする。なお、ＵＳＢ規格のライトコマンドの中には、ライト（６）コマンド、ライト（１０）コマンド、ライト（１２）コマンド等の種類があるが、これらはすべてコンピュータ１０からＵＳＢメモリ２０に対するデータ書込みコマンドを意味している。
【００５１】
このように、ライトコマンドを削除（停止）する一方、上位プログラムのファイルシステム３６やオペレーティングシステム３８に送信する為のライトプロテクトエラー（Ｗｒｉｔｅ  Ｐｒｏｔｅｃｔ  Ｅｒｒｏｒ）のステータス信号を生成する。その後、ステップＳ１４０に進んで、このライトプロテクトエラーステータス信号をコンピュータ１０の上位プログラムに提供する。
【００５２】
上記の構成によって、例えば、コンピュータ１０の上位プログラムであるオペレーティングシステム３８は、ＵＳＢメモリ２０へのデータ書込みが実行できないと誤認する。また、仮に、コンピュータ１０の上位プログラムがデータ書込みを行おうとしても、ＵＳＢ動作制限部３２により、強制的に書込みエラーとなって、ＵＳＢメモリ２０の情報を保護することができる。
【００５３】
したがって、上述したコンピュータウィルス感染防止機能付き外部メモリデータ読込装置は、ＵＳＢ動作制限部３２を有するとともに、ＵＳＢ動作制限部３２は、初期設定ステップ（ステップＳ１０２）と、コンピュータ１０に接続されたＵＳＢデバイスがＵＳＢマスストレージか否かを判定するマスストレージ判定ステップ（ステップＳ１０４）と、コンピュータ１０とＵＳＢメモリ２０の間の通信を確立する、通信確立制御ステップ（ステップＳ１０６）を行う。また、ＵＳＢ動作制限部３２は、コマンド判定ステップ（ステップＳ１１０）を更に行い、コマンド判定ステップ（ステップＳ１１０）により、マスストレージコマンドがモードセンスコマンドであると判定した場合、書込み防止フラグを設定し、コンピュータ１０の上位プログラムに提供する（ステップＳ１１４）。マスストレージコマンドが書込みコマンド（ライトコマンド）であると判定した場合、書込みエラーステータスを生成し、コンピュータ１０の上位プログラムに提供する（ステップＳ１３２）。また、ストレージコマンドがモードセンスコマンド及びライトコマンドのいずれのコマンドでもない通常動作コマンドの場合、そのマスストレージコマンドをそのままＵＳＢメモリ２０に送信し、ＵＳＢメモリ２０の応答をそのまま上位プログラムに提供する（ステップＳ１２２）。したがって、コンピュータ１０は、ＵＳＢ動作制限プログラム３００をインストールしてＵＳＢ動作制限部３２の機能を発揮することにより、コンピュータ１０の上位プログラムからＵＳＢメモリ２０へのデータの書込みを完全に防止し、コンピュータ１０に感染したコンピュータウィルスをＵＳＢメモリ２０へ感染するのを防ぐことができる。
【００５４】
＜オートラン禁止処理＞
【００５５】
オートラン禁止処理は、Ｗｉｎｄｏｗｓ（登録商標）のオートラン（自動実行）機能を無効にし、ＵＳＢマスストレージ（例えば、ＵＳＢメモリ２０）からコンピュータ１０へのコンピュータウィルスの感染を防止することができる。
【００５６】
まず、ステップＳ２０２では、ＵＳＢ動作制限部３２が、コンピュータ１０に接続されたＵＳＢデバイスがＵＳＢマスストレージか否かを判定する。具体的には、コンピュータ１０に接続されたＵＳＢデバイスから受信したＵＳＢデバイス情報のデバイスクラスを参照し、接続されたＵＳＢデバイスがＵＳＢマスストレージか否かを判定する。ＵＳＢマスストレージの場合はステップＳ２０４に進み、ＵＳＢマスストレージでない場合はステップＳ２０６に進む。
【００５７】
ステップＳ２０４では、接続されたＵＳＢデバイスがＵＳＢマスストレージである場合、ＵＳＢマスストレージとコンピュータ１０の間の通信を確立する。具体的には、コンピュータ１０の上位プログラムは、判定したマスストレージ用のプロトコルを用いて通信を行うことにより、ＵＳＢマスストレージと通信を確立することができる。ＵＳＢマスストレージとの通信を確立した後、ステップＳ２０８に進む。
【００５８】
一方、ステップＳ２０６では、ＵＳＢデバイスがＵＳＢマスストレージでない場合、ＵＳＢ動作制限部３２は、コンピュータ１０のＵＳＢポート１９の無効化を行う。これによって、ＵＳＢマスストレージ以外のデバイスにより、ＵＳＢポート１９を介してコンピュータ１０にウィルスが進入するのを防ぐことができる。ＵＳＢポート１９を無効にする方法はいくつかあるが、例えば、ＵＳＢデバイスのドライバの読込みを強制的に禁止したり、ＵＳＢデバイスのドライバの動作を停止したり又はＵＳＢポート１９を「Ｄｉｓａｂｌｅ」に設定することにより無効化できる。
【００５９】
ステップＳ２０８において、ＵＳＢ動作制限部３２は、ステップＳ２０２で認識したＵＳＢマスストレージがリムーバブルデバイスであるか否かを判定する。なお、リムーバブルデバイスとは、メディア（記憶媒体）を容易に取り外し（交換）できる記憶装置を言う。具体的には、ＵＳＢマスストレージから受信したＵＳＢデバイス情報を参照することにより、リムーバブルデバイスか否かを判定することができる。マスストレージがリムーバブルデバイスである場合は、ステップＳ２１０に進み、リムーバブルデバイスでない場合は、ステップＳ２２０に進む。
【００６０】
ステップＳ２１０では、リムーバブルデバイスにメディアがセットされているか否かを判定する。つまり、ＵＳＢポート制御部３０が、リムーバルブデバイスの状態を常時監視し、リムーバブルデバイスにメディアがセットされた場合は、ステップＳ２１２に進み、メディアがセットされていない場合は、メディアがセットされるまでステップＳ２１０の処理を繰り返す（つまり、メディアがセットされるまで監視する）。なお、リムーバブルデバイスにメディアがセットされた場合とは、リムーバブルデバイスにメディアが新規にセットされた場合及びメディアが交換されてセットされた場合を含むものである。
【００６１】
ステップＳ２１２では、ステップ２１０でリムーバブルデバイスにメディアがセットされたと判定した後、リムーバブルデバイスにセットされたメディアにオートラン実行コマンド（以下、「Ａｕｔｏｒｕｎ．Ｉｎｆ」ファイルと言う）があるか否かを判定する。「Ａｕｔｏｒｕｎ．Ｉｎｆ」ファイルがあると判定した場合、ステップＳ２１４に進む。一方、「Ａｕｔｏｒｕｎ．Ｉｎｆ」ファイルが無いと判定した場合は、ステップＳ２１６に進み、「Ａｕｔｏｒｕｎ．Ｉｎｆ」の自動実行を行わない状況によるコンピュータ１０の通常動作を行う。
【００６２】
ステップＳ２１４において、ＵＳＢ動作制限部３２は、メディアにオートラン実行コマンドが記憶されているにも関わらず、「Ａｕｔｏｒｕｎ．Ｉｎｆ」ファイルがない旨の信号（疑似データ）を上位のファイルシステム３４に提供する。この様に、疑似データを送信することにより、コンピュータ１０の上位プログラムに「Ａｕｔｏｒｕｎ．Ｉｎｆ」ファイルが存在しないと誤認させ、そのまま、ステップＳ２１６に進んで通常動作を行う。
【００６３】
ステップＳ２２０で、ＵＳＢ動作制限部３２は、リムーバブルデバイスでないＵＳＢマスストレージ（例えば、ＵＳＢメモリ２０やハードディスク等）に「Ａｕｔｏｒｕｎ．Ｉｎｆ」ファイルがあるか否かを判定する。「Ａｕｔｏｒｕｎ．Ｉｎｆ」ファイルがあると判定した場合、ステップＳ２２２に進む。また、「Ａｕｔｏｒｕｎ．Ｉｎｆ」ファイルが無いと判定した場合は、ステップＳ２２４に進み、「Ａｕｔｏｒｕｎ．Ｉｎｆ」の自動実行を行わない状況によるコンピュータ１０の通常動作を行う。
【００６４】
ステップＳ２２２では、ＵＳＢマスストレージにオートラン自動実行コマンドが存在するにも関わらず、「Ａｕｔｏｒｕｎ．Ｉｎｆ」ファイルが無い旨の信号（疑似データ）をコンピュータ１０の上位プログラムであるファイルシステム３４に提供する。つまり、「Ａｕｔｏｒｕｎ．Ｉｎｆ」ファイルが無い旨の疑似データを上位プログラムに送信することにより、上位プログラムに「Ａｕｔｏｒｕｎ．Ｉｎｆ」ファイルが存在しないと誤認させ、そのまま、ステップＳ２２４に進んで通常動作を行う。
【００６５】
なお、上述したＵＳＢ動作制限部３２により、リムーバブルデバイスにセットされたメディアに「Ａｕｔｏｒｕｎ．Ｉｎｆ」ファイルがあるか否かを判定するステップ（ステップＳ２１２又はステップＳ２２０）をオートラン実行コマンド判定手段と言う。また、ＵＳＢ動作制限部３２により、「Ａｕｔｏｒｕｎ．Ｉｎｆ」ファイルがない旨の信号（疑似データ）を上位のファイルシステム３４に提供するステップ（ステップＳ２１４又はステップＳ２２２）を疑似データ送信手段と言い、上述したステップＳ２０２〜Ｓ２２４のオートラン禁止処理をオートラン禁止手段と言う。
【００６６】
＜ＵＳＢメモリ用書込み防止アダプタ２００＞
【００６７】
次に、図５を用いて、第１実施形態に係るコンピュータウィルス感染防止機能付き外部メモリデータ読込装置１のＵＳＢメモリ用書込み防止アダプタ２００について説明する。ＵＳＢメモリ用書込み防止アダプタ２００は、上述したコンピュータ１０によって実行されるＵＳＢ動作制限部３２と同様の機能を、ＵＳＢメモリ２０に装着されるＵＳＢアダプタに搭載したところに特徴がある。同図は、ＵＳＢメモリ用書込み防止アダプタ装置２００と、コンピュータ１０と、ＵＳＢメモリ２０の構成を示すブロック図である。
【００６８】
ＵＳＢメモリ用書込み防止アダプタ２００は、ＣＰＵ２１０と、ＵＳＢホストコントローラ２２０と、ＵＳＢデバイスコントローラ２３０と、ＲＯＭ２４０と、ＲＡＭ２５０と、メモリ側ＵＳＢコネクタ２６０と、デバイス側ＵＳＢコネクタ２７０と、を備えて構成さえている。なお、ＣＰＵ２１０、ＵＳＢホストコントローラ２２０、ＵＳＢデバイスコントローラ２３０、ＲＯＭ２４０、ＲＡＭ２５０、メモリ側ＵＳＢコネクタ２６０、デバイス側ＵＳＢコネクタ２７０は、アドレスバス（図示省略）やデータバス（同じく図示省略）に接続され、ＣＰＵ２１０の指令に基づいて、各デバイス間でメモリアドレスやデータ等の送受信を行う。また、前述したＵＳＢ動作制限プログラム３００がＲＯＭ２４０に保存され、ＣＰＵ２１０により実行されることで、メモリ書込防止処理やオートラン禁止処理が行われる。
【００６９】
ＣＰＵ２１０は、中央演算処理装置であり、ＵＳＢメモリ用書込み防止アダプタ２００の全体制御等を行う。具体的には、ＵＳＢメモリ２０が接続されるコンピュータ１０の要求信号に対して、ＵＳＢメモリ２０からデータを読込んだり、ＵＳＢホストコントローラ２２０及びＵＳＢデバイスコントローラ２３０の制御などを行う。
【００７０】
また、ＣＰＵ２１０は、コンピュータ１０から受信したＵＳＢメモリ２０に対するコマンドを判断する。そして、判断したコマンドが、モードセンスコマンドである場合には、コンピュータ１０に送信する信号に書込み禁止フラグを設定したり、又はＵＳＢメモリ２０への書込みコマンド（ライトコマンド）である場合には、コンピュータ１０から受信した書込みコマンドを削除するとともに、コンピュータ１０に書込みエラーコマンドを送信する（詳細は後述）。
【００７１】
ＵＳＢホストコントローラ２２０は、ＣＰＵ２１０とＵＳＢメモリ２０との間の通信制御を行うコントローラ用のＩＣチップである。具体的には、ＵＳＢホストコントローラ２２０は、ＣＰＵ２１０がＵＳＢメモリ２０とデータ通信を行うために、ＵＳＢメモリ２０とＵＳＢ規格に基づいたＵＳＢプロトコルの送受信を行い、通信を行うための制御を行う。
【００７２】
ＵＳＢデバイスコントローラ２３０は、ＣＰＵ２１０とコンピュータ１０との間の通信制御を行うコントローラ用のＩＣチップである。具体的には、ＵＳＢデバイスコントローラ２３０は、コンピュータ１０との通信を行うために、コンピュータ１０とＵＳＢ規格に基づいたＵＳＢプロトコルの送受信を行い、通信を行うための制御を行う。
【００７３】
なお、本実施形態では、前述したＵＳＢ規格は、ＵＳＢ２．０に基づく標準規格に用いることが好適であるが、勿論、これに限定されるものではい。例えば、ＵＳＢ１．１又はＵＳＢ３．０その他のＵＳＢ規格でも好ましい。
【００７４】
ＲＯＭ２４０は、読み出し専用メモリ（ＲＥＡＤ  ＯＮＬＹ  ＭＥＭＯＲＹ）である。ＲＯＭ２４０は、ＵＳＢメモリ用書込み防止アダプタ２００の基本動作を行うファームウェア（プログラム）や、ＵＳＢホストコントローラ２２０やＵＳＢデバイスコントローラ２３０の初期設定値などを記憶している。また、ＵＳＢ動作制限プログラム３００が記憶されている。これによって、ＣＰＵ２１０は、任意のタイミングでＲＯＭ２４０から必要なプログラムを読み込んで実行することができる。
【００７５】
ＲＡＭ２５０は、随時アクセスが可能なメモリ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。ＲＡＭ２５０は、ＣＰＵ２１０の作業領域として機能するとともに、ＣＰＵ２１０の指示に応じて、ＵＳＢメモリ２０から読み込んだデータを一時的に記憶するのに使用される。また、ＲＡＭ２５０は、コンピュータ１０やＵＳＢメモリ２０から受け取ったコマンド（例えば、モードセンスコマンドやライトコマンド等）を一時的に記憶する。
【００７６】
メモリ側ＵＳＢコネクタ２６０は、ＵＳＢメモリ２０に設けられているＵＳＢプラグコネクタ２２に係合することができるＵＳＢレセプタクルコネクタである。なお、本実施形態では、メモリ側ＵＳＢコネクタ２６０は、Ａ型端子のＵＳＢレセプタクルコネクタを用いているが、Ａ型端子に限定されるものではなく、例えば、ミニＵＳＢ端子その他の端子形状でも好ましい。
【００７７】
デバイス側ＵＳＢコネクタ２７０は、コンピュータ１０に設けられているＵＳＢポート１９に係合することができるＵＳＢプラグコネクタである。なお、デバイス側ＵＳＢコネクタ２７０は、本実施形態では、Ａ型端子のＵＳＢプラグコネクタを用いているが、Ａ型端子に限定されるものではなく、例えば、ミニＵＳＢ端子その他の端子形状でも好ましい。
【００７８】
なお、ＵＳＢメモリ２０は、ＵＳＢプラグコネクタ２２を備えるフラッシュメモリである。
【００７９】
次に、図６を用いて、ＵＳＢメモリ用書込み防止アダプタ２００の基本動作の流れについてフローチャートを用いて説明する。ＵＳＢメモリ用書込み防止アダプタ２００の基本動作は、ＵＳＢ動作制限プログラム３００を実行することで実施されるメモリ書込防止処理である。
【００８０】
＜ＵＳＢメモリ用書込み防止アダプタ２００のメモリ書込防止処理＞
【００８１】
まず、ステップＳ３０２では、ＣＰＵ２１０は、ＵＳＢメモリ用書込み防止アダプタ２００がコンピュータ１０に差し込まれたか否かを判定する。ＵＳＢメモリ用書込み防止アダプタ２００がコンピュータ１０に差し込まれたと判定された場合には、ステップＳ３０４に進み、差し込まれていないと判定した場合には、処理を終了する。なお、ＵＳＢメモリ用書込み防止アダプタ２００がコンピュータ１０に差し込まれると、ＵＳＢメモリ用書込み防止アダプタ２００は、コンピュータ１０から電源を供給され、以下に説明する機能を発揮できるようになっている。
【００８２】
ステップＳ３０４では、ＣＰＵ２１０は、各種デバイスの初期設定を行う。具体的には、ＣＰＵ２１０は、ＲＯＭ２４０からファームウェアを読み込んで実行するとともに、ＲＯＭ２４０から各種初期データを読み込み、ＵＳＢホストコントローラ２２０及びＵＳＢデバイスコントローラ２３０の初期設定を行う。なお、この段階において、ＣＰＵ２１０は、各種初期設定を行うのみで、コンピュータ１０やＵＳＢメモリ２０とのＵＳＢ通信は行わない。これにより、コンピュータ１０では、何ら特別な制御が行われないようになっており、単に、コンピュータ１０のＵＳＢポート１９が、メモリ側ＵＳＢコネクタ２６０まで延長されたに過ぎない状態となっている。
【００８３】
ステップＳ３０６では、ＣＰＵ２１０は、ＵＳＢメモリ２０が差し込まれているか否かを判定する。ステップＳ３０６において、ＣＰＵ２１０は、ＵＳＢメモリ２０がＵＳＢメモリ用書込み防止アダプタ２００に差し込まれていると判定した場合には、ステップＳ３０８に進んで、ファームウェアに基づいてコンピュータ１０とＵＳＢメモリ２０の間のＵＳＢ通信を確立するための制御を行う。
【００８４】
具体的に、ステップＳ３０８において、ＣＰＵ２１０は、ＵＳＢデバイスコントローラ２３０をアクティブにし、コンピュータ１０から受信したディスクリプタ送信要求を、ＵＳＢホストコントローラ２２０を介してＵＳＢメモリ２０に送信する。ここで、ディスクリプタとは、コンピュータ１０がＵＳＢメモリ２０を正しく認識するための、各ＵＳＢデバイスが有するデータである。更にここでＣＰＵ２１０は、ＵＳＢメモリ２０から送信されるディスクリプタ情報を、ＵＳＢホストコントローラ２２０を介して受信し、ＵＳＢデバイスコントローラ２３０を介してコンピュータ１０に送信する。なお、ステップＳ３０６において、ＣＰＵ２１０は、ＵＳＢメモリ２０が差し込まれていないと判定した場合には、ＵＳＢメモリ２０が差し込まれるまで待つ。
【００８５】
次に、ステップＳ３１０において、ＣＰＵ２１０は、コンピュータ１０から受信したマスストレージコマンドやデータ、又はＵＳＢメモリ２０から受信したデータ等を受信し、コンピュータ１０からどのような種類のマスストレージコマンドが送られてきたか、又はＵＳＢメモリ２０からどのような応答があったかを判別（コマンド判定手段と言うことがある）する。また、これらの信号の中に、特別な信号が通過しないか否かを判断する。なお、本実施形態では、コンピュータ１０から送信されるマスストレージコマンドの種類を判別して、そこに特別なコマンドが含まれていないか監視するようにしている。つまり、以下に示す特別な応答を除き、ＵＳＢメモリ２０からの応答信号は、定常的に監視することは行わない。
【００８６】
ステップＳ３１０では、ＣＰＵ２１０が、マスストレージコマンドが特定のコマンド、具体的に本実施形態ではモードセンス（ＭＯＤＥ  ＳＥＮＳＥ）コマンドであると判断した場合には、ステップＳ３１２に進んで、そのコマンドをＵＳＢメモリ２０にそのまま送信すると共に応答監視フラグを立てて、ステップ３１４に進んでＵＳＢメモリ２０から次の応答信号が送信されるのを待機する。
【００８７】
ステップ３１４において、ＣＰＵ２１０は、ＵＳＢメモリ２０から送信される情報であるモードパラメータリスト（ＭＯＤＥ  ＰＡＲＡＭＥＴＥＲ  ＬＩＳＴ）を受信した場合、その中のモードパラメータヘッダー（ＭＯＤＥ  ＰＡＲＡＭＥＴＥＲ  ＨＥＡＤＥＲ）のデバイススペシフィック・パラメータ（ＤＥＶＩＣＥ  ＳＰＥＣＩＦＩＣ  ＰＡＲＡＭＥＴＥＲ）のライトプロテクトビット（Ｗｒｉtｅ  Ｐｒｏｔｅｃｔ  Ｂｉｔ）を強制的に１にセットする。
【００８８】
具体的にモードセンスコマンドは、モードセンス（６）コマンドと、モードセンス（１０）コマンドの２つがある。ＣＰＵ２１０が、ＵＳＢメモリ２０からモードセンス（６）コマンドに応じたモードパラメータヘッダー（６）を受け付けた場合には、モードパラメータヘッダー（６）のバイト−２（Ｂｙｔe−２）のビット−７（Ｂｉｔ−７）を１にセットする。ＣＰＵ２１０が、ＵＳＢメモリ２０からモードセンス（１０）コマンドに応じたモードパラメータヘッダー（１０）を受け付けた場合には、モードパラメータヘッダー（１０）のバイト−３（Ｂｙｔe−３）のビット−７（Ｂｉｔ−７）を１にセットする。
【００８９】
上記により、ＣＰＵ２１０は、モードパラメータヘッダーを強制的に書き換えて書込み禁止フラグをセットすることになる。その後、ステップ３４０に進んで、ＵＳＢメモリ２０の応答信号として、このモードパラメータヘッダーをコンピュータ１０に送信する。これにより、コンピュータ１０は、ＵＳＢメモリ２０が書込み禁止のメモリであると認識（誤認）する。
【００９０】
なお、ステップＳ３１０において、コンピュータ１０から送信されるマスストレージコマンドが通常のコマンド（監視対象外の信号）の場合は、ステップＳ３２０に進んで、ＵＳＢメモリ２０の応答信号をそのままコンピュータ１０に転送し、ステップＳ３２２においてＵＳＢメモリ２０の応答信号を受信して、更にステップＳ３４０に進んで、この応答信号をそのままコンピュータ１０に転送する。これにより、通常のコマンドにおける処理速度の低下を極力抑制することが可能となっている。例えばステップＳ３１０において、ＣＰＵ２１０は、コンピュータ１０から受信したコマンドが、データ読み込みコマンドである場合は、ステップＳ３２０に進んでそのデータ読み込みコマンドをＵＳＢメモリ２０に送信する。更にステップＳ３２２において、ＣＰＵ２１０は、ＵＳＢメモリ２０から対応するデータを受信して、ステップＳ３４０で、コンピュータ１０にデータを転送して処理を終了する。
【００９１】
更にステップＳ３１０で、ＣＰＵ２１０が、マスストレージコマンドが特定のコマンド、具体的に本実施形態ではデータ書込みコマンド（ライトコマンド）であると判断した場合には、ステップＳ３３０に進む。このステップＳ３３０では、ＣＰＵ２１０は、データ書込みコマンドをＵＳＢメモリ２０に送信することなく、データ書込みコマンドを削除する。つまり、ＣＰＵ２１０は、データ書込みコマンドに基づく、ＵＳＢメモリ２０への書込みは行わない。更にステップＳ３３２において、ＣＰＵ２１０は、コンピュータ１０に送信するための書込みエラーコマンドを生成する。具体的に、ＣＰＵ２１０は、コンピュータ１０から送信されてＲＡＭ２５０に一時的に保管されたコマンドが、ＵＳＢ規格に基づくライトコマンド（Ｗｒｉtｅ  Ｃｍｍａｎｄ）、フォーマットユニットコマンド（Ｆｏｒｍａｔ  Ｕｎｉｔ  Ｃｏｍｍａｎｄ）等のデータ書込みコマンドである場合、ＵＳＢメモリ２０にこれらのマスストレージコマンドを送信しない。なお、ＵＳＢ規格のライトコマンドの中には、ライト（６）コマンド、ライト（１０）コマンド、ライト（１２）コマンド等の種類があるが、これらはすべてコンピュータ１０からＵＳＢメモリ２０に対するデータ書込みコマンドを意味している。
【００９２】
このようにデータ書込みコマンドを削除（停止）する一方、ＣＰＵ２１０は、コンピュータ１０に送信するためのライトプロテクトエラー（Ｗｒｉｔｅ  Ｐｒｏｔｅｃｔ  Ｅｒｒｏｒ）のステータス信号を生成する。その後、ステップＳ３４０に進んで、このライトプロテクトエラーステータス信号をコンピュータ１０に送信する。
【００９３】
上記の構成によって、コンピュータ１０は、ＵＳＢメモリ２０へのデータ書込みが行われないことを認識する。また、仮に、コンピュータ２１０がデータ書込みを行おうとしても、強制的に書込みエラーとなって、ＵＳＢメモリ２０の情報を保護することが可能となる。
【００９４】
また、本実施形態では、ステップＳ３１４において、ＣＰＵ２１０が、ＵＳＢメモリ２０からの受信信号（プロトコル）中のフラグのみを書き換える場合を示したが、ＣＰＵ２１０が自らからコンピュータ１０への応答信号を生成して、ＵＳＢメモリ２０が書込み禁止状態であることをコンピュータ１０に誤認させるようにしてもよい。
【００９５】
以上の処理を、ＵＳＢメモリ２０又はＵＳＢメモリ用書込み防止アダプタ２００がコンピュータ１０から抜かれるまで繰り返す。
【００９６】
なお、上述したＵＳＢメモリ用書込み防止アダプタ２００にオートラン禁止手段（図４に示す処理）を設けても好ましい。
【００９７】
上述したように、本実施形態のコンピュータウィルス感染防止機能付き外部メモリデータ読込装置１は、コンピュータウィルス感染防止機能付き外部メモリデータ読込装置１の全体制御を行うコンピュータ１０と、外部メモリ（例えば、ＵＳＢメモリ２０）の間に接続され、コンピュータ１０による外部メモリへのデータの書込みを防止するメモリ書込防止手段（例えば、メモリ書込防止処理又はＵＳＢメモリ用書込み防止アダプタ２００）と、を備えている。これによって、コンピュータ１０によるＵＳＢメモリ２０へのデータ書込みが強制的に禁止される。したがって、コンピュータウィルス感染防止機能付き外部メモリデータ読込装置１は、コンピュータ１０に感染したコンピュータウィルスプログラムを含むデータを、コンピュータ１０に接続されたＵＳＢメモリ２０に感染させることを確実に防止することができる。
【００９８】
また、コンピュータ１０は、コンピュータ１０に供給される電源の遮断を契機として、自身に記憶しているデータが消去される揮発性メモリ（例えば、ＲＡＭ１６）と、ＲＡＭ１６の記憶領域に仮想記憶領域Ａを形成する仮想記憶領域形成手段３４と、を備え、仮想記憶領域形成手段３４は、コンピュータ１０がＵＳＢメモリ２０から読込んだデータを、ＲＡＭ１６の仮想記憶領域Ａに保存する。これによって、コンピュータウィルスプログラムを実行することにより、コンピュータウィルスは、ＲＡＭ１６にインストールされる。したがって、コンピュータ１０の電源を遮断することによって、ＲＡＭ１６に保存されたコンピュータウィルスを含む全データを消去することができ、コンピュータ１０をコンピュータウィルスに感染する前の状態に容易に戻すことができる。
【００９９】
なお、前述のコンピュータウィルス感染防止機能付き外部メモリデータ読込装置１では、コンピュータ１０に接続するマスストレージをＵＳＢメモリ２０としたが、勿論、これに限定されるものではない。例えば、カード型のフラッシュメモリ（メモリカード）を用いても好ましく、この場合、各メモリカードからコンピュータのＵＳＢ接続に変換するための変換アダプタに上記のＵＳＢメモリ用書込み防止アダプタ２００の機能を設けることが好ましい。
【０１００】
上述したように、本実施形態に係るコンピュータウィルス感染防止機能付き外部メモリデータ読込装置１は、ＵＳＢメモリ２０への書込みを防止するＵＳＢメモリ用書込み防止アダプタ２００（メモリカードの場合は、同アダプタ２００の機能を搭載したＵＳＢ変換アダプタ）を有する構成にしている。したがって、キオスクシステムがコンピュータウィルスに感染した場合でも、利用者のＵＳＢメモリ２０やメモリカードへの感染を確実に防止し、感染の拡大を防ぐことができる。また、キオスクシステムへのコンピュータウィルスの感染を検知した場合は、キオスクシステムの電源を一旦遮断した後、再投入することによって、コンピュータウィルス感染前の正常なシステム状態に戻すことができる。
【０１０１】
また、メモリ書込防止手段であるＵＳＢメモリ用書込み防止アダプタ２００は、コンピュータ１０から受信するコマンドの種別を判定するコマンド判定手段（ステップＳ１１０のコマンド判定ステップ）をさらに備えている。したがって、ＵＳＢメモリ用書込み防止アダプタ２００は、コマンド判定手段により判定したコマンドが、コンピュータ１０からＵＳＢメモリ２０へのデータ書込みの許可又は禁止の確認を要求するモードセンスコマンドである場合、書込み禁止フラグを強制的にセットして、コンピュータ１０へ送信する。また、コマンド判定手段により判定したコマンドが、コンピュータ１０からＵＳＢメモリ２０へのデータ書込みコマンド（ライトコマンド）である場合、データ書込みコマンドを削除するとともに、書込みエラーコマンドを生成してコンピュータ１０に送信する。コンピュータ１０は、ＵＳＢメモリ２０が書込み禁止のデバイスであると誤認し、ＵＳＢメモリ２０へのデータ書込みを行わない。したがって、コンピュータ１０からＵＳＢメモリ２０へのデータ書込みが完全に防止でき、例えば、コンピュータ１０にコンピュータウィルスが感染していた場合でも、コンピュータウィルスがＵＳＢメモリ２０へ書込まれて、感染するのを防止することができる。
【０１０２】
コンピュータウィルス感染防止機能付き外部メモリデータ読込方法は、ＵＳＢマスストレージにオートラン実行コマンドがあるか否かを判定するオートラン実行コマンド判定ステップ（ステップＳ２１２、Ｓ２２０）と、オートラン実行コマンド判定ステップによって、オートラン実行コマンド（「Ａｕｔｏｒｕｎ．Ｉｎｆ」ファイル）があると判定した場合、コンピュータ１０の上位プログラムにオートラン実行コマンドが存在しないという疑似データを送信する疑似データ送信ステップ（ステップＳ２１４、Ｓ２２２）を備えている。これによって、コンピュータ１０は、ＵＳＢマスストレージ（例えば、ＵＳＢメモリ２０）にオートラン実行コマンドがある場合でも、オートラン実行コマンドがないと認識（誤認）し、ＵＳＢメモリ２０のオートランファイルの実行を行わない。したがって、ＵＳＢメモリ２０にオートラン実行コマンドが設定されたコンピュータウィルスが保存されている場合でも、コンピュータ１０は、オートランを実行しないので、コンピュータウィルスに感染するのを防止することができる。
【０１０３】
また、コンピュータウィルス感染防止機能付き外部メモリデータ読込方法は、コンピュータ１０で実行される上位プログラムから外部メモリ（ＵＳＢメモリ２０）へ送信されたコマンドの種別を判定し（コマンド判定ステップＳ１１０）、コマンドが外部メモリへの書込みの禁止又は許可の確認を求めるモードセンスコマンドである場合、上位プログラムに書込み禁止フラグを設定し、外部メモリにオートラン実行コマンドがあるか否かを判定し、オートラン実行コマンドがあると判定した場合、コンピュータ１０の上位プログラムにオートラン実行コマンドがないという疑似データを送信し（疑似データ送信ステップＳ２１４又はＳ２２２）、上位プログラムは、コンピュータ１０が読込んだ外部メモリのデータをコンピュータ１０の揮発性メモリ（例えば、ＲＡＭ１６）に仮想的に形成された仮想記憶領域Ａに記憶する。したがって、コンピュータ１０の上位プログラムからＵＳＢメモリ２０へのデータ書込みが完全に防止でき、例えば、コンピュータ１０にコンピュータウィルスが感染していた場合でも、コンピュータウィルスがＵＳＢメモリ２０へ書込まれて、ウィルスに感染するのを防止することができる。また、反対に、ＵＳＢメモリ２０にコンピュータウィルスが感染していた場合、オートランの実行を無効化することによって、ＵＳＢメモリ２０からコンピュータ１０へコンピュータウィルスが感染するのを防止することができる。
【０１０４】
尚、本発明のコンピュータウィルス感染防止システム及びコンピュータウィルス感染防止方法は、上記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【産業上の利用可能性】
【０１０５】
本発明のコンピュータウィルス感染防止機能付き外部メモリデータ読込装置及びコンピュータウィルス感染防止機能付き外部メモリデータ読込方法は、コンピュータウィルスの感染や拡散を抑制し、外部メモリデータを読込む装置等の分野に広く利用することができる。
【符号の説明】
【０１０６】
１        コンピュータウィルス感染防止機能付き外部メモリデータ読込装置
１０      コンピュータ
１２      ＣＰＵ
１４      ＲＯＭ
１６      ＲＡＭ
１７      ＨＤＤ
１８      ＵＳＢホストコントローラ
１９      ＵＳＢポート
２０      ＵＳＢメモリ
３０      ＵＳＢポート制御部
３２      ＵＳＢ動作制限部
３４      仮想記憶領域形成部
３６      ファイルシステム
３８      オペレーションシステム
Ａ        仮想記憶領域
【図１】
2010262335.tif 000003
【図２】
2010262335.tif 000004
【図３】
2010262335.tif 000005
【図４】
2010262335.tif 000006
【図５】
2010262335.tif 000007
【図６】
2010262335.tif 000008