(57)【要約】【課題】電子ファイルを利用するコンピュータに危害を与える虞のある記述がなされた電子ファイルを無毒化する。【解決手段】サーバ２０において、受信部２１がファイルを受信し、ヘッダ検査部２２がファイルのヘッダを検査してＰＤＦファイルかどうかを判定する。そして、ＰＤＦファイルである場合、変換部２３がＰＤＦファイルをオブジェクト部とその他の部分に分割してオブジェクト部のＲＡＷデータを取得し、照合部２５がＲＡＷデータ中に置換対象データがあるかどうかを判定する。その結果、ＲＡＷデータ中に置換対象データがある場合、編集処理部２６が置換対象データを置換後データで置換することによりオブジェクト部を編集し、逆変換部２７が編集後のオブジェクト部を元の形式に変換してその他の部分と結合して編集後のＰＤＦファイルを生成し、送信部２８が編集後のＰＤＦファイルを送信する。【選択図】図４
2010140277.tif 000002
【特許請求の範囲】
【請求項１】
電子ファイルを処理する電子ファイル処理装置であって、
前記電子ファイルに埋め込まれる可能性のある文字列であって、特定プログラムの読み込み又は実行を行うことにより当該電子ファイルを利用するコンピュータに危害を与える虞のある特定の記述に特有の文字列である特定の文字列を記憶する記憶手段と、
特定の電子ファイルを取得する取得手段と、
前記取得手段により取得された前記特定の電子ファイルに、前記記憶手段に記憶された前記特定の文字列が含まれているかどうかを判定する判定手段と、
前記判定手段により前記特定の電子ファイルに前記特定の文字列が含まれていると判定された場合に、当該特定の電子ファイル内の当該特定の文字列を他の文字列に置き換えることにより、前記特定の記述を、当該特定の電子ファイルを利用するコンピュータに危害を与える虞のない他の記述に編集する編集手段と
前記編集手段による編集後の前記特定の電子ファイルを出力する出力手段と
を備えたことを特徴とする電子ファイル処理装置。
【請求項２】
前記取得手段により取得された前記特定の電子ファイルの特定の部分に基づいて、当該特定の電子ファイルが前記特定の文字列を埋め込むことの可能な特定の種類の電子ファイルであるかどうかを検査し、当該特定の電子ファイルが当該特定の種類の電子ファイルである場合に、当該特定の電子ファイルを前記判定手段による判定の対象とする検査手段を更に備えたことを特徴とする請求項１記載の電子ファイル処理装置。
【請求項３】
前記特定の電子ファイルのＲＡＷデータを取得し、当該ＲＡＷデータを前記判定手段による判定の対象とする第１の変換手段と、
前記編集手段による編集後の前記ＲＡＷデータの元となる編集後の前記特定の電子ファイルを取得し、編集後の当該特定の電子ファイルを前記出力手段による出力の対象とする第２の変換手段と
を更に備えたことを特徴とする請求項１記載の電子ファイル処理装置。
【請求項４】
前記特定の電子ファイルを前記特定の文字列を埋め込むことの可能な第１の部分と前記特定の文字列を埋め込むことの不可能な第２の部分とに分割し、当該第１の部分のＲＡＷデータを取得し、当該ＲＡＷデータを前記判定手段による判定の対象とする第１の変換手段と、
前記編集手段による編集後の前記ＲＡＷデータの元となる編集後の前記第１の部分を取得し、編集後の当該第１の部分と前記第２の部分とを結合して編集後の前記特定の電子ファイルを生成し、編集後の当該特定の電子ファイルを前記出力手段による出力の対象とする第２の変換手段と
を更に備えたことを特徴とする請求項１記載の電子ファイル処理装置。
【請求項５】
前記記憶手段は、前記他の文字列を、前記特定の文字列に対応付けて更に記憶し、
前記編集手段は、前記特定の電子ファイル内の前記特定の文字列を、前記記憶手段において当該特定の文字列に対応付けて記憶された前記他の文字列に置き換えることを特徴とする請求項１記載の電子ファイル処理装置。
【請求項６】
クライアントコンピュータとサーバコンピュータとが通信回線を介して接続されてなるコンピュータシステムであって、
前記クライアントコンピュータは、
特定の電子ファイルを前記通信回線を介して前記サーバコンピュータに送信する送信手段を備え、
前記サーバコンピュータは、
電子ファイルに埋め込まれる可能性のある文字列であって、特定プログラムの読み込み又は実行を行うことにより当該電子ファイルを利用するコンピュータに危害を与える虞のある特定の記述に特有の文字列である特定の文字列を記憶する記憶手段と、
前記特定の電子ファイルを前記クライアントコンピュータから前記通信回線を介して受信する受信手段と、
前記受信手段により受信された前記特定の電子ファイルに、前記記憶手段に記憶された前記特定の文字列が含まれているかどうかを判定する判定手段と、
前記判定手段により前記特定の電子ファイルに前記特定の文字列が含まれていると判定された場合に、当該特定の電子ファイル内の当該特定の文字列を他の文字列に置き換えることにより、前記特定の記述を、当該特定の電子ファイルを利用するコンピュータに危害を与える虞のない他の記述に編集する編集手段と
前記編集手段による編集後の前記特定の電子ファイルを前記クライアントコンピュータに前記通信回線を介して送信する送信手段とを備え、
前記クライアントコンピュータは、
前記編集手段による編集後の前記特定の電子ファイルを前記サーバコンピュータから前記通信回線を介して受信する受信手段を備えたことを特徴とするコンピュータシステム。
【請求項７】
電子ファイルを処理する電子ファイル処理方法であって、
前記電子ファイルに埋め込まれる可能性のある文字列であって、特定プログラムの読み込み又は実行を行うことにより当該電子ファイルを利用するコンピュータに危害を与える虞のある特定の記述に特有の文字列である特定の文字列を記憶手段から読み出すステップと、
特定の電子ファイルを取得するステップと、
取得された前記特定の電子ファイルに、前記記憶手段から読み出された前記特定の文字列が含まれているかどうかを判定するステップと、
前記特定の電子ファイルに前記特定の文字列が含まれていると判定された場合に、当該特定の電子ファイル内の当該特定の文字列を他の文字列に置き換えることにより、前記特定の記述を、当該特定の電子ファイルを利用するコンピュータに危害を与える虞のない他の記述に編集するステップと
編集後の前記特定の電子ファイルを出力するステップと
を含むことを特徴とする電子ファイル処理方法。
【請求項８】
電子ファイルを利用するコンピュータに、
前記電子ファイルに埋め込まれる可能性のある文字列であって、特定プログラムの読み込み又は実行を行うことにより前記コンピュータに危害を与える虞のある特定の記述に特有の文字列である特定の文字列を記憶手段から読み出す機能と、
特定の電子ファイルを取得する機能と、
取得された前記特定の電子ファイルに、前記記憶手段から読み出された前記特定の文字列が含まれているかどうかを判定する機能と、
前記特定の電子ファイルに前記特定の文字列が含まれていると判定された場合に、当該特定の電子ファイル内の当該特定の文字列を他の文字列に置き換えることにより、前記特定の記述を、前記コンピュータに危害を与える虞のない他の記述に編集する機能と
編集後の前記特定の電子ファイルを表示する機能と
を実現させるためのコンピュータプログラム。
【請求項９】
サーバコンピュータに、
電子ファイルに埋め込まれる可能性のある文字列であって、特定プログラムの読み込み又は実行を行うことにより当該電子ファイルを利用するコンピュータに危害を与える虞のある特定の記述に特有の文字列である特定の文字列を記憶手段から読み出す機能と、
特定の電子ファイルをクライアントコンピュータから受信する機能と、
受信した前記特定の電子ファイルに、前記記憶手段から読み出された前記特定の文字列が含まれているかどうかを判定する機能と、
前記特定の電子ファイルに前記特定の文字列が含まれていると判定された場合に、当該特定の電子ファイル内の当該特定の文字列を他の文字列に置き換えることにより、前記特定の記述を、当該特定の電子ファイルを利用するコンピュータに危害を与える虞のない他の記述に編集する機能と
編集後の前記特定の電子ファイルを前記クライアントコンピュータに送信する機能と
を実現させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子ファイルを処理する電子ファイル処理装置、コンピュータシステム、電子ファイル処理方法、及びコンピュータプログラムに関する。
【背景技術】
【０００２】
昨今、ＰＤＦ（Portable Document Format）マルウェアが急増している。このＰＤＦマルウェアとは、ＰＤＦファイルに仕込まれ、例えばＰＤＦファイルを開くと動作し、他のサイトから新たなマルウェアをダウンロードして実行する等して、ＰＤＦファイルを利用するコンピュータに危害を与える悪性プログラムのことである。このようなＰＤＦマルウェアからの感染を防ぐ方法としては、現在のところ、ＰＤＦファイル閲覧ソフトウェアであるアドビシステムズ社のＡｄｏｂｅ Ｒｅａｄｅｒ（登録商標）を最新の状態にしておくことくらいしかなく、ＰＤＦファイルからのＰＤＦマルウェアの除去（以下、「無毒化」という）については、手法が確立していない。また、ＰＤＦファイル以外の形式の電子ファイルについて同様にマルウェアが仕込まれる場合があれば、そのような電子ファイルの無毒化についても同様に検討しておく必要がある。
【０００３】
ここで、公報記載の技術として、マルウェア（悪意のある破壊工作ソフト）対策用として、ファイルを走査するシステムが提案されている（例えば、特許文献１参照）。この特許文献１では、プログラムソースをコメント、変数名及びルーチン名のような部分のグループに分離し、このような部分の繰り返し部分を除去し、結果として得られる一連の文字列からなる文字の発生頻度分布を求めることにより、走査したファイルに対して、疑わしいとみなすフラグ又は疑わしくないとみなすフラグの何れかを立てている。
【０００４】
【特許文献１】特開２００６−５２２３９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
このように、ファイルを走査してマルウェアを検出する技術は、従来から存在した。
しかしながら、特許文献１の技術では、走査したファイルが疑わしいと判定した場合、ファイルに対して、疑わしいとみなすフラグを立てているに過ぎず、疑わしいファイルを無毒化することはできないという問題点があった。
【０００６】
本発明の目的は、電子ファイルを利用するコンピュータに危害を与える虞のある記述がなされた電子ファイルを無毒化することにある。
【課題を解決するための手段】
【０００７】
かかる目的のもと、本発明は、電子ファイルを処理する電子ファイル処理装置であって、電子ファイルに埋め込まれる可能性のある文字列であって、特定プログラムの読み込み又は実行を行うことにより電子ファイルを利用するコンピュータに危害を与える虞のある特定の記述に特有の文字列である特定の文字列を記憶する記憶手段と、特定の電子ファイルを取得する取得手段と、取得手段により取得された特定の電子ファイルに、記憶手段に記憶された特定の文字列が含まれているかどうかを判定する判定手段と、判定手段により特定の電子ファイルに特定の文字列が含まれていると判定された場合に、特定の電子ファイル内の特定の文字列を他の文字列に置き換えることにより、特定の記述を、特定の電子ファイルを利用するコンピュータに危害を与える虞のない他の記述に編集する編集手段と編集手段による編集後の特定の電子ファイルを出力する出力手段とを備えたことを特徴とする電子ファイル処理装置を提供する。
【０００８】
また、この装置は、取得手段により取得された特定の電子ファイルの特定の部分に基づいて、特定の電子ファイルが特定の文字列を埋め込むことの可能な特定の種類の電子ファイルであるかどうかを検査し、特定の電子ファイルが特定の種類の電子ファイルである場合に、特定の電子ファイルを判定手段による判定の対象とする検査手段を更に備えた、ものであってよい。
また、この装置は、特定の電子ファイルのＲＡＷデータを取得し、ＲＡＷデータを判定手段による判定の対象とする第１の変換手段と、編集手段による編集後のＲＡＷデータの元となる編集後の特定の電子ファイルを取得し、編集後の特定の電子ファイルを出力手段による出力の対象とする第２の変換手段とを更に備えた、ものであってよい。
更に、この装置は、特定の電子ファイルを特定の文字列を埋め込むことの可能な第１の部分と特定の文字列を埋め込むことの不可能な第２の部分とに分割し、第１の部分のＲＡＷデータを取得し、ＲＡＷデータを判定手段による判定の対象とする第１の変換手段と、編集手段による編集後のＲＡＷデータの元となる編集後の第１の部分を取得し、編集後の第１の部分と第２の部分とを結合して編集後の特定の電子ファイルを生成し、編集後の特定の電子ファイルを出力手段による出力の対象とする第２の変換手段とを更に備えた、ものであってよい。
更にまた、記憶手段は、他の文字列を、特定の文字列に対応付けて更に記憶し、編集手段は、特定の電子ファイル内の特定の文字列を、記憶手段において特定の文字列に対応付けて記憶された他の文字列に置き換えることを特徴とする、ものであってよい。
【０００９】
また、本発明は、クライアントコンピュータとサーバコンピュータとが通信回線を介して接続されてなるコンピュータシステムであって、クライアントコンピュータは、特定の電子ファイルを通信回線を介してサーバコンピュータに送信する送信手段を備え、サーバコンピュータは、電子ファイルに埋め込まれる可能性のある文字列であって、特定プログラムの読み込み又は実行を行うことにより電子ファイルを利用するコンピュータに危害を与える虞のある特定の記述に特有の文字列である特定の文字列を記憶する記憶手段と、特定の電子ファイルをクライアントコンピュータから通信回線を介して受信する受信手段と、受信手段により受信された特定の電子ファイルに、記憶手段に記憶された特定の文字列が含まれているかどうかを判定する判定手段と、判定手段により特定の電子ファイルに特定の文字列が含まれていると判定された場合に、特定の電子ファイル内の特定の文字列を他の文字列に置き換えることにより、特定の記述を、特定の電子ファイルを利用するコンピュータに危害を与える虞のない他の記述に編集する編集手段と編集手段による編集後の特定の電子ファイルをクライアントコンピュータに通信回線を介して送信する送信手段とを備え、クライアントコンピュータは、編集手段による編集後の特定の電子ファイルをサーバコンピュータから通信回線を介して受信する受信手段を備えたことを特徴とするコンピュータシステムも提供する。
【００１０】
また、本発明は、電子ファイルを処理する電子ファイル処理方法であって、電子ファイルに埋め込まれる可能性のある文字列であって、特定プログラムの読み込み又は実行を行うことにより電子ファイルを利用するコンピュータに危害を与える虞のある特定の記述に特有の文字列である特定の文字列を記憶手段から読み出すステップと、特定の電子ファイルを取得するステップと、取得された特定の電子ファイルに、記憶手段から読み出された特定の文字列が含まれているかどうかを判定するステップと、特定の電子ファイルに特定の文字列が含まれていると判定された場合に、特定の電子ファイル内の特定の文字列を他の文字列に置き換えることにより、特定の記述を、特定の電子ファイルを利用するコンピュータに危害を与える虞のない他の記述に編集するステップと編集後の特定の電子ファイルを出力するステップとを含むことを特徴とする電子ファイル処理方法も提供する。
【００１１】
更に、本発明は、電子ファイルを利用するコンピュータに、電子ファイルに埋め込まれる可能性のある文字列であって、特定プログラムの読み込み又は実行を行うことによりコンピュータに危害を与える虞のある特定の記述に特有の文字列である特定の文字列を記憶手段から読み出す機能と、特定の電子ファイルを取得する機能と、取得された特定の電子ファイルに、記憶手段から読み出された特定の文字列が含まれているかどうかを判定する機能と、特定の電子ファイルに特定の文字列が含まれていると判定された場合に、特定の電子ファイル内の特定の文字列を他の文字列に置き換えることにより、特定の記述を、コンピュータに危害を与える虞のない他の記述に編集する機能と編集後の特定の電子ファイルを表示する機能とを実現させるためのコンピュータプログラムも提供する。
【００１２】
更にまた、本発明は、サーバコンピュータに、電子ファイルに埋め込まれる可能性のある文字列であって、特定プログラムの読み込み又は実行を行うことにより電子ファイルを利用するコンピュータに危害を与える虞のある特定の記述に特有の文字列である特定の文字列を記憶手段から読み出す機能と、特定の電子ファイルをクライアントコンピュータから受信する機能と、受信した特定の電子ファイルに、記憶手段から読み出された特定の文字列が含まれているかどうかを判定する機能と、特定の電子ファイルに特定の文字列が含まれていると判定された場合に、特定の電子ファイル内の特定の文字列を他の文字列に置き換えることにより、特定の記述を、特定の電子ファイルを利用するコンピュータに危害を与える虞のない他の記述に編集する機能と編集後の特定の電子ファイルをクライアントコンピュータに送信する機能とを実現させるためのコンピュータプログラムも提供する。
【発明の効果】
【００１３】
本発明によれば、電子ファイルを利用するコンピュータに危害を与える虞のある記述がなされた電子ファイルを無毒化することができる。
【発明を実施するための最良の形態】
【００１４】
以下、添付図面を参照して、本発明を実施するための最良の形態（以下、「実施の形態」という）について詳細に説明する。尚、本実施の形態では、電子ファイルを単に「ファイル」と称し、無毒化対象のファイルとしては「ＰＤＦファイル」を想定して説明することにする。
【００１５】
まず、本実施の形態が適用されるコンピュータシステムについて説明する。
図１は、このようなコンピュータシステムの全体構成例を示した図である。
図示するように、このコンピュータシステムは、クライアント１０ａ，１０ｂと、サーバ２０とが、ネットワーク８０を介して接続されている。
【００１６】
クライアント１０ａ，１０ｂは、ユーザが使用するクライアントコンピュータである。例えば、パーソナルコンピュータやワークステーション、その他のコンピュータ装置にて実現される。本実施の形態において、クライアント１０ａ，１０ｂは、ユーザがＰＤＦファイルをサーバ２０にアップロードするために用いられる。例えば、クライアント１０ａ，１０ｂには、ウェブブラウザがインストールされ、ＰＤＦファイルは、このウェブブラウザからサーバ２０にアップロードするようにするとよい。或いは、クライアント１０ａ，１０ｂには、電子メールソフトウェアがインストールされ、ＰＤＦファイルは、決められたメールアドレスにＰＤＦファイルを添付した電子メールを送信することにより、サーバ２０にアップロードするようにしてもよい。ここで、クライアント１０ａ，１０ｂは、ＰＤＦファイルを利用せず、他のコンピュータが利用するＰＤＦファイルをサーバ２０にアップロードするためにのみ用いられるものであってもよい。尚、図では、クライアント１０ａ，１０ｂを示したが、これらを区別する必要がない場合は、クライアント１０と称することもある。また、図には、２台のクライアント１０しか示していないが、３台以上のクライアント１０を設けてもよい。
【００１７】
サーバ２０は、クライアント１０からアップロードされたＰＤＦファイルの無毒化を行うサーバコンピュータである。例えば、パーソナルコンピュータやワークステーション、その他のコンピュータ装置にて実現される。尚、サーバ２０の詳細な機能及び動作については後述する。
ネットワーク８０は、情報の送受信に用いる通信回線である。このネットワーク８０としては、インターネットやＬＡＮ（Local Area Network）が例示される。
【００１８】
次に、ＰＤＦファイルの構造について説明する。
図２は、ＰＤＦファイルの構造を例示した図である。
図示するように、ＰＤＦファイルは、ヘッダ３１０と、オブジェクト部３２０と、クロスリファレンス部３３０と、トレーラ３４０とからなる。
ヘッダ３１０は、ＰＤＦファイルの最初の部分であり、ＰＤＦファイルを読み込んだ際にトレーラ３４０と共に最初に解析される部分である。このヘッダ３１０には、このファイルの形式がＰＤＦであることを示す情報と、このファイルのバージョンを示す情報とが含まれる。図の例では、ファイルの形式がＰＤＦであり、バージョンが「１．１」であることが示されている。
【００１９】
オブジェクト部３２０は、ＰＤＦファイルの中心的な部分であり、表示させる文字列や、アクションの設定が記載される。図の例では、太枠で囲んだ記述３２１が、表示させる文字列に相当する。また、このように、オブジェクト部３２０は、アクションの設定を記載することもできるという自由度を有しており、ＰＤＦマルウェアは、オブジェクト部３２０のこの自由度の高さを悪用したものと言える。尚、通常、オブジェクト部３２０には、図示したものよりも多くの情報が含まれるが、図では、オブジェクト部３２０の最後の部分は、省略記号３２２で表している。
【００２０】
クロスリファレンス部３３０は、ＰＤＦファイルを読み込んだ際に、ヘッダ３１０及びトレーラ３４０の次に解析される部分であり、オブジェクト部３２０にランダムアクセスする際に用いられるインデックス情報として機能する部分である。クロスリファレンス部３３０は、１つ以上のセクションからなり、各セクションは、キーワード「xref」と、１つ以上のサブセクションの列とからなる。また、各サブセクションは、ヘッダと、１つ以上のエントリの列とからなる。ここで、ヘッダは、サブセクションが指す最初のオブジェクトの番号を示す整数と、サブセクションに含まれる項目数を示す整数とを含む。そして、各エントリは、オブジェクト番号、履歴番号、有効／無効の区別を含む。図では、サブセクションのヘッダとして「0 9」が示されており、１行目のエントリでは、オブジェクト番号として「0000000000」が、履歴番号として「65535」が、有効／無効の区別として「f（無効）」が示されており、２行目のエントリでは、オブジェクト番号として「0000000565」が、履歴番号として「00000」が、有効／無効の区別として「n（無効）」が示されている。
【００２１】
トレーラ３４０は、ＰＤＦファイルの最後の部分であり、ＰＤＦファイルを読み込んだ際にヘッダ３１０と共に最初に解析される部分である。このトレーラ３４０には、クロスリファレンス部３３０への参照情報が含まれる。図の例では、クロスリファレンス部３３０がＰＤＦファイル中の７５０バイト目から始まっていることを示している。
【００２２】
ところで、上述したように、オブジェクト部３２０には、アクションの設定を記載することができる。このようなアクションには、Gotoアクション等もあるが、本実施の形態では、特に、ＰＤＦファイル内に記述されたＪａｖａ（登録商標）スクリプトを実行したり、他のプログラムをダウンロードして実行したりするアクションを想定する。
図３は、オブジェクト部３２０のアクションの設定が記載された箇所の一例である。
記述３２３は、アドレス「www.evil.jp/code」から実行ファイル「virus.exe」をダウンロードするための記述である。また、記述３２３は、メッセージ「Test Script」を表示するためのＪａｖａ（登録商標）スクリプトの記述である。ここで、前者は、特定プログラムを読み込むための記述の一例であり、後者は、特定プログラムを実行するための記述の一例である。これらの記述３２３、３２４は、図２において、例えば、省略記号３２２で表した箇所に記載されることになる。
【００２３】
本実施の形態では、図１のようなコンピュータシステムにおいて、図２のような構造を有し、かつ、図３のような記述を含むＰＤＦファイルを、クライアント１０がサーバ２０にアップロードすると、サーバ２０はこれを無毒化してクライアント１０に返信する。
そこで、まず、このような動作を行うサーバ２０の機能構成について説明する。
図４は、サーバ２０の機能構成例を示したブロック図である。
図示するように、サーバ２０は、受信部２１と、ヘッダ検査部２２と、変換部２３と、置換情報記憶部２４と、照合部２５と、編集処理部２６と、逆変換部２７と、送信部２８とを備えている。
【００２４】
受信部２１は、クライアント１０からＰＤＦファイルを受信する。また、ＰＤＦファイル以外のファイルを受信することもある。本実施の形態では、特定の電子ファイルを取得する取得手段の一例として、受信部２１を設けている。
【００２５】
ヘッダ検査部２２は、受信部２１が受信したファイルのヘッダ部分を検査し、そのファイルがＰＤＦファイルであるかどうかを判定する。その結果、受信部２１が受信したファイルがＰＤＦファイルでないと判定されれば、そのファイルとＰＤＦファイルでない旨をセットしたメッセージとを送信部２８に渡す。一方、受信部２１が受信したファイルがＰＤＦファイルであると判定されれば、そのファイルを変換部２３に渡す。本実施の形態では、特定の電子ファイルが特定の種類の電子ファイルであるかどうかを検査する検査手段の一例として、ヘッダ検査部２２を設けている。
【００２６】
変換部２３は、まず、ヘッダ検査部２２から渡されたＰＤＦファイルを、ヘッダ３１０、オブジェクト部３２０、クロスリファレンス部３３０、トレーラ３４０に分割し、これらを逆変換部２７に渡す。そして、オブジェクト部３２０のＲＡＷデータ（例えば、１６進ダンプ）を取得することにより新たなオブジェクト部３２０（以下、「新オブジェクト部」という）を生成し、これを照合部２５に渡す。本実施の形態では、特定の電子ファイルのＲＡＷデータを取得する第１の変換手段の一例として、変換部２３を設けている。
【００２７】
置換情報記憶部２４は、特定プログラムの読み込みや実行を行うことでコンピュータに危害を与える虞のある記述に特有の文字列を置換対象文字列とし、その記述をコンピュータに危害を与える虞のない記述とするためにその置換対象文字列を置換すべき文字列を置換後文字列とし、置換対象文字列を表すＲＡＷデータ（以下、「置換対象データ」という）と、置換後文字列を表すＲＡＷデータ（以下、「置換後データ」という）とを対応付けた置換情報を記憶する。尚、置換情報の具体的な内容については、後述する。本実施の形態では、電子ファイルを利用するコンピュータに危害を与える虞のある特定の記述に特有の文字列である特定の文字列を記憶する記憶手段の一例として、置換情報記憶部２４を設けている。
【００２８】
照合部２５は、新オブジェクト部を変換部２３から受け取り、置換情報記憶部２４に記憶された置換対象データの何れかが新オブジェクト部に含まれるかどうかを判定する。その結果、置換対象データの何れかが新オブジェクト部に含まれると判定されれば、置換情報記憶部２４に置換対象データに対応付けて記憶された置換後データを読み出し、新オブジェクト部、置換対象データが含まれる位置を特定する情報、置換後データを編集処理部２６に渡す。一方、置換対象データの何れも新オブジェクト部に含まれないと判定されれば、その旨を逆変換部２７に伝える。本実施の形態では、特定の電子ファイルに特定の文字列が含まれているかどうかを判定する判定手段の一例として、照合部２５を設けている。
【００２９】
編集処理部２６は、照合部２５から受け取った新オブジェクト部において、照合部２５から受け取った情報で特定される位置のデータを、照合部２５から受け取った置換後データで置換する。即ち、特定プログラムの読み込みや実行を行うことでコンピュータに危害を与える虞のある記述を、コンピュータに危害を与える虞のない記述に編集する。そして、編集後の新オブジェクト部を逆変換部２７に渡す。本実施の形態では、特定の電子ファイル内の特定の文字列を他の文字列に置き換えることにより、特定の記述を、特定の電子ファイルを利用するコンピュータに危害を与える虞のない他の記述に編集する編集手段の一例として、編集処理部２６を設けている。
【００３０】
逆変換部２７は、編集処理部２６から編集後の新オブジェクト部を受け取った場合、これを元の形式に変換することにより、編集後のオブジェクト部３２０を生成し、変換部２３から受け取ったヘッダ３１０、編集後のオブジェクト部３２０、変換部２３から受け取ったクロスリファレンス部３３０、変換部２３から受け取ったトレーラ３４０の順に結合して、編集後のＰＤＦファイルを生成する。そして、編集後のＰＤＦファイルと編集した旨をセットしたメッセージとを送信部２８に渡す。また、照合部２５から新オブジェクト部に置換対象データが含まれていない旨が伝えられた場合、変換部２３から受け取ったヘッダ３１０、オブジェクト部３２０、クロスリファレンス部３３０、トレーラ３４０の順に結合して、元のＰＤＦファイルに戻す。そして、元のＰＤＦファイルと編集していない旨をセットしたメッセージとを送信部２８に渡す。本実施の形態では、編集後のＲＡＷデータの元となる編集後の特定の電子ファイルを取得する第２の変換手段の一例として、逆変換部２７を設けている。
【００３１】
送信部２８は、ヘッダ検査部２２から受け取ったメッセージとファイル、又は、逆変換部２７から受け取ったメッセージとＰＤＦファイルをクライアント１０に送信する。本実施の形態では、編集後の特定の電子ファイルを出力する出力手段の一例として、送信部２８を設けている。
【００３２】
ここで、置換情報記憶部２４に記憶される置換情報について具体的に説明する。
図５は、置換情報の具体的な内容を示した図である。
図示するように、置換情報は、置換対象データと、置換後データとを対応付けたものとなっている。尚、本実施の形態において、置換対象データ及び置換後データは、ＲＡＷデータとして記憶されるが、図では、理解し易いように、テキスト形式で示している。
【００３３】
このうち、置換対象データは、コンピュータに危害を与える虞のある記述に特有の文字列を表すＲＡＷデータである。例えば、１行目の「URI」は、外部のプログラムをダウンロードする記述に特有の文字列であり、２行目の「javascript」は、ＰＤＦファイルに埋め込まれたＪａｖａ（登録商標）スクリプトを実行する記述に特有の文字列である。また、３行目には、Ａｄｏｂｅ Ｒｅａｄｅｒ（登録商標）によって開かれようとした場合に、ファイルを閉じる動作を行うスクリプトを示している。Ａｄｏｂｅ Ｒｅａｄｅｒ（登録商標）でＰＤＦファイルを開く場合には、Ｊａｖａ（登録商標）スクリプトを無効にする設定を行えるが、そのような設定がなされないように、例えばInternet Explorer（登録商標）でＰＤＦファイルを開かせて悪意のあるサイトへ誘導させるような場合があるので、このような文字列も置換対象データとして記憶している。
【００３４】
また、置換後データは、コンピュータに危害を与える虞のない記述にするために置換対象データに代えて用いる文字列を表すＲＡＷデータである。例えば、１行目の「XXX」は、「URI」に代えて用いることにより、外部のプログラムをダウンロードできなくする文字列であり、２行目の「xxxxxxxxx」は、「javascript」に代えて用いることにより、ＰＤＦファイルに埋め込まれたＪａｖａ（登録商標）スクリプトを実行できなくする文字列である。また、３行目には、Ａｄｏｂｅ Ｒｅａｄｅｒ（登録商標）によって開かれようとしても、ファイルを閉じる動作が行われないようにするスクリプトを示している。このようなスクリプトに置換することにより、Ｊａｖａ（登録商標）スクリプトを無効にする設定を行うことができるので、例えばInternet Explorer（登録商標）でＰＤＦファイルを開いて悪意のあるサイトへ誘導され、コンピュータに危害が与えられる、といった虞はなくなる。
【００３５】
尚、図５の例の場合、１行目及び２行目の置換対象データに対しては、その各文字を一律に「Ｘ（ｘ）」に変更して得られた置換後データを登録し、３行目の置換対象データに対しては、「ｔｒｕｅ」を「ｆａｌｓｅ」に変更して得られた置換後データを登録した。即ち、置換対象データに応じて、異なる置換後データを登録するようにした。しかしながら、全ての置換対象データに対して、同じ置換後データを登録するようにしてもよい。
【００３６】
次に、本実施の形態におけるサーバ２０の動作について説明する。
図６は、本実施の形態におけるサーバ２０の動作例を示したフローチャートである。
サーバ２０では、まず、受信部２１が、クライアント１０からファイルを受信し、ヘッダ検査部２２に受け渡す（ステップ２０１）。すると、ヘッダ検査部２２は、ファイルのヘッダ部分をチェックし（ステップ２０２）、そのファイルがＰＤＦファイルであるかどうかを判定する（ステップ２０３）。例えば、拡張子を「pdf」としてＰＤＦファイルを装ったＥＸＥファイルもあるので、受信部２１が受信したファイルが本当にＰＤＦファイルであるかをチェックしている。
【００３７】
その結果、そのファイルがＰＤＦファイルでないと判定されれば、ヘッダ検査部２２は、その旨をメッセージにセットする（ステップ２０４）。その後、このメッセージは、ファイルと共に送信部２８に渡される。
【００３８】
一方、そのファイルがＰＤＦファイルであると判定されれば、ヘッダ検査部２２は、そのＰＤＦファイルを変換部２３に渡し、変換部２３がＰＤＦファイルを分割して変換する（ステップ２０５）。具体的には、変換部２３は、ＰＤＦファイルを、ヘッダ３１０、オブジェクト部３２０、クロスリファレンス部３３０、トレーラ３４０に分割し、これらを逆変換部２７に渡しておく。また、このうち、オブジェクト部３２０のＲＡＷデータ（例えば、１６進ダンプ）を取得することにより新オブジェクト部を生成し、これを照合部２５に渡す。
【００３９】
次に、照合部２５は、置換情報記憶部２４に記憶された置換対象データの何れかが新オブジェクト部に含まれているかどうかを判定するマッチング処理を行う。即ち、まず、置換情報記憶部２４に記憶された１つの置換対象データを読み込む（ステップ２０６）。そして、新オブジェクト部の中にこの置換対象データと一致する部分があるかどうかを判定する（ステップ２０７）。
【００４０】
ここで、一致する部分がなければ、照合部２５は、置換情報記憶部２４に記憶された最後の置換対象データに到達したかどうかを判定する（ステップ２０８）。そして、最後の置換対象データに到達していなければ、ステップ２０６〜２０７の処理を繰り返す。また、最後の置換対象データに到達していれば、置換情報記憶部２４に記憶された置換対象データの何れも新オブジェクト部に含まれていないことになるので、逆変換部２７が、分割したＰＤＦファイルを元に戻す。即ち、照合部２５は、どの置換対象データも新オブジェクト部に含まれていない旨を逆変換部２７に通知し、これに応じて、逆変換部２７が、変換部２３から受け取ったヘッダ３１０、オブジェクト部３２０、クロスリファレンス部３３０、トレーラ３４０を、この順に結合する（ステップ２０９）。そして、ファイルを編集していない旨をメッセージにセットする（ステップ２１０）。その後、このメッセージは、元々のＰＤＦファイルと共に送信部２８に渡される。
【００４１】
一方、ステップ２０７で一致する部分があれば、編集処理部２６が、その部分を置換することによるＰＤＦファイルの編集処理を行う（ステップ２１１）。即ち、まず、照合部２５が、新オブジェクト部と、現在着目している置換対象データに一致する部分を特定する情報と、置換情報記憶部２４において現在着目している置換対象データに対応付けて記憶されている置換後データとを編集処理部２６に受け渡す。すると、編集処理部２６が、照合部２５から受け取った新オブジェクト部において、照合部２５から受け取った情報で特定される部分を、照合部２５から受け取った置換後データで置換し、置換後の新オブジェクト部を逆変換部２７に受け渡す。その後、逆変換部２７は、逆変換部２７から受け取った置換後の新オブジェクト部を元の形式に変換し、変換部２３から受け取ったヘッダ３１０、この元の形式に変換されたオブジェクト部３２０、変換部２３から受け取ったクロスリファレンス部３３０、変換部２３から受け取ったトレーラ３４０を、この順に結合する（ステップ２１２）。そして、ファイルを編集した旨をメッセージにセットする（ステップ２１３）。その後、このメッセージは、ステップ２１２で再構築された編集後のＰＤＦファイルと共に送信部２８に渡される。
【００４２】
そして、最後に、送信部２８は、ヘッダ検査部２２から受け取ったファイル及びメッセージ、又は、逆変換部２７から受け取ったファイル及びメッセージを、クライアント１０に送信する（ステップ２１４）。但し、ヘッダ検査部２２から受け取ったファイル及びメッセージの送信先は、クライアント１０ではなく、ＥＸＥファイル等を対象としたマルウェアチェックシステムとしてもよい。
【００４３】
以上により、本実施の形態の動作は終了する。
ところで、本実施の形態では、変換部２３が電子ファイルをヘッダ３１０、オブジェクト部３２０、クロスリファレンス部３３０、トレーラ３４０に分割し、このうち、オブジェクト部３２０のＲＡＷデータのみを照合部２５による照合の対象とした。しかしながら、電子ファイルの全体のＲＡＷデータを照合部２５による照合の対象としてもよい。尚、このように、ＲＡＷデータを照合部２５による照合の対象としたのは、照合の確実性を高めるためである。例えば、日本語の文字列を表示するＰＤＦファイルの場合、そのままの形式で照合したのでは、置換対象データを確実に見つけ出せない可能性もある。但し、このような問題が生じない場合は、そのままの形式で照合する構成を採用してもよい。
【００４４】
また、本実施の形態では、クライアント１０がＰＤＦファイルをサーバ２０にアップロードすると、サーバ２０はこれを無毒化してクライアント１０に返信するようにした。しかしながら、このようなＰＤＦファイルの無毒化を、ＰＤＦファイルを利用するコンピュータで行ってもよい。その場合、図４は、ＰＤＦファイルを利用するコンピュータの機能構成を示したものと考えることができる。但し、受信部２１の代わりに、ユーザ操作に応じて検査対象のＰＤＦファイルを受け付ける受付部を設ける必要がある。また、送信部２８の代わりに、ヘッダ検査部２２から受け取ったＰＤＦファイルでない旨のメッセージ、逆変換部２７から受け取ったＰＤＦファイルを編集していない旨のメッセージ、逆変換部２７から受け取ったＰＤＦファイルを編集した旨のメッセージ及び編集後のＰＤＦファイルの何れかを表示する表示部を設ける必要がある。
【００４５】
更に、本実施の形態では、ＰＤＦファイルの無毒化を例として説明したが、ＰＤＦ以外の形式の電子ファイルでプログラムの読み込み又は実行を行う記述を行うことができるものがあれば、そのような電子ファイルの無毒化に本実施の形態を適用してもよい。
【００４６】
以上述べたように、本実施の形態では、プログラムの読み込み又は実行を行うことによりコンピュータに危害を与える虞のある記述に特有の文字列が電子ファイルに含まれている場合に、その文字列を他の文字列に置き換えることにより、コンピュータに危害を与える虞のない記述に編集するようにした。これにより、電子ファイルを利用するコンピュータに危害を与える虞のある記述がなされた電子ファイルを無毒化することが可能となった。
【００４７】
最後に、本実施の形態を適用するのに好適なコンピュータのハードウェア構成について説明する。図７は、このようなコンピュータのハードウェア構成の一例を示した図である。図示するように、コンピュータは、演算手段であるＣＰＵ（Central Processing Unit）９０ａと、Ｍ／Ｂ（マザーボード）チップセット９０ｂを介してＣＰＵ９０ａに接続されたメインメモリ９０ｃと、同じくＭ／Ｂチップセット９０ｂを介してＣＰＵ９０ａに接続された表示機構９０ｄとを備える。また、Ｍ／Ｂチップセット９０ｂには、ブリッジ回路９０ｅを介して、ネットワークインターフェイス９０ｆと、磁気ディスク装置（ＨＤＤ）９０ｇと、音声機構９０ｈと、キーボード／マウス９０ｉと、フレキシブルディスクドライブ９０ｊとが接続されている。
【００４８】
尚、図７において、各構成要素は、バスを介して接続される。例えば、ＣＰＵ９０ａとＭ／Ｂチップセット９０ｂの間や、Ｍ／Ｂチップセット９０ｂとメインメモリ９０ｃの間は、ＣＰＵバスを介して接続される。また、Ｍ／Ｂチップセット９０ｂと表示機構９０ｄとの間は、ＡＧＰ（Accelerated Graphics Port）を介して接続されてもよいが、表示機構９０ｄがＰＣＩ Ｅｘｐｒｅｓｓ対応のビデオカードを含む場合、Ｍ／Ｂチップセット９０ｂとこのビデオカードの間は、ＰＣＩ Ｅｘｐｒｅｓｓ（ＰＣＩｅ）バスを介して接続される。また、ブリッジ回路９０ｅと接続する場合、ネットワークインターフェイス９０ｆについては、例えば、ＰＣＩ Ｅｘｐｒｅｓｓを用いることができる。また、磁気ディスク装置９０ｇについては、例えば、シリアルＡＴＡ（AT Attachment）、パラレル転送のＡＴＡ、ＰＣＩ（Peripheral Components Interconnect）を用いることができる。更に、キーボード／マウス９０ｉ、及び、フレキシブルディスクドライブ９０ｊについては、ＵＳＢ（Universal Serial Bus）を用いることができる。
【図面の簡単な説明】
【００４９】
【図１】本実施の形態が適用されるコンピュータシステムの全体構成図である。
【図２】ＰＤＦファイルの構造例を示した図である。
【図３】ＰＤＦファイルに埋め込まれたスクリプトの例を示した図である。
【図４】本実施の形態におけるサーバの機能構成例を示したブロック図である。
【図５】本実施の形態の置換情報記憶部に記憶された置換情報の例を示した図である。
【図６】本実施の形態におけるサーバの動作例を示したフローチャートである。
【図７】本実施の形態が適用されるコンピュータのハードウェア構成図である。
【符号の説明】
【００５０】
１０…クライアント、２０…サーバ、２１…受信部、２２…ヘッダ検査部、２３…変換部、２４…置換情報記憶部、２５…照合部、２６…編集処理部、２７…逆変換部、２８…送信部
【図１】
2010140277.tif 000003
【図２】
2010140277.tif 000004
【図３】
2010140277.tif 000005
【図４】
2010140277.tif 000006
【図５】
2010140277.tif 000007
【図６】
2010140277.tif 000008
【図７】
2010140277.tif 000009