(57)【特許請求の範囲】
【請求項１】
ファイル内に含まれた不正コードを検出するファイルチェック装置であって、
プロセスから前記ファイルへのアクセスを制御するアクセス制御手段と、
前記アクセス制御手段によるアクセス制御によって、ファイルチェック済でない前記ファイルを選択するファイル選択手段と、
前記ファイルチェック手段が選択したファイル内の不正コードの有無を判定するファイルチェックを行うファイルチェック手段と、
前記ファイルの振る舞いを検知し、検知した振る舞いに基づいてファイルの種別を検知する検知手段と、
前記検知手段が検知した結果に基づいて、前記ファイルを書込み禁止と判断する判断手段と、
前記アクセス制御手段が保持しているアクセス情報において、前記ファイルを書込み禁止に更新するアクセス情報更新手段と、
を備えることを特徴とするファイルチェック装置。
【請求項２】
前記ファイルチェック手段は、ウイルスチェック手段、改竄チェック手段、脆弱性チェック手段、バイナリチェック手段のいずれか１つ、２つ以上の組み合わせ、またはすべてを含む請求項１に記載のファイルチェック装置。
【請求項３】
前記検知手段は、前記ファイルの振る舞いとして、実行可能なコードを含む前記ファイルの起動、またはライブラリもしくはデバイスドライバのメモリへの読み込みを検知して、前記ファイルの種別を検知する請求項１または２に記載のファイルチェック装置。
【請求項４】
ファイル内に含まれた不正コードを検出するファイルチェック装置であって、
プロセスから前記ファイルへのアクセスを制御するアクセス制御手段と、
前記アクセス制御手段によるアクセス制御によって、ファイルチェック済でない前記ファイルを選択するファイル選択手段と、
前記ファイルチェック手段が選択したファイル内の不正コードの有無を判定するファイルチェックを行うファイルチェック手段と、
前記ファイルの内容に基づいてファイルの種別を検知する検知手段と、
前記検知手段が検知した結果に基づいて、前記ファイルを書込み禁止と判断する判断手段と、
前記アクセス制御手段が保持しているアクセス情報において、前記ファイルを書込み禁止に更新するアクセス情報更新手段と、
を備えることを特徴とするファイルチェック装置。
【請求項５】
前記検知手段は、前記ファイルの内容として、複数ファイルをまとめたファイルまたは圧縮ファイルであることを判断して、前記ファイルの種別を検知する請求項４に記載のファイルチェック装置。
【請求項６】
ファイル内に含まれた不正コードを検出するためのファイルチェックプログラムであって、
コンピュータに、
プロセスから前記ファイルへのアクセスを制御するアクセス制御処理と、
前記アクセス制御処理によるアクセス制御によって、ファイルチェック済でない前記ファイルを選択するファイル選択処理と、
前記ファイルチェック手段が選択したファイル内の不正コードの有無を判定するファイルチェックを行うファイルチェック処理と、
前記ファイルの振る舞いを検知し、検知した振る舞いに基づいて前記ファイルの種別を検知する検知処理と、
前記検知処理で検知した結果に基づいて、前記ファイルを書込み禁止と判断する判断処理と、
前記アクセス制御処理によって保持されたアクセス情報において、前記ファイルを書込み禁止に更新するアクセス情報更新処理と、
を実行させるためのファイルチェックプログラム。
【請求項７】
前記コンピュータに、
前記ファイルチェック処理で、ウイルスチェック処理、改竄チェック処理、脆弱性チェック処理、バイナリチェック処理のいずれか１つ、２つ以上の組み合わせ、またはすべてを含む処理を実行させるための
請求項６に記載のファイルチェックプログラム。
【請求項８】
前記コンピュータに、
前記検知処理で、前記ファイルの振る舞いとして、実行可能なコードを含む前記ファイルの起動、またはライブラリもしくはデバイスドライバのメモリへの読み込みを検知して、前記ファイルの種別を検知する処理を実行させるための
請求項６または７に記載のファイルチェックプログラム。
【請求項９】
ファイル内に含まれた不正コードを検出するためのファイルチェックプログラムであって、
コンピュータに、
プロセスから前記ファイルへのアクセスを制御するアクセス制御処理と、
前記アクセス制御処理によるアクセス制御によって、ファイルチェック済でない前記ファイルを選択するファイル選択処理と、
前記ファイルチェック手段が選択したファイル内の不正コードの有無を判定するファイルチェックを行うファイルチェック処理と、
前記ファイルの内容に基づいて前記ファイルの種別を検知する検知処理と、
前記検知処理で検知した結果に基づいて、前記ファイルを書込み禁止と判断する判断処理と、
前記アクセス制御処理によって保持されたアクセス情報において、前記ファイルを書込み禁止に更新するアクセス情報更新処理と、
を実行させるためのファイルチェックプログラム。
【請求項１０】
前記コンピュータに、
前記検知処理で、前記ファイルの内容として、複数ファイルをまとめたファイルまたは圧縮ファイルであることを判断して、前記ファイルの種別を検知する処理を実行させるための
請求項９に記載のファイルチェックプログラム。
【請求項１１】
コンピュータにより、ファイル内に含まれた不正コードを検出するファイルチェック方法であって、
前記コンピュータが、プロセスから前記ファイルへのアクセスを制御するアクセス制御ステップと、
前記アクセス制御手段によるアクセス制御によって、ファイルチェック済でない前記ファイルを選択するファイル選択ステップと、
前記ファイルチェック手段が選択したファイル内の不正コードの有無を判定するファイルチェックを行うファイルチェックステップと、
前記ファイルの振る舞いを検知し、検知した振る舞いに基づいて前記ファイルの種別を検知する検知ステップと、
前記検知ステップで検知した結果に基づいて、前記ファイルを書込み禁止と判断する判断ステップと、
前記アクセス制御ステップで保持されたアクセス情報において、前記ファイルを書込み禁止に更新するアクセス情報更新ステップと、
を実行することを特徴とするファイルチェック方法。
【請求項１２】
前記コンピュータが、前記ファイルチェックステップで、ウイルスチェック、改竄チェック、脆弱性チェック、バイナリチェックのいずれか１つ、２つ以上の組み合わせ、またはすべてを実行する請求項１１に記載のファイルチェック方法。
【請求項１３】
前記コンピュータが、前記検知ステップで、前記ファイルの振る舞いとして、実行可能なコードを含む前記ファイルの起動、またはライブラリもしくはデバイスドライバのメモリへの読み込みを検知して、前記ファイルの種別を検知する請求項１１または１２に記載のファイルチェック方法。
【請求項１４】
コンピュータにより、ファイル内に含まれた不正コードを検出するファイルチェック方法であって、
前記コンピュータが、プロセスから前記ファイルへのアクセスを制御するアクセス制御ステップと、
前記アクセス制御ステップによるアクセス制御によって、ファイルチェック済でない前記ファイルを選択するファイル選択ステップと、
前記ファイルチェック手段が選択したファイル内の不正コードの有無を判定するファイルチェックを行うファイルチェックステップと、
前記ファイルの内容に基づいて前記ファイルの種別を検知する検知ステップと、
前記検知ステップで検知した結果に基づいて、前記ファイルを書込み禁止と判断する判断ステップと、
前記アクセス制御ステップで保持されたアクセス情報において、前記ファイルを書込み禁止に更新するアクセス情報更新ステップと、
を実行することを特徴とするファイルチェック方法。
【請求項１５】
前記コンピュータが、前記検知ステップで、前記ファイルの内容として、複数ファイルをまとめたファイルまたは圧縮ファイルであることを判断して、前記ファイルの種別を検知する請求項１４に記載のファイルチェック方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータウイルスに感染したファイルあるいは悪意あるコードに改竄されたファイルを検知することを目的とした、アクセス制御と連動するファイルチェック装置、ファイルチェックプログラムおよびファイルチェック方法に関し、ファイルチェック装置、ファイルチェックプログラムおよびファイルチェック方法に関する。
【背景技術】
【０００２】
悪意ある利用者およびプログラムなどファイルの改竄、そして、コンピュータウイルス感染による被害は増加している。改竄検知の方法としては、一方向ハッシュ関数を用いてファイルのハッシュ値を予め計算して記憶しておき、改竄チェックしたいときに再びハッシュ値を計算し、以前のハッシュ値と同じであるかどうかを判断する等の方法がよく知られている。この方法では、チェック時に常にハッシュ値を計算する必要がある。
また、ファイルの改竄などのようなファイルに対する不正なアクセスを防止する技術として、アプリケーションプログラムがアクセス可能なファイルなどのリソースおよび機能へのアクセスを制御する方法がある。例えば、アプリケーションプログラム毎に利用できる機能を規定したセキュリティポリシデータベースを持ち、そのアプリケーションプログラムが利用できるリソースを限定する方法がある。
このアクセス制御方法の一例が、「ＳＥＬｉｎｕｘ徹底ガイド」（中村雄一、水上友宏、上野修一著、日経ＢＰ社、２００４年３月、ｐｐ．２４〜４１、ｐｐ．８７，８８）に記載されている。この文献に記載されている方法は、ＳＥＬｉｎｕｘ（Ｓｅｃｕｒｉｔｙ  Ｅｎｈａｎｃｅｄ  Ｌｉｎｕｘ）と呼ばれ、注目されている。
ＰＣ（パーソナルコンピュータ）等の情報処理装置にＳＥＬｉｎｕｘが導入されると、「ＳＥＬｉｎｕｘモジュール」がＬｉｎｕｘカーネルに組み込まれ、「セキュリティ・ポリシ・ファイル」という設定ファイルと、「ＳＥＬｉｎｕｘ拡張コマンド」とが追加される。
プロセスがリソースにアクセスする際には、必ず「ＳＥＬｉｎｕｘモジュール」を経由し、以下に述べるような手続きをとる。
第１に、プロセスは、カーネルに対してリソースへのアクセス要求を出す。第２に、カーネルはまず、パーミッションのチェックを行う。ここまでの手続きは通常のＬｉｎｕｘの動作と同じである。第３に、リソースへのアクセス要求が「ＳＥＬｉｎｕｘモジュール」に渡される。「ＳＥＬｉｎｕｘモジュール」は「セキュリティ・ポリシ・ファイル」を参照し、アクセスが正当であるか否かをチェックする。その際、ＳＥＬｉｎｕｘ独自のアクセス制御が行われる。第４に、アクセスが正当である場合、プロセスはリソースにアクセスする。
また、コンピュータウイルスに感染したファイルのチェック方法として、コンピュータウイルスとなる不正コードまたは不正データのパターンを集めたウイルス定義ファイル（ウイルスチェックデータとも呼ばれる）と、不正コードのチェック対象となる実行プログラムまたはデータとのパターンマッチングを行って、コンピュータウイルスを含んでいるか否かを判断する方法がある。
コンピュータウイルスの数と種類は増え続けているため、ウイルス定義ファイルはコンピュータウイルスのチェックのために絶え間ない更新と増強を必要としている。ウイルス定義ファイルの増強に伴ってウイルス定義ファイル内のパターンデータが肥大化している。このような状況の中、携帯電話機のような比較的非力な（処理能力が低い）コンピュータもコンピュータウイルスに感染した例があり、すべてのコンピュータでコンピュータウイルスに関してのチェックをすることが必要となっている。しかし、肥大化したウイルス定義ファイルに含まれるすべてのコンピュータウイルスのパターンについてチェックすることは負荷が大きい。
このようなチェックによる負荷を軽減する方法がいくつか存在している。関連するファイルチェックの一例が、特開２００７−３４６２３号公報に記載されている。
特開２００７−３４６２３号公報に記載されている方式では、ウイルスチェックデータを更新する際、更新前ウイルスチェックデータと追加ウイルスチェックデータとを区別して記憶し、更新後チェック済データに対しては、ウイルスチェックを実行しない。また、更新前チェック済データに対しては、追加ウイルスチェックデータのみを使用してウイルスチェックを実行し、未チェックデータに対しては、更新前ウイルスチェックデータおよび追加ウイルスチェックデータを使用してウイルスチェックを実行する。
関連するファイルチェックの他の例が、特開２００７−６５８１０号公報に記載されている。特開２００７−６５８１０号公報に記載されている方式では、ユーザ端末と接続されるサーバは、検査定義ファイルを保持し、脅威の発生に応じてファイルを更新する。そして、データをサーバに登録する際に、データに対する第１の検査を実行する。サーバは、データをユーザ端末に送信する際、第１の検査より後にファイルが更新されており、ファイルにおいて更新されている脅威の発生推定日時が、データがサーバに登録された日時よりも遅い場合に、ファイルを用いてデータに対する第２の検査を実行する検査部を備える。このような構成を有することにより、検査定義ファイルが更新されても、全てのデータを再検査する必要がない。
関連するファイルチェックのさらに他の例が、特開２００４−１９９２１３号公報に記載されている。特開２００４−１９９２１３号公報に記載されている方式では、ホスト計算機上のＣＰＵが管理するファイルシステムに最終スキャン日時と最終更新者の各情報を暗号化して付加し、その情報に応じてホストとスキャンサーバが連携して動作する。最終スキャン日時よりも古いファイルのスキャンを省略することでファイルアクセスを高速化する。
関連するファイルチェックのさらに他の例が、特開２００３−２１６４４５号公報に記載されている。特開２００３−２１６４４５号公報に記載されている方式では、ＦＡＴに格納されたデータリストを用いて、１回目にウイルスチェックが済んだファイルのデータにチェック済みのフラグを付けておき、２回目は前述のフラグが付いていないファイルのデータのみについてウイルスチェックを行うようにする。
関連するファイルチェックのさらに他の例が、特開２００３−１９６１１１号公報に記載されている。特開２００３−１９６１１１号公報に記載されている方式では、ウイルスチェックを実施した際、ウイルスチェック結果ファイル及びウイルスチェック署名を作成し、次回のウイルスチェックでは、これらの情報を参照することにより、最適なウイルスチェック処理を行うことを可能とする。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ファイルの改竄およびウイルスチェックにおける関連する技術は、どれか１つ使用すればファイルに関するセキュリティを確保可能となるものではない。改竄チェックやウイルスチェックは、不正なファイルの検知のために使用される。また、アクセス制御は、アプリケーションプログラムから生成されるプロセスが悪意ある利用者に乗っ取られた場合に、そのプロセスの行動範囲やさまざまなリソースへのアクセス範囲を制限し、被害を最小限におさえることを目的として使用される。よって、情報処理装置において、これらの関連する技術を複数組み合わせて使用することで、様々な脅威を排除し、セキュリティを確保することになる。
しかし、それぞれの技術に対して、改竄チェック対象ファイル、ウイルスチェック対象ファイルおよびアクセス制御対象ファイルが存在することになるが、それらがすべて同じファイルである場合、それぞれの技術を用いて同じファイルをチェックすることになり冗長である。
また、チェック対象のファイルの中には、アクセス制御により書き込みを禁止とされ、改竄されない、ウイルス感染が不可能なファイルもある。このようなファイルでさえ、ウイルスチェックによるパターンマッチング処理や、改竄チェックによるハッシュ値計算が行われ、無駄なオーバーヘッドと無駄な電力とを消費することになる。
そこで、本発明は、アクセス制御と連携し、脆弱性、改竄またはコンピュータウイルス感染に関するファイルのチェックに伴う冗長な処理を省き、必要最低限のチェックのみを実施することでチェックに関係する負荷を軽減することができるファイルチェック装置、ファイルチェックプログラムおよびファイルチェック方法を提供することを目的とする。
【課題を解決するための手段】
【０００４】
本発明によるファイルチェック装置は、ファイル内に含まれた不正コードを検出するファイルチェック装置であって、プロセスからファイルへのアクセスを制御するアクセス制御手段と、アクセス制御手段によるアクセス制御によって書込み許可されているファイルを選択するファイル選択手段と、ファイル選択手段が選択したファイル内の不正コードの有無を判定するファイルチェックを行うファイルチェック手段とを備えたことを特徴とする。
本発明によるファイルチェックプログラムは、ファイル内に含まれた不正コードを検出するためのファイルチェックプログラムであって、コンピュータに、プロセスからファイルへのアクセスを制御するアクセス制御処理と、アクセス制御処理によるアクセス制御によって書込み許可されているファイルを選択するファイル選択処理と、ファイル選択処理で選択したファイル内の不正コードの有無を判定するファイルチェックを行うファイルチェック処理とを実行させることを特徴とする。
本発明によるファイルチェック方法は、ファイル内に含まれた不正コードを検出するファイルチェック方法であって、プロセスからファイルへのアクセスを制御するアクセス制御ステップと、アクセス制御手段によるアクセス制御によって書込み許可されているファイルを選択するファイル選択ステップと、ファイル選択ステップで選択したファイル内の不正コードの有無を判定するファイルチェックを行うファイルチェックステップとを含むことを特徴とする。
【発明の効果】
【０００５】
本発明によれば、アクセス制御と連携し、脆弱性、改竄またはコンピュータウイルス感染に関するファイルのチェックに伴う冗長な処理を省き、必要最低限のチェックのみを実施することでチェックに関係する負荷を軽減することができるという効果がある。
言い換えると、本発明によれば、比較的非力なコンピュータでも負荷をかけずにファイルチェックを高速に行うことができる。
【図面の簡単な説明】
【０００６】
図１は第１の実施形態のファイルチェック装置の構成例を示すブロック図である。
図２はチェック対象のファイルを選択するために作成する表の登録例を示す説明図である。
図３は情報処理装置が初めて稼動する場合の、図２に示す表を作成する処理の例を示すフローチャートである。
図４はファイルチェックを行うか否かを判断する処理の例を示すフローチャートである。
図５はチェック対象のファイルを選択するための表の登録例を示す説明図である。
図６は第２の実施形態のファイルチェック装置の構成例を示すブロック図である。
図７は第２の実施形態における新たな処理の例を示すフローチャートである。
図８はチェック対象のファイルを選択するための表の登録例を示す説明図である。
図９はチェック対象のファイルを選択するための表の登録例を示す説明図である。
図１０は第３の実施形態のファイルチェック装置の構成例を示すブロック図である。
図１１は第３の実施形態における処理の例を示すフローチャートである。
図１２は第４の実施形態のファイルチェック装置の構成例を示すブロック図である。
図１３は第４の実施形態における処理の例を示すフローチャートである。
図１４は本発明によるファイルチェック装置の最小の構成例を示す機能ブロック図である。
【発明を実施するための最良の形態】
【０００７】
（実施形態１）
以下、本発明の第１の実施形態を図面を参照して説明する。本発明は、特に、必要最低限のチェックのみを行うことで比較的非力なコンピュータ上でも高速にチェックを完了することができるアクセス制御と連動するファイルチェック装置に関する。図１は、第１の実施形態のファイルチェック装置（情報処理装置１）の構成例を示すブロック図である。図１に示す情報処理装置１は、ＣＰＵ１０１と、ＲＡＭ１０２と、ＲＯＭ１０３と、ＨＤＤ（ハードディスク装置）１０４と、外部メモリ１０５と、出力装置１０６と、通信装置１０７と、入力装置１０８と、ＯＳ処理手段１０９と、ファイル１１０と、アクセス制御手段１１１と、アクセス制御情報獲得手段１１２と、ファイルチェック手段１１３と、ファイル選択手段１１４と、ファイル追加通知手段１１５とを含む。
ＣＰＵ１０１は、セントラル・プロセッシング・ユニットであり、各手段やプログラムの実行制御および計算処理を行う。
ＲＡＭ１０２は、ランダム・アクセス・メモリであり、読書き可能な記憶装置である。各手段やプログラムの実行時に使用されるデータを読書きする場合に、一時的な記憶領域となる。実行コードそのものを一時的に記憶する場合もある。
ＲＯＭ１０３は、リード・オンリー・メモリであり、読込みのみ可能な記憶装置である。各手段やプログラムの実行コード、データなどを記憶する。情報処理装置１の電源をオフにしても、ＲＯＭ１０３に記憶されている実行コードおよびデータは消えない。
ＨＤＤ１０４は、ハード・ディスク・ドライブであり、読書き可能な記憶装置である。ＲＡＭ１０２と比べて読み込みおよび書き込み処理速度は遅いが、大容量であり、情報処理装置１の電源をオフにしても、ＨＤＤ１０４に記憶されている実行コードおよびデータは消えない。
外部メモリ１０５は、情報処理装置１に脱着可能な読書き可能な記憶装置である。実行コードやデータなどのファイル１１０を外部メモリ１０５に記憶させ、情報処理装置１に装着することで情報処理装置１に実行コードやデータを追加する。
出力装置１０６は、情報処理装置１で実行された処理結果をディスプレイ表示したり、音声出力する。
通信装置１０７は、ファイル１１０などの実行コードやデータを外部と通信して情報処理装置１に取り込む。
入力装置１０８は、ユーザ等による新たな処理の実行を依頼するためのキー（ボタン）操作や、音声入力などにより、情報を情報処理装置１に取り込む。
ＯＳ処理手段１０９は、ＯＳ（オペレーティングシステム）が行う処理を実行する。ＯＳ処理手段１０９は、実行コードを含むファイル１１０から生成されるプロセスが呼び出すシステムコールの処理を行う。また、ＯＳ処理手段１０９は、ファイル１１３などの資源を管理している。
ファイル１１０は、アプリケーションプログラムである実行コード、ライブラリ、ユーザデータなどを含むデータファイルである。なお、ファイル１１０は、具体的には、ＨＤＤ１０４に記憶される。
アクセス制御手段１１１は、実行コードを含むファイル１１０から生成されるプロセスが、情報処理装置１内の他のファイル１１０や様々な機能等の資源にアクセスする際に、アクセス制限を行う。アクセス制御手段１１１が行うアクセス制御の方式は、ＤＡＣ（任意アクセス制御：Ｄｉｓｃｒｅｔｉｏｎａｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）、ＭＡＣ（強制アクセス制御：Ｍａｎｄａｔｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）またはその他の方式であってもよい。アクセス制御手段１１１は、ファイルへのアクセス可否を示すアクセス情報に基づいて、プロセスからファイルへのアクセスを制御する。また、アクセス制御手段１１１は、アクセス情報として、例えば、どんな資源についてアクセス制御するのかを示すアクセス制御ポリシを保持していてもよい。
アクセス制御情報獲得手段１１２は、アクセス制御手段１１１が保持しているアクセス制御ポリシの情報を獲得し、他の手段にその情報を提供する。アクセス制御情報獲得手段１１２は、場合によっては、アクセス制御ポリシではなく、ＯＳが管理しているプロセスや、ファイル１１０の情報に含まれるセキュリティの情報を獲得し、他の手段にその情報を提供する。
ファイルチェック手段１１３は、ファイル１１０がウイルス感染していないか、改竄されていないか、脆弱性はないか等のチェックを行う。
ファイル選択手段１１４は、複数存在するファイル１１０の中から、どのファイル１１０をチェックすべきかを示す表（図２参照）を作成し、その表からチェック対象となるファイル１１０を選択し、選択したファイル１１０を示す情報をファイルチェック手段１１３に伝える。図２は、ファイル選択手段１１４がチェック対象のファイルを選択するために作成する表の登録例を示す説明図である。図２に示す表には、例えば、ファイルを識別可能な情報に対応付けて、ファイルがＷｒｉｔｅ禁止か否かを示す情報と、ファイルチェック済みか否かを示す情報とが登録されている。図２に示す表は、例えば、ＲＡＭ１０２やＨＤＤ１０４等の記憶装置に記憶される。
ファイル追加通知手段１１５は、ファイル１１０が新たに生成されたり、情報処理装置１の外からファイル１１０が持ち込まれた場合に、その旨をファイル選択手段１１４に通知する。
なお、ファイルチェック装置（情報処理装置１）は、コンピュータで実現可能であり、ファイルチェック装置を構成する各構成要素、すなわち、ＯＳ処理手段１０９、アクセス制御手段１１１、アクセス制御情報獲得手段１１２、ファイルチェック手段１１３、ファイル選択手段１１４およびファイル追加通知手段１１５は、コンピュータの処理装置（ＣＰＵ１０１）に上述した機能を実現させるためのプログラムとして実現可能である。ファイルチェック装置を構成する各構成要素がコンピュータで実現可能であること、およびプログラムとして実現可能であることは、第１の実施の形態に限らず、他の実施の形態でも同様である。
次に、図面を参照して第１の実施形態の動作について説明する。前処理として、ファイル選択手段１１４が作成および参照する図２に示す表を作成する手順を説明する。図２に示す表を作成する手順には、情報処理装置１が初めて稼動する場合とファイル１１０が新たに生成された場合の２つの場合がある。
まず、情報処理装置１が初めて稼動する場合に、ファイル選択手段１１４が図２に示す表を作成する処理について説明する。図３は、情報処理装置１が初めて稼動する場合の、図２に示す表を作成する処理の例を示すフローチャートである。
まず、情報処理装置１が起動すると、ファイル選択手段１１４は、図２に示す表が存在するか否かを確認する（ステップＳ１１）。もし、表が存在すれば（Ｙｅｓ）、処理を終了し、表が存在しなければ（Ｎｏ）、ステップＳ１２に進む。
ステップＳ１１において図２に示す表が存在しない場合（Ｎｏ）、ファイル選択手段１１４は、図２に示す表を作成するために、ファイル１１０が存在するか確認する（ステップＳ１２）。ファイル１１０が存在すれば（Ｙｅｓ）、ステップＳ１３に進み、ファイル１１０が存在しなければ（Ｎｏ）、処理を終了する。
ファイル選択手段１１４は、ＯＳ処理手段１０９からファイル情報を獲得する（ステップＳ１３）。ステップＳ１３において、ファイル選択手段１１４は、ファイル１１０を一意に識別可能な情報を獲得する。例えば、ファイル選択手段１１４は、ファイル１１０の配置場所（パス）や、Ｌｉｎｕｘ（登録商標）などのＵＮＩＸ（登録商標）系ＯＳにおけるｉノード情報などをＯＳ処理手段１０９から入力する。
次に、ファイル選択手段１１４は、アクセス制御情報獲得手段１１２に問い合わせ、ステップＳ１３で獲得したファイル情報を元に、ファイル１１０について書込みが禁止されているか等を示すアクセス情報を獲得する（ステップＳ１４）。
最後に、ファイル選択手段１１４は、ステップＳ１３で獲得したファイル１１０の情報と、ステップＳ１４で獲得したファイル１１０のアクセス情報とに基づいて、図２に示す表にデータを追加する（ステップＳ１５）。
次に、新しくファイル１１０が生成された場合に、ファイル選択手段１１４が図２に示す表を作成する処理について説明する。
ファイル追加通知手段１１５は、プロセスから発行されるＯＳ処理手段１０９のシステムコールを監視している。ファイル追加通知手段１１５がシステムコールを監視する方法として、システムコールテーブルをフックする方法や、ＬｉｎｕｘであればＬＳＭ（Ｌｉｎｕｘ  Ｓｅｃｕｒｉｔｙ  Ｍｏｄｕｌｅ）Ｉ／Ｆなどを利用した方法や、さらに、システムコール内に独自フックを追加する方法が知られている。
新たなファイル１１０がｏｐｅｎシステムコールおよびｃｌｏｓｅシステムコールにより作成されると、ファイル追加通知手段１１５は、その旨をファイル選択手段１１４に通知する。その後、ファイル選択手段１１４は、すでに説明したステップＳ１３からステップＳ１５の処理を実施し、新しく生成されたファイル１１０についての情報を、図２に示す表に追加する。
次に、ウイルス感染チェック、改竄チェックまたは脆弱性チェック等のファイルチェックを行うか否かを判断する処理について説明する。図４は、ファイルチェックを行うか否かを判断する処理の例を示すフローチャートである。図４には、１つのファイル１１０について、ウイルス感染、改竄または脆弱性のチェックを処理するフローチャートを示している。複数のファイル１１０を処理する場合は、図４に示す処理をそれぞれのファイル１１０について実施することになる。
まず、ファイル選択手段１１４は、図２に示す表を参照して、ファイル１１０についてすでにファイルチェック手段１１３によってチェック済みであるかどうかを確認する（ステップＳ２１）。チェック済みであれば（Ｙｅｓ）、新たにチェックする必要はないので処理を終了する。チェックしていなければ（Ｎｏ）、ステップＳ２２に進む。
次に、ファイル選択手段１１４は、図２に示す表を参照して、ファイル１１０についてアクセス制御手段１１１によってＷｒｉｔｅ許可されているかどうかを確認する（ステップＳ２２）。Ｗｒｉｔｅ許可されていれば（Ｙｅｓ）、書き換わっているかもしれないのでチェックが必要と判断し、ステップＳ２３に進む。Ｗｒｉｔｅ許可されていなければ（Ｎｏ）、そのファイル１１０の内容は書き換わらないので処理を終了する。すなわち、ファイル選択手段１１４は、ステップＳ２１，Ｓ２２において、図２に示す表から、ファイルチェック済みでなく、かつＷｒｉｔｅ許可されているファイル１１０を選択する。なお、Ｗｒｉｔｅ許可されているとは、ファイル１１０に対するアクセス制御の１つであって、例えば、ファイル１１０を更新可能であることを意味する。
最後に、ファイルチェック手段１１３は、ファイル選択手段１１４が選択したファイル１１０内の不正コードの有無を判定するファイルチェックを行う。例えば、ファイルチェック手段１１３は、ファイル１１０についてウイルス感染、改竄あるいは脆弱性をチェックする。ウイルス感染チェック方法の一例として、ウイルス定義ファイルをもとに、ファイル１１０の内容とのパターンマッチングを実施することが知られている。また、改竄チェックの方法の一例として、ファイル１１０のハッシュ値を作成して保存しておき、このチェックで再度ハッシュ値を計算し、保存しておいたハッシュ値と等しければ改竄されていない等の判定をすることが知られている。また、脆弱性チェックの方法として、バッファオーバーフロー、スタックオーバーフローなどが発生する実行コードを含んでいないかを実行コードを解析することで判断するバイナリチェック等の方法などがあげられる。これらのチェックでは、ウイルスチェック、改竄チェック、脆弱性チェック、バイナリチェックのうちの１つや、２つ以上の組み合わせ、あるいはすべてのチェックを実施してもよい。チェックが完了すると、ファイルチェック手段１１３は、図２に示す表にチェック済みを意味する情報を追加する（ステップＳ２３）。
図２に示す表をもとに、すべてのファイル１１０についてステップＳ２１からステップＳ２３までの処理を実施した場合、図２に示されるファイルＡからファイルＤまでの４つのファイルは、すべてファイルチェック手段１１３によってチェックされる。その結果、図２に示す表は、図５に示す表のように書き換えられる。図５は、チェック対象のファイルを選択するための表の登録例を示す説明図である。また、図５に示す表をもとにステップＳ２１からステップＳ２３までの処理を実施した場合、ファイルチェック手段１１３によってチェックされるのは、Ｗｒｉｔｅ許可されているファイルＡとファイルＢのみであり、Ｗｒｉｔｅ許可されていないファイルＣとファイルＤについては、チェック処理されない。
情報処理装置１は、ステップＳ２１からステップＳ２３までの処理を、すべてのファイル１１０や、あるまとまった数のファイル１１０について一定間隔で実施してもよいし、あるファイル１１０にｏｐｅｎ、ｃｌｏｓｅなどのシステムコールでアクセスされた場合に実施してもよい。
また、図２に示す表では、チェック対象として、ファイルを対象としているが、あるフォルダに含まれるすべてのファイルに対して、Ｗｒｉｔｅ禁止等の設定がアクセス制御ポリシに指定可能な場合、図２に示す表のチェック対象は、「フォルダＡに含まれるすべてのファイル」が対象となり、上記と同様に処理される。例えば、「フォルダＡに含まれるすべてのファイル」についてＷｒｉｔｅ許可されていない場合には、「フォルダＡに含まれるすべてのファイル」のファイルチェックをスキップ（省略）可能となる。
図１に示すブロック図における各手段の構成は、アクセス制御手段１１１がＯＳ内で動作し、それ以外はＯＳ外で動作する等の構成でもよいし、アクセス制御手段１１１以外のいずれか１つがＯＳ内で動作し、それ以外はＯＳ外で動作する等の構成でもよいし、すべての手段がＯＳ外で動作してもよい。
次に、第１の実施形態の効果について説明する。第１の実施形態では、コンピュータウイルス感染、改竄、脆弱性を検知するためのファイルチェックの負荷を軽減しながらセキュリティを確保することができる。これは、ファイルチェックを実施すべきか否かを、ファイルがチェック済みであるか否か、およびＷｒｉｔｅ禁止となっているか否かに応じて判断するためである。例えば、そのファイルがすでにチェックされていたり、Ｗｒｉｔｅ禁止となっていればファイルチェックをスキップ可能とするからである。
（実施形態２）
次に、本発明の第２の実施形態について図面を参照して説明する。第２の実施形態では、実行されたファイル１１０は、実行コードを含むファイルであって、以後、実行コードを含むファイルは書き込みがされないということを前提として、強制的にＷｒｉｔｅ禁止とし、ファイルチェック処理のスキップ対象とする。ただし、特権を持つプロセスなど特定のプロセスからＷｒｉｔｅ禁止されたファイル１１０への書き込みは、許可されるようにアクセス制御ポリシに記述されていてもよい。
図６は、第２の実施形態のファイルチェック装置（情報処理装置１）の構成例を示すブロック図である。第１の実施形態の構成例を示す図１と比べると、図６に示す構成例では、ポリシ更新手段１１６と、実行検知手段１１７とが追加されている。
第１の実施形態の構成例に存在する手段は、第２の実施形態でも同様の機能をもっているとして説明を省略する。以下、追加されているポリシ更新手段１１６と実行検知手段１１７について説明する。
ポリシ更新手段１１６は、アクセス制御手段１１１が保持するアクセス制御ポリシの内容を書き換えることができる。
実行検知手段１１７は、ファイル１１０が実行コードでプロセスとして起動することを監視する。ファイル１１０がプロセスとして起動した場合、実行検知手段１１７は、その旨をファイル選択手段１１４に通知する。
次に、図面を参照して第２の実施形態の動作について説明する。第１の実施形態における処理は、第２の実施形態でも実施される。しかし、第２の実施形態では、新たな動作が追加されている。図７は、第２の実施形態における新たな処理の例を示すフローチャートである。
実行検知手段１１７は、プロセスから発行されるＯＳ処理手段１０９のシステムコールを監視している。実行検知手段１１７がシステムコールを監視する方法として、システムコールテーブルをフックする方法や、ＬｉｎｕｘであればＬＳＭ（Ｌｉｎｕｘ  Ｓｅｃｕｒｉｔｙ  Ｍｏｄｕｌｅ）Ｉ／Ｆなどを利用した方法や、さらに、システムコール内に独自フックを追加する方法が知られている。これらの方法により、ｅｘｅｃなどのプロセス起動に関するシステムコール、ＬＳＭ  Ｉ／Ｆ、または独自フックが呼び出されたことを検知する。このような方法により、実行検知手段１１７は、ファイル１１０が実行されようとしている等のファイル１１０の振る舞いを検出する（ステップＳ３１）。
実行検知手段１１７は、検出した振る舞いに基づいて、ファイルの種別を検知する。例えば、実行検知手段１１７は、どのファイル１１０がプロセスとして起動されたのかを示すファイル１１０を一意に識別可能な情報を、システムコール、ＬＳＭ  Ｉ／Ｆ、または独自フックの引数から獲得する（ステップＳ３２）。一意に識別可能な情報として、例えば、ファイル１１０のＯＳ内で管理されているｉノード番号やファイルパス等がある。実行検知手段１１７は、検知した結果に基づいて、ファイル１１０は書込み禁止であると判断する。
その後、実行されたファイル１１０を一意に識別可能な情報に基づいて、ポリシ更新手段１１６は、実行されたファイル１１０についてＷｒｉｔｅ禁止を意味するようにアクセス制御ポリシを書き換える（ステップＳ３３）。すなわち、ポリシ更新手段１１６は、実行検知手段１１７が書込み禁止と判断したファイル１１０を書込み禁止とするアクセス情報を登録する。アクセス制御ポリシの更新により、今後、ファイル１１０に対して書込みが行われそうになった場合、アクセス制御手段１１１は、書込み処理に対してエラーを返す。
最後に、ファイル選択手段１１４は、ファイルチェック時にどのファイルをチェックすべきかを示す、ファイル選択手段１１４が保持する表（図２参照）の更新を行う（ステップＳ３４）。ファイル選択手段１１４は、対象となるファイル情報として、ステップＳ３２で得られたファイルを一意に識別可能な情報を使用する。その情報がない場合、第１の実施形態におけるステップＳ１３（図３参照）の処理を行い、ファイル情報を獲得する。そして、ファイル選択手段１１４が保持する表において、実行されたファイル１１０に対応する情報をＷｒｉｔｅ禁止を意味する情報に更新する。
ファイル選択手段１１４が保持する表が図２に示すものであって、かつ、その表に示されるファイルＢが実行され、上記のステップＳ３１からステップＳ３４に関する処理を実施した場合、図２に示す表は、図８に示す表のように更新される。図８は、チェック対象のファイルを選択するための表の登録例を示す説明図である。つまり、ファイルＢに関して、Ｗｒｉｔｅ許可からＷｒｉｔｅ禁止といった状態になる。
さらに、第１の実施形態におけるステップＳ２１からステップＳ２３の処理（図４参照）を実行すると、図８に示す表は、図９に示すように更新される。図９は、チェック対象のファイルを選択するための表の登録例を示す説明図である。その後、ステップＳ２１からステップＳ２３の処理（図４参照）を実行すると、ファイルＢはファイルチェック処理の対象外となる。
第２の実施形態では、ファイル１１０はプロセスとなる実行ファイルであるとして説明したが、ライブラリまたはデバイスドライバであってもよい。ファイル１１０がライブラリやデバイスドライバである場合も、実行ファイルである場合と同様に、実行またはロード（メモリ読み込み）される等のファイル１１０の振る舞いを検知し、Ｗｒｉｔｅ禁止を意味するアクセス制御ポリシを記述することで、同様にファイルチェック処理をスキップ（省略）することが可能となる。
Ｌｉｎｕｘであれば、あるプロセス起動時にライブラリがロードされる。このタイミングに独自フックを埋め込んでおくか、ＬＳＭ  Ｉ／Ｆを利用することで、ライブラリを検知可能である。また、Ｌｉｎｕｘの場合、ｉｎｓｍｏｄコマンドによりカーネル内にデバイスドライバをロードするタイミングにおいて、上記と同様の検知方法により、デバイスドライバを検知可能となる。
次に、第２の実施形態の効果について説明する。第２の実施形態では、通常の使い方では更新および書込みがされないと考えられる実行コードを含むファイルに対して、自動的にコンピュータウイルス感染、改竄あるいは脆弱性を検知するためのファイルチェックをスキップするため、チェックの負荷を軽減することができる。これは、ファイルがプロセスとして起動され、プロセスとして振る舞うことを監視する実行検知手段を備え、起動されたファイルを強制的にＷｒｉｔｅ禁止となるようにアクセス制御のアクセス制御ポリシを更新し、さらに、ファイルチェックを実施すべきかどうかを示す表を、そのファイルをＷｒｉｔｅ禁止であるという情報に更新するからである。つまり、アクセス制御ポリシが変更されたら、それに追従してファイルチェックをすべきかどうかを判断する表を更新するため、ファイルチェック不可を軽減することができる。
（実施形態３）
次に、本発明の第３の実施形態について図面を参照して説明する。第３の実施形態では、ファイル１１０をＷｒｉｔｅ禁止ファイルとして扱うためにプロセスがＷｒｉｔｅ禁止と指定可能なＡＰＩを用意し、ファイル１１０をファイルチェック処理のスキップ対象とする。ＡＰＩを利用可能なプロセスとして、ファイル１１０を生成したプロセス、そのプロセスの元となる実行コードから生成された別プロセス、または特権を与えられたプロセスなどの特定のプロセスに対してのみＡＰＩ利用を許可するようにアクセス制御ポリシが記述されていてもよい。また、ＡＰＩが指定可能なアクセス制御として、Ｗｒｉｔｅ禁止、Ｗｒｉｔｅ許可などが考えられる。
図１０は、第３の実施形態のファイルチェック装置（情報処理装置１）の構成例を示すブロック図である。第２の実施形態の構成例を示す図６と比べると、図１０に示す構成例では、実行検知手段１１７がなくなり、Ｗｒｉｔｅ禁止要求手段１１８が追加されている。
第２の実施形態の構成例に存在する手段は、第３の実施形態でも同様の機能をもっているとして説明を省略する。以下、追加されているＷｒｉｔｅ禁止要求手段１１８について説明する。
Ｗｒｉｔｅ禁止要求手段１１８は、プロセスからＯＳ処理手段１０９にファイル１１０をＷｒｉｔｅ禁止とするＡＰＩを提供する。すなわち、プロセスは、ＡＰＩを実行することにより、Ｗｒｉｔｅ禁止要求手段１１８に対し、ファイル１１０をＷｒｉｔｅ禁止にするよう要求することができる。Ｗｒｉｔｅ禁止要求手段１１８は、プロセスからファイル１１０をＷｒｉｔｅ禁止とする旨の要求があった場合に、ファイル１１０は書込み禁止であると判断する。Ｗｒｉｔｅ禁止要求手段１１８は、ポリシ更新手段１１６に対し、書込み禁止であると判断したファイル１１０を指定して、アクセス制御手段１１１が保持するアクセス制御ポリシの内容を書き換えさせることができる。
次に、図面を参照して第３の実施形態の動作について説明する。図１１は、第３の実施形態における処理の例を示すフローチャートである。
まず、プロセスは、Ｗｒｉｔｅ禁止を要求可能なＡＰＩを呼び出し、ファイル１１０についてＷｒｉｔｅ禁止とする要求を出す。この要求は、ＯＳ処理手段１０９を経由してＷｒｉｔｅ禁止要求手段１１８に通知される。
Ｗｒｉｔｅ禁止要求手段１１８は、呼び出し元のプロセスが特権プロセスであるか、または、指定されているファイル１１０が呼び出し元プロセスが生成したものであるかを確認する（ステップＳ４１）。すなわち、Ｗｒｉｔｅ禁止要求手段１１８は、ステップＳ４１において、ファイル１１０をＷｒｉｔｅ禁止とすることができるか否かを判断する。例えば、呼び出し元のプロセスが特権プロセスである場合や、指定されているファイル１１０が呼び出し元プロセスが生成したものである場合に、Ｗｒｉｔｅ禁止要求手段１１８は、ファイル１１０をＷｒｉｔｅ禁止とすることができると判断する。
ステップＳ４１において、呼び出し元のプロセスが特権プロセスである場合、または、指定されているファイル１１０が呼び出し元プロセスが生成したものである場合（Ｙｅｓ）、ステップＳ４２に進み、そうでなければ（Ｎｏ）、処理を終了する。
プロセスに指定されたファイル１１０についての以降のステップＳ４２からステップＳ４４の処理は、図７に示す第２の実施形態のステップＳ３２からステップＳ３４までの処理で実行されたファイル１１０に施した処理と同じであるので、ここでは説明を省略する。
ファイル選択手段１１４が保持する表が図２に示すものであって、かつ、その表に示されるファイルＢについてＡＰＩによりＷｒｉｔｅ禁止とし、ステップＳ４１からステップＳ４４に関する処理を実施した場合、図２に示す表は、図８に示す表のように更新される。つまり、ファイルＢに関して、Ｗｒｉｔｅ許可からＷｒｉｔｅ禁止といった状態になる。
さらに、第１の実施形態におけるステップＳ２１からステップＳ２３の処理（図４参照）を実行すると、図８に示す表は、図９に示すように更新される。その後、ステップＳ２１からステップＳ２３の処理（図４参照）を実行すると、ファイルＢはファイルチェック処理の対象外となる。
次に、第３の実施形態の効果について説明する。第３の実施形態では、プロセスがファイルを書込み禁止とするよう要求することができる。
（実施形態４）
次に、本発明の第４の実施形態について図面を参照して説明する。第４の実施形態では、ファイル１１０がバックアップ目的などのファイルの場合にＷｒｉｔｅ禁止ファイルとして扱い、ファイル１１０をファイルチェック処理のスキップ対象とする。ファイル１１０の削除など、Ｗｒｉｔｅ禁止以外の動作を、ファイル１１０を生成したプロセス、そのプロセスの元となる実行コードから生成された別プロセス、または特権を与えられたプロセスに限って許可するようにアクセス制御ポリシが記述されていてもよい。
図１２は、第４の実施形態のファイルチェック装置（情報処理装置１）の構成例を示すブロック図である。第２の実施形態の構成例を示す図６と比べると、図１２に示す構成例では、実行検知手段１１７がなくなり、新規ファイル検知手段１１９が追加されている。
第２の実施形態の構成例に存在する手段は、第４の実施形態でも同様の機能をもっているとして説明を省略する。以下、追加されている新規ファイル検知手段１１９について説明する。
新規ファイル検知手段１１９は、プロセスが新規にファイルを生成することを検知する。特に、複数のファイルを１つにまとめたファイルまたは圧縮ファイルなど、バックアップを目的としたファイルを生成することを検知する。すなわち、新規ファイル検知手段１１９は、ファイルの内容に基づいてファイルの種別を検知する。バックアップされるファイル１１０の生成を検知すると、新規ファイル検知手段１１９は、検知した結果に基づいて、ファイル１１０は書込み禁止であると判断する。新規ファイル検知手段１１９は、ポリシ更新手段１１６に対し、書込み禁止であると判断したファイル１１０を指定して、アクセス制御手段１１１が保持するアクセス制御ポリシの内容を書き換えさせることができる。
第４の実施形態では、書き込みが１度だけ許されるようなファイルに対して、コンピュータウイルス感染、改竄、脆弱性を検知するためのファイルチェックをスキップし、そのチェックの負荷を軽減することができる。これは、ファイルを生成するプロセスがそのファイルをＷｒｉｔｅ禁止とするよう要求可能なＡＰＩをプロセスに提供し、ＡＰＩで指定されたファイルに対してアクセス制御ポリシを更新し、さらに、ファイルチェックを実施すべきかどうかを示す表において、ファイルをＷｒｉｔｅ禁止であるという情報に更新するからである。
次に、図面を参照して第４の実施形態の動作について説明する。図１３は、第４の実施形態における処理の例を示すフローチャートである。
まず、プロセスがバックアップ目的に新規のファイルを生成する。新規ファイルの生成は、システムコールｏｐｅｎ，Ｗｒｉｔｅおよびｃｌｏｓｅなどで実現される。新規ファイルの生成については、ＯＳ処理手段１０９を経由して新規ファイル検知１１９に通知される。
新規ファイル検知手段１１９は、生成されたファイル１１０の中身または拡張子（たとえば、ｔａｒ、ｚｉｐ）などから、複数ファイルをまとめたファイルまたは圧縮ファイルであるかどうか判断する（ステップＳ５１）。すなわち、新規ファイル検知手段１１９は、ステップＳ５１において、ファイル１１０をＷｒｉｔｅ禁止とすることができるか否かを判断する。例えば、ファイル１１０が複数ファイルをまとめたファイルや圧縮ファイルである場合に、新規ファイル検知手段１１９はファイル１１０をＷｒｉｔｅ禁止とすることができると判断する。
ステップＳ５１において、生成されているファイル１１０が複数ファイルをまとめたファイルまたは圧縮ファイルである場合（Ｙｅｓ）、ステップＳ５２に進み、そうでなければ（Ｎｏ）、処理を終了する。
生成されたファイル１１０についての以降のステップＳ５２からステップＳ５４の処理は、図７に示す第２の実施形態のステップＳ３２からステップＳ３４までの処理で実行されたファイル１１０に施した処理と同じであるので、ここでは説明を省略する。
ファイル選択手段１１４が保持する表が図２に示すものであって、かつ、その表に示されるファイルＢ（最初は図２にはファイルＢが記載されていないかもしれない）について新規生成し、ステップＳ５１からステップＳ５４に関する処理を実施した場合、図２に示す表は、図８に示す表のように更新される。つまり、ファイルＢに関して、Ｗｒｉｔｅ禁止といった状態になる。
さらに、第１の実施形態におけるステップＳ２１からステップＳ２３の処理（図４参照）を実行すると、図８に示す表は、図９に示すように更新される。その後、ステップＳ２１からステップＳ２３の処理（図４参照）を実行すると、ファイルＢはファイルチェック処理の対象外となる。
次に、第４の実施形態の効果について説明する。第４の実施形態では、長期間、使用されないと予想されるファイルに対して、自動的にコンピュータウイルス感染、改竄、脆弱性を検知するためのファイルチェックをスキップし、そのチェックの負荷を軽減することができる。これは、新規ファイルの生成を監視し、ファイルの種類を判別する新規ファイル検知手段を備え、生成されたファイルを強制的にＷｒｉｔｅ禁止となるようにアクセス制御ポリシを更新し、さらに、ファイルチェックを実施すべきかどうかを示す表を、そのファイルをＷｒｉｔｅ禁止であるという情報に更新するからである。つまり、ファイルの内容、属性によって、ファイルチェックをすべきかどうかを判断する表を更新するため、ファイルチェック不可を軽減することができる。
（実施形態５）
次に、本発明の第５の実施形態を図面を参照して説明する。図１４は、本発明によるファイルチェック装置（情報処理装置１０）の最小の構成例を示す機能ブロック図である。図１４に例示する情報処理装置１０は、アクセス制御手段１１と、ファイル選択手段１４と、ファイルチェック手段１３とを備える。
アクセス制御手段１１は、プロセスからファイルへのアクセスを制御する。
ファイル選択手段１４は、アクセス制御手段によるアクセス制御によって書込み許可されているファイルを選択する。
ファイルチェック手段１３は、ファイル選択手段１４が選択したファイル内の不正コードの有無を判定するファイルチェックを行う。
ファイルチェック手段１３は、ファイル選択手段１４が選択したファイルを対象としてファイルチェックを行う。すなわち、ファイルチェック手段１３は、ファイル選択手段１４が選択しなかったファイルのチェックを行わない。そのため、ファイルチェックにかかる負荷を軽減することができる。
また、ファイル選択手段１４が選択しなかったファイルは、書込み許可がされていないファイルであり、アクセス制御手段１１によってアクセス制御されているため、例えば改竄される危険性が低い。このように、本発明によれば、ファイル選択手段１４が選択しなかったファイルのセキュリティも確保することができる。
なお、本発明の各実施形態は、以下に示す構成を備えることにより、本発明の目的を達成することができる。
本発明の第１のファイルチェック装置は、ファイルチェック手段とファイルをＷｒｉｔｅ禁止と強制的に制御するアクセス制御手段と、そのアクセス制御手段でＷｒｉｔｅ許可となっているファイルと、Ｗｒｉｔｅ禁止になっているがファイルチェック手段によりファイルチェックされていないファイルを選び出すファイル選択手段により構成される。このような構成を採用し、必要最低限のチェックのみを行うことで比較的非力なコンピュータ上でも高速にファイルチェックを完了するという目的を達成できる。
また、本発明の第２のファイルチェック装置は、実行可能なファイルに関しては実行したという振る舞いを検知する手段により実行コードを含むファイルであると認識し、アクセス制御手段がＷｒｉｔｅ禁止として扱うようにポリシ更新手段によりそのファイルを強制的にＷｒｉｔｅ禁止となるようにアクセス制御ポリシを書き換えるポリシ更新手段と、Ｗｒｉｔｅ禁止かつファイルチェックされていれば、ファイルチェック処理をスキップすることを決定するファイル選択手段により構成される。このような構成を採用し、ファイルチェックをスキップ可能なファイルを自動的に探し出し、そのファイルをスキップ対象として扱うことにより、必要最低限のチェックのみを行うことで比較的非力なコンピュータ上でも高速にファイルチェックを完了するという目的を達成できる。
また、本発明の第３のファイルチェック装置は、ファイルをＷｒｉｔｅ禁止に指定可能なＡＰＩを提供し、指定されたファイルをアクセス制御手段によりＷｒｉｔｅ禁止となるようにアクセス制御ポリシを書き換えるポリシ更新手段と、Ｗｒｉｔｅ禁止かつファイルチェックされていれば、ファイルチェック処理をスキップすることを決定するファイル選択手段により構成される。このような構成を採用し、ファイルチェックをスキップ可能なファイルを自動的に探し出し、そのファイルをスキップ対象として扱うことにより、必要最低限のチェックのみを行うことで比較的非力なコンピュータ上でも高速にファイルチェックを完了するという目的を達成できる。
また、本発明の第４のファイルチェック装置は、新規ファイルの生成を監視し、ファイルの種類を判別する新規ファイル検知手段とその生成されたファイルの種別により、強制的にＷｒｉｔｅ禁止となるようにアクセス制御ポリシを書き換えるポリシ更新手段と、Ｗｒｉｔｅ禁止かつファイルチェックされていれば、ファイルチェック処理をスキップすることを決定するファイル選択手段により構成される。このような構成を採用し、ファイルチェックをスキップ可能なファイルを自動的に探し出し、そのファイルをスキップ対象として扱うことにより、必要最低限のチェックのみを行うことで比較的非力なコンピュータ上でも高速にファイルチェックを完了するという目的を達成できる。
なお、上記に示した実施形態では、以下の（１）〜（８）に示すような特徴的構成を備えたファイルチェック装置が示されている。
（１）ファイル内に含まれた不正コードを検出するファイルチェック装置であって、プロセスからファイルへのアクセスを制御するアクセス制御手段（例えば、アクセス制御手段１１１で実現される）と、アクセス制御手段によるアクセス制御によって書込み許可されているファイルを選択するファイル選択手段（例えば、ファイル選択手段１１４で実現される）と、ファイル選択手段が選択したファイル内の不正コードの有無を判定するファイルチェックを行うファイルチェック手段（例えば、ファイルチェック手段１１３で実現される）とを備えたことを特徴とするファイルチェック装置。
（２）ファイルチェック手段は、ウイルスチェック手段、改竄チェック手段、脆弱性チェック手段、バイナリチェック手段のいずれか１つ、２つ以上の組み合わせ、またはすべてを含むファイルチェック装置。そのように構成されたファイルチェック装置は、ウイルスチェック、改竄チェック、脆弱性チェック、バイナリチェックのうちのいずれか１つ以上のファイルチェックを実行することができる。
（３）ファイル選択手段は、書込み許可されていて、かつ、ファイルチェック手段によってファイルチェックされていないファイルのみを選択するファイルチェック装置。そのように構成されたファイルチェック装置は、ファイルチェック済みのファイルのチェックを省くことができ、ファイルチェックにかかる負荷をより軽減することができる。
（４）ファイルの振る舞いを検知し、検知した振る舞いに基づいてファイルの種別を検知する検知手段（例えば、実行検知手段１１７で実現される）と、検知手段が検知した結果に基づいて、ファイルを書込み禁止と判断する判断手段（例えば、実行検知手段１１７、新規ファイル検知手段１１９で実現される）と、アクセス制御手段が保持しているアクセス情報においてファイルを書込み禁止に更新するアクセス情報更新手段（例えば、ポリシ更新手段１１６で実現される）とを備えたファイルチェック装置。そのように構成されたファイルチェック装置は、ファイルの振る舞いに基づいてファイルの種別を検知し、ファイルを書き込み禁止とすることにより、ファイルチェックにかかる負荷をより軽減することができる。
（５）検知手段は、ファイルの振る舞いとして、実行可能なコードを含むファイルの起動、またはライブラリもしくはデバイスドライバのメモリへの読み込みを検知して、ファイルの種別を検知するファイルチェック装置。
（６）検知手段（例えば、新規ファイル検知手段１１９で実現される）は、ファイルの内容に基づいてファイルの種別を検知するファイルチェック装置。そのように構成されたファイルチェック装置は、ファイルの内容に基づいてファイルの種別を検知し、ファイルを書き込み禁止とすることにより、ファイルチェックにかかる負荷をより軽減することができる。
（７）検知手段は、ファイルの内容として、複数ファイルをまとめたファイルまたは圧縮ファイルであることを判断して、ファイルの種別を検知するファイルチェック装置。
（８）プロセスがファイルを書込み禁止とするよう要求可能にする禁止要求手段（例えば、Ｗｒｉｔｅ禁止要求手段１１８で実現される）を備えたファイルチェック装置。そのように構成されたファイルチェック装置は、プロセスがファイルを書込み禁止とするよう要求することができる。
以上、実施の形態に即して本発明について説明したが、本発明はこれに限定されるものではなく、発明の趣旨を逸脱しない範囲内において自由に変更することが可能である。
この出願は、２００７年１０月９日に出願された日本出願特願第２００７−２６３０５５号を基礎とする優先権を主張し、その開示のすべてをここに取り込む。
【図１】
0005392494.tif 000002
【図２】
0005392494.tif 000003
【図３】
0005392494.tif 000004
【図４】
0005392494.tif 000005
【図５】
0005392494.tif 000006
【図６】
0005392494.tif 000007
【図７】
0005392494.tif 000008
【図８】
0005392494.tif 000009
【図９】
0005392494.tif 000010
【図１０】
0005392494.tif 000011
【図１１】
0005392494.tif 000012
【図１２】
0005392494.tif 000013
【図１３】
0005392494.tif 000014
【図１４】
0005392494.tif 000015