説明

ウイルス防止プログラム、コンピュータに着脱可能な記憶装置、及びウイルス防止方法

【課題】 ウイルス対策が施されていないコンピュータにUSBメモリ等を接続し、ファイルのやりとりを行う場合にウイルスの拡散を防止する
【解決手段】 コンピュータに着脱可能な記憶装置を接続してウイルス防止プログラムを起動し、コンピュータを、フック手段から制御が受け渡されるとAPI実行手段による処理対象のファイルを入力する入力手段、処理対象ファイルがウイルスに感染しているか否かを検知する検知手段、感染している場合、API実行手段による処理が失敗したことをAP実行手段に出力し、感染していない場合、処理対象ファイルを暗号化・復号化手段に出力する判定手段、処理対象ファイルを入力して当該処理対象のファイルを暗号化又は復号化する手段、暗号化又は復号化された処理対象のファイルを入力してAPI実行手段へ出力する出力手段として機能させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、USBメモリなどの記憶装置に格納する情報を保護する技術に関する。
【背景技術】
【0002】
近年、コンピュータウイルスと呼ばれるソフトウェアが蔓延し、社会問題となっている。このソフトウェア技術は、実行可能なプログラムファイルや、マクロとよばれるコンピュータの操作をおこなう記述が含まれたファイル内に、ウイルスの作成者が意図した操作を行わせるプログラムコードを埋め込むことにより、コンピュータの利用者が意図していない操作を勝手に行ってしまうというものである。
【0003】
このようなコンピュータウイルスを検知するための技術としては、従来、主として次のような二種類の方法があった。
まず、第一の方法として、特許文献1に記載の発明のように、コンピュータに保存されている全てのファイルについて、コンピュータウイルスが埋め込まれていないかを検索する方法があった。
しかし、この方法では、例えばコンピュータに100万個のファイルが存在する場合には、100万個のファイルを全てチェックするため、ウイルスの存否の検知に多くの時間とCPU能力が必要になるという問題があった。
【0004】
第二の方法としては、オペレーティングシステム(以下、OSと称する場合がある。)におけるファイルアクセスを行うファイルシステム内に、フィルタードライバとよばれるプログラムを事前に埋め込み、全てのプログラムのファイルアクセス操作を監視して、ウイルスに感染したファイルへの操作が行われていないかをチェックする方法があった。
この方法は、第一の方法のように全てのファイルをチェックすることを行わず、ファイルアクセスがあったときにだけ、そのファイルがウイルスに感染していないかをチェックするものであるため、検知時間は高速である。
【0005】
しかし、ウインドウズ(登録商標)OSの場合、このようなファイルアクセス操作の監視は、カーネルモードにおけるドライバで実現する必要があるが、カーネルモードによる操作は管理者権限のある者でなければ行うことができない。このため、第二の方法では、このようなドライバをOSの管理者権限のある者が、予めコンピュータにインストールしておかなければならず、利便性に欠けるという問題があった。
【0006】
一方、最近では、コンピュータに保存されているファイルをUSBメモリなどの記憶装置に複製することが頻繁に行われている。
このような複製にあたり、コンピュータのウイルスチェック機能が脆弱で、ファイルがウイルスに感染していると、この感染したファイルがUSBメモリに保存されてしまうという問題があった。そして、このUSBメモリが他のコンピュータに接続され、感染したファイルが使用されると、感染が他のコンピュータに拡散してしまうという問題があった。
【0007】
ここで、USBメモリなどの記憶装置に関連する、ウイルス防止技術としては、例えば特許文献2に記載のウイルス防疫装置を挙げることができる。
この技術ではUSBメモリなどの記憶装置にウイルス防止プログラムに格納し、USBメモリをコンピュータに接続したときに、このウイルス防止プログラムをコンピュータに伝送して起動させる構成となっている。
これによって、OSと独立的にウイルス防止プログラムを駆動することができ、コンピュータへの導入時におけるウイルスの影響を最小化することが可能とされている。
【0008】
【特許文献1】特開2006−522960号公報
【特許文献2】特開2008−519369号公報
【特許文献3】特開平11−119991号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
しかしながら、特許文献2に記載のウイルス防疫装置は、ウイルス防止プログラムをコンピュータで実行できるものの、ウイルスに感染しているファイルが、コンピュータからUSBメモリに書き込まれる場合や、USBメモリからコンピュータに読み込まれる場合に、これらを防止するものではない。
【0010】
そこで、本発明者は鋭意検討し、コンピュータがUSBメモリの書き込み又は読み出しを行う場合に、API(アプリケーションプログラムインタフェース)フック技術を利用して、これらの処理が実行される直前に、処理対象のファイルがウイルスに感染していないかを確認し、感染していない場合にのみ、処理を続行させることで、コンピュータとUSBメモリ間でウイルスに感染したファイルの拡散を防止できること、また管理者権限を必要とすることなくウイルスの拡散を防止できることを見いだし、本発明を完成させた。
【0011】
ここで、APIフックとは、アプリケーションプログラム(以下、APと称する場合がある。)がアプリケーションプログラムインタフェース(以下、APIと称する場合がある。)を呼び出す際に、APIによる処理が行われる前にその制御を受け取り、各種処理を行うことを可能とした後、APIに制御を返却するものである。
本発明では、このAPIフック技術をUSBメモリへの書き込みやUSBメモリからの読み込み処理が行われる際に用いて処理対象ファイルのウイルス検知を行うことで、USBメモリのデータに高い安全性を確保できるとともに、これを管理者権限の必要なく実現することが可能となっている。
【0012】
すなわち、上述した通り、ファイルシステム内に、ウイルス検知プログラムを導入し、これによってUSBメモリへの書き込みファイル等がウイルスに感染していないかどうかをチェックする方法では、管理者権限が必要となるため、利便性が悪いという問題があった。
これに対し、APIフックを利用した本発明では、管理者権限を必要とすることなく、処理対象ファイルがウイルスに感染していないかどうかをチェックすることができ、利便性を向上させることが可能となっている。
【0013】
なお、APIフック技術自体は公知の技術であり、特許文献3には、フック方式を用いたコンピュータウイルス自動検知システムが記載されている。
このコンピュータウイルス自動検知システムによれば、ファイル転送プログラムによるファイル受信命令を横取りすることで、ネットワークを介して計算機システムに転送されるファイルにコンピュータウイルスが感染しているか否かを確認し、感染していない場合に当該ファイルをファイル転送プログラムに送出して記憶装置へ転送する構成となっている。
【0014】
しかし、このようなシステムを用いても、ウイルスに感染したファイルが、コンピュータからUSBメモリに書き込まれる場合や、USBメモリからコンピュータに読み取られる場合に、これらを防止することはできない。
また、当該システムでは、ファイル転送プログラム自体が、既にウイルスに感染している場合には、ウイルスの拡散を防止できないという問題があった。
【0015】
本発明は、上記の事情にかんがみなされたものであり、USBメモリなどの記憶装置の書き込みや読み込みが行われる際に、APIフックを利用して、処理対象ファイルのウイルス検知及び暗号化を行うことで、USBメモリに格納するデータやUSBメモリから読み込まれるデータの安全を確保することが可能なウイルス防止プログラム、コンピュータに着脱可能な記憶装置、及びウイルス防止方法の提供を目的とする。
【課題を解決するための手段】
【0016】
上記目的を達成するため、本発明のウイルス防止プログラムは、所定のアプリケーションプログラムを実行するAP実行手段と、所定のアプリケーションプログラムインタフェースを実行するAPI実行手段と、AP実行手段がAPI実行手段を呼び出すと、API実行手段による処理が行われる前に、他の処理を実行可能に制御するフック手段とを備えたコンピュータに着脱可能な記憶装置に格納されるウイルス防止プログラムであって、コンピュータに記憶装置を接続すると、コンピュータが当該ウイルス防止プログラムを起動し、コンピュータを、フック手段から制御が受け渡されると、API実行手段による処理対象のファイルを入力するファイル入力手段、ファイル入力手段により入力された処理対象ファイルが、コンピュータウイルスに感染しているか否かを検知するウイルス検知手段、処理対象ファイルが、ウイルスに感染している場合、API実行手段による処理が失敗したことをAP実行手段に出力し、ウイルスに感染していない場合、処理対象のファイルを暗号化・復号化手段に出力する判定手段、判定手段から処理対象のファイルを入力すると、当該処理対象のファイルを暗号化又は復号化する暗号化・復号化手段、及び、暗号化・復号化手段から暗号化又は復号化された処理対象のファイルを入力すると、当該処理対象のファイルをAPI実行手段へ出力するファイル出力手段として機能させる構成としてある。
【0017】
また、本発明のコンピュータに着脱可能でウイルス防止機能を備えた記憶装置は、上記のウイルス防止プログラムを格納した構成としてある。また、さらに生体認証機能を備えた構成としてある。
【0018】
また、本発明のウイルス防止方法は、所定のアプリケーションプログラムを実行するAP実行手段と、所定のアプリケーションプログラムインタフェースを実行するAPI実行手段と、AP実行手段がAPI実行手段を呼び出すと、API実行手段による処理が行われる前に、他の処理の実行を制御するフック手段とを備えたコンピュータに、着脱可能な記憶装置を接続し、コンピュータが、記憶装置に格納されているウイルス防止プログラムを起動して、ウイルス防止プログラム実行手段を生成し、ウイルス防止プログラム実行手段が、フック手段から制御が受け渡されると、API実行手段による処理対象のファイルを入力し、入力された処理対象ファイルがコンピュータウイルスに感染しているか否かを検知し、感染している場合、API実行手段による処理が失敗したことをAP実行手段に出力し、感染していない場合、処理対象のファイルを暗号化又は復号化して、API実行手段へ出力する方法としてある。
【発明の効果】
【0019】
本発明によれば、事前のウイルス防止プログラムのコンピュータへのインストールや、そのメンテナンスを必要とすることなく、USBメモリなどの記憶装置へのウイルスに感染したファイルの書き込みや、記憶装置からの読み出しを防止することが可能となる。
また、感染していないファイルをUSBメモリへ書き込む場合、これを暗号化して書き込むため、記憶装置への格納情報をより安全に保護することが可能となる。
【発明を実施するための最良の形態】
【0020】
以下、本発明のウイルス防止プログラム、コンピュータに着脱可能な記憶装置、及びウイルス防止方法の好ましい実施形態について、図面を参照しつつ説明する。
なお、以下の実施形態に示す本発明のコンピュータに着脱可能な記憶装置は、コンピュータに接続されると、当該記憶装置に格納されている本発明のウイルス防止プログラムが起動され、このウイルス防止プログラムがコンピュータにより実行されるようになっている。コンピュータのCPUは、ウイルス防止プログラムにもとづいてコンピュータの各構成要素に指令を送り、当該コンピュータの動作に必要となる所定の処理、例えば、ファイル入力処理、ウイルス検知処理、ウイルス感染の有無判定処理、暗号化・復号化処理、及びファイル出力処理等を行わせる。このように、本発明のコンピュータに着脱可能な記憶装置に接続されたコンピュータにおける各処理,動作は、本発明のウイルス防止プログラムとコンピュータとが協働した具体的手段により実現できるものである。
【0021】
[第一実施形態]
まず、本発明の第一実施形態の構成について、図1及び図2を参照して説明する。図1は、本実施形態のウイルス防止プログラムを格納した着脱可能な記憶装置をコンピュータに接続した、当該コンピュータに形成される構成を示すブロック図において、記憶装置にファイルを書き込む流れを示した図である。図2は、本実施形態のウイルス防止プログラムを格納した着脱可能な記憶装置をコンピュータに接続した、当該コンピュータに形成される構成を示すブロック図において、記憶装置からファイルを読み出す流れを示した図である。
【0022】
本実施形態のコンピュータに着脱可能な記憶装置は、図1及び図2におけるUSBメモリ10であり、このUSBメモリ10にウイルス防止プログラム11、ウイルス検知プログラム12、及び暗号化・復号化プログラム13が格納されている。なお、本発明のコンピュータに着脱可能な記憶装置は、USBメモリに限定されるものではなく、リムーバルハードディスクなどのその他の記憶装置を用いることもできる。
【0023】
これらの図において、USBメモリ10は、PC20に接続されている。
PC20は、ウインドウズ(登録商標)などのAPIフック機能を備えたOSがインストールされている汎用のパーソナルコンピュータやサーバなどの情報処理装置である。
【0024】
USBメモリ10がPC20に接続されると、PC20によりウイルス防止プログラム11が起動され、PC20内において、当該PC20のCPU及びメモリによりウイルス防止プログラム実行手段21が形成される。また、同様にウイルス検知プログラム12が起動されると、PC20内にウイルス検知プログラム実行手段21b−1が形成され、暗号化・復号化プログラム13が起動されると、PC20内に暗号化・復号化プログラム実行手段21d−1が形成される。
【0025】
ウイルス防止プログラム実行手段21は、ファイル入力手段21a、ウイルス検知手段21b、判定手段21c、暗号化・復号化手段21d、及びファイル出力手段21eを備えている。
【0026】
ファイル入力手段21aは、処理対象ファイルを入力し、APIフック24から入力したAPIの種類にもとづいて、対応する手段に処理対象ファイルを出力する。
すなわち、APIの種類が書き込みを示すものである場合、ファイル入力手段21aは、図1に示すように処理対象ファイルをPC20におけるファイル記憶手段22から入力してウイルス検知手段21bに出力する。
また、APIの種類が読み込みを示すものである場合、ファイル入力手段21aは、図2に示すように処理対象ファイルをUSBメモリ10(におけるファイル記憶手段14)から入力して暗号化・復号化手段21dに出力する。
【0027】
ウイルス検知手段21bは、ウイルス検知プログラム実行手段21b−1に、処理対象ファイルがウイルスに感染しているか否かを検出させる。なお、ウイルス検知プログラム実行手段21b−1は、任意のものを用いることができる。
【0028】
判定手段21cは、ウイルス検知プログラム実行手段21b−1により、処理対象ファイルにウイルスが検出された場合、当該ファイルはウイルスに感染しており、汚染されていると判定する。そして、API25の処理が失敗したことを示す情報をAP23へ通知する。
一方、処理対象ファイルにウイルスが検出されなかった場合、判定手段21cは、当該ファイルはウイルスに感染しておらず、汚染されていないと判定する。そして、処理対象ファイルを暗号化・復号化手段21dに出力する。
【0029】
暗号化・復号化手段21dは、暗号化・復号化プログラム実行手段21d−1に、処理対象ファイルの暗号化又は復号化処理を行わせる。
すなわち、APIの種類が書き込みを示すものである場合、暗号化・復号化手段21dは、図1に示すように処理対象ファイルを判定手段21cから入力して暗号化・復号化プログラム実行手段21d−1により暗号化し、暗号化した処理対象ファイルをファイル出力手段21eに出力する。
【0030】
このように処理対象ファイルにウイルスが感染していないことを確認した後に、さらに処理対象ファイルの暗号化を行うことで、当該ファイルが第三者によりUSBメモリ10から取り出され、ファイル交換ソフトなどによって他のコンピュータに拡散しても、処理対象ファイルにおける情報は知られることがない。
このため、USBメモリ10に格納する情報を保護するにあたり、その安全性をより向上させることが可能となっている。
【0031】
また、APIの種類が読み込みを示すものである場合、暗号化・復号化手段21dは、図2に示すように処理対象ファイルをファイル入力手段21aから入力し、処理対象ファイルが暗号化されているものであるか否かを判定する。
そして、暗号化されている場合は、暗号化・復号化プログラム実行手段21d−1により復号化し、復号化した処理対象ファイルをウイルス検知手段21bに出力する。
なお、暗号化・復号化プログラム実行手段21d−1は、任意のものを用いることができる。
【0032】
ファイル出力手段21eは、入力した処理対象ファイルを、APIフック24から入力したAPIの種類にもとづいて、対応する手段に出力する。
すなわち、APIの種類が書き込みを示すものである場合、ファイル出力手段21eは、図1に示すように暗号化・復号化手段21dから暗号化された処理対象ファイルを入力してPC20におけるAPI25に出力する。そして、この処理対象ファイルは、API25によりUSBメモリ10(におけるファイル記憶手段14)に書き込まれる。
【0033】
また、APIの種類が読み込みを示すものである場合、ファイル出力手段21eは、図2に示すように処理対象ファイルを判定手段21cから入力してAPI25に出力する。そして、この処理対象ファイルは、API25によりPC20におけるファイル記憶手段22に保存される。
【0034】
ファイル記憶手段22は、AP23により使用されるファイルなどを記憶する、PC20におけるメモリやハードディスクなどの記憶装置であり、PC20に外部接続されたものでも良い。このファイル記憶手段22に記憶される、AP23により使用されるファイルは、API25による処理対象のファイルである。
【0035】
AP23は、PC20において実行されるアプリケーションプログラムを実行する実行手段である。このアプリケーションプログラムは、例えばワードなどの一般的なアプリケーションプログラムの他、特許請求の範囲及び明細書において、エクスプローラなど、OSの一部のプログラムも含むものとして用いている。
【0036】
APIフック24としては、ウインドウズなどのOSに組み込まれているフック手段を用いることができる。APIフック24は、AP23から呼び出されたAPI25による処理が行われる前に、別個の処理を行うことを可能とするものである。この別個の処理が行われると、APIフック24は、API25に制御を渡し、API25による処理が実行される。
API25は、AP23により呼び出される各種関数などのプログラム(アプリケーションプログラムインタフェース)を実行する実行手段である。API25は、AP23により呼び出されると、対応する所定の処理を実行する。
【0037】
次に、本実施形態のウイルス防止プログラム11にもとづき実行されるPC20の処理手順について、図3〜図5を参照して説明する。図3は、本実施形態のウイルス防止プログラムを格納した着脱可能な記憶装置をコンピュータに接続し、APIフックが行われるまでの処理手順を示すフローチャートである。図4は、本実施形態のウイルス防止プログラムを格納した着脱可能な記憶装置をコンピュータに接続し、APIフックが行われた後、記憶装置へのファイルの書き込みが行われるまでの処理手順を示すフローチャートである。図5は、本実施形態のウイルス防止プログラムを格納した着脱可能な記憶装置をコンピュータに接続し、APIフックが行われた後、記憶装置からのファイルの読み出しが行われるまでの処理手順を示すフローチャートである。
【0038】
まず、USBメモリ10をPC20に接続すると(ステップ10)、PC20によりUSBメモリ10に格納されているウイルス防止プログラム11が起動される(ステップ11)。
次に、APIフック24による処理が開始され(ステップ12)、AP23からAPI25が呼び出されると(ステップ13)、フック対象のAPIであるか否かが判定される(ステップ14)。
【0039】
API25がファイル書き込みを行うAPIである場合、当該ファイル書き込みAPI25がフックされて(ステップ15)、制御がAPIフック24によりウイルス防止プログラム実行手段21へ受け渡される。
また、API25がファイル読み込みを行うAPIである場合、当該ファイル読み込みAPI25がフックされて(ステップ16)、制御がAPIフック24によりウイルス防止プログラム実行手段21へ受け渡される。
【0040】
次に、API25がファイル書き込みを行うAPIである場合、ウイルス防止プログラム実行手段21にPC20のファイル記憶手段22から処理対象ファイルが入力される(ステップ30)。
そして、処理対象ファイルがウイルスに感染しているか否かが検知される(ステップ31)。
【0041】
処理対象ファイルにウイルスが検出され、感染していると判定された場合(ステップ32のYES)、ウイルス防止プログラム実行手段21からAP23に対して、API25の処理が失敗したことを示す情報などを通知する(ステップ33)。
これによって、AP23に、API25が何らかの理由(例えばアクセス権がないなど)により、処理が失敗したと認識させることができ、AP23を終了させることなくウイルスの入ったファイルを書き込むことだけを防止することが可能となる。
【0042】
処理対象ファイルにウイルスが検出されず、感染していないと判定された場合(ステップ32のNO)、ウイルス防止プログラム実行手段21は暗号化・復号化プログラム実行手段21d−1により処理対象ファイルを暗号化し(ステップ34)、暗号化した処理対象ファイルをAPI25に出力する(ステップ35)。
そして、API25は処理対象ファイルをUSBメモリ10に書き込む(ステップ36)。
【0043】
次に、API25がファイル読み込みを行うAPIである場合、ウイルス防止プログラム実行手段21にUSBメモリ10のファイル記憶手段14から処理対象ファイルが入力される(ステップ50)。
そして、処理対象ファイルが暗号化されているか否かが判定される(ステップ51)。
【0044】
そして、暗号化されている場合には(ステップ52のYES)、復号化処理が行われる(ステップ53)。
次に、復号化された処理対象ファイル又は暗号化されていない処理対象ファイルが、ウイルスに感染しているか否かが検知される(ステップ54)。
【0045】
処理対象ファイルにウイルスが検出され、感染していると判定された場合(ステップ55のYES)、ウイルス防止プログラム実行手段21からAP23に対して、API25の処理が失敗したことを示す情報などを通知する(ステップ56)。
【0046】
処理対象ファイルにウイルスが検出されず、感染していないと判定された場合(ステップ55のNO)、ウイルス防止プログラム実行手段21は処理対象ファイルをAPI25に出力し(ステップ57)、API25により処理対象ファイルがPC20のファイル記憶手段22に保存される(ステップ58)。
【0047】
なお、PC20のファイル記憶手段22に保存された処理対象ファイルは、例えば開いていたものを閉じるタイミングなど、所定のタイミングで自動的に消去することが好ましい。また、この処理対象ファイルを、PC20のファイル記憶手段22ではなく、USBメモリ10におけるファイル記憶手段14に保存することも好ましい。
このようにすれば、復号化された処理対象ファイルが使用後にPC20に残存することがなく、USBメモリ10からPC20への情報漏洩のリスクを軽減することが可能となる。
【0048】
以上説明したように、本実施形態のウイルス防止プログラム、コンピュータに着脱可能な記憶装置、及びウイルス防止方法によれば、事前のウイルス防止プログラムのコンピュータへのインストールや、そのメンテナンスを必要とすることなく、USBメモリなどの記憶装置へのウイルスに感染したファイルの書き込みや、記憶装置からの読み出しを防止することができる。
このため、ウイルス防止プログラムがインストールされていないコンピュータに、ウイルスに感染したファイルが存在している場合に、本発明の記憶装置を接続し、この感染したファイルを記憶装置に書き込もうとしても、これを防止することが可能である。
また、感染していないファイルをUSBメモリへ書き込む場合、これを暗号化して書き込むため、記憶装置への格納情報をより安全に保護することが可能となっている。
【0049】
[第二実施形態]
次に、本発明の第二実施形態の構成について、図6及び図7を参照して説明する。図6は、本実施形態のウイルス防止プログラムを格納した着脱可能な記憶装置をコンピュータに接続した、当該コンピュータに形成される構成を示すブロック図において、記憶装置にファイルを書き込む流れを示した図である。図7は、本実施形態のウイルス防止プログラムを格納した着脱可能な記憶装置をコンピュータに接続した、当該コンピュータに形成される構成を示すブロック図において、記憶装置からファイルを読み出す流れを示した図である。
【0050】
本実施形態は、ウイルス防止プログラム11がPC20により実行されると、PC20に生成するウイルス防止プログラム実行手段21に、ユーザ認証手段21fが構成される点で第一実施形態と異なる。その他の点については、第一実施形態と同様である。
【0051】
このユーザ認証手段21fは、ユーザにより入力されたID及びパスワードや、生体認証情報にもとづいて、ユーザ認証処理を実行する。そして、認証に成功した場合にのみ、ウイルス防止プログラム実行手段21におけるその他の構成による各処理を実行可能とし、認証に失敗した場合は、USBメモリ10の使用を不可として、情報の書き込みや読み出しなどのいずれの処理も実行しない。
【0052】
このユーザ認証処理は従来公知の方法を用いることができ、例えばUSBメモリ10をPC20に接続した際に、PC20の表示部にID及びパスワード入力画面を表示させ、入力された情報がUSBメモリ10内に予め格納されているID及びパスワードと一致するか否かを判定することにより行うことができる。
また、例えば指紋認証などの各種生体認証機能を備えたUSBメモリ10を使用し、入力されたユーザの生体情報がUSBメモリ10に予め格納されている生体情報と一致するか否かを判定することにより行うこともできる。
【0053】
次に、本実施形態のウイルス防止プログラム11にもとづき実行されるPC20の処理手順について、図8を参照して説明する。図8は、本実施形態のウイルス防止プログラムを格納した着脱可能な記憶装置をコンピュータに接続し、APIフックが行われるまでの処理手順を示すフローチャートである。
【0054】
まず、USBメモリ10をPC20に接続すると(ステップ70)、PC20によりUSBメモリ10に格納されているウイルス防止プログラム11が起動される(ステップ71)。
次に、ユーザ認証が実行され(ステップ72)、認証に失敗した場合(ステップ73のNO)、ウイルス防止プログラム実行手段21におけるその他の構成による処理は実行されず、USBメモリ10の読み書きを行うことはできない。PC20に構成されたウイルス防止プログラム実行手段21、ウイルス検知プログラム実行手段21b−1、及び暗号化・復号化プログラム実行手段21d−1は所定のタイミングでPC20から削除される。
【0055】
認証に成功した場合は(ステップ73のYES)、次に、APIフック24による処理が開始され(ステップ74)、以降、第一実施形態と同様の処理が実行される。
【0056】
次に、図9及び図10を参照して、第一実施形態のユーザ認証機能のないUSBメモリ10を用いた場合と、第二実施形態のユーザ認証機能のあるUSBメモリ10を用いた場合の、ファイルの書き込み及び読み出しにおけるウイルス防止について説明する。
【0057】
まず、図9に示すように、USBメモリ10にユーザ認証機能が備えられていない場合、PC20からウイルスに感染したファイルをUSBメモリ10に移動又は複製しようとすると、本発明のウイルス防止プログラムが起動していなければ、当該感染ファイルはUSBメモリ10に書き込まれてしまう。
【0058】
一方、本発明のウイルス防止プログラムが起動していれば、当該感染ファイルがUSBメモリ10に書き込まれることを防止することができる。
また、ウイルスに感染していない正常なファイルは、本発明のウイルス防止プログラムが起動していても、USBメモリ10に暗号化された上で、正常に書き込まれる。
【0059】
また、USBメモリ10からウイルスに感染したファイルをPC20に移動又は複製し、読み込もうとする場合も同様に、本発明のウイルス防止プログラムが起動していなければ、当該感染ファイルはPC20に保存されてしまう。
一方、本発明のウイルス防止プログラムが起動していれば、当該感染ファイルがPC20に保存されるのを防止することができる。
また、ウイルスに感染していない正常なファイルは、暗号化されていれば復号化されて、暗号化されていなければそのまま、PC20に保存される。
【0060】
このように、ユーザ認証機能を備えていないUSBメモリ10を使用する場合、本発明のウイルス防止プログラムが起動していなければ、ウイルスに感染したファイルのやりとりが可能である。したがって、PC20が起動している間は当該プログラムを停止や終了等させることなく、起動させた状態にしておくことが望ましい。
【0061】
次に、図10に示すように、USBメモリ10にユーザ認証機能が備えられている場合、ユーザ認証が成功したときには、既に本発明のウイルス防止プログラムが起動され、PC20にウイルス防止プログラム実行手段21、ウイルス検知プログラム実行手段21b−1、及び暗号化・復号化プログラム実行手段21d−1が構成されている。
【0062】
このため、ウイルスに感染したファイルは、ウイルス防止プログラム実行手段21によりウイルスが感染しているものと判定されて、USBメモリ10に書き込まれない。
また、ウイルスに感染していない正常なファイルは、暗号化された上で、USBメモリ10正常に書き込まれる。
【0063】
また、USBメモリ10からウイルスに感染したファイルをPC20に移動又は複製し、読み込もうとする場合も同様に、認証に成功したときには既に本発明のウイルス防止プログラムが起動しているため、当該感染ファイルがPC20に保存されるのを防止することができる。
また、ウイルスに感染していない正常なファイルは、本発明のウイルス防止プログラムにより、暗号化されていれば復号化されて、暗号化されていなければそのまま、PC20に保存される。
【0064】
このように、ユーザ認証機能を備えたUSBメモリ10を使用する場合は、本発明のウイルス防止プログラムが起動していなければ、当該USBメモリ10メモリを使用できないため、当該プログラムをPC20が起動している間ずっと起動させておく必要はなく、PC20からUSBメモリ10へのアクセスが必要になったときに随時起動すれば良い。
【0065】
[第三実施形態]
次に、本発明の第三実施形態の構成について、図11を参照して説明する。図11は、本実施形態のウイルス防止プログラムを格納した着脱可能な記憶装置をコンピュータに接続した、当該コンピュータに形成される構成を示すブロック図において、記憶装置からファイルを読み出す流れを示した図である。
【0066】
本実施形態は、処理対象ファイルが暗号化されている場合に、暗号化・復号化プログラム23により復号化を行う前に、API25を呼び出したAP23が所定のものであるか否かを判定する点で第二実施形態と異なる。その他の点については、第二実施形態と同様である。
【0067】
すなわち、本実施形態では、USBメモリ10がPC20に接続され、ウイルス防止プログラム11が起動されると、アプリケーション確認手段21gを備えたウイルス防止プログラム実行手段21がPC20内に生成される。
アプリケーション確認手段21gは、暗号化・復号化手段21dにより処理対象ファイルが暗号化されていると判定されると、この暗号化・復号化手段21dにより呼び出され、APIフック24から入力したAP23の種類を示す情報にもとづいて、当該AP23が、予め指定された所定のアプリケーションプログラムを実行するものであるか否かを判定し、その判定結果を暗号化・復号化手段21dに返却する。
【0068】
暗号化・復号化手段21dは、アプリケーション確認手段21gによる判定の結果、AP23が、予め指定された所定のアプリケーションプログラムを実行するものである場合に、処理対象ファイルを復号化し、AP23が、予め指定された所定のアプリケーションプログラムを示すものでない場合には、処理対象ファイルを復号化することなく、処理を終了する。
【0069】
次に、本実施形態のウイルス防止プログラム11にもとづき実行されるPC20の処理手順について、図12を参照して説明する。図12は、本実施形態のウイルス防止プログラムを格納した着脱可能な記憶装置をコンピュータに接続し、APIフックが行われた後、記憶装置からのファイルの読み出しが行われるまでの処理手順を示すフローチャートである。
【0070】
まず、USBメモリ10のファイル記憶手段14から処理対象ファイルがウイルス防止プログラム実行手段21に入力されると(ステップ90)、処理対象ファイルが暗号化されているか否かが判定される(ステップ91)。
【0071】
そして、暗号化されている場合には(ステップ92のYES)、API25を呼び出したAP23が、所定のアプリケーションプログラムを実行するものであるか否かが判定される(ステップ93)。
AP23が予め指定された所定のアプリケーションプログラムであるか否かは、APIフック24から入力されたAP23の種類を示す情報にもとづき判定することができる。
【0072】
そして、判定の結果、AP23が予め指定された所定のアプリケーションプログラムである場合は(ステップ94のYES)、処理対象ファイルの復号化処理が行われ(ステップ95)、AP23が予め指定された所定のアプリケーションプログラムでない場合は(ステップ94のNO)、処理が終了する。これら以外の処理手順については、第二実施形態におけるものと同様のものとすることができる。
【0073】
このように本実施形態のウイルス防止プログラム、コンピュータに着脱可能な記憶装置、及びウイルス防止方法によれば、処理対象ファイルの復号化を、API25が一定のアプリケーションプログラムから呼び出されている場合にのみ行わせることが可能であり、第三者が特殊なプログラムを用いて処理対象ファイルを復号化しようとしてもこれを防止することが可能となっている。
【0074】
本発明は、以上の実施形態に限定されるものではなく、本発明の範囲内において、種々の変更実施が可能であることは言うまでもない。
例えば、第一実施形態の構成にアプリケーション確認手段21gを加えるなど適宜変更することが可能である。
【産業上の利用可能性】
【0075】
本発明は、ウイルス対策が施されていないコンピュータなどにUSBメモリ10を接続してファイルのやりとりを行う場合に、ウイルスの拡散を防止することができ、好適に利用することが可能である。
【図面の簡単な説明】
【0076】
【図1】本発明の第一実施形態のウイルス防止プログラムを格納した着脱可能な記憶装置をコンピュータに接続した、当該コンピュータに形成される構成を示すブロック図において、記憶装置にファイルを書き込む流れを示した図である。
【図2】本発明の第一実施形態のウイルス防止プログラムを格納した着脱可能な記憶装置をコンピュータに接続した、当該コンピュータに形成される構成を示すブロック図において、記憶装置からファイルを読み出す流れを示した図である。
【図3】本発明の第一実施形態のウイルス防止プログラムを格納した着脱可能な記憶装置をコンピュータに接続し、APIフックが行われるまでの処理手順を示すフローチャートである。
【図4】本発明の第一実施形態のウイルス防止プログラムを格納した着脱可能な記憶装置をコンピュータに接続し、APIフックが行われた後、記憶装置へのファイルの書き込みが行われるまでの処理手順を示すフローチャートである。
【図5】本発明の第一実施形態のウイルス防止プログラムを格納した着脱可能な記憶装置をコンピュータに接続し、APIフックが行われた後、記憶装置からのファイルの読み出しが行われるまでの処理手順を示すフローチャートである。
【図6】本発明の第二実施形態のウイルス防止プログラムを格納した着脱可能な記憶装置をコンピュータに接続した、当該コンピュータに形成される構成を示すブロック図において、記憶装置にファイルを書き込む流れを示した図である。
【図7】本発明の第二実施形態のウイルス防止プログラムを格納した着脱可能な記憶装置をコンピュータに接続した、当該コンピュータに形成される構成を示すブロック図において、記憶装置からファイルを読み出す流れを示した図である。
【図8】本発明の第二実施形態のウイルス防止プログラムを格納した着脱可能な記憶装置をコンピュータに接続し、APIフックが行われるまでの処理手順を示すフローチャートである。
【図9】本発明の第一実施形態の着脱可能な記憶装置をコンピュータに接続したときの、記憶装置へのファイルの書き込み及び記憶装置からのファイルの読み出しにおけるウイルス防止を示す概念図である。
【図10】本発明の第二実施形態の着脱可能な記憶装置をコンピュータに接続したときの、記憶装置へのファイルの書き込み及び記憶装置からのファイルの読み出しにおけるウイルス防止を示す概念図である。
【図11】本発明の第三実施形態のウイルス防止プログラムを格納した着脱可能な記憶装置をコンピュータに接続した、当該コンピュータに形成される構成を示すブロック図において、記憶装置からファイルを読み出す流れを示した図である。
【図12】本発明の第三実施形態のウイルス防止プログラムを格納した着脱可能な記憶装置をコンピュータに接続し、APIフックが行われた後、記憶装置からのファイルの読み出しが行われるまでの処理手順を示すフローチャートである。
【符号の説明】
【0077】
10 USBメモリ(記憶装置)
11 ウイルス防止プログラム
12 ウイルス検知プログラム
13 暗号化・復号化プログラム
14 ファイル記憶手段
20 PC(コンピュータ)
21 ウイルス防止プログラム実行手段
21a ファイル入力手段
21b ウイルス検知手段
21b−1 ウイルス検知プログラム実行手段
21c 判定手段
21d 暗号化・復号化手段
21d−1 暗号化・復号化プログラム実行手段
21e ファイル出力手段
21f ユーザ認証手段
21g アプリケーション確認手段
22 ファイル記憶手段
23 AP(アプリケーションプログラム)
24 APIフック
25 API(アプリケーションプログラムインタフェース)

【特許請求の範囲】
【請求項1】
所定のアプリケーションプログラムを実行するAP実行手段と、所定のアプリケーションプログラムインタフェースを実行するAPI実行手段と、前記AP実行手段が前記API実行手段を呼び出すと、前記API実行手段による処理が行われる前に、他の処理を実行可能に制御するフック手段とを備えたコンピュータに着脱可能な記憶装置に格納されるウイルス防止プログラムであって、
前記コンピュータに前記記憶装置を接続すると、前記コンピュータが当該ウイルス防止プログラムを起動し、
前記コンピュータを、
前記フック手段から制御が受け渡されると、前記API実行手段による処理対象のファイルを入力するファイル入力手段、
前記ファイル入力手段により入力された前記処理対象ファイルが、コンピュータウイルスに感染しているか否かを検知するウイルス検知手段、
前記処理対象ファイルが、ウイルスに感染している場合、前記API実行手段による処理が失敗したことを前記AP実行手段に出力し、ウイルスに感染していない場合、前記処理対象のファイルを暗号化・復号化手段に出力する判定手段、
前記判定手段から前記処理対象のファイルを入力すると、当該処理対象のファイルを暗号化又は復号化する前記暗号化・復号化手段、及び、
前記暗号化・復号化手段から暗号化又は復号化された前記処理対象のファイルを入力すると、当該処理対象のファイルを前記API実行手段へ出力するファイル出力手段
として機能させるためのウイルス防止プログラム。
【請求項2】
前記処理対象のファイルが前記コンピュータにおけるファイル記憶手段に記憶されており、前記API実行手段により実行されるアプリケーションプログラムインタフェースが、ファイルの書き込み処理を行うものである場合、
前記ファイル入力手段により、前記処理対象のファイルが前記ファイル記憶手段から入力され、
前記ウイルス検知手段により、前記処理対象ファイルがコンピュータウイルスに感染しているか否かが検知され、
前記判定手段により、感染していると判定された場合、前記API実行手段による処理が失敗したことが前記AP実行手段に出力され、感染していないと判定された場合、前記処理対象のファイルが前記暗号化・復号化手段に出力され、
前記暗号化・復号化手段により、前記処理対象のファイルが暗号化され、
前記ファイル出力手段により、暗号化された処理対象のファイルが前記API実行手段へ出力され、
前記API実行手段により、前記暗号化された処理対象のファイルが前記記憶装置に書き込まれる
ことを特徴とする請求項1記載のウイルス防止プログラム。
【請求項3】
前記処理対象のファイルが前記記憶装置に記憶されており、前記API実行手段により実行されるアプリケーションプログラムインタフェースが、ファイルの読み込み処理を行うものである場合、
前記ファイル入力手段により、前記処理対象のファイルが前記記憶装置から入力され、
前記暗号化・復号化手段により、前記処理対象のファイルが暗号化されているか否かが確認され、暗号化されている場合は、復号化され、
前記ウイルス検知手段により、前記処理対象ファイルがコンピュータウイルスに感染しているか否かが検知され、
前記判定手段により、感染していると判定された場合、前記API実行手段による処理が失敗したことが前記AP実行手段に出力され、感染していないと判定された場合、前記処理対象のファイルが前記ファイル出力手段に出力され、
前記ファイル出力手段により、前記処理対象のファイルが前記API実行手段へ出力され、
前記API実行手段により、前記処理対象のファイルが前記コンピュータにおけるファイル記憶手段に記憶される
ことを特徴とする請求項1記載のウイルス防止プログラム。
【請求項4】
前記コンピュータを、
入力された所定の識別情報にもとづき認証処理を行い、認証に成功した場合にのみ、前記ファイル入力手段、前記ウイルス検知手段、前記判定手段、前記暗号化・復号化手段、及びファイル出力手段による各機能を有効にする認証手段
として機能させるための請求項1〜3のいずれかに記載のウイルス防止プログラム。
【請求項5】
前記コンピュータを、
前記暗号化・復号化手段により、前記処理対象のファイルが暗号化されているか否かが確認され、暗号化されている場合、前記API実行手段を呼び出した前記AP実行手段が所定のアプリケーションプログラムを実行するものか否かを判定して、判定結果を前記暗号化・復号化手段に出力するアプリケーション確認手段として機能させ、
前記暗号化・復号化手段に、前記判定の結果、前記AP実行手段が所定のアプリケーションプログラムを実行するものである場合にのみ、前記処理対象のファイルを復号化させる
ことを実行させるための請求項3記載のウイルス防止プログラム。
【請求項6】
請求項1〜5のいずれかに記載のウイルス防止プログラムを格納した、コンピュータに着脱可能な記憶装置。
【請求項7】
請求項1〜5のいずれかに記載のウイルス防止プログラムを格納し、生体認証機能を備えた、コンピュータに着脱可能な記憶装置。
【請求項8】
所定のアプリケーションプログラムを実行するAP実行手段と、所定のアプリケーションプログラムインタフェースを実行するAPI実行手段と、前記AP実行手段が前記API実行手段を呼び出すと、前記API実行手段による処理が行われる前に、他の処理の実行を制御するフック手段とを備えたコンピュータに、着脱可能な記憶装置を接続し、
前記コンピュータが、前記記憶装置に格納されているウイルス防止プログラムを起動して、ウイルス防止プログラム実行手段を生成し、
前記ウイルス防止プログラム実行手段が、
前記フック手段から制御が受け渡されると、前記API実行手段による処理対象のファイルを入力し、
入力された前記処理対象ファイルがコンピュータウイルスに感染しているか否かを検知し、
感染している場合、前記API実行手段による処理が失敗したことを前記AP実行手段に出力し、感染していない場合、前記処理対象のファイルを暗号化又は復号化して、前記API実行手段へ出力する
ことを特徴とするウイルス防止方法。
【請求項9】
前記処理対象のファイルが前記コンピュータにおけるファイル記憶手段に記憶されており、前記API実行手段により実行されるアプリケーションプログラムインタフェースが、ファイルの書き込み処理を行うものである場合、
前記ウイルス防止プログラム実行手段が、
前記処理対象のファイルを前記ファイル記憶手段から入力して、当該処理対象のファイルがコンピュータウイルスに感染しているか否かを検知し、
感染している場合、前記API実行手段による処理が失敗したことを前記AP実行手段に出力し、感染していない場合、前記処理対象のファイルを暗号化して前記API実行手段へ出力し、
前記API実行手段により、前記暗号化された処理対象のファイルが前記記憶装置に書き込まれる
ことを特徴とする請求項8記載のウイルス防止方法。
【請求項10】
前記処理対象のファイルが前記記憶装置に記憶されており、前記API実行手段により実行されるアプリケーションプログラムインタフェースが、ファイルの読み込み処理を行うものである場合、
前記ウイルス防止プログラム実行手段が、
前記処理対象のファイルを前記記憶装置から入力し、
前記処理対象のファイルが暗号化されているか否かを検知して、暗号化されている場合は、当該処理対象のファイルを復号化し、
前記処理対象ファイルがコンピュータウイルスに感染しているか否かを検知し、
感染している場合、前記API実行手段による処理が失敗したことを前記AP実行手段に出力し、感染していない場合、前記処理対象のファイルを前記API実行手段へ出力し、
前記API実行手段により、前記処理対象のファイルが前記コンピュータにおけるファイル記憶手段に記憶される
ことを特徴とする請求項8記載のウイルス防止方法。
【請求項11】
前記コンピュータに前記記憶装置を接続して、前記コンピュータが前記ウイルス防止プログラムを起動すると、
前記ウイルス防止プログラム実行手段が、
入力された所定の識別情報にもとづき認証処理を実行し、認証に成功した場合にのみ、前記処理対象のファイルの入力以降の処理を実行する
ことを特徴とする請求項8〜10のいずれかに記載のウイルス防止方法。
【請求項12】
前記ウイルス防止プログラム実行手段が、
前記処理対象のファイルが暗号化されている場合、前記API実行手段を呼び出した前記AP実行手段が、所定のアプリケーションプログラムを実行するものか否かを判定し、所定のアプリケーションプログラムを実行するものである場合にのみ、前記処理対象のファイルを復号化する
ことを特徴とする請求項10記載のウイルス防止方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2010−97550(P2010−97550A)
【公開日】平成22年4月30日(2010.4.30)
【国際特許分類】
【出願番号】特願2008−269755(P2008−269755)
【出願日】平成20年10月20日(2008.10.20)
【出願人】(507104164)株式会社インテリジェントソフトウェアー (5)
【Fターム(参考)】