説明

コンピュータウィルス感染防止機能付き外部メモリデータ読込装置及びコンピュータウィルス感染防止機能付き外部メモリデータ読込方法

【課題】外部メモリデータ読込装置を備えるコンピュータにおいて、従来のOSやアプリケーションソフトウェアを使用したままで、コンピュータウィルスの感染や拡散を抑制する。
【解決手段】システム全体の制御を行うコンピュータ10と、コンピュータ10と外部メモリ20の間に接続され、コンピュータ10による外部メモリ20へのデータ書込みを防止するUSBメモリ用書込防止アダプタ200と、を備え、コンピュータ10は、コンピュータ10に供給される電源の遮断を契機として、自身に記憶しているデータが消去される揮発性メモリ16と、揮発性メモリ16の記憶領域に仮想記憶領域Aを形成する仮想記憶領域形成手段34と、を備え、仮想記憶領域形成手段34は、コンピュータ10が外部メモリ20から読込んだデータを、揮発性メモリ16の仮想記憶領域Aに保存する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータウィルスに感染するのを防止し、又は他のコンピュータや外部メモリへコンピュータウィルスを感染させるのを防止しつつ、外部メモリのデータを安全に読み込むことができる、コンピュータウィルス感染防止機能付き外部メモリデータ読込装置及びコンピュータウィルス感染防止機能付き外部メモリデータ読込方法に関する。
【背景技術】
【0002】
従来、コンピュータウィルスによるコンピュータシステムの故障やマスストレージに保存されているデータの書換えなどの被害が問題になっている。また、近年では、デジタルカメラなどで撮影した画像データを手軽にプリントできる、フォト・キオスク・システム(Photo KIOSK System)が公共施設やコンビニエンスストアなど、多くの場所に設置されている。このような、フォト・キオスク・システム(以下、省略してキオスクシステムと言う場合がある)では、不特定の利用者が自己の保有するUSBメモリやメモリカードなどに画像データを保存し、店頭に設置されているキオスクシステムに自由に接続して利用できるシステムである。したがって、USBメモリやメモリカードにコンピュータウィルスが混入していた場合、接続されたキオスクシステムにコンピュータウィルスが感染してしまう可能性があるという問題があった。
【0003】
このような、コンピュータウィルスの感染を防止するため、キオスクシステムに予めウィルス対策用ソフトウェアをインストールし、そのウィルス対策用ソフトウェアがコンピュータウィルスを検出した場合に、検出したコンピュータウィルス(プログラム)を削除したり、コンピュータウィルスプログラムを実行しないようにする対策がとられている。
【0004】
また、コンピュータウィルスプログラムを実行しない対策として、例えば、Windows(登録商標)が有する機能の一つであるオートラン(自動実行)機能を無効にする方法がある。オートラン機能の無効化は、Windows(登録商標)の機能設定により容易に実行できる。
【0005】
また、キオスクシステムの多くは、一般に普及しているWindows(登録商標)VISTA、XP、2000などをOS(Operating System)として用いているが、コンピュータウィルスの多くは、これらのOSに対応できるように作られている。そこで、キオスクシステムのOSをWindows(登録商標)ではなく、例えば、Linux等で制作する方法も、コンピュータウィルス対策として有効な手段である。
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上述したように、ウィルス対策用ソフトウェアをキオスクシステムにインストールして感染を防止するためには、新しいコンピュータウィルスに対応するため、ウィルス対策用ソフトウェアの定期的な更新が必要であり、特に最新のコンピュータウィルスには対応できないという問題がある。
【0007】
また、Windows(登録商標)の設定で、オートラン機能を無効にする方法は、Windows(登録商標)の有する一般的機能設定であり、すでに世の中で広く知られている機能(公開されている情報)であるため、その無効設定を解除するような方法でオートランが実行され、コンピュータウィルスを感染させられる可能性もある。
【0008】
また、キオスクシステムのOSを、対応するコンピュータウィルスが少ない、LinuxなどのOSで制作する場合、キオスクシステムの全てのアプリケーションソフトウェアをLinux用に作り直さなければならず、多くの時間と費用がかかってしまうという問題がある。
【0009】
また、近年のキオスクシステムは、インターネットなどのネットワーク回線を介してホストコンピュータに接続し、利用者が入力した識別情報を認識することで、利用者ごとに様々なサービスを提供する機能を有している。しかし、このようなキオスクシステムは、利用者への高機能なサービスの提供というメリットに相反して、ネットワーク回線を介してコンピュータウィルスに感染する可能性が高くなるという問題がある。
【0010】
また、前述したように、キオスクシステムは、不特定の利用者が自由に利用できるシステムであるため、利用者がUSBメモリ等を介して、意図的にキオスクシステムにコンピュータウィルスを感染させてしまう可能性があるという問題があった。
【0011】
本発明は、斯かる実情に鑑み、従来のOSやアプリケーションソフトウェアは、そのまま使用でき、コンピュータウィルスの感染や拡散を抑制できる、コンピュータウィルス感染防止機能付き外部メモリデータ読込装置及びコンピュータウィルス感染防止機能付き外部メモリデータ読込方法を提供しようとするものである。
【課題を解決するための手段】
【0012】
本発明者の鋭意研究によって、上記目的は下記の手段によって達成される。
【0013】
(1)本発明は、システム全体の制御を行うコンピュータと、該コンピュータと外部メモリの間に接続され、前記コンピュータによる前記外部メモリへのデータ書込みを防止するメモリ書込防止手段と、を備え、前記コンピュータは、該コンピュータに供給される電源の遮断を契機として、自身に記憶しているデータが消去される揮発性メモリと、該揮発性メモリの記憶領域に仮想記憶領域を形成する仮想記憶領域形成手段と、を備え、前記仮想記憶領域形成手段は、前記コンピュータが前記外部メモリから読込んだデータを、前記揮発性メモリの前記仮想記憶領域に保存することを特徴とする、コンピュータウィルス感染防止機能付き外部メモリデータ読込装置である。
【0014】
(2)また、本発明は、前記メモリ書込防止手段は、前記コンピュータから受け付けたコマンドの種別を判定するコマンド判定手段を備え、前記コマンド判定手段が、前記外部メモリへデータ書込みの禁止又は許可の確認を求めるモードセンスコマンドを、前記コンピュータから受け付けたと判定した場合、前記コンピュータに前記外部メモリへの書込禁止フラグを送信することを特徴とする、(1)に記載のコンピュータウィルス感染防止機能付き外部メモリデータ読込装置である。
【0015】
(3)また、本発明は、前記コンピュータは、該コンピュータに接続された前記外部メモリに記憶されているプログラムの自動実行を防止するオートラン禁止手段をさらに備え、前記オートラン禁止手段は、前記コンピュータに接続された前記外部メモリにオートラン実行コマンドがあるか否かを判定するオートラン実行コマンド判定手段と、前記オートラン実行コマンド判定手段によって、前記オートラン実行コマンドがあると判定された場合、前記コンピュータの上位プログラムにオートラン実行コマンドが存在しないという疑似データを送信する、疑似データ送信手段と、を備えることを特徴とする、(1)又は(2)に記載のコンピュータウィルス感染防止機能付き外部メモリデータ読込装置である。
【0016】
(4)本発明は、コンピュータウィルスの感染を防止しつつ、外部メモリのデータを安全に読込むコンピュータウィルス感染防止機能付き外部メモリ読込方法において、前記コンピュータで実行される上位プログラムから前記外部メモリへ送信されたコマンドの種別を判定し、前記コマンドが前記外部メモリへの書込みの禁止又は許可の確認を求めるモードセンスコマンドである場合、前記上位プログラムに書込み禁止フラグを設定し、前記外部メモリにオートラン実行コマンドがあるか否かを判定し、オートラン実行コマンドがあると判定した場合、前記コンピュータの前記上位プログラムにオートラン実行コマンドがないという疑似データを送信し、前記上位プログラムは、前記コンピュータが読込んだ前記外部メモリのデータを前記コンピュータの揮発性メモリに仮想的に形成された仮想記憶領域に記憶することを特徴とする、コンピュータウィルス感染防止機能付き外部メモリデータ読込方法である。
【発明の効果】
【0017】
本発明によれば、従来のOSやアプリケーションソフトウェアは、そのまま使用でき、コンピュータウィルスの感染や拡散を抑制できる、コンピュータウィルス感染防止機能付き外部メモリデータ読込装置及びコンピュータウィルス感染防止機能付き外部メモリデータ読込方法を提供できるという優れた効果を奏し得る。
【図面の簡単な説明】
【0018】
【図1】(a)第1実施形態に係るコンピュータウィルス感染防止機能付き外部メモリデータ読込装置1の全体構成を示すブロック図であり、(b)同コンピュータウィルス感染防止機能付き外部メモリデータ読込装置1の機能ブロック図である。
【図2】同コンピュータウィルス感染防止機能付き外部メモリデータ読込装置1の仮想記憶領域形成部34の機能ブロック図である。
【図3】同コンピュータウィルス感染防止機能付き外部メモリデータ読込装置1のUSB動作制限部32により行われるメモリ書込防止処理の動作の流れを示すフローチャートである。
【図4】同コンピュータウィルス感染防止機能付き外部メモリデータ読込装置1のUSB動作制限部32により行われるオートラン禁止処理の動作の流れを示すフローチャートである。
【図5】同コンピュータウィルス感染防止機能付き外部メモリデータ読込装置1のUSBメモリ用書込み防止アダプタ装置200と、コンピュータ10と、USBメモリ20の構成を示すブロック図である。
【図6】同コンピュータウィルス感染防止機能付き外部メモリデータ読込装置1のUSBメモリ用書込み防止アダプタ装置200により行われる動作の流れを示すフローチャートである。
【発明を実施するための形態】
【0019】
以下、本発明の実施の形態を添付図面を参照して説明する。
【0020】
<コンピュータウィルス感染防止機能付き外部メモリデータ読込装置1>
【0021】
まず、本発明の第1実施形態に係るコンピュータウィルス感染防止機能付き外部メモリデータ読込装置1について説明する。図1は、第1実施形態に係るコンピュータウィルス感染防止機能付き外部メモリデータ読込装置1の全体構成を示すブロック図である。
【0022】
コンピュータウィルス感染防止機能付き外部メモリデータ読込装置1は、仮想記憶領域形成プログラム100及びUSB動作制限プログラム300をインストールしたコンピュータ10と、USBメモリ20に装着し、装着した状態でコンピュータ10のUSBポート19に接続されるUSBメモリ用書込み防止アダプタ200(メモリ書込防止手段と言うこともある)から構成される。
【0023】
コンピュータ10は、CPU12やROM14、RAM16、HDD(ハードディスクドライブ)17などを備え、CPU12において、ROM14やHDD17等に記憶されているプログラム(ファームウェア)を実行することにより、一定の目的を達成するように機能する一般的な情報処理装置である。コンピュータ10は、様々なシステム機器に組み込まれるコンピュータに用いられることができるが、本実施形態では、例えば、フォト・キオスク・システム(Photo KIOSK System)に用いられるコンピュータである。
【0024】
コンピュータ10のCPU12は、詳細に、コンピュータ10の全体制御を行う演算処理装置である。RAM16は、CPU12の情報処理の作業領域として機能し、一時的にデータを記憶する揮発性の記憶装置(揮発性メモリ)である。つまり、RAM16は、コンピュータ10の電源を遮断すると、記憶領域に保存されているデータが消去される。これに対して、ROM14は、コンピュータ10の電源を遮断しても記憶領域に保存されているデータが残る不揮発性の記憶装置(不揮発性メモリ)である。
【0025】
ROM14、RAM16、HDD17やUSBホストコントローラ18は、アドレスバスやデータバス(以下これらを含めて、バス11と言う)によって接続されており、互いにデータの送受信を行えるようになっている。このデータの送受信は、バス11に接続されるCPU12の指令に基づいて行われる。
【0026】
本実施形態では、仮想記憶領域形成プログラム100及びUSB動作制限プログラム300は、HDD17に予めインストールされている。仮想記憶領域形成プログラム100は、例えば、外部メモリであるUSBメモリ20から読込んだデータをRAM16またはHDD17のどちらに記憶するかを切り替える処理(後述する、仮想記憶領域形成部34による書込先切り替え処理)が任意のプログラミング言語によって記述されているものである。USB動作制限プログラム300は、USBメモリ20に記憶されているプログラムのコンピュータ10によるオートラン(自動実行)を禁止する処理及びUSBメモリ20に何らかのデータを書込まない処理(後述する、USB動作制限部32によるオートラン禁止処理及びメモリ書込防止処理)が任意のプログラミング言語によって記述されているものである。なお、仮想記憶領域形成プログラム100及びUSB動作制限プログラム300のコンピュータ10へのインストールは、例えば、仮想記憶領域形成プログラム100及びUSB動作制限プログラム300をCD−ROMメディア(図示省略)に記憶しておき、そのCD−ROMメディアをコンピュータ10のCD−ROMドライブ(図示省略)に挿入して、仮想記憶領域形成プログラム100及びUSB動作制限プログラム300のインストールプログラムを実行することで実現することができる。なお、ここではHDD17にインストールする場合を示すが、ROMライターなどによって、ROM14に予めインストールしておいても好ましい。
【0027】
USBホストコントローラ18は、USBポート19を制御し、USBポート19に接続されるUSBメモリ20とデータの送受信を行う。また、USBホストコントローラ18は、RAM16とUSBメモリ20との間でデータの送受信の制御を行う。
【0028】
USBメモリ用書込み防止アダプタ200は、コンピュータ10の上位プログラムからUSBメモリ20へデータの書込み等が行われる場合、その書込み情報を遮断して、コンピュータ10の上位プログラムに書込みエラーコマンド(ステータス)等を返すように構成されている(詳細は後述)。
【0029】
なお、コンピュータ10には、表示装置13(例えば、LCDなどの液晶表示装置)が接続されている。これにより、コンピュータ10は、操作画面を表示し、またコンピュータ10内部の処理状態を表示できるようになっている。
【0030】
図1(b)は、コンピュータ10の主な機能構成を示したブロック図である。これらは、HDD17等に記憶されているオペレーティングシステムプログラム、仮想記憶領域形成プログラム100、USB動作制限プログラム300、USBポート制御プログラム等がCPU12で実行されることで実現される。
【0031】
コンピュータ10は、全体的な基本動作を行う上位プログラムとなるオペレーティングシステム38と、記憶データの管理を行うファイルシステム36と、RAM16に仮想記憶領域Aを形成し、USBメモリ20等から読込んだデータを仮想記憶領域Aに保存する仮想記憶領域形成部34と、コンピュータ10の上位プログラムとUSBメモリ20の間の通信の制限を行うUSB動作制限部32と、USBポート19を制御するUSBポート制御部30を備える。オペレーティングシステム38、ファイルシステム36、USBポート制御部30は、CPU12が汎用のプログラムを実行することで実現されており、仮想記憶領域形成部34は、仮想記憶領域形成プログラム100を実行することにより実現され、USB動作制限部32は、USB動作制限プログラム300を実行することにより実現されている。
【0032】
次に、図2を用いて、CPU12が仮想記憶領域形成プログラム100を実行することによって実現される仮想記憶領域形成部34の機能について説明する。図2は、仮想記憶領域形成部34の機能の概略を示す図である。
【0033】
仮想記憶領域形成部34は、前述したように、RAM16に仮想記憶領域Aを形成し、USBメモリ20等から読込んだデータをRAM16の仮想記憶領域Aに保存するだけでなく、読込んだデータを他の記憶装置に保存することもできる。
【0034】
詳細に、仮想記憶領域形成部34は、ディスクモード、RAMモード、RAMRegモードの3つのモード(機能)を備えている。ディスクモードは、コンピュータ10が外部メモリから読込んだデータ(例えば、USBメモリ20から読込んだデータ)と、仮想記憶領域形成部34のボリューム情報をHDD17の任意の記憶領域(パーティション)に保存するモードである。したがって、仮想記憶領域形成部34がディスクモードの場合、コンピュータ10がUSBメモリ20から読込んだデータは、HDD17に保存され、保存されたデータはコンピュータ10の電源を遮断しても残るようになっている。なお、仮想記憶領域形成部34のボリューム情報とは、仮想記憶領域形成部34の状態(モード情報)やデータを保存するパーティションの構成情報等である。
【0035】
RAMモードは、コンピュータ10がUSBメモリ20等から読込んだデータをRAM16に形成した仮想記憶領域Aに保存し、仮想記憶領域形成部34のボリューム情報をUSBメモリ20の任意の記憶領域に保存するモードである。RAMモードでは、RAM16に形成された仮想記憶領域AがHDD17の変わりとなり、コンピュータ10がUSBメモリ20から読込んだデータは、HDD17に保存されずに、RAM16の仮想記憶領域Aに保存される。したがって、仮想記憶領域形成部34をRAMモードに設定することによって、コンピュータ10が、USBメモリ20やその他の外部メモリから読込んだデータは、RAM16の仮想記憶領域Aに全て保存される。RAM16に保存されたデータは、コンピュータ10の電源の遮断を契機として、RAM16の駆動電源の供給がなくなると完全に消去される。
【0036】
RAMRegモードは、コンピュータ10がUSBメモリ20等から読込んだデータをRAM16に形成した仮想記憶領域Aに保存し、仮想記憶領域形成部34のボリューム情報をシステムのレジストリ(例えば、コンピュータ10のHDD17の所定の記憶領域)に保存するモードである。前述したRAMモードと同じように、RAMRegモードでは、RAM16に形成された仮想記憶領域AがHDD17の変わりとなり、コンピュータ10がUSBメモリ20から読込んだデータは、HDD17に保存されずに、RAM16の仮想記憶領域Aに保存される。したがって、仮想記憶領域形成部34をRAMRegモードに設定することによって、コンピュータ10が、USBメモリ20やその他の外部メモリから読込んだデータは、RAM16の仮想記憶領域Aに全て保存される。RAM16に保存されたデータは、コンピュータ10の電源の遮断を契機として、RAM16の駆動電源の供給がなくなると完全に消去される。このRAMRegモードは、USBメモリやコンパクトフラッシュ(登録商標)のデータを保護する場合に用いられるモードである。
【0037】
上述したように、仮想記憶領域形成部34をRAMモード又はRAMRegモードに設定することによって、コンピュータ10がUSBメモリ20や他の外部メモリから読込んだデータは、コンピュータ10のRAM16に全て保存される。したがって、コンピュータ10が読込んだデータの中にコンピュータウィルスプログラムがあった場合、RAM16の仮想記憶領域Aは、コンピュータウィルスに感染することになる。しかし、この場合、コンピュータ10の電源を遮断することによって、RAM16内に保存されているコンピュータウィルスプログラムを含む全てのデータを消去することができる。例えば、USBメモリ20にコンピュータウィルスプログラムが潜入し、コンピュータ10が、そのコンピュータウィルスプログラムを実行して感染した場合、コンピュータウィルスプログラムは、RAM16の仮想記憶領域Aにインストールされる。この場合、感染したコンピュータ10の電源を遮断することによって、RAM16の保存データは全て消去され、コンピュータ10をウィルスに感染する前の状態に戻すことができる。
【0038】
なお、上述した仮想記憶領域形成部34の機能は、Windows(登録商標)XP Embeddedの機能の1つであるEWF(Enhanced Write Filter)を用いても同様の機能を実現できる。
【0039】
次に、図3、4を用いて、CPU12がUSB動作制限プログラム300を実行することによって実現されるUSB動作制限部32の機能について説明する。USB動作制限部32は、コンピュータ10の上位プログラムがUSBメモリ20にデータを書込まないようにするメモリ書込防止処理と、USBメモリ20に記憶されているプログラムのオートラン(自動実行)を禁止するオートラン禁止処理を行う。図3は、USB動作制限部32によるメモリ書込防止処理の動作の流れを示すフローチャートであり、図4は、USB動作制限部32によるオートラン禁止処理の動作の流れを示すフローチャートである。
【0040】
<メモリ書込防止処理>
【0041】
まず、ステップS102では、コンピュータ10の各種デバイスの初期設定を行う。具体的には、コンピュータ10のCPU12は、ROM14やHDD17に記憶されている初期設定データを読み出し、RAM16やUSBホストコントローラ18の初期設定を行う。初期設定を行った後、ステップS104へ進む。
【0042】
ステップS104では、USBポート19に接続されたUSB対応デバイス(以下、単にUSBデバイスと言う)が、USBマスストレージ(例えば、USBメモリ20)か否かを判定する。具体的には、USBデバイスがUSBポート19に差し込まれると、USBデバイスからUSBデバイス情報(Usb Device Descriptor)がコンピュータ10の上位プログラムに送信される。コンピュータ10の上位プログラムは、このUSBデバイス情報の中からデバイス種別を特定するデバイスクラス(bDEVICE CLASS)を認識し、差し込まれたUSBデバイスの種別を判定する。コンピュータ10の上位プログラムは、USBデバイス情報に基づいて、USBデバイスがUSBマスストレージ(例えば、USBメモリ20)であると判定した場合、ステップS106に進む。なお、USBマスストレージとしては、USBメモリ20の他に、USB−CD、USB−DVD、USB−FD、USB−HDD等がある。なお、USBデバイスが非マスストレージである場合にはステップS108に進み、USBポート19を無効化する。USBポート19を無効にする方法はいくつかあるが、例えば、USBデバイスのドライバの読込みを強制的に禁止したり、USBデバイスのドライバの動作を停止したり又はUSBポート19を「Disable」に設定することにより無効化できる。
【0043】
ステップS106では、コンピュータ10とUSBマスストレージ(以下、USBメモリ20と言う)の間の通信を確立する。具体的には、コンピュータ10の上位プログラムは、USBメモリ20からのデバイス情報を受信し、そのデバイス情報の中のサブクラス情報(例えば、サブクラスコード)を参照してマスストレージの詳細な特定を行う。そして、コンピュータ10の上位プログラムは、特定したUSBメモリ20に応じたプロトコルを用いてUSBメモリ20と通信を行う。
【0044】
ステップS110では、USBメモリ20を特定した後、コンピュータ10の上位プログラムからUSBメモリ20に送信されるコマンド(以下、マスストレージコマンドと言うことがある)の種類を判定する。コンピュータ10の上位プログラムからUSBメモリ20に送信されるコマンドが、USBメモリ20へのデータ書込み禁止又は許可を確認するモードセンスコマンド(Mode Sense)であると判定した場合には、ステップS112に進む。また、送信されるコマンドがUSBメモリ20にデータを書込むライトコマンド(Write)であると判定した場合には、ステップS130に進み、送信されるコマンドが上述したモードセンスコマンド又はライトコマンド以外のコマンド(例えば、USBメモリ20に記憶されているデータを読込むコマンド等)と判定した場合には、ステップS120に進む。なお、本実施形態では、上位プログラムから送信されるコマンドの種別をUSB動作制限部32が判定して、そこに上記の特定のコマンドが含まれていないか監視するようになっている。つまり、以下に示す特別な応答を除き、USBメモリ20からの応答信号は、定常的に監視することは行わない。
【0045】
ステップS112では、USB動作制限部32が、モードセンスコマンドをUSBメモリ20にそのまま送信すると共に応答監視フラグを立てて、ステップS114に進んでUSBメモリ20から次の応答信号が送信されるのを待つ。
【0046】
ステップS114では、USB動作制限部32が、USBメモリ20から送信される情報であるモードパラメータリスト(Mode Parameter List)を受信した場合、その中のモードパラメータヘッダー(Mode Parameter Header)のデバイススペシフィク・パラメータ(Device Specific Parameter)のライトプロテクトビット(Write Protect Bit)を強制的に1にセットしてから、USBメモリ20に情報の読込み及び書込みを実行するコンピュータ10の上位プログラムにモードパラメータリストを提供する。
【0047】
具体的に、モードセンスコマンドは、モードセンス(6)コマンドと、モードセンス(10)コマンドの2つがある。コンピュータ10の上位プログラムが、USBメモリ20からモードセンス(6)コマンドに応じたモードパラメータヘッダー(6)を受け付けた場合には、モードパラメータヘッダー(6)のバイト−2(Byte−2)のビット−7(Bit−7)を1にセットする。コンピュータ10の上位プログラムは、USBメモリ20からモードセンス(10)コマンドに応じたモードパラメータヘッダー(10)のバイト−3(Byte−3)のビット7(Bit−7)を1にセットする。
【0048】
上記により、USB動作制限部32は、モードパラメータヘッダーを強制的に書き換えて書込み禁止フラグをセットして、コンピュータ10の上位プログラムに提供することになる。つまり、その後、ステップS140に進んで、USBメモリ20の応答信号として、このモードパラメータヘッダーを上位プログラム(ファイルシステム36)に提供する。これにより、コンピュータ10のオペレーティングシステム38は、USBメモリ20が書込み禁止メモリであると認識(誤認)する。
【0049】
なお、ステップS110において、上位プログラムから送信されるマスストレージコマンドが通常動作のコマンド(監視対象外信号)である場合には、ステップS120に進んで、USB動作制限部32は、コマンドをそのままUSBメモリ20に転送し、ステップS122において、USBメモリ20の応答信号を受信して、更にステップS140に進んで、この応答信号をそのままコンピュータ10の上位プログラム(例えば、ファイルシステム34)に転送する。
【0050】
更に、ステップS110において、USB動作制限部32は、マスストレージコマンドが特定のコマンド、具体的には、ライトコマンドであると判定した場合には、ステップS130に進む。ステップS130では、USB動作制限部32は、ライトコマンドをUSBメモリ20に送信することなく、ライトコマンドを削除する。つまり、USB動作制限部32は、ライトコマンドに基づくUSBメモリ20への書込みは行わない。更に、ステップS132において、USB動作制限部32は、コンピュータ10の上位プログラムであるファイルシステム36に提供するためのライトエラーステータスを生成する。具体的には、上位プログラムの指令に基づいてRAM16に一時的に保管されたマスストレージコマンドが、USB規格に基づくライトコマンド(Write Command)、フォーマットユニットコマンド(Format Unit Command)等のデータ書込みコマンドである場合、USB動作制限部32は、USBメモリ20にこれらのマスストレージコマンドを送信しないでブロックする。なお、USB規格のライトコマンドの中には、ライト(6)コマンド、ライト(10)コマンド、ライト(12)コマンド等の種類があるが、これらはすべてコンピュータ10からUSBメモリ20に対するデータ書込みコマンドを意味している。
【0051】
このように、ライトコマンドを削除(停止)する一方、上位プログラムのファイルシステム36やオペレーティングシステム38に送信する為のライトプロテクトエラー(Write Protect Error)のステータス信号を生成する。その後、ステップS140に進んで、このライトプロテクトエラーステータス信号をコンピュータ10の上位プログラムに提供する。
【0052】
上記の構成によって、例えば、コンピュータ10の上位プログラムであるオペレーティングシステム38は、USBメモリ20へのデータ書込みが実行できないと誤認する。また、仮に、コンピュータ10の上位プログラムがデータ書込みを行おうとしても、USB動作制限部32により、強制的に書込みエラーとなって、USBメモリ20の情報を保護することができる。
【0053】
したがって、上述したコンピュータウィルス感染防止機能付き外部メモリデータ読込装置は、USB動作制限部32を有するとともに、USB動作制限部32は、初期設定ステップ(ステップS102)と、コンピュータ10に接続されたUSBデバイスがUSBマスストレージか否かを判定するマスストレージ判定ステップ(ステップS104)と、コンピュータ10とUSBメモリ20の間の通信を確立する、通信確立制御ステップ(ステップS106)を行う。また、USB動作制限部32は、コマンド判定ステップ(ステップS110)を更に行い、コマンド判定ステップ(ステップS110)により、マスストレージコマンドがモードセンスコマンドであると判定した場合、書込み防止フラグを設定し、コンピュータ10の上位プログラムに提供する(ステップS114)。マスストレージコマンドが書込みコマンド(ライトコマンド)であると判定した場合、書込みエラーステータスを生成し、コンピュータ10の上位プログラムに提供する(ステップS132)。また、ストレージコマンドがモードセンスコマンド及びライトコマンドのいずれのコマンドでもない通常動作コマンドの場合、そのマスストレージコマンドをそのままUSBメモリ20に送信し、USBメモリ20の応答をそのまま上位プログラムに提供する(ステップS122)。したがって、コンピュータ10は、USB動作制限プログラム300をインストールしてUSB動作制限部32の機能を発揮することにより、コンピュータ10の上位プログラムからUSBメモリ20へのデータの書込みを完全に防止し、コンピュータ10に感染したコンピュータウィルスをUSBメモリ20へ感染するのを防ぐことができる。
【0054】
<オートラン禁止処理>
【0055】
オートラン禁止処理は、Windows(登録商標)のオートラン(自動実行)機能を無効にし、USBマスストレージ(例えば、USBメモリ20)からコンピュータ10へのコンピュータウィルスの感染を防止することができる。
【0056】
まず、ステップS202では、USB動作制限部32が、コンピュータ10に接続されたUSBデバイスがUSBマスストレージか否かを判定する。具体的には、コンピュータ10に接続されたUSBデバイスから受信したUSBデバイス情報のデバイスクラスを参照し、接続されたUSBデバイスがUSBマスストレージか否かを判定する。USBマスストレージの場合はステップS204に進み、USBマスストレージでない場合はステップS206に進む。
【0057】
ステップS204では、接続されたUSBデバイスがUSBマスストレージである場合、USBマスストレージとコンピュータ10の間の通信を確立する。具体的には、コンピュータ10の上位プログラムは、判定したマスストレージ用のプロトコルを用いて通信を行うことにより、USBマスストレージと通信を確立することができる。USBマスストレージとの通信を確立した後、ステップS208に進む。
【0058】
一方、ステップS206では、USBデバイスがUSBマスストレージでない場合、USB動作制限部32は、コンピュータ10のUSBポート19の無効化を行う。これによって、USBマスストレージ以外のデバイスにより、USBポート19を介してコンピュータ10にウィルスが進入するのを防ぐことができる。USBポート19を無効にする方法はいくつかあるが、例えば、USBデバイスのドライバの読込みを強制的に禁止したり、USBデバイスのドライバの動作を停止したり又はUSBポート19を「Disable」に設定することにより無効化できる。
【0059】
ステップS208において、USB動作制限部32は、ステップS202で認識したUSBマスストレージがリムーバブルデバイスであるか否かを判定する。なお、リムーバブルデバイスとは、メディア(記憶媒体)を容易に取り外し(交換)できる記憶装置を言う。具体的には、USBマスストレージから受信したUSBデバイス情報を参照することにより、リムーバブルデバイスか否かを判定することができる。マスストレージがリムーバブルデバイスである場合は、ステップS210に進み、リムーバブルデバイスでない場合は、ステップS220に進む。
【0060】
ステップS210では、リムーバブルデバイスにメディアがセットされているか否かを判定する。つまり、USBポート制御部30が、リムーバルブデバイスの状態を常時監視し、リムーバブルデバイスにメディアがセットされた場合は、ステップS212に進み、メディアがセットされていない場合は、メディアがセットされるまでステップS210の処理を繰り返す(つまり、メディアがセットされるまで監視する)。なお、リムーバブルデバイスにメディアがセットされた場合とは、リムーバブルデバイスにメディアが新規にセットされた場合及びメディアが交換されてセットされた場合を含むものである。
【0061】
ステップS212では、ステップ210でリムーバブルデバイスにメディアがセットされたと判定した後、リムーバブルデバイスにセットされたメディアにオートラン実行コマンド(以下、「Autorun.Inf」ファイルと言う)があるか否かを判定する。「Autorun.Inf」ファイルがあると判定した場合、ステップS214に進む。一方、「Autorun.Inf」ファイルが無いと判定した場合は、ステップS216に進み、「Autorun.Inf」の自動実行を行わない状況によるコンピュータ10の通常動作を行う。
【0062】
ステップS214において、USB動作制限部32は、メディアにオートラン実行コマンドが記憶されているにも関わらず、「Autorun.Inf」ファイルがない旨の信号(疑似データ)を上位のファイルシステム34に提供する。この様に、疑似データを送信することにより、コンピュータ10の上位プログラムに「Autorun.Inf」ファイルが存在しないと誤認させ、そのまま、ステップS216に進んで通常動作を行う。
【0063】
ステップS220で、USB動作制限部32は、リムーバブルデバイスでないUSBマスストレージ(例えば、USBメモリ20やハードディスク等)に「Autorun.Inf」ファイルがあるか否かを判定する。「Autorun.Inf」ファイルがあると判定した場合、ステップS222に進む。また、「Autorun.Inf」ファイルが無いと判定した場合は、ステップS224に進み、「Autorun.Inf」の自動実行を行わない状況によるコンピュータ10の通常動作を行う。
【0064】
ステップS222では、USBマスストレージにオートラン自動実行コマンドが存在するにも関わらず、「Autorun.Inf」ファイルが無い旨の信号(疑似データ)をコンピュータ10の上位プログラムであるファイルシステム34に提供する。つまり、「Autorun.Inf」ファイルが無い旨の疑似データを上位プログラムに送信することにより、上位プログラムに「Autorun.Inf」ファイルが存在しないと誤認させ、そのまま、ステップS224に進んで通常動作を行う。
【0065】
なお、上述したUSB動作制限部32により、リムーバブルデバイスにセットされたメディアに「Autorun.Inf」ファイルがあるか否かを判定するステップ(ステップS212又はステップS220)をオートラン実行コマンド判定手段と言う。また、USB動作制限部32により、「Autorun.Inf」ファイルがない旨の信号(疑似データ)を上位のファイルシステム34に提供するステップ(ステップS214又はステップS222)を疑似データ送信手段と言い、上述したステップS202〜S224のオートラン禁止処理をオートラン禁止手段と言う。
【0066】
<USBメモリ用書込み防止アダプタ200>
【0067】
次に、図5を用いて、第1実施形態に係るコンピュータウィルス感染防止機能付き外部メモリデータ読込装置1のUSBメモリ用書込み防止アダプタ200について説明する。USBメモリ用書込み防止アダプタ200は、上述したコンピュータ10によって実行されるUSB動作制限部32と同様の機能を、USBメモリ20に装着されるUSBアダプタに搭載したところに特徴がある。同図は、USBメモリ用書込み防止アダプタ装置200と、コンピュータ10と、USBメモリ20の構成を示すブロック図である。
【0068】
USBメモリ用書込み防止アダプタ200は、CPU210と、USBホストコントローラ220と、USBデバイスコントローラ230と、ROM240と、RAM250と、メモリ側USBコネクタ260と、デバイス側USBコネクタ270と、を備えて構成さえている。なお、CPU210、USBホストコントローラ220、USBデバイスコントローラ230、ROM240、RAM250、メモリ側USBコネクタ260、デバイス側USBコネクタ270は、アドレスバス(図示省略)やデータバス(同じく図示省略)に接続され、CPU210の指令に基づいて、各デバイス間でメモリアドレスやデータ等の送受信を行う。また、前述したUSB動作制限プログラム300がROM240に保存され、CPU210により実行されることで、メモリ書込防止処理やオートラン禁止処理が行われる。
【0069】
CPU210は、中央演算処理装置であり、USBメモリ用書込み防止アダプタ200の全体制御等を行う。具体的には、USBメモリ20が接続されるコンピュータ10の要求信号に対して、USBメモリ20からデータを読込んだり、USBホストコントローラ220及びUSBデバイスコントローラ230の制御などを行う。
【0070】
また、CPU210は、コンピュータ10から受信したUSBメモリ20に対するコマンドを判断する。そして、判断したコマンドが、モードセンスコマンドである場合には、コンピュータ10に送信する信号に書込み禁止フラグを設定したり、又はUSBメモリ20への書込みコマンド(ライトコマンド)である場合には、コンピュータ10から受信した書込みコマンドを削除するとともに、コンピュータ10に書込みエラーコマンドを送信する(詳細は後述)。
【0071】
USBホストコントローラ220は、CPU210とUSBメモリ20との間の通信制御を行うコントローラ用のICチップである。具体的には、USBホストコントローラ220は、CPU210がUSBメモリ20とデータ通信を行うために、USBメモリ20とUSB規格に基づいたUSBプロトコルの送受信を行い、通信を行うための制御を行う。
【0072】
USBデバイスコントローラ230は、CPU210とコンピュータ10との間の通信制御を行うコントローラ用のICチップである。具体的には、USBデバイスコントローラ230は、コンピュータ10との通信を行うために、コンピュータ10とUSB規格に基づいたUSBプロトコルの送受信を行い、通信を行うための制御を行う。
【0073】
なお、本実施形態では、前述したUSB規格は、USB2.0に基づく標準規格に用いることが好適であるが、勿論、これに限定されるものではい。例えば、USB1.1又はUSB3.0その他のUSB規格でも好ましい。
【0074】
ROM240は、読み出し専用メモリ(READ ONLY MEMORY)である。ROM240は、USBメモリ用書込み防止アダプタ200の基本動作を行うファームウェア(プログラム)や、USBホストコントローラ220やUSBデバイスコントローラ230の初期設定値などを記憶している。また、USB動作制限プログラム300が記憶されている。これによって、CPU210は、任意のタイミングでROM240から必要なプログラムを読み込んで実行することができる。
【0075】
RAM250は、随時アクセスが可能なメモリ(Random Access Memory)である。RAM250は、CPU210の作業領域として機能するとともに、CPU210の指示に応じて、USBメモリ20から読み込んだデータを一時的に記憶するのに使用される。また、RAM250は、コンピュータ10やUSBメモリ20から受け取ったコマンド(例えば、モードセンスコマンドやライトコマンド等)を一時的に記憶する。
【0076】
メモリ側USBコネクタ260は、USBメモリ20に設けられているUSBプラグコネクタ22に係合することができるUSBレセプタクルコネクタである。なお、本実施形態では、メモリ側USBコネクタ260は、A型端子のUSBレセプタクルコネクタを用いているが、A型端子に限定されるものではなく、例えば、ミニUSB端子その他の端子形状でも好ましい。
【0077】
デバイス側USBコネクタ270は、コンピュータ10に設けられているUSBポート19に係合することができるUSBプラグコネクタである。なお、デバイス側USBコネクタ270は、本実施形態では、A型端子のUSBプラグコネクタを用いているが、A型端子に限定されるものではなく、例えば、ミニUSB端子その他の端子形状でも好ましい。
【0078】
なお、USBメモリ20は、USBプラグコネクタ22を備えるフラッシュメモリである。
【0079】
次に、図6を用いて、USBメモリ用書込み防止アダプタ200の基本動作の流れについてフローチャートを用いて説明する。USBメモリ用書込み防止アダプタ200の基本動作は、USB動作制限プログラム300を実行することで実施されるメモリ書込防止処理である。
【0080】
<USBメモリ用書込み防止アダプタ200のメモリ書込防止処理>
【0081】
まず、ステップS302では、CPU210は、USBメモリ用書込み防止アダプタ200がコンピュータ10に差し込まれたか否かを判定する。USBメモリ用書込み防止アダプタ200がコンピュータ10に差し込まれたと判定された場合には、ステップS304に進み、差し込まれていないと判定した場合には、処理を終了する。なお、USBメモリ用書込み防止アダプタ200がコンピュータ10に差し込まれると、USBメモリ用書込み防止アダプタ200は、コンピュータ10から電源を供給され、以下に説明する機能を発揮できるようになっている。
【0082】
ステップS304では、CPU210は、各種デバイスの初期設定を行う。具体的には、CPU210は、ROM240からファームウェアを読み込んで実行するとともに、ROM240から各種初期データを読み込み、USBホストコントローラ220及びUSBデバイスコントローラ230の初期設定を行う。なお、この段階において、CPU210は、各種初期設定を行うのみで、コンピュータ10やUSBメモリ20とのUSB通信は行わない。これにより、コンピュータ10では、何ら特別な制御が行われないようになっており、単に、コンピュータ10のUSBポート19が、メモリ側USBコネクタ260まで延長されたに過ぎない状態となっている。
【0083】
ステップS306では、CPU210は、USBメモリ20が差し込まれているか否かを判定する。ステップS306において、CPU210は、USBメモリ20がUSBメモリ用書込み防止アダプタ200に差し込まれていると判定した場合には、ステップS308に進んで、ファームウェアに基づいてコンピュータ10とUSBメモリ20の間のUSB通信を確立するための制御を行う。
【0084】
具体的に、ステップS308において、CPU210は、USBデバイスコントローラ230をアクティブにし、コンピュータ10から受信したディスクリプタ送信要求を、USBホストコントローラ220を介してUSBメモリ20に送信する。ここで、ディスクリプタとは、コンピュータ10がUSBメモリ20を正しく認識するための、各USBデバイスが有するデータである。更にここでCPU210は、USBメモリ20から送信されるディスクリプタ情報を、USBホストコントローラ220を介して受信し、USBデバイスコントローラ230を介してコンピュータ10に送信する。なお、ステップS306において、CPU210は、USBメモリ20が差し込まれていないと判定した場合には、USBメモリ20が差し込まれるまで待つ。
【0085】
次に、ステップS310において、CPU210は、コンピュータ10から受信したマスストレージコマンドやデータ、又はUSBメモリ20から受信したデータ等を受信し、コンピュータ10からどのような種類のマスストレージコマンドが送られてきたか、又はUSBメモリ20からどのような応答があったかを判別(コマンド判定手段と言うことがある)する。また、これらの信号の中に、特別な信号が通過しないか否かを判断する。なお、本実施形態では、コンピュータ10から送信されるマスストレージコマンドの種類を判別して、そこに特別なコマンドが含まれていないか監視するようにしている。つまり、以下に示す特別な応答を除き、USBメモリ20からの応答信号は、定常的に監視することは行わない。
【0086】
ステップS310では、CPU210が、マスストレージコマンドが特定のコマンド、具体的に本実施形態ではモードセンス(MODE SENSE)コマンドであると判断した場合には、ステップS312に進んで、そのコマンドをUSBメモリ20にそのまま送信すると共に応答監視フラグを立てて、ステップ314に進んでUSBメモリ20から次の応答信号が送信されるのを待機する。
【0087】
ステップ314において、CPU210は、USBメモリ20から送信される情報であるモードパラメータリスト(MODE PARAMETER LIST)を受信した場合、その中のモードパラメータヘッダー(MODE PARAMETER HEADER)のデバイススペシフィック・パラメータ(DEVICE SPECIFIC PARAMETER)のライトプロテクトビット(Write Protect Bit)を強制的に1にセットする。
【0088】
具体的にモードセンスコマンドは、モードセンス(6)コマンドと、モードセンス(10)コマンドの2つがある。CPU210が、USBメモリ20からモードセンス(6)コマンドに応じたモードパラメータヘッダー(6)を受け付けた場合には、モードパラメータヘッダー(6)のバイト−2(Byte−2)のビット−7(Bit−7)を1にセットする。CPU210が、USBメモリ20からモードセンス(10)コマンドに応じたモードパラメータヘッダー(10)を受け付けた場合には、モードパラメータヘッダー(10)のバイト−3(Byte−3)のビット−7(Bit−7)を1にセットする。
【0089】
上記により、CPU210は、モードパラメータヘッダーを強制的に書き換えて書込み禁止フラグをセットすることになる。その後、ステップ340に進んで、USBメモリ20の応答信号として、このモードパラメータヘッダーをコンピュータ10に送信する。これにより、コンピュータ10は、USBメモリ20が書込み禁止のメモリであると認識(誤認)する。
【0090】
なお、ステップS310において、コンピュータ10から送信されるマスストレージコマンドが通常のコマンド(監視対象外の信号)の場合は、ステップS320に進んで、USBメモリ20の応答信号をそのままコンピュータ10に転送し、ステップS322においてUSBメモリ20の応答信号を受信して、更にステップS340に進んで、この応答信号をそのままコンピュータ10に転送する。これにより、通常のコマンドにおける処理速度の低下を極力抑制することが可能となっている。例えばステップS310において、CPU210は、コンピュータ10から受信したコマンドが、データ読み込みコマンドである場合は、ステップS320に進んでそのデータ読み込みコマンドをUSBメモリ20に送信する。更にステップS322において、CPU210は、USBメモリ20から対応するデータを受信して、ステップS340で、コンピュータ10にデータを転送して処理を終了する。
【0091】
更にステップS310で、CPU210が、マスストレージコマンドが特定のコマンド、具体的に本実施形態ではデータ書込みコマンド(ライトコマンド)であると判断した場合には、ステップS330に進む。このステップS330では、CPU210は、データ書込みコマンドをUSBメモリ20に送信することなく、データ書込みコマンドを削除する。つまり、CPU210は、データ書込みコマンドに基づく、USBメモリ20への書込みは行わない。更にステップS332において、CPU210は、コンピュータ10に送信するための書込みエラーコマンドを生成する。具体的に、CPU210は、コンピュータ10から送信されてRAM250に一時的に保管されたコマンドが、USB規格に基づくライトコマンド(Write Cmmand)、フォーマットユニットコマンド(Format Unit Command)等のデータ書込みコマンドである場合、USBメモリ20にこれらのマスストレージコマンドを送信しない。なお、USB規格のライトコマンドの中には、ライト(6)コマンド、ライト(10)コマンド、ライト(12)コマンド等の種類があるが、これらはすべてコンピュータ10からUSBメモリ20に対するデータ書込みコマンドを意味している。
【0092】
このようにデータ書込みコマンドを削除(停止)する一方、CPU210は、コンピュータ10に送信するためのライトプロテクトエラー(Write Protect Error)のステータス信号を生成する。その後、ステップS340に進んで、このライトプロテクトエラーステータス信号をコンピュータ10に送信する。
【0093】
上記の構成によって、コンピュータ10は、USBメモリ20へのデータ書込みが行われないことを認識する。また、仮に、コンピュータ210がデータ書込みを行おうとしても、強制的に書込みエラーとなって、USBメモリ20の情報を保護することが可能となる。
【0094】
また、本実施形態では、ステップS314において、CPU210が、USBメモリ20からの受信信号(プロトコル)中のフラグのみを書き換える場合を示したが、CPU210が自らからコンピュータ10への応答信号を生成して、USBメモリ20が書込み禁止状態であることをコンピュータ10に誤認させるようにしてもよい。
【0095】
以上の処理を、USBメモリ20又はUSBメモリ用書込み防止アダプタ200がコンピュータ10から抜かれるまで繰り返す。
【0096】
なお、上述したUSBメモリ用書込み防止アダプタ200にオートラン禁止手段(図4に示す処理)を設けても好ましい。
【0097】
上述したように、本実施形態のコンピュータウィルス感染防止機能付き外部メモリデータ読込装置1は、コンピュータウィルス感染防止機能付き外部メモリデータ読込装置1の全体制御を行うコンピュータ10と、外部メモリ(例えば、USBメモリ20)の間に接続され、コンピュータ10による外部メモリへのデータの書込みを防止するメモリ書込防止手段(例えば、メモリ書込防止処理又はUSBメモリ用書込み防止アダプタ200)と、を備えている。これによって、コンピュータ10によるUSBメモリ20へのデータ書込みが強制的に禁止される。したがって、コンピュータウィルス感染防止機能付き外部メモリデータ読込装置1は、コンピュータ10に感染したコンピュータウィルスプログラムを含むデータを、コンピュータ10に接続されたUSBメモリ20に感染させることを確実に防止することができる。
【0098】
また、コンピュータ10は、コンピュータ10に供給される電源の遮断を契機として、自身に記憶しているデータが消去される揮発性メモリ(例えば、RAM16)と、RAM16の記憶領域に仮想記憶領域Aを形成する仮想記憶領域形成手段34と、を備え、仮想記憶領域形成手段34は、コンピュータ10がUSBメモリ20から読込んだデータを、RAM16の仮想記憶領域Aに保存する。これによって、コンピュータウィルスプログラムを実行することにより、コンピュータウィルスは、RAM16にインストールされる。したがって、コンピュータ10の電源を遮断することによって、RAM16に保存されたコンピュータウィルスを含む全データを消去することができ、コンピュータ10をコンピュータウィルスに感染する前の状態に容易に戻すことができる。
【0099】
なお、前述のコンピュータウィルス感染防止機能付き外部メモリデータ読込装置1では、コンピュータ10に接続するマスストレージをUSBメモリ20としたが、勿論、これに限定されるものではない。例えば、カード型のフラッシュメモリ(メモリカード)を用いても好ましく、この場合、各メモリカードからコンピュータのUSB接続に変換するための変換アダプタに上記のUSBメモリ用書込み防止アダプタ200の機能を設けることが好ましい。
【0100】
上述したように、本実施形態に係るコンピュータウィルス感染防止機能付き外部メモリデータ読込装置1は、USBメモリ20への書込みを防止するUSBメモリ用書込み防止アダプタ200(メモリカードの場合は、同アダプタ200の機能を搭載したUSB変換アダプタ)を有する構成にしている。したがって、キオスクシステムがコンピュータウィルスに感染した場合でも、利用者のUSBメモリ20やメモリカードへの感染を確実に防止し、感染の拡大を防ぐことができる。また、キオスクシステムへのコンピュータウィルスの感染を検知した場合は、キオスクシステムの電源を一旦遮断した後、再投入することによって、コンピュータウィルス感染前の正常なシステム状態に戻すことができる。
【0101】
また、メモリ書込防止手段であるUSBメモリ用書込み防止アダプタ200は、コンピュータ10から受信するコマンドの種別を判定するコマンド判定手段(ステップS110のコマンド判定ステップ)をさらに備えている。したがって、USBメモリ用書込み防止アダプタ200は、コマンド判定手段により判定したコマンドが、コンピュータ10からUSBメモリ20へのデータ書込みの許可又は禁止の確認を要求するモードセンスコマンドである場合、書込み禁止フラグを強制的にセットして、コンピュータ10へ送信する。また、コマンド判定手段により判定したコマンドが、コンピュータ10からUSBメモリ20へのデータ書込みコマンド(ライトコマンド)である場合、データ書込みコマンドを削除するとともに、書込みエラーコマンドを生成してコンピュータ10に送信する。コンピュータ10は、USBメモリ20が書込み禁止のデバイスであると誤認し、USBメモリ20へのデータ書込みを行わない。したがって、コンピュータ10からUSBメモリ20へのデータ書込みが完全に防止でき、例えば、コンピュータ10にコンピュータウィルスが感染していた場合でも、コンピュータウィルスがUSBメモリ20へ書込まれて、感染するのを防止することができる。
【0102】
コンピュータウィルス感染防止機能付き外部メモリデータ読込方法は、USBマスストレージにオートラン実行コマンドがあるか否かを判定するオートラン実行コマンド判定ステップ(ステップS212、S220)と、オートラン実行コマンド判定ステップによって、オートラン実行コマンド(「Autorun.Inf」ファイル)があると判定した場合、コンピュータ10の上位プログラムにオートラン実行コマンドが存在しないという疑似データを送信する疑似データ送信ステップ(ステップS214、S222)を備えている。これによって、コンピュータ10は、USBマスストレージ(例えば、USBメモリ20)にオートラン実行コマンドがある場合でも、オートラン実行コマンドがないと認識(誤認)し、USBメモリ20のオートランファイルの実行を行わない。したがって、USBメモリ20にオートラン実行コマンドが設定されたコンピュータウィルスが保存されている場合でも、コンピュータ10は、オートランを実行しないので、コンピュータウィルスに感染するのを防止することができる。
【0103】
また、コンピュータウィルス感染防止機能付き外部メモリデータ読込方法は、コンピュータ10で実行される上位プログラムから外部メモリ(USBメモリ20)へ送信されたコマンドの種別を判定し(コマンド判定ステップS110)、コマンドが外部メモリへの書込みの禁止又は許可の確認を求めるモードセンスコマンドである場合、上位プログラムに書込み禁止フラグを設定し、外部メモリにオートラン実行コマンドがあるか否かを判定し、オートラン実行コマンドがあると判定した場合、コンピュータ10の上位プログラムにオートラン実行コマンドがないという疑似データを送信し(疑似データ送信ステップS214又はS222)、上位プログラムは、コンピュータ10が読込んだ外部メモリのデータをコンピュータ10の揮発性メモリ(例えば、RAM16)に仮想的に形成された仮想記憶領域Aに記憶する。したがって、コンピュータ10の上位プログラムからUSBメモリ20へのデータ書込みが完全に防止でき、例えば、コンピュータ10にコンピュータウィルスが感染していた場合でも、コンピュータウィルスがUSBメモリ20へ書込まれて、ウィルスに感染するのを防止することができる。また、反対に、USBメモリ20にコンピュータウィルスが感染していた場合、オートランの実行を無効化することによって、USBメモリ20からコンピュータ10へコンピュータウィルスが感染するのを防止することができる。
【0104】
尚、本発明のコンピュータウィルス感染防止システム及びコンピュータウィルス感染防止方法は、上記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【産業上の利用可能性】
【0105】
本発明のコンピュータウィルス感染防止機能付き外部メモリデータ読込装置及びコンピュータウィルス感染防止機能付き外部メモリデータ読込方法は、コンピュータウィルスの感染や拡散を抑制し、外部メモリデータを読込む装置等の分野に広く利用することができる。
【符号の説明】
【0106】
1 コンピュータウィルス感染防止機能付き外部メモリデータ読込装置
10 コンピュータ
12 CPU
14 ROM
16 RAM
17 HDD
18 USBホストコントローラ
19 USBポート
20 USBメモリ
30 USBポート制御部
32 USB動作制限部
34 仮想記憶領域形成部
36 ファイルシステム
38 オペレーションシステム
A 仮想記憶領域

【特許請求の範囲】
【請求項1】
システム全体の制御を行うコンピュータと、
該コンピュータと外部メモリの間に接続され、前記コンピュータによる前記外部メモリへのデータ書込みを防止するメモリ書込防止手段と、
を備え、
前記コンピュータは、
該コンピュータに供給される電源の遮断を契機として、自身に記憶しているデータが消去される揮発性メモリと、
該揮発性メモリの記憶領域に仮想記憶領域を形成する仮想記憶領域形成手段と、
を備え、
前記仮想記憶領域形成手段は、前記コンピュータが前記外部メモリから読込んだデータを、前記揮発性メモリの前記仮想記憶領域に保存することを特徴とする、コンピュータウィルス感染防止機能付き外部メモリデータ読込装置。
【請求項2】
前記メモリ書込防止手段は、
前記コンピュータから受け付けたコマンドの種別を判定するコマンド判定手段を備え、
前記コマンド判定手段が、前記外部メモリへデータ書込みの禁止又は許可の確認を求めるモードセンスコマンドを、前記コンピュータから受け付けたと判定した場合、前記コンピュータに前記外部メモリへの書込禁止フラグを送信することを特徴とする、
請求項1に記載のコンピュータウィルス感染防止機能付き外部メモリデータ読込装置。
【請求項3】
前記コンピュータは、
該コンピュータに接続された前記外部メモリに記憶されているプログラムの自動実行を防止するオートラン禁止手段をさらに備え、
前記オートラン禁止手段は、
前記コンピュータに接続された前記外部メモリにオートラン実行コマンドがあるか否かを判定するオートラン実行コマンド判定手段と、
前記オートラン実行コマンド判定手段によって、前記オートラン実行コマンドがあると判定された場合、前記コンピュータの上位プログラムにオートラン実行コマンドが存在しないという疑似データを送信する、疑似データ送信手段と、
を備えることを特徴とする、
請求項1又は2に記載のコンピュータウィルス感染防止機能付き外部メモリデータ読込装置。
【請求項4】
コンピュータウィルスの感染を防止しつつ、外部メモリのデータを安全に読込むコンピュータウィルス感染防止機能付き外部メモリ読込方法において、
前記コンピュータで実行される上位プログラムから前記外部メモリへ送信されたコマンドの種別を判定し、前記コマンドが前記外部メモリへの書込みの禁止又は許可の確認を求めるモードセンスコマンドである場合、前記上位プログラムに書込み禁止フラグを設定し、前記外部メモリにオートラン実行コマンドがあるか否かを判定し、オートラン実行コマンドがあると判定した場合、前記コンピュータの前記上位プログラムにオートラン実行コマンドがないという疑似データを送信し、前記上位プログラムは、前記コンピュータが読込んだ前記外部メモリのデータを前記コンピュータの揮発性メモリに仮想的に形成された仮想記憶領域に記憶することを特徴とする、コンピュータウィルス感染防止機能付き外部メモリデータ読込方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2010−262335(P2010−262335A)
【公開日】平成22年11月18日(2010.11.18)
【国際特許分類】
【出願番号】特願2009−110472(P2009−110472)
【出願日】平成21年4月30日(2009.4.30)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(000139366)株式会社ワイ・イー・データ (39)
【Fターム(参考)】