(57)【要約】【課題】マルウェアなどによる通信を排除するとともに、マルウェアに感染している端末を特定して対処する。【解決手段】ユーザ端末保護システムは、ユーザ端末から送出するパケットに、送信を行った送信プログラムの識別子を埋め込み、受信側端末でパケットに埋め込まれた送信プログラムの識別子を抽出し、抽出した送信プログラムの識別子とパケットの受信プログラムの識別子との組み合わせに基づいて、事前に定めたポリシーを参照して、受信パケットの通過、破棄などのパケットの処理方法を決定する。【選択図】図３
2011186728.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続されているユーザ端末を保護するための方法であって、第１の端末内における前記ネットワークへのパケットの送信を監視し、前記パケットの送信を行おうとしているプログラムを特定し、特定した前記プログラムを表す第１の識別子を前記パケット内に埋め込んで送信し、
第２の端末内において前記ネットワークからのパケット受信を監視し、前記パケット受信の監視によって得られたパケットに埋め込まれている前記第１の識別子を抽出し、監視によって得られた前記パケットを受信するプログラムの識別子である第２の識別子と前記第１の識別子との組み合わせに基づいて前記パケットの処理方法を決定することを特徴とするユーザ端末保護方法。
【請求項２】
請求項１に記載のユーザ端末保護方法であって、前記第１および第２の識別子の組み合わせに基づく前記パケットの処理方法を、事前に定めたポリシを参照することによって決定することを特徴とするユーザ端末保護方法。
【請求項３】
請求項２に記載のユーザ端末保護方法であって、GUIを用いて前記ポリシがユーザによって設定されることを特徴とするユーザ端末保護方法。
【請求項４】
請求項１に記載のユーザ端末保護方法であって、前記第１の端末における前記パケットへの前記第１の識別子を、前記パケットのIPヘッダもしくはTCPヘッダのオプションフィールドに埋め込むことを特徴とするユーザ端末保護方法。
【請求項５】
請求項１に記載のユーザ端末保護方法であって、前記第２の端末において、決定した前記処理方法に従って前記パケットを処理した後、必要に応じて管理者への通知を行うことを特徴とするユーザ端末保護方法。
【請求項６】
請求項１に記載のユーザ端末保護方法であって、
前記第１の端末における前記パケットへの前記第１の識別子の埋め込みの際に、前記第１の端末の内部状態を表す状態情報を埋め込み、
前記第２の端末における前記パケットの処理方法決定の際に、前記第１の識別子と前記第２の識別子に加え、前記パケットに埋め込まれた前記状態情報に基づき前記パケットの処理方法を決定することを特徴とするユーザ端末保護方法。
【請求項７】
第１および第２の端末が接続されているネットワークにおけるユーザ端末保護システムであって、
前記第１の端末は、前記第１の端末内における前記ネットワークへのパケット送信を監視する手段と、
前記パケット送信を行おうとしているプログラムを特定し、前記プログラムを表す第１の識別子をパケット内に埋め込んで送信する手段とを有し、
前記第２の端末は、前記第２の端末内において前記ネットワークからのパケット受信を監視する手段と、
前記パケット受信の監視によって得られたパケットに埋め込まれている前記第１の識別子を抽出する手段と、
前記パケットを受信するプログラムの識別子である第２の識別子と前記第１の識別子との組み合わせに基づいて前記パケットの処理方法を決定する手段とを有することを特徴とするユーザ端末保護システム。
【請求項８】
請求項７に記載のユーザ端末保護システムであって、事前に定めたポリシを格納するデータベースを有し、前記パケットの処理方法を決定する手段が、前記ポリシデータベースを参照して処理方法を決定することを特徴とするユーザ端末保護システム。
【請求項９】
請求項８に記載のユーザ端末保護システムであって、前記ポリシデータベースに格納されているポリシの設定を行うためのGUIを具備することを特徴とするユーザ端末保護システム。
【請求項１０】
請求項７に記載のユーザ端末保護システムであって、前記第１の端末が、前記パケットのIPヘッダもしくはTCPヘッダのオプションフィールドにプログラム識別子を埋め込む手段を有することを特徴とするユーザ端末保護システム。
【請求項１１】
請求項７に記載のユーザ端末保護システムであって、前記第２の端末が、決定した前記処理方法に従って前記パケットを処理した後に必要に応じて管理者への通知を行う機能を有することを特徴とするユーザ端末保護システム。
【請求項１２】
請求項７に記載のユーザ端末保護システムであって、前記第１の端末が、前記パケットへの前記第１の識別子の埋め込みの際に、前記第１の端末の内部状態を表す状態情報を埋め込む手段を有し、
前記第２の端末の前記パケットの処理方法を決定する手段は、前記パケットの処理方法決定の際に、前記第１の識別子と前記第２の識別子に加え、前記パケットに埋め込まれた状態情報に基づき前記パケットの処理方法を決定することを特徴とするユーザ端末保護システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザの端末を安全に保つための方法、システムに関する。
【背景技術】
【０００２】
昨今、ユーザ端末の周囲にはネットワークを介した攻撃やコンピュータウイルスなど、脅威が蔓延している。これらの脅威からユーザ端末を保護するための技術として、ファイアウォールがある。ファイアウォールは、予め定めたルールに従い、受信したパケットを通過または破棄するものである。ファイアウォールでは、発信元IPアドレス、宛先IPアドレス、発信元ポート番号、宛先ポート番号などのTCP/IPレベルの情報に関する条件をルールとして指定可能である。
【０００３】
ファイアウォールの一例として特許文献１に記載されている技術がある。ファイアウォールでは事前にルールを設定し、それに従って自身のファイアウォールを通過しようとするパケットの通過の可否を決定するが、ルールの数が増大するとパケット一つあたりのルールとの比較回数が増加し、パフォーマンスに影響を及ぼす恐れがある。特許文献１では、ルールを適切に並べ替えることでルールとの比較回数の増大を抑える技術について記載している。
【０００４】
また、近年ネットワークに蔓延している攻撃活動は、ボットなどのマルウェアに感染してしまった端末によるものが多い。ユーザ端末を保護するためには、マルウェアに感染して攻撃活動を行ってしまっている端末への対応も求められる。
【０００５】
マルウェアに感染したユーザ端末に対する対応の一例として、非特許文献１で述べられている、経済産業省と総務省の共同プロジェクトであるサイバークリーンセンターがある。サイバークリーンセンターでは、ボットに感染しているユーザ端末を特定し、当該ユーザにボットを駆除するために必要な情報を提供する活動を行っている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第３５６８８５０号
【非特許文献】
【０００７】
【非特許文献１】小林偉昭、寺田真敏、永安佑希允、中村章人、「情報セキュリティ研究開発の動向：３．マクロな分析技術の動向」、情報処理 ２００７年７月 Vol.４８ No.７、７０７頁−７１２頁、社団法人 情報処理学会
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ネットワークからの攻撃からユーザ端末を保護するためにファイアウォールが利用されている。ファイアウォールを用いた場合、TCP/IPの送信元IPアドレスや宛先ポート番号などの単位でブロックするので、ウイルスによる攻撃が行われるからという理由でサービスをブロックしてしまうと、ウイルスではない正当なアプリケーションによる通信もブロックしてしまい、ユーザの利便性を損なう結果になってしまう。このように、ファイアウォールを用いた場合、ウイルスやボット等のマルウェアによるアクセスと、それ以外の通常のアクセスとを区別することができない。
【０００９】
また、マルウェアによるアクセスも通常のアクセスも区別しないでブロックするため、マルウェアに感染している端末の特定ができず、感染端末への対応が取れないという問題がある。
【課題を解決するための手段】
【００１０】
上述の通り、端末に流入してくるパケットが、正当なプログラムから送出されたパケットであるか、それともウイルスなどのマルウェアによって送出されたパケットであるかの判別はできないため、開示するユーザ端末保護システムでは、どのようなプログラムによって送出されたパケットであるかという情報を、パケット内部に埋め込むこととしている。
【００１１】
ユーザ端末保護システムでは、端末からネットワークへと送出されるパケットに、そのパケットが端末内のどのプログラムによって送出されたかという情報を埋め込む。そして通信相手(受信端末)側でパケットに当該情報が埋め込まれているか検査し、埋め込まれている場合には当該情報及び受信端末側で当該パケットを受信しようとしてるプログラムの情報を事前に定めたポリシと照合し、当該パケットに対する処理を決定する。
【００１２】
ユーザ端末保護システムの具体的な態様は次の通りである。送信側端末及び受信側端末はネットワークへと接続する。送信側端末において、ネットワークへのパケットの送出を監視し、当該パケットを送出しようとしているプログラムを特定し、当該プログラムを一意に識別するプログラム識別子を取得し、当該パケットに当該プログラム識別子を埋め込み、当該パケットをネットワークへと送出する。また、受信側端末において、ネットワークからのパケットの受信を監視し、当該パケットにプログラム識別子（第１の識別子）が埋め込まれているか検査し、埋め込まれている場合には当該パケットを受信するプログラムのプログラム識別子（第２の識別子）を取得し、第１の識別子と第２の識別子及びパケットに含まれる送信元情報とが所定の条件を満たす場合に事前に定められた処理を当該パケットに対して行う。
【発明の効果】
【００１３】
本発明によれば、ネットワークを介して行われるマルウェアなどの攻撃活動からユーザ端末を保護することができる。
【図面の簡単な説明】
【００１４】
【図１】ユーザ端末保護システムの構成例を示す。
【図２】ユーザ端末保護システムを構成する各装置のハードウェア構成例を示す。
【図３】ユーザ端末保護システムを構成する各装置のソフトウェア構成例を示す。
【図４】識別子データベースの構成例を示す。
【図５】ポリシデータベースの構成例を示す。
【図６】識別子埋め込み部の処理フロー例を示す。
【図７】IPパケットへの識別子の埋め込みフォーマット例を示す。
【図８】識別子管理部の処理フロー例を示す。
【図９】識別子管理部の変形例の処理フロー例を示す。
【図１０】判定部の処理フロー例を示す。
【図１１】ポリシとのマッチングの処理フロー例を示す。
【図１２】ポリシ設定用GUIの例を示す。
【図１３】実施例２における送信側端末のソフトウェア構成例を示す。
【図１４】実施例２における状態情報の値の一例を示す。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態について、図面を用いて説明する。なお以降の説明は本発明の実施形態を示すものであり、本発明の構成や機能その他を制限するものではない。
【実施例１】
【００１６】
図１は、本実施例によるユーザ端末保護システム１００の構成例を示している。ユーザ端末保護システム１００は、送信側端末１０１、受信側端末１０２、ポリシサーバ１０３、管理者用端末１０４を備え、これらがネットワーク１０５で接続されている。ネットワーク１０５には図示されていない端末や通信装置なども接続されている。ネットワーク１０５は企業内ネットワークなどのLAN(Local Area Network)でもよいし、LANに留まらず、各装置がインターネットを介して接続されていてもよい。なお、送信側端末１０１、受信側端末１０２は、それらの動作を説明するために送信側、受信側を付した名称にしているが、いずれも後述する構成の端末装置である。
【００１７】
図２は、ユーザ端末保護システム１００を構成する装置である送信側端末１０１、受信側端末１０２、ポリシサーバ１０３、管理者用端末１０４のハードウェア構成例を示す。各装置を構成するハードウェアは、実質的に同様の装置構成を有し、各演算装置で実行されるソフトウェアによって各々の動作が定められる。
【００１８】
送信側端末１０１は情報処理装置であり、ユーザが所有するＰＣなどの端末である。送信側端末１０１は、演算装置２１１、メモリ２１２、ハードディスク等の記憶装置２１３、ネットワークカードなどの通信装置２１４、キーボードやマウス等の入力装置２１５、LCD(Liquid Crystal Display)等の表示装置２１６を備える。演算装置２１１は、記憶装置２１３に格納されたプログラムを実行し、各部の制御を行う。記憶装置２１３は、演算装置２１１が実行するプログラムおよび演算装置２１１が使用するデータ等を格納する。通信装置２１４は、ネットワーク１０５を介して他の装置からデータを受信して演算装置２１１へ送ると共に、演算装置２１１が生成したデータを、ネットワーク１０５を介して他の装置へ送信する。演算装置２１１は、入力装置２１５や表示装置２１６を制御し、入力装置２１５からデータを入力し、データを表示装置２１６へ出力する。記憶装置２１３にはプログラムが格納されており、プログラムは記憶装置２１３からメモリ２１２にロードされ、演算装置２１１によって実行される。送信側端末１０１は、これらのプログラムを記憶装置２１３からロードして実行するが、他の例として、CD、DVD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等の記録媒体からこのプログラムをロードしてもよい。また他の例として、他の装置から、通信媒体を介して、これらのプログラムをロードしてもよい。通信媒体とは、ネットワークまたはこれらを伝搬するディジタル信号または搬送波を指す。
【００１９】
本実施例においては、受信側端末１０２、ポリシサーバ１０３、管理者用端末１０４のハードウェア構成は送信側端末１０１と同様のものであるため省略する。
【００２０】
図３は、ユーザ端末保護システム１００を構成する送信側端末１０１、受信側端末１０２、ポリシサーバ１０３、管理者用端末１０４のソフトウェア構成例を示す。
【００２１】
送信側端末１０１は、ネットワーク１０５と情報を送受信するデータ送受信部３１２と、内部で動作するプログラム３１１と、プログラム３１１がデータ送受信部３１２を介してネットワーク１０５へパケットを送出しようとする時にこれを検知してプログラム３１１の識別子をパケットに埋め込む識別子埋め込み部３１３と、送信側端末１０１内にあるプログラムの識別子を格納する識別子データベース３１４と、識別子データベース３１４への情報の追加や更新、読み出しを行う識別子管理部３１５とを有する。
【００２２】
図４に、識別子データベース３１４の一例を示す。識別子データベース３１４は、プログラムの実行ファイルのパス４０１、ファイルサイズ４０２、最終更新日時４０３、識別子４０４で構成される。ファイルサイズ４０２及び最終更新日時４０３は、プログラムの実行ファイルのファイルサイズ及び最終更新日時である。識別子４０４は、プログラムを一意に示す値であり、一例としてはMD5やSHA1、SHA256などのハッシュ関数に実行ファイルを入力して得られるハッシュ値がある。識別子として用いる値は、同じプログラムに対して同じ値が与えられ、また同じ識別子を持つ異なるプログラムの存在確率が十分に低いものであればハッシュ値以外の値を用いてもよい。本実施例においては、識別子４０４として、実行ファイルのMD5によるハッシュ値を用いる。
【００２３】
図３に説明を戻す。受信側端末１０２は、ネットワーク１０５と情報を送受信するデータ送受信部３２１と、内部で動作するプログラム３２２と、プログラム３２２に対するパケットを受信したときにこれを検知して事前に定めたポリシと比較することで当該パケットの処理方法を決定する判定部３２３と、受信側端末１０２内にあるプログラム３２２の識別子を格納する識別子データベース３２４と、識別子データベース３２４への情報の追加や更新を行う識別子管理部３２５と、ポリシサーバ１０３からポリシ情報を取得するポリシ取得部３２６とを有する。識別子データベース３２４及び識別子管理部３２５は、送信側端末１０１内の識別子データベース３１４及び識別子管理部３１５と同様のものである。
【００２４】
ポリシサーバ１０３は、ネットワーク１０５と情報を送受信するデータ送受信部３３１と、ポリシを格納するポリシデータベース３３２と、ポリシを設定するためのポリシ設定インタフェース３３３と、ポリシを提供するためのポリシ提供インタフェース３３４とを有する。
【００２５】
図５に、ポリシデータベース３３２の一例を示す。ポリシデータベース３３２は、パケットに対する処理を決定するためのポリシを格納するデータベースであり、ポリシの優先順位５０１、送信元ホスト５０２、送信側識別子５０３、受信側識別子５０４、パケットの処理方法５０５、その後の対応５０６で構成される。
【００２６】
ポリシの優先順位５０１は、本実施例においてパケットとポリシとのマッチングを取る際の順番を表す数値であり、数値が小さいものほど優先順位が高い。送信元ホスト５０２、送信側識別子５０３、受信側識別子５０４はパケットの処理方法５０５で表される処理を行う対象のパケットを決定するための条件である。送信元ホスト５０２はパケットを送信してきたホスト(端末)を表す。送信側識別子５０３は送信側端末１０１においてパケットに埋め込まれた、当該パケットを送出したプログラムの識別子である。受信側識別子５０４は、受信側端末１０２において当該パケットを受信するプログラムの識別子である。
【００２７】
本実施例においては、送信元ホスト５０２、送信側識別子５０３、受信側識別子５０４は、特定のホストもしくは識別子（複数可）、全てにマッチする「any」、特定のホストもしくは識別子以外の全て、といった形で指定できる。また、送信側識別子５０３、受信側識別子５０４は識別子が埋め込まれていなかった、もしくは受信プログラムが不明であった場合を表す「なし」も指定できる。パケットの処理方法５０５は、パケットがポリシにマッチした場合の当該パケットに対する処理方法を表すものである。その後の対応５０６は、パケットを処理した後に特段の対応が求められる場合に実施すべき事項である。
【００２８】
図３に説明を戻す。管理者用端末１０４は、ネットワーク１０５と情報を送受信するデータ送受信部３４１と、内部で動作するポリシ設定用プログラム３４２と、受信側端末１０２からの通知を受信する通知受信部３４３とを有する。
【００２９】
ユーザ端末保護システム１００の動作を説明する。送信側端末１０１内のプログラム３１１は、データ送受信部３１２を介してネットワーク１０５へとパケットを送信しようとする。識別子埋め込み部３１３では、送信側端末１０１内の一つ以上のプログラム３１１によるネットワーク１０５へのパケットの送信を監視しており、パケットが送信される際に当該パケットがどのプログラムによって送信されようとしているかを特定し、当該プログラムを一意に示す識別子を取得し、当該パケットへと当該識別子を埋め込んだ上で、データ送受信部３１２を介してネットワーク１０５へとパケットを送信する。
【００３０】
図６に、識別子埋め込み部３１３の処理フローチャートの一例を示す。識別子埋め込み部３１３は起動されると、ネットワーク１０５へのパケットの送信を監視する（ステップ６０１）。あるプログラムによるパケットの送信を検知すると（ステップ６０２）、当該パケットの送信を一時停止し（ステップ６０３）、当該パケットが識別子埋め込み対象のパケットであるかどうかを確認する（ステップ６０４）。本実施例ではIPパケットもしくはTCPパケットを識別子埋め込み対象のパケットとする。当該パケットが識別子埋め込み対象のパケットでない場合には、当該パケットを送信し（ステップ６０７）、その後ステップ６０１へと戻り、パケット送信の監視を継続する。
【００３１】
当該パケットが識別子埋め込み対象のパケットである場合には、当該パケットを送信しようとしているプログラムの識別子を識別子管理部３１５を介して識別子データベース３１４から取得し（ステップ６０５）、当該パケットに取得した識別子を埋め込み（ステップ６０６）、当該パケットを送信する（ステップ６０７）。その後ステップ６０１へと戻り、パケット送信の監視を継続する。
【００３２】
パケットへの情報の埋め込み方法の一例として、特開２００９−１６９８９５に記載されたIPヘッダのオプションフィールドを用いた方法がある。当該特許文献では、IPパケットのオプションフィールドに任意の情報を埋め込みネットワークへと送出し、周囲のネットワーク機器などで情報が埋め込まれたパケットの検知及び削除を行う仕組みについて記載されている。
【００３３】
本実施例においては、パケットへの識別子の埋め込み方法として、IPヘッダもしくはTCPヘッダのオプションフィールドを用いる。そのため、埋め込み対象のパケットはIPパケットもしくはTCPパケットとなる。
【００３４】
図７に、IPパケットへの識別子の埋め込みフォーマットの一例を示す。IPパケット７０１は、通常、IPヘッダ７０２とデータ７０３から構成される。本実施例においては、IPヘッダの後ろにIPヘッダオプションフィールド７０４を埋め込む。IPヘッダオプションフィールド７０４はオプションクラス７０５、オプション長７０６、識別子７０７から構成される。この構造はIPの仕様を記載したRFC791内のオプションフィールドのフォーマットに従っている。本実施例においては、オプションタイプ７０５を１５８とし、オプション長７０６を１８としている。
【００３５】
本実施例においては、識別子の埋め込み方法としてIPヘッダのオプションフィールドを用いているが、パケット内に識別子を埋め込める方式であれば、別の方式を利用してもよい。
【００３６】
図８に、識別子管理部３１５の処理フローチャートの一例を示す。識別子管理部３１５は識別子埋め込み部３１３から、パケットを送信しようとしているプログラムの情報を受け取り起動すると、当該プログラムの実行ファイルに関する情報（ファイルのパス、ファイルサイズ、最終更新日時）を取得し（ステップ８０１）、ファイルのパスをキーとして識別子データベース３１４を確認し（ステップ８０２）、該当するエントリがあるかどうか判定する（ステップ８０３）。
【００３７】
ステップ８０３にて、識別子データベース３１４に該当するエントリがある場合には当該エントリの情報を取得する（ステップ８０４）。ステップ８０１にて取得したファイルサイズ、最終更新時刻の情報とステップ８０４で取得したエントリに記されたファイルサイズ、最終更新時刻の情報とを比較し（ステップ８０５）、ファイルサイズ、最終更新時刻共に一致している場合には当該エントリ内の識別子を識別子埋め込み部３１３へと返し（ステップ８０６）、終了する。
【００３８】
ステップ８０５にて、ファイルサイズと最終更新時刻の少なくとも一方が異なっていた場合には、識別子データベース３１４内の情報は古いものとして、当該実行ファイルの識別子を計算する（ステップ８０７）。その後ステップ８０７で得られた識別子と、ステップ８０１にて取得したファイルサイズ、最終更新日時を用いて識別子データベース３１４を更新し（ステップ８０８）、得られた識別子を識別子埋め込み部３１３へと返し（ステップ８０９）、終了する。
【００３９】
ステップ８０３にて識別子データベース３１４内に該当するエントリがない場合には、当該実行ファイルの識別子を計算し（ステップ８０７）、得られた識別子と、ステップ８０１にて取得したファイルサイズ、最終更新日時を用いて識別子データベース３１４を更新し（ステップ８０８）、得られた識別子を識別子埋め込み部３１３へと返し（ステップ８０９）、終了する。
【００４０】
上記の例においては、識別子管理部３１５は識別子埋め込み部３１３からのリクエストによって起動し、必要であれば識別子の計算を行い、識別子埋め込み部３１３へとプログラムの識別子を返す。識別子管理部３１５の実現方法として、上記のようなリクエストを受けた時に識別子の計算を行うのではなく、事前に計算しておく方法を取ってもよい。その場合の例として、送信側端末１０１内でのプログラムの起動時にこれを検知し、必要であれば識別子を計算して識別子データベース３１４を更新しておく方法がある。この場合の識別子管理部３１５の処理フローチャートの一例を図９に示す。
【００４１】
図９において、識別子管理部３１５は送信側端末１０１内のプログラムの実行を監視し（ステップ９０１）、プログラムの実行を検知すると（ステップ９０２）、当該プログラムに関する情報（実行ファイルのパス、ファイルサイズ、最終更新日時）を取得し（ステップ９０３）、実行ファイルのパスをキーとして識別子データベース３１４を確認し（ステップ９０４）、該当するエントリがあるかどうか判定する（ステップ９０５）。
【００４２】
ステップ９０５にて、識別子データベース３１４に該当するエントリがある場合には当該エントリの情報を取得する（ステップ９０６）。ステップ９０３にて取得したファイルサイズ、最終更新時刻の情報とステップ９０６で取得したエントリに記されたファイルサイズ、最終更新時刻の情報とを比較し（ステップ９０７）、ファイルサイズ、最終更新時刻共に一致している場合には識別子データベース３１４を更新する必要はないとして、ステップ９０１に戻り、プログラムの実行の監視を継続する。
【００４３】
ステップ９０７にて、ファイルサイズと最終更新時刻の少なくとも片方が異なっていた場合には、識別子データベース３１４内の情報は古いものとして、当該実行ファイルの識別子を計算する（ステップ９０８）。その後ステップ９０８で得られた識別子と、ステップ９０３にて取得したファイルサイズ、最終更新日時を用いて識別子データベース３１４を更新し（ステップ９０９）、ステップ９０１に戻り、プログラムの実行の監視を継続する。
【００４４】
ステップ９０５にて識別子データベース３１４内に該当するエントリがない場合には、当該実行ファイルの識別子を計算し（ステップ９０８）、得られた識別子と、ステップ９０３にて取得したファイルサイズ、最終更新日時を用いて識別子データベース３１４を更新し（ステップ９０９）、ステップ９０１に戻り、プログラムの実行の監視を継続する。
【００４５】
識別子管理部３１５が図９に示すような処理により識別子データベースの更新を行っている場合には、識別子管理部３１５は、識別子埋め込み部３１３からのリクエストを受けると、識別子データベース３１４を参照し、プログラムに該当するエントリに記載された識別子を識別子埋め込み部３１３に返す。
【００４６】
次に、受信側端末１０２の動作について説明する。
【００４７】
受信側端末１０２へとパケットが送信される。判定部３２３では、受信側端末１０２のパケットの受信を監視しており、パケットが受信される際に、当該パケットがどのプログラムに受信されようとしているかを特定し、当該プログラムを一意に示す識別子を受信側識別子として取得する。また、当該パケットに送信側端末１０１によりプログラムの識別子が埋め込まれているかどうか確認し、埋め込まれている場合にはその識別子を送信側識別子として取得する。送信側識別子、受信側識別子、及びパケットの送信元ホストの情報と事前に定めたポリシとを比較し、ポリシに記載された条件が満たされるかどうかを確認し、満たされている場合には当該ポリシに記載された方法に従ってパケットを処理し、その後の対応を行う。
【００４８】
図１０に、判定部３２３の処理フローチャートの一例を示す。判定部３２３は起動されると、ネットワーク１０５からのパケットの受信を監視する（ステップ１００１）。パケットの受信を検知すると（ステップ１００２）、当該パケットの受信を一時停止し（ステップ１００３）、当該パケットが識別子埋め込み対象のパケットであるかどうかを確認する（ステップ１００４）。図６のステップ６０４と同様に、本実施例ではIPパケットもしくはTCPパケットを識別子埋め込み対象のパケットとする。識別子埋め込み対象のパケットでない場合には当該パケットを通過させ（ステップ１００５）、ステップ１００１に戻り、パケットの受信の監視を継続する。
【００４９】
当該パケットが識別子埋め込み対象のパケットである場合には、当該パケットに識別子が埋め込まれているかどうかを確認し（ステップ１００６）、埋め込まれている場合には埋め込まれている識別子を送信側識別子とする（ステップ１００７）。当該パケットに識別子が埋め込まれていなかった場合には送信側識別子を「なし」とする（ステップ１００８）。
【００５０】
次に、当該パケットを受信するプログラムを確認し（ステップ１００９）、受信プログラムが特定されたかどうかを判定する（ステップ１０１０）。確認の結果受信プログラムが何であるか判明した場合には、識別子管理部３１５へとリクエストを送り当該プログラムの識別子を取得し、受信側識別子とする（ステップ１０１１）、受信プログラムが判明しなかった場合には受信側識別子を「なし」とする（ステップ１０１２）。
【００５１】
次に、当該パケットから送信元ホスト情報を取得し（ステップ１０１３）、送信元ホスト、送信側識別子及び受信側識別子と事前に定めたポリシから当該パケットに対する処理方法及びその後の対応を決定する（ステップ１０１４）。送信元ホスト情報とは、端末を表す情報であり、ＩＰアドレス、ＭＡＣアドレス、端末のコンピュータ名などである。ステップ１０１４の詳細については後述する。
【００５２】
その後、ステップ１０１４で得られた当該パケットに対する処理を実施し（ステップ１０１５）、ポリシで定められたその後の対応を実施する（ステップ１０１６）。その後にステップ１００１に戻り、パケットの受信の監視を継続する。
【００５３】
その後の対応として管理者への通知が設定されている場合、判定部３２３はネットワーク１０５を介して管理者用端末１０４へ通知を行う。通知の際には、送信元ホスト、送信側識別子、受信側識別子を含め、どの端末がどのような活動をしていたかが管理者によって把握できるような情報を提供する。
【００５４】
図１１に、ステップ１０１４でのポリシに基づく受信パケットの処理方法決定に関しての処理フローチャートの一例を示す。まず、与えられた送信元ホスト、送信側識別子、受信側識別子を取得する（ステップ１１０１）。ポリシサーバ１０３のポリシ提供インタフェース３３４を介してポリシデータベース３３２にアクセスし（ステップ１１０２）、ポリシデータベース３３２にポリシが存在するかを確認する（ステップ１１０３）。ポリシが存在しない場合には受信パケットの処理方法及びその後の対応を事前に定めたデフォルトのものに設定し（ステップ１１０９）、受信パケットの処理方法及びその後の対応を返し（ステップ１１１１）、終了する。
【００５５】
ステップ１１０３にてポリシが存在した場合には、ポリシを取得し、取得したポリシを優先順位順に並べ替え（ステップ１１０４）、最も優先度の高いポリシを取り出す（ステップ１１０５）。ステップ１１０１にて取得した送信元ホスト、送信側識別子、受信側識別子が当該ポリシにおける送信元ホスト、送信側識別子、受信側識別子の条件を全て満たすかどうかを判定する（ステップ１１０６）。全て満たしている場合、受信パケットに対する処理及びその後の対応を、当該ポリシに記載されたものに設定して（ステップ１１１０）、受信パケットの処理方法及びその後の対応を返し（ステップ１１１１）、終了する。
【００５６】
ステップ１１０６にてポリシの条件が満たされていない場合、未処理のポリシが残っているかどうか判定し（ステップ１１０７）、残っている場合には次に優先度の高いポリシを取りだし、ステップ１１０１へと戻り判定を継続する。全てのポリシを処理し、未処理のポリシが残っていない場合には、受信パケットの処理方法及びその後の対応を事前に定めたデフォルトのものに設定し（ステップ１１０９）、受信パケットの処理方法及びその後の対応を返し（ステップ１１１１）、終了する。
【００５７】
次に、ポリシサーバ１０３の動作について説明する。ポリシサーバ１０３はポリシを格納するポリシデータベース３３２を有するが、ポリシサーバ１０３自体はポリシの追加などの処理は行わず、受信側端末１０２がポリシ情報を取得するためのポリシ提供インタフェース３３４、管理者用端末１０４から管理者がポリシの管理を行うためのポリシ設定インタフェース３３３を具備する。
【００５８】
管理者用端末１０４の動作について説明する。管理者用端末１０４では、ポリシ設定用プログラム３４２が動作し、ポリシサーバ１０３のポリシ設定インタフェース３３３を介してポリシの設定を行う。
【００５９】
図１２に、管理者がポリシの設定を行う際のGUIの一例を示す。当該GUI１２００では、登録されているポリシの一覧が表示され、ポリシの追加、削除、更新が行えるようになっている。優先順位入力欄１２０１、送信元ホスト入力欄１２０２、送信側識別子入力欄１２０３、受信側識別子入力欄１２０４は管理者による入力が可能となっている。送信元ホスト、送信側識別子、受信側識別子の各入力欄の右にはプルダウンボックス１２０７があり、ここで特定のホストまたは識別子にマッチさせるか、それとも特定のホストまたは識別子以外にマッチさせるかの選択ができる。パケットの処理方法１２０５はプルダウンボックス１２０８を選択することにより、パケットの通過か破棄かを選択できるようになっている。また、その後の対応１２０６も同様にプルダウンボックスで選択が可能である。任意のエントリを編集した後、更新ボタン１２０９を押すと、現在入力されている内容でポリシが上書きされる。また、削除ボタン１２１０を押すと、その行に表示されているポリシを削除することができる。また、一番下の行の各入力欄に値を入力して追加ボタン１２１１を押すとポリシを追加することができる。
【００６０】
また、管理者用端末１０４では、通知受信部３４３が動作し、受信側端末１０２の判定部３２３から送られてくる通知を、データ送受信部３４１を介して受信する。
【００６１】
本実施例においては、受信側端末１０２、ポリシサーバ１０３、管理者用端末１０４は全て異なる端末であるように記載しているが、これらのうちのいずれか2つ、もしくは全てが同一の端末であってもよい。その場合には、本実施例に置いてネットワーク１０５を介して行われている情報の伝達は、端末内のメモリやファイルなどを介して行われるようになっていてもよい。
【００６２】
また、本実施例においては送信側端末１０１と受信側端末１０２という2種類のユーザ端末が存在しているが、一台の端末に送信側端末１０１の機能及び受信側端末１０２の機能の両方が具備されているような実装であってもよい。そのような実装にすることで、一台の端末を受信側端末として保護すると同時に送信側端末として保護することが可能となる。
【００６３】
本実施例によれば、送信側端末でパケットにプログラムの情報を埋め込み、受信側端末で送信元ホスト、送信側端末のプログラム、受信側端末のプログラムに応じたパケットの処理を行うことにより、互いに通信が可能なプログラムの組合わせを制限することができ、予期しないプログラムから受信側端末を保護することが可能になる。また、予期しないプログラムからの通信を破棄すると同時に管理者への連絡を行う枠組みを作成することにより、ウイルスなどに感染して不正な通信を行ってしまっている送信側端末への対策を進めることが可能になる。
【実施例２】
【００６４】
近年、ファイル共有ソフトを介した情報漏えいが問題となっている。ファイル共有ソフトを介した情報漏えいの場合、情報漏えいを起こす通信を行うのはウイルスなどのマルウェアではなく、ファイル共有ソフトである。このように、マルウェアなどによる通信でないにも関わらず、ユーザ端末が被害を受ける場合があり、このような場合にもユーザ端末を保護することが求められる。
【００６５】
本実施例においては、実施例１の変形例として、送信側端末１０１の識別子埋め込み部３１３にて、パケットを送信しようとしているプログラムの識別子だけでなく、送信側端末１０１の内部の状態を表す情報も埋め込む場合の例を示す。
【００６６】
本実施例における送信側端末１０１のソフトウェア構成を図１３に示す。本実施例と実施例１との相違点は、内部状態取得部１３０１であり、識別子埋め込み部３１３において、識別子管理部３１５からプログラム３１１の識別子を取得するのと同様、内部状態取得部１３０１から送信側端末１０１の内部状態を取得し、パケットへと埋め込む。
【００６７】
内部状態取得部１３０１での内部状態の取得方法について本実施例では規定しない。内部情報取得方法の一例としては、アンチウイルスソフトによる端末内のマルウェアの検知、「P2Pファイル交換ソフトウエア環境におけるノード型情報流出防止機能の提案」、松岡正明、松木隆宏、寺田真敏、鬼頭哲郎、仲小路博史、情報処理学会 コンピュータセキュリティ研究会 研究報告 Vol.2008 No.71 pp.115-122、2008.に記載される、端末内のファイルアクセスの監視による情報漏えいの可能性の検知、または「端末内の動作監視に基づく情報漏えいウイルスの検知手法に関する検討」、鬼頭哲郎、松木隆宏、松岡正明、仲小路博史、寺田真敏、情報処理学会 コンピュータセキュリティ研究会 研究報告 Vol.2008 No.71 pp.317-322、2008.に記載される、任意のプロセスによるOSの機能呼び出しの監視による、情報漏えいウイルスへの感染の検知がある。これらの方法により端末内にマルウェアが存在する、端末から情報が漏えいしそうになっている、情報漏洩ウイルスへと感染している、といった内部情報を取得できる。
【００６８】
図１４に、送信側端末１０１の内部状態に対応する状態情報の値の一例を示す。内部状態１４０１により状態情報の値１４０２は変化する。本実施例においては状態情報の値は単純な数値としているが、内部状態をカテゴリ分けし、階層的な状態情報の値の付け方をするなど、他の表現を用いてもよい。
【００６９】
本実施例においては、実施例１との相違点として、ポリシデータベース３３２へのフィールドの追加がある。送信側端末１０１で識別子に加え、状態情報をパケットに埋め込むようにしているため、ポリシデータベース３３２のフィールドにも状態情報を加え、状態情報の値に応じたパケットの処理を行えるようになっている。
【００７０】
ポリシデータベース３３２へのフィールドの追加に伴い、判定部３２３及びポリシとのマッチングフローにおいて実施例１との相違が発生するが、ここで発生する相違は状態情報の値の抽出やマッチング処理である。これらの処理は識別子に対する処理と同様の方式で行われるため、省略する。
【００７１】
本実施例によれば、例えば通常状態では受信側端末においてファイル共有ソフトの通信を通過させるが、送信側端末でアンチウイルスソフトによりウイルスが発見されたなどの事態が発生した場合には、情報漏えいの危険性があるため、受信側端末においてファイル共有ソフトの通信を破棄する、といった端末の内部状態に応じた柔軟な対応が可能になり、利便性の確保とユーザ端末の保護を両立させることが可能となる。
【符号の説明】
【００７２】
１００：ユーザ端末保護システム、１０１：送信側端末、１０２：受信側端末、１０３：ポリシサーバ、１０４：管理者用端末、１０５：ネットワーク、３１３：識別子埋め込み部、３１４：識別子データベース、３１５：識別子管理部、３２３：判定部、３２６：ポリシ取得部、３３２：ポリシデータベース、３３３：ポリシ設定インタフェース、３３４：ポリシ提供インタフェース、３４２：ポリシ設定用プログラム。
【図１】
2011186728.tif 000003
【図２】
2011186728.tif 000004
【図３】
2011186728.tif 000005
【図４】
2011186728.tif 000006
【図５】
2011186728.tif 000007
【図６】
2011186728.tif 000008
【図７】
2011186728.tif 000009
【図８】
2011186728.tif 000010
【図９】
2011186728.tif 000011
【図１０】
2011186728.tif 000012
【図１１】
2011186728.tif 000013
【図１２】
2011186728.tif 000014
【図１３】
2011186728.tif 000015
【図１４】
2011186728.tif 000016