特許第6180166号(P6180166)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン電子株式会社の特許一覧

特許6180166情報処理装置、システム、コピー操作検出方法およびコンピュータプログラム
<>
  • 特許6180166-情報処理装置、システム、コピー操作検出方法およびコンピュータプログラム 図000002
  • 特許6180166-情報処理装置、システム、コピー操作検出方法およびコンピュータプログラム 図000003
  • 特許6180166-情報処理装置、システム、コピー操作検出方法およびコンピュータプログラム 図000004
  • 特許6180166-情報処理装置、システム、コピー操作検出方法およびコンピュータプログラム 図000005
  • 特許6180166-情報処理装置、システム、コピー操作検出方法およびコンピュータプログラム 図000006
  • 特許6180166-情報処理装置、システム、コピー操作検出方法およびコンピュータプログラム 図000007
  • 特許6180166-情報処理装置、システム、コピー操作検出方法およびコンピュータプログラム 図000008
  • 特許6180166-情報処理装置、システム、コピー操作検出方法およびコンピュータプログラム 図000009
  • 特許6180166-情報処理装置、システム、コピー操作検出方法およびコンピュータプログラム 図000010
  • 特許6180166-情報処理装置、システム、コピー操作検出方法およびコンピュータプログラム 図000011
  • 特許6180166-情報処理装置、システム、コピー操作検出方法およびコンピュータプログラム 図000012
  • 特許6180166-情報処理装置、システム、コピー操作検出方法およびコンピュータプログラム 図000013
  • 特許6180166-情報処理装置、システム、コピー操作検出方法およびコンピュータプログラム 図000014
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6180166
(24)【登録日】2017年7月28日
(45)【発行日】2017年8月16日
(54)【発明の名称】情報処理装置、システム、コピー操作検出方法およびコンピュータプログラム
(51)【国際特許分類】
   G06F 21/55 20130101AFI20170807BHJP
【FI】
   G06F21/55 340
【請求項の数】11
【全頁数】20
(21)【出願番号】特願2013-86896(P2013-86896)
(22)【出願日】2013年4月17日
(65)【公開番号】特開2014-211716(P2014-211716A)
(43)【公開日】2014年11月13日
【審査請求日】2016年3月30日
(73)【特許権者】
【識別番号】000104652
【氏名又は名称】キヤノン電子株式会社
(74)【代理人】
【識別番号】100076428
【弁理士】
【氏名又は名称】大塚 康徳
(74)【代理人】
【識別番号】100112508
【弁理士】
【氏名又は名称】高柳 司郎
(74)【代理人】
【識別番号】100115071
【弁理士】
【氏名又は名称】大塚 康弘
(74)【代理人】
【識別番号】100116894
【弁理士】
【氏名又は名称】木村 秀二
(74)【代理人】
【識別番号】100130409
【弁理士】
【氏名又は名称】下山 治
(74)【代理人】
【識別番号】100134175
【弁理士】
【氏名又は名称】永川 行光
(72)【発明者】
【氏名】関口 あずさ
【審査官】 伏本 正典
(56)【参考文献】
【文献】 特開2011−138422(JP,A)
【文献】 特開2007−048310(JP,A)
【文献】 鬼頭 哲郎,端末内の動作監視に基づく情報漏えいウイルスの検知手法の実装と評価,コンピュータセキュリティシンポジウム2008 論文集 [第一分冊],日本,社団法人情報処理学会,2008年10月10日,pp.7-12
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/55
G06F 21/60
(57)【特許請求の範囲】
【請求項1】
任意のプログラムからファイルシステムに対する複数のアクセス要求をフィルタドライバにより捕捉する捕捉手段と、
前記捕捉手段により捕捉された複数のアクセス要求の順序が特定の順序であるかどうかに基づき、ファイルに対するコピー操作を検出する検出手段と
前記捕捉手段により捕捉されたアクセス要求に付随するオプション情報を抽出する抽出手段と、
前記抽出手段により抽出された前記オプション情報が特定の種類のオプション情報であり、かつ、カウント値が所定値であるときに、当該カウント値を1つ増加するカウント手段と
を有し、
前記検出手段は、
前記捕捉手段により捕捉された複数のアクセス要求の順序が特定の順序であり、かつ、前記捕捉手段により捕捉された複数のアクセス要求の数が特定の数であるときに、前記ファイルについてコピー操作が実行されようとしていると判定し、更に、
前記アクセス要求の対象となったファイルがオープンされてからクローズされるまでに前記カウント手段によりカウントされたカウント値が、コピー操作に特有の値であるときに、前記ファイルについてコピー操作が実行されようとしていると判定する
ことを特徴とする情報処理装置。
【請求項2】
任意のプログラムからファイルシステムに対する複数のアクセス要求をフィルタドライバにより捕捉する捕捉手段と、
前記捕捉手段により捕捉された複数のアクセス要求の順序が特定の順序であるかどうかに基づき、ファイルに対するコピー操作を検出する検出手段と
を有し、
前記検出手段は、第1のファイルに対する複数のアクセス要求の順序が特定の順序であり、かつ、新たに作成された第2のファイルに対するアクセス要求に基づいて抽出されたプロセスID、スレッドIDおよび日時に関する情報、前記第1のファイルのプロセスID、スレッドIDおよび日時に関する情報が一致したときに、前記第1のファイルをコピーして前記第2のファイルが作成されていると判定することを特徴とする情報処理装置。
【請求項3】
前記特定の種類のオプション情報の1つは、前記アクセス要求がファイル情報の取得要求であることを示すオプション情報であることを特徴とする請求項1記載の情報処理装置。
【請求項4】
前記検出手段がコピー操作を検出したときに、コピー操作の対象となったファイルのパス名を含むログを作成するログ作成手段をさらに含むことを特徴とする請求項1ないしのいずれか1項に記載の情報処理装置。
【請求項5】
前記検出手段がコピー操作を検出したときに、コピー操作を停止させる停止手段をさらに含むことを特徴とする請求項1ないしのいずれか1項に記載の情報処理装置。
【請求項6】
前記検出手段がコピー操作を検出したときに、コピー操作により作成された新しいファイルを削除する削除手段をさらに含むことを特徴とする請求項1ないしのいずれか1項に記載の情報処理装置。
【請求項7】
コンピュータを、請求項1乃至6の何れか1項に記載の情報処理装置の各手段として機能させるためのコンピュータプログラム。
【請求項8】
捕捉手段が、任意のプログラムからファイルシステムに対する複数のアクセス要求をフィルタドライバにより捕捉する捕捉工程と、
検出手段が、前記捕捉工程において捕捉された複数のアクセス要求の順序が特定の順序であるかどうかに基づき、ファイルに対するコピー操作を検出する検出工程と
抽出手段が、前記捕捉工程で前記捕捉手段により捕捉されたアクセス要求に付随するオプション情報を抽出する抽出工程と、
カウント手段が、前記抽出工程で前記抽出手段により抽出された前記オプション情報が特定の種類のオプション情報であり、かつ、カウント値が所定値であるときに、当該カウント値を1つ増加するカウント工程と
を有し、
前記検出工程において、前記検出手段は、
前記捕捉工程で前記捕捉手段により捕捉された複数のアクセス要求の順序が特定の順序であり、かつ、前記捕捉工程で前記捕捉手段により捕捉された複数のアクセス要求の数が特定の数であるときに、前記ファイルについてコピー操作が実行されようとしていると判定し、更に、
前記アクセス要求の対象となったファイルがオープンされてからクローズされるまでに前記カウント手段によりカウントされたカウント値が、コピー操作に特有の値であるときに、前記ファイルについてコピー操作が実行されようとしていると判定する
ことを特徴とするコピー操作検出方法。
【請求項9】
捕捉手段が、任意のプログラムからファイルシステムに対する複数のアクセス要求をフィルタドライバにより捕捉する捕捉工程と、
検出手段が、前記捕捉工程で前記捕捉手段により捕捉された複数のアクセス要求の順序が特定の順序であるかどうかに基づき、ファイルに対するコピー操作を検出する検出工程と
を有し、
前記検出工程において、前記検出手段は、第1のファイルに対する複数のアクセス要求の順序が特定の順序であり、かつ、新たに作成された第2のファイルに対するアクセス要求に基づいて抽出されたプロセスID、スレッドIDおよび日時に関する情報と、前記第1のファイルのプロセスID、スレッドIDおよび日時に関する情報とが一致したときに、前記第1のファイルをコピーして前記第2のファイルが作成されていると判定することを特徴とすることを特徴とするコピー操作検出方法。
【請求項10】
情報処理装置と、当該情報処理装置において実行されるコピー操作を検出するサーバ装置とを有するシステムであって、
前記情報処理装置は、
任意のプログラムからファイルシステムに対する複数のアクセス要求をフィルタドライバにより捕捉する捕捉手段
を有し、
前記サーバ装置は、
前記情報処理装置の前記捕捉手段により捕捉された複数のアクセス要求の順序が特定の順序であるかどうかに基づき、ファイルに対するコピー操作を検出する検出手段と、
前記捕捉手段により捕捉されたアクセス要求に付随するオプション情報を抽出する抽出手段と、
前記抽出手段により抽出された前記オプション情報が特定の種類のオプション情報であり、かつ、カウント値が所定値であるときに、当該カウント値を1つ増加するカウント手段と
を有し、
前記検出手段は、
前記捕捉手段により捕捉された複数のアクセス要求の順序が特定の順序であり、かつ、前記捕捉手段により捕捉された複数のアクセス要求の数が特定の数であるときに、前記ファイルについてコピー操作が実行されようとしていると判定し、更に、
前記アクセス要求の対象となったファイルがオープンされてからクローズされるまでに前記カウント手段によりカウントされたカウント値が、コピー操作に特有の値であるときに、前記ファイルについてコピー操作が実行されようとしていると判定することを特徴とするシステム。
【請求項11】
情報処理装置と、当該情報処理装置において実行されるコピー操作を検出するサーバ装置とを有するシステムであって、
前記情報処理装置は、
任意のプログラムからファイルシステムに対する複数のアクセス要求をフィルタドライバにより捕捉する捕捉手段
を有し、
前記サーバ装置は、
前記情報処理装置の前記捕捉手段により捕捉された複数のアクセス要求の順序が特定の順序であるかどうかに基づき、ファイルに対するコピー操作を検出する検出手段
を有し、
前記検出手段は、第1のファイルに対する複数のアクセス要求の順序が特定の順序であり、かつ、新たに作成された第2のファイルに対するアクセス要求に基づいて抽出されたプロセスID、スレッドIDおよび日時に関する情報と、前記第1のファイルのプロセスID、スレッドIDおよび日時に関する情報とが一致したときに、前記第1のファイルをコピーして前記第2のファイルが作成されていると判定することを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ファイルのコピー操作を検出する技術に関する。
【背景技術】
【0002】
米国マイクロソフト社が提供するWindows(登録商標)は、広く普及しているオペレーティングシステム(以下、OS)である。そのため、それを攻撃する悪意のあるプログラムも多い。さらに、悪意のあるプログラムからシステムを防御するためのアプリケーションも多い。セキュリティを維持する目的のため、各種アプリケーションを介したファイルシステムへのアクセス(例えば、ファイルの作成、削除、コピー等)を検出することは重要である。特許文献1では、Windows(登録商標)が提供するファイル操作用API(Application Program Interface)を利用して、ファイルシステムへのアクセスを検出する技術が記載されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2007−48310号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載された発明では、ファイル操作に関与するすべてのAPI(CreateFileA、CloseHandle、CopyFileAなど)をフックの対象として登録して監視する必要があった。また、特許文献1では、APIを用いないファイル操作を検出することができない。さらに、特許文献1では、APIをフックの対象としているのでアプリケーションに依存してしまう。このように特許文献1に記載の発明ではいくつかの課題があった。
【0005】
そこで、本発明は、上記の課題または他の課題のうち少なくとも1つを解決することを目的とする。たとえば、本発明は、APIを用いずにファイル操作を実行するようなアプリケーションによるファイルのコピー操作であっても検出できるようにすることを目的とする。
【課題を解決するための手段】
【0006】
本発明は、たとえば、
任意のプログラムからファイルシステムに対する複数のアクセス要求をフィルタドライバにより捕捉する捕捉手段と、
前記捕捉手段により捕捉された複数のアクセス要求の順序が特定の順序であるかどうかに基づき、ファイルに対するコピー操作を検出する検出手段と
前記捕捉手段により捕捉されたアクセス要求に付随するオプション情報を抽出する抽出手段と、
前記抽出手段により抽出された前記オプション情報が特定の種類のオプション情報であり、かつ、カウント値が所定値であるときに、当該カウント値を1つ増加するカウント手段と
を有し、
前記検出手段は、
前記捕捉手段により捕捉された複数のアクセス要求の順序が特定の順序であり、かつ、前記捕捉手段により捕捉された複数のアクセス要求の数が特定の数であるときに、前記ファイルについてコピー操作が実行されようとしていると判定し、更に、
前記アクセス要求の対象となったファイルがオープンされてからクローズされるまでに前記カウント手段によりカウントされたカウント値が、コピー操作に特有の値であるときに、前記ファイルについてコピー操作が実行されようとしていると判定する
ことを特徴とする情報処理装置を提供する。
【発明の効果】
【0007】
本発明によれば、ファイルに対する複数のアクセス要求の発行順序がファイルコピー操作に特有の特定の順序であるかどうかに基づきに、コピー操作を検出する。本発明によれば、ファイル操作に関与するすべてのAPIを監視する必要はないため、ファイル操作に関与するすべてのAPIを登録する必要はない。さらに、本発明によれば、APIを用いずにファイル操作を実行するようなアプリケーションによるファイルのコピー操作であっても検出できる。また、フィルタドライバによってアクセス要求を捕捉すれば、従来技術と比較して、アプリケーションに対する影響は軽微となろう。
【図面の簡単な説明】
【0008】
図1】情報処理装置(コンピュータ)のブロック図
図2】ファイルシステムドライバへのアクセスログを検出するためのプログラム構造を示す図
図3】ファイル情報リストの一例を示す図
図4】アクセス要求の取得処理を示すフローチャート
図5】ファイル情報リストの作成処理を示すフローチャート
図6】ファイルのコピー操作検出処理を示すフローチャート
図7】OSのバージョンごとのコピー操作を検出するための条件(コピー操作検出条件)を示す図
図8】コピー元ファイルリストの一例を示す図
図9】コピー操作に関与するアクセス要求のタイミングを示す図
図10】アクセスログの一例を示す図
図11】ファイルシステムドライバおよび非ファイルシステムドライバへのアクセス要求を検出するためのプログラム構造を示す図
図12】コピー禁止処理を示すフローチャート
図13】コピー禁止処理を示すフローチャート
【発明を実施するための形態】
【0009】
本発明は、アプリケーションなどの任意のプログラムから発行される複数のアクセス要求を捕捉し、捕捉したいくつかのアクセス要求の発行順序が特定の順序であるかどうかに基づき、コピー操作を検出することを特徴としている。複数のアクセス要求のうち1つ1つのアクセス要求からはコピー操作を検出できない。しかし、コピー操作が実行されるときは、ある特定の複数のアクセス要求が、ある特定の順序で発行される。そこで、捕捉した複数のアクセス要求の発行順序が特定の順序であるかどうか確認することで、コピー操作を検出できる。なお、アクセス要求の捕捉はフックによっても実現できるが、フィルタドライバによって捕捉するほうが、メリットが大きい。もちろん、フックによるアクセス要求の捕捉を除外する意図はない。本発明のポイントは、複数のアクセス要求の発行順序に基づきファイルコピーを検出することだからである。
【0010】
また、以下説明では、後述するファイルシステムドライバに対して発行される要求をアクセス要求としているが、アクセス要求に対するファイルシステムドライバからの返答(リターン)もアクセス要求に含まれる。
【0011】
本実施形態における情報処理装置100のブロック図を図1に示す。情報処理装置100は、クライント装置やサーバ装置として機能するコンピュータの一例である。CPU101は、情報処理装置100の全体を統括的に制御する制御ユニットである。ROM102は、BIOSやブートプログラムを格納している記憶装置である。RAM103は、OSやアプリケーションがロードされたり、ワークエリアとして使用されたりする記憶装置である。ネットワークインタフェース104は、ネットワークを介してサーバ装置などと通信するユニットである。キーボード105及びポインティングデバイス106は、USBインタフェース107を介してCPU101に対して情報を入力するユニットである。USBは、ユニバーサルシリアルバスの略称である。USBインタフェース107には、USBメモリや外付けのハードディスク装置や光ディスク装置が接続されてもよい。なお、USBメモリとはUSBコネクタに接続して使用され、書き換え可能な不揮発性のメモリを内蔵した持ち運び可能な記憶装置である。表示制御部109は、CPU101の指示に従って表示装置108に表示すべき画像の描画処理を行う。記憶装置110はハードディスク装置とするが、USB(ユニバーサルシリアルバス)メモリやSSD(ソリッドステートドライブ)等でもよく、その種類は問わない。なお、記憶装置110には米国マクロソフト社が提供するOS「Windows(登録商標)」が既にインストールされており、各種コンピュータプログラムやデータファイルも格納されているものとする。また、後述するフィルタドライバも既にインストールされているものとする。
【0012】
上記構成において、情報処理装置100の電源がONになると、CPU101はROM102のブートプログラムにしたがって動作を開始し、記憶装置110にアクセスし、OSをRAM103上にロードする。さらに、キーボード105、ポインティングデバイス106、および、表示装置108によるユーザインタフェースが機能し始め、情報処理装置100が各種の手段として機能することとなる。なお、このとき、記憶装置110にインストールされた、ファイルに対するアクセス要求を捕捉するフィルタドライバ、および、コピー操作を検出してログを作成する分析プログラムも起動する。この結果、情報処理装置100が備えるファイルシステムへのアクセスの監視とアクセスログの取得、ならびに、予め設定されたネットワーク上のサーバ装置に対し、アクセスログの転送が可能となる。なお、分析プログラムは、サーバ装置に備えられていてもよい。サーバ装置の機能ブロックも基本的に情報処理装置100と同様である。
【0013】
図2は、ファイルシステムドライバへのアクセスログを検出するためのプログラム構造を示す図である。ファイルシステムは、一般に、論理ドライブごとに存在する。また、アプリケーション201は、ファイルシステムドライバ203を介してファイルシステムにアクセスする。ファイルシステムドライバ203は、たとえば、「NTFS」や「FAT」「FAT32」といったファイルシステムを操作するためのドライバである。
【0014】
本実施形態では、アプリケーション201とファイルシステムドライバ203との間にフィルタドライバ202が配置されている。フィルタドライバ202は、ファイルシステムドライバ203に対して発行されるアクセス要求と、アクセス要求に対するファイルシステムドライバ203から発行される返答(アクセス要求)をすべて捕捉することができるため、捕捉したアクセス要求に含まれている情報を抽出したり、改変したり、アクセス要求を破棄したりすることもできる。通常、フィルタドライバ202は、アクセス要求をファイルシステムドライバ203に転送する。フィルタドライバ202は、アクセス要求に含まれている情報を抽出して分析プログラム204に転送する。これにより、分析プログラム204は、ユーザが操作するアプリケーション201が、何時、どのようなファイルへアクセスしたかを示すアクセスログを作成することができる。とりわけ、本実施形態の分析プログラム204は、捕捉手段として機能するフィルタドライバ202により捕捉された複数のアクセス要求の順序が特定の順序であるかどうかに基づき、コピー操作を検出する。なお、分析処理が実行するタイミングによっては、ファイルについてコピー操作が実行されている最中であることもあるし、コピー操作が完了していることもある。このようにタイミング次第で、本実施形態は、コピー操作が実行されていること、またはコピー操作が実行されたことを検出(推定)できる。
【0015】
従来技術では、ファイル操作に関与するすべてのAPIをフックによって監視することでコピー操作を検出していたが、これには上述したような課題が存在していた。ところで、ファイル操作に際して複数のアクセス要求が発行されるが、1つのアクセス要求だけではコピー操作が実行されたかどうかはわからない。発明者が分析したところ、コピー操作が実行されるときは、ある特定の複数のアクセス要求が特定の順序でアプリケーション201から発行されることを突き止めた。そこで、CPU101は、複数のアクセス要求が特定の順序で発行されたことを検出すれば、コピー操作が実行中であるか、実行されたと推定できる。
【0016】
図2において、アプリケーション201は、たとえば、文書編集アプリケーション、表計算アプリケーション等などのアプリケーションプログラムであるが、ウイルスプログラムであってもよい。フィルタドライバ202は、アプリケーション201からファイルシステムドライバ203へのアクセス要求を横取りして、アクセス要求から抽出した情報を分析プログラム204に転送する。ここで、分析プログラム204に転送される情報としては、どのアプリケーション(例:プロセス名)から、どのファイルシステムのどのファイル(例:パス名を含むファイル名)にアクセス要求があったかを特定可能な情報である。
【0017】
たとえば、アプリケーション201がファイルAをコピーしてファイルBを作成することを仮定する。この場合、フィルタドライバ202は、ファイルAを開くためのアクセス要求(例:IRP_MJ_CREATE)や、ファイルAを閉じるためのアクセス要求(例:IRP_MJ_CLEANUP)、ファイルAのファイル情報を取得するためのアクセス要求(例:IRP_MJ_QUERY_INFOMATION)、ファイル情報を設定するためのアクセス要求(例:IRP_MJ_SET_INFOMATION)などのアクセス要求を横取り(インターセプト)する。
【0018】
なお、アプリケーション201を起動したユーザ名、コピー元ファイル名、コピー先ファイル名、コピー終了日時などの情報も分析プログラム204は利用してもよい。コピー元ファイルとは、コピーの対象となったオリジナルのファイルのことであり、コピー先ファイルはオリジナルファイルから複製されたファイルのことである。
【0019】
フィルタドライバ202から分析プログラム204に通知される情報についてより詳しく説明する。当該情報には、たとえば、以下の情報が含まれうる。
・ファイル識別ID(ファイルオブジェクト、ファイルハンドル、フルパス、ファイル名、ハッシュ値などファイルを識別できるID)
・ファイル操作を行ったユーザのセッションID(ログインユーザ名を特定するために使用される)
・アプリケーションのプロセスID(プロセス名を特定するために使用される)
・ファイルの操作時刻(コピー開始時刻やコピー終了時刻)
・アクセス要求名(ファイルを操作するために発行されるアクセス要求の名称であり、上述したIRP_MJ_CREATEなど)
分析プログラム204は、フィルタドライバ202が捕捉したアクセス要求を受信し、アクセスログを作成したり、アクセスログを分析したりする。また、フィルタドライバ202は、アプリケーション201から横取りしたアクセス要求をファイルシステムドライバ203に渡す。これにより、ファイルシステムドライバ203は、アプリケーション201からのアクセス要求を受信してアクセス要求に対応した処理を実行できる。つまり、アプリケーション201からのアクセス要求が当初の宛先であるファイルシステムドライバ203に渡されることで、ファイルシステムへのアクセスが実行される。
【0020】
図3は、ファイル情報リストの一例を示す図である。分析プログラム204は、フィルタドライバ202から受信した情報に基づきファイル情報リスト300を作成する。ファイル情報リスト300とは、アクセス要求に基づき作成した1つ以上のファイル情報301を保持するリストである。ファイル情報301には、ファイルの操作時刻を示す時刻情報、ファイル名、セッションID、プロセスID、アクセス要求のリスト(以下、アクセス要求リスト302)、スレッドIDなどが含まれる。アクセス要求リスト302とは、アクセス要求に付随するアクセス要求名と、オプション情報とを保持するリストである。また、各ファイル情報301を区別するために、固有のファイル識別ID303が各ファイル情報301に付与されている。
【0021】
図4は、フィルタドライバ202にしたがってCPU101が実行するアクセス要求の取得処理を示すフローチャートである。
【0022】
S401で、CPU101は、分析プログラム204にデータ(ファイル情報リスト)を渡すための空のレコードを作成するとともに、ファイルを識別するためのファイル識別IDを発行してレコードに付与する。以下、フィルタドライバ202が取得したデータはこのレコードに追加される。なお、ファイル識別IDは上述したようなデータであってもよい。
【0023】
S402で、CPU101は、アプリケーション201からファイルシステムドライバ203に発行されたアクセス要求を捕捉する。
【0024】
S403で、CPU101は、捕捉したアクセス要求に基づき、セッションID、アクセス要求名、オプション情報、アプリケーション201のプロセスID、スレッドID、現在時刻(日時データ)を取得してレコードに追加する。セッションIDは、ユーザがログインしたときにOSによって発行される識別情報である。プロセスIDは、現在実行されているプロセスをOSが識別するための識別情報であり、プロセスごとに一意な識別子である。スレッドIDは、プロセスが実行している複数のスレッドのそれぞれを識別するための一意の識別情報である。現在時刻はたとえばRTC(リアルタイムクロック)から取得される。アクセス要求に含まれていない情報については、アクセス要求の引数や戻り値によりOSから取得される。時刻情報としては、たとえば、ファイルを開くためのアクセス要求(例:IRP_MJ_CREATE)が発行されたときの時刻情報や、ファイルを閉じるためのアクセス要求(例:IRP_MJ_CLEANUP)が発行されたときの時刻情報が含まれてもよい。
【0025】
図3が示すように、アクセス要求リストには、ファイルを開くためのアクセス要求(例:IRP_MJ_CREATE)が発行されてからファイルを閉じるためのアクセス要求(例:IRP_MJ_CLEANUP)が発行されるまでに発行されたすべてのアクセス要求(例:IRP_MJ_QUERY_INFORMATIONやIRP_MJ_SET_INFORMATION)について、そのアクセス要求名とオプション情報とが記録される。なお、CPU101は、アクセス要求から上記の情報を取得すると、そのアクセス要求をファイルシステムドライバ203に転送する。
【0026】
S404で、CPU101は、アクセス要求の対象となったファイルのファイル名をアクセス要求から取得してレコードに追加する。
【0027】
S405で、CPU101は、作成したレコードを分析プログラム204に送信する。
【0028】
なお、分析プログラム204に送信するタイミングは、レコードが作成される毎に限らず、予め決められた時間毎でもよい。その場合、アクセス要求毎(例:IRP_MJ_CREATE)にレコードをまとめて分析プログラム204に送信してもよい。
【0029】
図5は、分析プログラム204にしたがってCPU101が実行するファイル情報リスト300の作成処理を示すフローチャートである。
【0030】
S501で、CPU101は、フィルタドライバ202からアクセス要求リスについてのレコードを受信する。このときに、CPU101は、レコードをファイル情報リストへ追加するための空のデータ構造を作成し、レコードの内容をデータ構造に追加してもよい。
【0031】
S502で、CPU101は、レコードから、ファイル識別ID、ファイル名、プロセスID、セッションID、アクセス要求名、オプション情報、スレッドID、時刻情報などを抽出する。
【0032】
S503で、CPU101は、抽出した情報からファイル情報301を作成する。たとえば、CPU101は、レコードから抽出したファイル識別ID、ファイル名、プロセスID、セッションID、スレッドID、時刻情報などをデータ構造に追加する。また、CPU101は、アクセス要求名、オプション情報からアクセス要求リスト302を作成し、データ構造に追加する。なお、CPU101は、プロセスIDに対応するプロセス名をOSから取得し、データ構造に追加してもよい。同様に、CPU101は、セッションIDに基づいてログインユーザ名を取得し、データ構造に追加してもよい。
【0033】
S504で、CPU101は、作成したデータ構造をファイル情報リスト300に登録(追加)する。
【0034】
また、フィルタドライバ202が、アクセス要求ごとに1つのレコードを作成して送信してくるときは、ファイルを開く要求(例:IRP_MJ_CREATE)に関するレコードから、ファイルを閉じる要求(例:IRP_MJ_CLEANUP)に関するレコードまで、ファイル識別IDが一致する複数のレコードを同一のファイル情報に登録する。ファイルを開く要求が発行されたタイミングからファイルを閉じる要求が発行されたタイミングまでには、ファイルの情報を要求するアクセス要求などが発行される。よって、これらのアクセス要求についても、ファイル識別IDが一致するかぎり、同一のファイル情報の中のアクセス要求リスト302に登録される。
【0035】
CPU101は、ファイルを開く要求(たとえば、IRP_MJ_CREATE)から始まりファイルを閉じる要求(たとえば、IRP_MJ_CLEANUP)で終わるように、アクセス要求リスト302にアクセス要求名とオプション情報を追加する。なお、ファイル情報301に含まれる項目は一例であり、CPU101は、プロセスIDに基づき、OSからプロセス名(アプリケーション名)を取得してファイル情報301に格納してもよい。
【0036】
なお、CPU101は、ファイル情報に含まれるプロセスIDに対応したプロセスが終了したことを検知すると、そのファイル情報をファイル情報リスト300から削除してもよい。これにより、ファイル情報リスト300の肥大化を抑制できる。もちろん、より遅いタイミングで削除してもよいし、削除しなくてもよい。
【0037】
図6は、分析プログラム204にしたがってCPU101が実行するファイルのコピー操作検出処理を示すフローチャートである。
【0038】
S601で、CPU101は、記憶装置110に記憶されているファイル情報リスト300から1つのファイル情報301を選択し、さらに、そのファイル情報301のアクセス要求リスト302から1つのデータ(アクセス要求)を取り出す。ここでは、ファイル情報リスト300に登録されている複数のファイル情報301のうち、登録された順番が古いものから1つずつファイル情報301が選択されるものとする。また、アクセス要求リストには、ファイルを開く要求からファイルを閉じる要求まで2つ以上のアクセス要求が登録されている。よって、ファイルを開く要求に関するデータ(アクセス要求名とオプション情報)がアクセス要求リストから最初に取り出される。
【0039】
S602で、CPU101は、取り出したファイルを開く要求(たとえば、IRP_MJ_CREATE)のオプション情報が「開いている」ことを示しているかどうかを判定する。たとえば、オプション情報がFILE_OPENEDであれば、ファイルが開いていることを意味する。オプション情報がFILE_CREATEDであれば、ファイルを新規に作成することを意味する。ファイルが開いていればS603に進み、ファイルが開いていなければS610に進む。たとえば、図3において、ファイル識別IDがAであるファイル情報301が読み出されたときはS603に進むことになる。一方で、図3において、ファイル識別IDがA’であるファイル情報301が読み出されたときはS610に進むことになる。
【0040】
S603で、CPU101は、アクセス要求リスト302から次のアクセス要求のデータを取り出す。
【0041】
S604で、CPU101は、アクセス要求名がファイル情報を取得するためのアクセス要求名(例:IRP_MJ_QUERY_INFOMATION)であるかどうかを判定する。アクセス要求名がファイル情報を取得するためのアクセス要求名であればS605に進み、それ以外のアクセス要求名であればS607に進む。
【0042】
S605で、CPU101は、コピー操作を検出するためのカウンタの現在のカウント値(初期値はゼロ)とオプション情報とが、当該カウンタをカウントアップするための条件を満たしているかどうかを判定する。上述したように、ファイルコピー操作が実行されるときは、ある特定の複数のアクセス要求が特定の順序で発行される。たとえば、カウント値が0のときに、オプション情報がファイルの属性を取得することを意味するオプション情報(例:FileAttributeTagInfomation)であれば、CPU101は、カウントアップ条件が合致していると判定する。また、カウント値が1のときに、オプション情報がファイル情報を問い合わせることを意味するオプション情報(例:FileStanderdInfomation)であれば、CPU101は、カウントアップ条件が合致していると判定する。なお、カウント値が0でないときにはオプション情報がFileAttributeTagInfomationであっても、CPU101は、カウントアップ条件が合致しているとは判定しない。同様に、カウント値が1でないときには、オプション情報がFileStanderdInfomationであっても、CPU101は、カウントアップ条件が合致しているとは判定しない。なお、カウントアップ条件は、Windows(登録商標) Vista以降のバージョンのOSとそれよりも古いバージョンのOSとで異なる。
【0043】
たとえば、OSがWindows(登録商標) Vistaより古いOSの場合は、次のようなカウントアップ条件となる。
【0044】
・カウント値が0で、かつ、オプション情報がFileAttributeTagInfomationであるときに、カウント値を1に遷移する。
【0045】
・カウント値が1で、かつ、オプション情報がFileStanderdInfomationであれば、カウント値を2に遷移する。
【0046】
・カウント値が2または4で、かつ、オプション情報がファイル情報を問い合わせまたは設定をするためのオプション情報(FileBasicInfomation)であれば、カウント値を+1だけ増加する。
【0047】
・カウント値が3で、かつ、オプション情報がファイルやディレクトリのデータストリームを列挙するためのオプション情報(FileStreamInfomation)であれば、カウント値を+1だけ増加する。
【0048】
・カウント値が5で、かつ、ファイル情報がファイルの拡張情報のサイズを取得するためのオプション情報(FileEaInfomation)であれば、カウント値を+1に増加する。
【0049】
これらは、アクセス要求リストに登録されているファイル情報を取得する要求の順番もカウントアップに関係があることを意味している。つまり、ファイル情報を取得する要求のオプション順番が、FileAttributeTagInfomation→FileStanderdInfomation→FileBasicInfomation→FileStreamInfomation→FileBasicInfomation→FileEaInfomationのときにカウント値は6になる。
【0050】
このようにCPU101はカウントアップして行くことで、ある特定の複数のアクセス要求が特定の順序で発行されたことを、カウンタのカウント値によって判定することができる。
【0051】
図7は、OSのバージョンごとのコピー操作を検出するための条件(コピー操作検出条件)を示している。OSがWindows(登録商標) Vistaよりも前のバージョン(例:XP、2000など)では、カウント1という名称のカウンタのカウント値が6になったことが、コピー操作が実行されたと認識(検出ないし推定)するための条件となる。なお、OSがWindows(登録商標) Vista以降のバージョンである場合、5つのカウント1、カウント2、カウント3、カウント4、カウント5を用いることで、ある特定の複数のアクセス要求が特定の順序で発行されたことを判別できる。
【0052】
カウントアップ条件が満たされていれば、S606に進み、CPU101は、カウンタの値を1つカウントアップする。カウントアップ条件が満たされていなければ、S603に進み、CPU101は、アクセス要求リストから次のデータを読み出す。
【0053】
S607で、CPU101は、アクセス要求名がファイルを閉じる要求を意味するアクセス要求名かどうかを判定する。アクセス要求名がファイルを閉じる要求を意味するアクセス要求名でなければ、S603に戻り、CPU101は、アクセス要求リストから次のデータを読み出す。一方で、アクセス要求名がファイルを閉じる要求を意味するアクセス要求名(例:IRP_MJ_CLEANUP)であれば、S608に進む。
【0054】
S608で、CPU101は、カウント値がコピー操作検出条件を満たしているかどうかを判定する。カウント値がコピー操作検出条件を満たしていなければ、本処理を終了する。一方で、カウント値がコピー操作検出条件を満たしていれば、S609に進む。なお、カウント値がコピー操作検出条件を満たしていれば、そのファイルをコピー元として複製して新しいファイルが作成された(つまり、コピーが実行されようとしている(コピー中)か、コピーが実行された)可能性が極めて高い。なお、この時点では、どのファイルがコピー操作により作成された新規のファイルかまでは特定できず、コピー元のファイルが特定できるにすぎない。ただし、コピー操作が実行されていることは検出できる。
【0055】
S609で、CPU101は、コピー元ファイルリストに、現在の処理の対象となっているファイル識別ID(例:ファイル識別ID:A)をコピー元のファイルを示すファイル識別IDとしてコピー元ファイルリストに追加する。なお、コピー元ファイルリストには、ファイル情報の一部をそのまま登録してもよいし、ファイル識別IDのみを登録してもよい。ファイル識別IDを検索キーとして、ファイル情報リスト300からファイル情報301を取得できるからである。
【0056】
図8は、コピー元ファイルリストの一例を示す図である。CPU101は、ファイル情報からファイルを開いた時刻、ファイルを閉じた時刻、ファイル名、プロセス名、プロセスID、スレッドIDを読み出して、コピー元ファイルリストに登録している。なお、プロセス名は省略されてもよいし、プロセスIDからプロセス名が特定され、コピー元ファイルリストに追加されてもよい。
【0057】
次に、S602で取り出したファイルを開く要求(たとえば、IRP_MJ_CREATE)のオプション情報が「開いている」ことを示していないときの処理について説明する。これは、複製された新しいファイルに対するアクセス要求に対する処理である。
【0058】
S610で、CPU101は、図8に示したコピー元ファイルリストからデータを取り出す。なお、この時点では、別のファイル識別ID(ファイル識別ID:A’)のデータ(ファイル情報301)がファイル情報リスト300から取り出されている。よって、コピー元ファイルリストのデータと、ファイル識別ID:A’のデータとが以降の処理で比較されることになる。なお、ファイル識別ID:A’は、コピー元ファイルから複製された新規ファイルのファイル識別IDである可能性がある。
【0059】
S611で、CPU101は、コピー元ファイルリストにデータが存在するかどうかを判定する。コピー元ファイルリストにデータがなければ、本処理を終了する。一方で、データが存在すれば、S612に進む。
【0060】
S612で、CPU101は、コピー元ファイルリストのデータに含まれているプロセスIDとスレッドIDの両方が、ファイル識別ID:A’のデータに含まれているプロセスIDとスレッドIDとに一致するかどうかを判定する。つまり、CPU101は、コピー元ファイルリストのプロセスIDとファイル識別ID:A’のプロセスIDとが一致し、かつ、コピー元ファイルリストのスレッドIDとファイル識別ID:A’のスレッドIDとが一致するかどうかを判定する。プロセスIDとスレッドIDとがともに一致すれば、S613に進む。プロセスIDが一致しないか、または、スレッドIDが一致しなければ、S610に戻り、次のデータをコピー元ファイルリストから取り出す。
【0061】
S613で、CPU101は、コピー元ファイルリストから読み出した時刻データが所定の時刻条件に合致しているかどうかを判定する。たとえば、CPU101は、コピー元ファイルリストから取り出したデータに格納されているコピー元ファイルの開閉時間と、ファイル識別ID:A’の開閉時間とを比較する。
【0062】
図9は、コピー操作が実行されるときにコピー元ファイルAに対するアクセス要求のタイミングと、コピー先ファイルA’に対するアクセス要求のタイミングとを示している。コピー先ファイルとは、コピー元ファイルから複製されて生成されたファイルのことである。
【0063】
図9が示すように、コピー操作が実行されるときは、時刻t1においてコピー元ファイルAが開かれ、時刻t2においてコピー先ファイルA’が開かれる。その後、時刻t3においてコピー元ファイルAが閉じられ、時刻t4においてコピー先ファイルA’が閉じられる。よって、S613では、ファイル情報リスト300から読み出したコピー先ファイルA’の開いた時刻t2が、コピー元ファイルリストから読み出したコピー元ファイルAの開いた時刻t1より遅く、かつ、コピー元ファイルAの閉じた時刻t3より前であり、かつ、コピー先ファイルA’の閉じた時刻t4がコピー元ファイルAの閉じた時刻t3よりよりも後であることが判定される(t1<t2<t3<t4)。時刻条件が合致していなければ、S610に戻り、次のデータを取り出す。時刻条件が合致していればS614に進む。なお、リアルタイムで検出しているときは、少なくともt1<t2<t3であることが検出されることになろう。コピー操作が完了していない可能性があるからである。
【0064】
S614で、CPU101は、ファイルのアクセスログにファイル情報を追加して、本処理を終了する。
【0065】
図10は、アクセスログの一例を示す図である。CPU101は、セッションIDに基づきOSから取得したユーザ名をアクセスログに書き込む。CPU101は、コピー先ファイルA’のファイル情報301から取得したプロセス名をアクセスログに書き込む。CPU101は、操作の欄にファイルコピーを検出したことを示す「ファイルコピー」というメッセージを書き込む。CPU101は、コピー元リストから読み出したコピー元ファイルAのファイル名をアクセスログに書き込む。CPU101は、コピー先ファイルA’のファイル情報301から取得したファイル名をアクセスログに書き込む。さらに、CPU101は、コピー先ファイルA’のファイル情報301から取得した時刻情報(ファイルを開いた/閉じた日時を示す情報)をアクセスログに書き込む。
【0066】
以上の実施形態では時刻情報について比較を行ったが、他の情報を使用してもよい。たとえば、CPU101は、ファイルを開くためのアクセス要求とファイルを閉じるためのアクセス要求を検出したときにシーケンス番号を振っていき、シーケンス番号の大小を比較してもよい。つまり、シーケンス番号は時刻の経過とともに増加するため、シーケンス番号の大小を判定すれば、時刻の前後を判定できることになる。
【0067】
以上説明したように、本実施形態によれば、ファイルに対する複数のアクセス要求がファイルコピー操作に特有の特定の順序で発行されたときに、コピー操作が実行されようとしているかコピー操作が実行されたと認識する。本実施形態によれば、ファイル操作に関与するすべてのAPIを監視する必要はないため、ファイル操作に関与するすべてのAPIを登録する必要はない。さらに、本実施形態によれば、APIを用いずにファイル操作を実行するようなアプリケーションによるファイルのコピー操作であっても検出できる。また、フィルタドライバによってアクセス要求を捕捉すれば、フックと比較して、アプリケーションに対する影響は軽微となろう。
【0068】
なお、CPU101は、捕捉された複数のアクセス要求の順序が特定の順序であり、かつ、捕捉された複数のアクセス要求の数が特定の数であるときに、ファイルについてコピー操作が実行されようとしていると推定してもよい。上述したように、ファイルを閉じるためのアクセス要求が発行されたときのカウンタのカウント値が所定値(Windows(登録商標) Vistaより前のOSであれば6)であったときに、コピー操作が実行されたと検出できる。
【0069】
上述したように、ファイルに対する複数のアクセス要求が特定の順序で発行されたかどうかはカウンタを用いることで判定できる。カウンタはハードウエアによって実現されてもよいし、変数など、ソフトウエアによって実現されてもよい。すなわち、CPU101は、捕捉されたアクセス要求が特定の種類のアクセス要求であるときにカウント値を1つ増加する。そして、CPU101は、アクセス要求の対象となったファイルがオープンされてからクローズされるまでにカウントされたカウント値が、コピー操作に特有の値であるときに、ファイルについてコピー操作が実行中かコピー操作が完了したと判定する。
【0070】
アクセス要求は、アクセス要求名とオプション情報とを有している。そこで、CPU101は、アクセス要求名とオプション情報とに着目して、複数のアクセス要求の順序を監視する。CPU101は、アクセス要求に付随するオプション情報を抽出し、抽出したオプション情報が特定の種類のオプション情報であり、かつ、カウント値が所定値であるときに、当該カウント値を1つ増加する。これにより、CPU101は、特定の複数のアクセス要求が特定の順序で発行されたことを判断できる。なお、特定の種類のオプション情報の1つは、アクセス要求がファイル情報の取得要求であることを示すオプション情報であろう。
【0071】
このように、コピー元のファイルに対するアクセス要求を監視することで、そのファイルがコピーされたことを検出できるようになる。しかし、どのファイルがコピー操作によって新規に作成されたファイルかまでは特定できない。そこで、コピー元ファイル(第1のファイル)のプロセスID、スレッドIDおよび日時情報と、コピーにより作成された可能性のあるファイル(第2のファイル)のプロセスID、スレッドIDおよび日時情報とを比較することで、コピー先ファイルを検出できる。コピー先ファイルを検出できれば、事後的にそれを削除することで、実質的にコピー操作を禁止できるであろう。つまり、CPU101は、コピー操作を検出したときに、コピー操作により作成された新しいファイルを削除する削除手段として機能してもよい。また、CPU101は、リアルタイムでコピー操作を検出したときは、コピー操作を停止させる停止手段として機能してもよい。つまり、CPU101は、コピー先ファイルを特定すると、コピー先ファイルに対するアクセス要求をフィルタドライバ202によって捕捉してそれを破棄してもよい。この場合、コピー元ファイルの一部分はコピー済みかもしれないが、残りの部分のコピーを禁止できるであろう。このときにも、CPU101は、未完成のコピー先ファイルを削除してもよい。
【0072】
CPU101は、ファイル情報リストを分析してコピー操作を検出したときに、コピー操作の対象となったファイルのパス名を含むログを作成するログ作成手段として機能してもよい。ログにはファイルのパス名が含まれているため、ウィルスの侵入経路を特定するために役立つであろう。特に、アクセスログにコピー操作を実行したプロセス名を記録しておけば、ウイルスプロセスがどこのパスからどこのパスにファイルをコピーしたかを知ることができるだろう。これは情報漏えいの経路を把握する際にも役立つであろう。また、コピーされたファイルがウイルスプログラムであれば、ウイルスプログラムがどこのパスからどこのパスにコピーされたかがわかるため、ウィルスの侵入経路を特定できるであろう。また、コピー日時をアクセスログに記憶しておけば、日時情報に従ってウイルスプログラムの侵入経路をバックトレースすることも可能となろう。
【0073】
本実施形態では、情報処理装置100にフィルタドライバ202と分析プログラム204とがインストールされているものとして説明したが、分析プログラム204は別の情報処理装置100(つまりサーバ装置など)にインストールされてもよい。この場合、フィルタドライバ202によって作成されたレコードはサーバ装置で動作している分析プログラム204にネットワークインタフェース104を介して送信されることになる。サーバ装置の分析プログラム204は、クライアント装置である情報処理装置100から受信したレコードを分析してコピー操作を検出し、アクセスログを作成する。サーバ装置のハードウエア構成は、情報処理装置100のハードウエア構成と同じであってよい。
【0074】
また、本実施形態では、フィルタドライバ202と分析プログラム204とを別のプログラム構造として説明したが、同一でもよい。また、フィルタドライバ202と分析プログラム204とには上述した複数の機能がふくまれているが、これらの機能はフィルタドライバ202と分析プログラム204とのどちらかに含まれていればよい。あるいは、第3のプログラムに一部の機能が配置されていてもよい。
【0075】
<アクセス要求の取得処理>
上述した実施形態では、ファイルシステムドライバを通じたファイルへのアクセス要求を検出するものとして説明した。しかし、フィルタドライバ202は、USBインタフェース107を介して接続されたリムーバブルメディア上のファイルへのアクセス要求や、ネットワークインタフェース104を介したファイルへのアクセス要求を捕捉することで、コピー操作を検出してもよい。
【0076】
図11は、ファイルシステムドライバおよび非ファイルシステムドライバへのアクセス要求を検出するためのプログラム構造を示している。図2と比較すると分かるように、図11では、フィルタドライバ202が非ファイルシステムドライバ1101に対するアクセス要求も捕捉する。非ファイルシステムドライバ1101とは、ネットワークインタフェース104を制御するドライバや、USBインタフェース107に接続されたディスクシステムなどを制御するドライバである。このように、非ファイルシステムドライバ1101は、リムーバブルメディアやネットワークドライブなどに作成されたファイルシステムを制御するドライバである。なお、ファイルシステムドライバ203は、情報処理装置100に内蔵されたハードディスク装置に含まれるファイルシステムを制御するドライバである。なお、非ファイルシステムドライバ1101がネットワークインタフェース104を制御するドライバである場合、フィルタドライバ202は、ネットワークインタフェース104を通じて送信または受信されるファイルに関するアクセス要求を捕捉してもよい。これは、ターミナルサービスやFTPサービスなどによりコピーされるファイルを検出できることを意味する。
【0077】
このように、フィルタドライバ202は、ファイルシステムドライバ203だけでなく、非ファイルシステムドライバ1101に対するアクセス要求を捕捉して分析プログラム204に渡す。これにより、分析プログラム204は、ファイルシステムドライバ203と非ファイルシステムドライバ1101との間で実行されるコピー操作も検出できる。この時の検出手順についてはすでに説明した手順と同様である。
【0078】
図10に示したように、コピー元ファイルがネットワークドライブに記憶されたファイルである場合(例:¥¥oka¥¥moto¥¥Arrest.xls)や、コピー先ファイルがリムーバブルメディアである場合(例:E:Escape.xls)でもコピー操作を検出して、アクセスログが作成される。また、コピー元ファイル(例:¥¥oka¥¥moto¥¥Release.xls)だけでなくコピー先ファイル(例:E:Release.xls)も非ファイルシステムドライバ1101を通じて実行されることも想定されるが、本実施形態では、そのようなコピー操作も検出できる。
【0079】
このようにリムーバブルメディアなどの外部記憶媒体へファイルがコピーされたときには、CPU101が、表示装置108を通じてユーザに警告メッセージを表示してもよい。これにより、機密文章などを外部に持ち出すことを抑止することも可能であろう。
【0080】
<コピー操作の禁止>
記憶装置110にコピー操作を禁止されるファイルを示すコピー禁止リストを予め記憶しておく。図12が示すように、S608でコピー操作が検出されると、S1201に進む。なお、コピー禁止リストは、コピー操作を禁止されるファイルを示す情報(たとえば、ファイル名)に限らず、特定ユーザや特定プロセスでもよい。
【0081】
S1201で、CPU101は、コピー操作の対象となったコピー元ファイルのファイル名がコピー禁止リストに登録されているかどうかを判定する。コピー操作の対象となったコピー元ファイルのファイル名がコピー禁止リストに登録されていれば、S1202に進む。S1202で、CPU101は、コピー禁止処理を実行する。たとえば、CPU101は、情報処理装置100の電源を落としたり(シャットダウン)、コピー操作を実行したプロセスを強制的に停止させたりしてもよい。
【0082】
これを実行する代わりに、図13が示すように、S1301で、CPU101は、コピー元ファイルのファイル名がコピー禁止リストに登録されているかどうかを判定する。コピー元ファイルのファイル名がコピー禁止リストに登録されていれば、S1302に進む。そうでなければ、S614に進む。
【0083】
S1302で、CPU101は、コピー禁止処理を実行する。たとえば、CPU101は、S610ないしS613により確定したコピー先ファイルに対するアクセス要求をフィルタドライバ202に破棄させる。これにより、コピー操作を途中で停止させることができる。さらに、CPU101は、途中までコピーされたコピー先ファイルを強制的に削除してもよい。その後、S614で、CPU101は、コピー操作が実行されようとしたことやコピー操作が禁止されたこと、コピー先ファイルが削除されたことをアクセスログに登録する。
【0084】
このように本実施形態によれば、アクセス要求を監視することで、コピー禁止ファイルのコピー操作を検出し、コピー禁止処理を実行できるようになる。これにより、情報漏えいなどを抑制できるようになろう。
【0085】
本発明の実施形態では、Windows(登録商標)を一例として説明した。しかし、本発明は、ファイルコピー操作が実行されるときに特定の複数のアクセス要求が特定の順序で発行されるOSであれば、同様に適用できる。
【0086】
なお、図12図13では、コピー操作を禁止されるファイルを示すコピー禁止リストを予め記憶しておきコピー禁止ファイルのコピー禁止処理を実行していたが、コピー禁止リストを予め記憶することなくコピー禁止処理を実行することも可能である。
【0087】
具体的には、図13のS609で、CPU101は、コピー操作の対象となったコピー元ファイルのファイル情報をコピー禁止リストに登録する。そして、S610で、コピー禁止リストからデータをとりだし、S613で、時刻条件が一致していた場合(S613のYES)、CPU101は、コピー禁止処理を実行する。
【0088】
このように、コピー禁止リストを予め記憶することなくコピー禁止処理を実行することで、未知のファイルに対するコピー操作を禁止することができ、より情報漏えいなどを抑制できるようになろう。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13