ユーザ端末保護方法、およびシステム
【課題】マルウェアなどによる通信を排除するとともに、マルウェアに感染している端末を特定して対処する。
【解決手段】ユーザ端末保護システムは、ユーザ端末から送出するパケットに、送信を行った送信プログラムの識別子を埋め込み、受信側端末でパケットに埋め込まれた送信プログラムの識別子を抽出し、抽出した送信プログラムの識別子とパケットの受信プログラムの識別子との組み合わせに基づいて、事前に定めたポリシーを参照して、受信パケットの通過、破棄などのパケットの処理方法を決定する。
【解決手段】ユーザ端末保護システムは、ユーザ端末から送出するパケットに、送信を行った送信プログラムの識別子を埋め込み、受信側端末でパケットに埋め込まれた送信プログラムの識別子を抽出し、抽出した送信プログラムの識別子とパケットの受信プログラムの識別子との組み合わせに基づいて、事前に定めたポリシーを参照して、受信パケットの通過、破棄などのパケットの処理方法を決定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザの端末を安全に保つための方法、システムに関する。
【背景技術】
【0002】
昨今、ユーザ端末の周囲にはネットワークを介した攻撃やコンピュータウイルスなど、脅威が蔓延している。これらの脅威からユーザ端末を保護するための技術として、ファイアウォールがある。ファイアウォールは、予め定めたルールに従い、受信したパケットを通過または破棄するものである。ファイアウォールでは、発信元IPアドレス、宛先IPアドレス、発信元ポート番号、宛先ポート番号などのTCP/IPレベルの情報に関する条件をルールとして指定可能である。
【0003】
ファイアウォールの一例として特許文献1に記載されている技術がある。ファイアウォールでは事前にルールを設定し、それに従って自身のファイアウォールを通過しようとするパケットの通過の可否を決定するが、ルールの数が増大するとパケット一つあたりのルールとの比較回数が増加し、パフォーマンスに影響を及ぼす恐れがある。特許文献1では、ルールを適切に並べ替えることでルールとの比較回数の増大を抑える技術について記載している。
【0004】
また、近年ネットワークに蔓延している攻撃活動は、ボットなどのマルウェアに感染してしまった端末によるものが多い。ユーザ端末を保護するためには、マルウェアに感染して攻撃活動を行ってしまっている端末への対応も求められる。
【0005】
マルウェアに感染したユーザ端末に対する対応の一例として、非特許文献1で述べられている、経済産業省と総務省の共同プロジェクトであるサイバークリーンセンターがある。サイバークリーンセンターでは、ボットに感染しているユーザ端末を特定し、当該ユーザにボットを駆除するために必要な情報を提供する活動を行っている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特許第3568850号
【非特許文献】
【0007】
【非特許文献1】小林偉昭、寺田真敏、永安佑希允、中村章人、「情報セキュリティ研究開発の動向:3.マクロな分析技術の動向」、情報処理 2007年7月 Vol.48 No.7、707頁−712頁、社団法人 情報処理学会
【発明の概要】
【発明が解決しようとする課題】
【0008】
ネットワークからの攻撃からユーザ端末を保護するためにファイアウォールが利用されている。ファイアウォールを用いた場合、TCP/IPの送信元IPアドレスや宛先ポート番号などの単位でブロックするので、ウイルスによる攻撃が行われるからという理由でサービスをブロックしてしまうと、ウイルスではない正当なアプリケーションによる通信もブロックしてしまい、ユーザの利便性を損なう結果になってしまう。このように、ファイアウォールを用いた場合、ウイルスやボット等のマルウェアによるアクセスと、それ以外の通常のアクセスとを区別することができない。
【0009】
また、マルウェアによるアクセスも通常のアクセスも区別しないでブロックするため、マルウェアに感染している端末の特定ができず、感染端末への対応が取れないという問題がある。
【課題を解決するための手段】
【0010】
上述の通り、端末に流入してくるパケットが、正当なプログラムから送出されたパケットであるか、それともウイルスなどのマルウェアによって送出されたパケットであるかの判別はできないため、開示するユーザ端末保護システムでは、どのようなプログラムによって送出されたパケットであるかという情報を、パケット内部に埋め込むこととしている。
【0011】
ユーザ端末保護システムでは、端末からネットワークへと送出されるパケットに、そのパケットが端末内のどのプログラムによって送出されたかという情報を埋め込む。そして通信相手(受信端末)側でパケットに当該情報が埋め込まれているか検査し、埋め込まれている場合には当該情報及び受信端末側で当該パケットを受信しようとしてるプログラムの情報を事前に定めたポリシと照合し、当該パケットに対する処理を決定する。
【0012】
ユーザ端末保護システムの具体的な態様は次の通りである。送信側端末及び受信側端末はネットワークへと接続する。送信側端末において、ネットワークへのパケットの送出を監視し、当該パケットを送出しようとしているプログラムを特定し、当該プログラムを一意に識別するプログラム識別子を取得し、当該パケットに当該プログラム識別子を埋め込み、当該パケットをネットワークへと送出する。また、受信側端末において、ネットワークからのパケットの受信を監視し、当該パケットにプログラム識別子(第1の識別子)が埋め込まれているか検査し、埋め込まれている場合には当該パケットを受信するプログラムのプログラム識別子(第2の識別子)を取得し、第1の識別子と第2の識別子及びパケットに含まれる送信元情報とが所定の条件を満たす場合に事前に定められた処理を当該パケットに対して行う。
【発明の効果】
【0013】
本発明によれば、ネットワークを介して行われるマルウェアなどの攻撃活動からユーザ端末を保護することができる。
【図面の簡単な説明】
【0014】
【図1】ユーザ端末保護システムの構成例を示す。
【図2】ユーザ端末保護システムを構成する各装置のハードウェア構成例を示す。
【図3】ユーザ端末保護システムを構成する各装置のソフトウェア構成例を示す。
【図4】識別子データベースの構成例を示す。
【図5】ポリシデータベースの構成例を示す。
【図6】識別子埋め込み部の処理フロー例を示す。
【図7】IPパケットへの識別子の埋め込みフォーマット例を示す。
【図8】識別子管理部の処理フロー例を示す。
【図9】識別子管理部の変形例の処理フロー例を示す。
【図10】判定部の処理フロー例を示す。
【図11】ポリシとのマッチングの処理フロー例を示す。
【図12】ポリシ設定用GUIの例を示す。
【図13】実施例2における送信側端末のソフトウェア構成例を示す。
【図14】実施例2における状態情報の値の一例を示す。
【発明を実施するための形態】
【0015】
以下、本発明の実施の形態について、図面を用いて説明する。なお以降の説明は本発明の実施形態を示すものであり、本発明の構成や機能その他を制限するものではない。
【実施例1】
【0016】
図1は、本実施例によるユーザ端末保護システム100の構成例を示している。ユーザ端末保護システム100は、送信側端末101、受信側端末102、ポリシサーバ103、管理者用端末104を備え、これらがネットワーク105で接続されている。ネットワーク105には図示されていない端末や通信装置なども接続されている。ネットワーク105は企業内ネットワークなどのLAN(Local Area Network)でもよいし、LANに留まらず、各装置がインターネットを介して接続されていてもよい。なお、送信側端末101、受信側端末102は、それらの動作を説明するために送信側、受信側を付した名称にしているが、いずれも後述する構成の端末装置である。
【0017】
図2は、ユーザ端末保護システム100を構成する装置である送信側端末101、受信側端末102、ポリシサーバ103、管理者用端末104のハードウェア構成例を示す。各装置を構成するハードウェアは、実質的に同様の装置構成を有し、各演算装置で実行されるソフトウェアによって各々の動作が定められる。
【0018】
送信側端末101は情報処理装置であり、ユーザが所有するPCなどの端末である。送信側端末101は、演算装置211、メモリ212、ハードディスク等の記憶装置213、ネットワークカードなどの通信装置214、キーボードやマウス等の入力装置215、LCD(Liquid Crystal Display)等の表示装置216を備える。演算装置211は、記憶装置213に格納されたプログラムを実行し、各部の制御を行う。記憶装置213は、演算装置211が実行するプログラムおよび演算装置211が使用するデータ等を格納する。通信装置214は、ネットワーク105を介して他の装置からデータを受信して演算装置211へ送ると共に、演算装置211が生成したデータを、ネットワーク105を介して他の装置へ送信する。演算装置211は、入力装置215や表示装置216を制御し、入力装置215からデータを入力し、データを表示装置216へ出力する。記憶装置213にはプログラムが格納されており、プログラムは記憶装置213からメモリ212にロードされ、演算装置211によって実行される。送信側端末101は、これらのプログラムを記憶装置213からロードして実行するが、他の例として、CD、DVD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等の記録媒体からこのプログラムをロードしてもよい。また他の例として、他の装置から、通信媒体を介して、これらのプログラムをロードしてもよい。通信媒体とは、ネットワークまたはこれらを伝搬するディジタル信号または搬送波を指す。
【0019】
本実施例においては、受信側端末102、ポリシサーバ103、管理者用端末104のハードウェア構成は送信側端末101と同様のものであるため省略する。
【0020】
図3は、ユーザ端末保護システム100を構成する送信側端末101、受信側端末102、ポリシサーバ103、管理者用端末104のソフトウェア構成例を示す。
【0021】
送信側端末101は、ネットワーク105と情報を送受信するデータ送受信部312と、内部で動作するプログラム311と、プログラム311がデータ送受信部312を介してネットワーク105へパケットを送出しようとする時にこれを検知してプログラム311の識別子をパケットに埋め込む識別子埋め込み部313と、送信側端末101内にあるプログラムの識別子を格納する識別子データベース314と、識別子データベース314への情報の追加や更新、読み出しを行う識別子管理部315とを有する。
【0022】
図4に、識別子データベース314の一例を示す。識別子データベース314は、プログラムの実行ファイルのパス401、ファイルサイズ402、最終更新日時403、識別子404で構成される。ファイルサイズ402及び最終更新日時403は、プログラムの実行ファイルのファイルサイズ及び最終更新日時である。識別子404は、プログラムを一意に示す値であり、一例としてはMD5やSHA1、SHA256などのハッシュ関数に実行ファイルを入力して得られるハッシュ値がある。識別子として用いる値は、同じプログラムに対して同じ値が与えられ、また同じ識別子を持つ異なるプログラムの存在確率が十分に低いものであればハッシュ値以外の値を用いてもよい。本実施例においては、識別子404として、実行ファイルのMD5によるハッシュ値を用いる。
【0023】
図3に説明を戻す。受信側端末102は、ネットワーク105と情報を送受信するデータ送受信部321と、内部で動作するプログラム322と、プログラム322に対するパケットを受信したときにこれを検知して事前に定めたポリシと比較することで当該パケットの処理方法を決定する判定部323と、受信側端末102内にあるプログラム322の識別子を格納する識別子データベース324と、識別子データベース324への情報の追加や更新を行う識別子管理部325と、ポリシサーバ103からポリシ情報を取得するポリシ取得部326とを有する。識別子データベース324及び識別子管理部325は、送信側端末101内の識別子データベース314及び識別子管理部315と同様のものである。
【0024】
ポリシサーバ103は、ネットワーク105と情報を送受信するデータ送受信部331と、ポリシを格納するポリシデータベース332と、ポリシを設定するためのポリシ設定インタフェース333と、ポリシを提供するためのポリシ提供インタフェース334とを有する。
【0025】
図5に、ポリシデータベース332の一例を示す。ポリシデータベース332は、パケットに対する処理を決定するためのポリシを格納するデータベースであり、ポリシの優先順位501、送信元ホスト502、送信側識別子503、受信側識別子504、パケットの処理方法505、その後の対応506で構成される。
【0026】
ポリシの優先順位501は、本実施例においてパケットとポリシとのマッチングを取る際の順番を表す数値であり、数値が小さいものほど優先順位が高い。送信元ホスト502、送信側識別子503、受信側識別子504はパケットの処理方法505で表される処理を行う対象のパケットを決定するための条件である。送信元ホスト502はパケットを送信してきたホスト(端末)を表す。送信側識別子503は送信側端末101においてパケットに埋め込まれた、当該パケットを送出したプログラムの識別子である。受信側識別子504は、受信側端末102において当該パケットを受信するプログラムの識別子である。
【0027】
本実施例においては、送信元ホスト502、送信側識別子503、受信側識別子504は、特定のホストもしくは識別子(複数可)、全てにマッチする「any」、特定のホストもしくは識別子以外の全て、といった形で指定できる。また、送信側識別子503、受信側識別子504は識別子が埋め込まれていなかった、もしくは受信プログラムが不明であった場合を表す「なし」も指定できる。パケットの処理方法505は、パケットがポリシにマッチした場合の当該パケットに対する処理方法を表すものである。その後の対応506は、パケットを処理した後に特段の対応が求められる場合に実施すべき事項である。
【0028】
図3に説明を戻す。管理者用端末104は、ネットワーク105と情報を送受信するデータ送受信部341と、内部で動作するポリシ設定用プログラム342と、受信側端末102からの通知を受信する通知受信部343とを有する。
【0029】
ユーザ端末保護システム100の動作を説明する。送信側端末101内のプログラム311は、データ送受信部312を介してネットワーク105へとパケットを送信しようとする。識別子埋め込み部313では、送信側端末101内の一つ以上のプログラム311によるネットワーク105へのパケットの送信を監視しており、パケットが送信される際に当該パケットがどのプログラムによって送信されようとしているかを特定し、当該プログラムを一意に示す識別子を取得し、当該パケットへと当該識別子を埋め込んだ上で、データ送受信部312を介してネットワーク105へとパケットを送信する。
【0030】
図6に、識別子埋め込み部313の処理フローチャートの一例を示す。識別子埋め込み部313は起動されると、ネットワーク105へのパケットの送信を監視する(ステップ601)。あるプログラムによるパケットの送信を検知すると(ステップ602)、当該パケットの送信を一時停止し(ステップ603)、当該パケットが識別子埋め込み対象のパケットであるかどうかを確認する(ステップ604)。本実施例ではIPパケットもしくはTCPパケットを識別子埋め込み対象のパケットとする。当該パケットが識別子埋め込み対象のパケットでない場合には、当該パケットを送信し(ステップ607)、その後ステップ601へと戻り、パケット送信の監視を継続する。
【0031】
当該パケットが識別子埋め込み対象のパケットである場合には、当該パケットを送信しようとしているプログラムの識別子を識別子管理部315を介して識別子データベース314から取得し(ステップ605)、当該パケットに取得した識別子を埋め込み(ステップ606)、当該パケットを送信する(ステップ607)。その後ステップ601へと戻り、パケット送信の監視を継続する。
【0032】
パケットへの情報の埋め込み方法の一例として、特開2009−169895に記載されたIPヘッダのオプションフィールドを用いた方法がある。当該特許文献では、IPパケットのオプションフィールドに任意の情報を埋め込みネットワークへと送出し、周囲のネットワーク機器などで情報が埋め込まれたパケットの検知及び削除を行う仕組みについて記載されている。
【0033】
本実施例においては、パケットへの識別子の埋め込み方法として、IPヘッダもしくはTCPヘッダのオプションフィールドを用いる。そのため、埋め込み対象のパケットはIPパケットもしくはTCPパケットとなる。
【0034】
図7に、IPパケットへの識別子の埋め込みフォーマットの一例を示す。IPパケット701は、通常、IPヘッダ702とデータ703から構成される。本実施例においては、IPヘッダの後ろにIPヘッダオプションフィールド704を埋め込む。IPヘッダオプションフィールド704はオプションクラス705、オプション長706、識別子707から構成される。この構造はIPの仕様を記載したRFC791内のオプションフィールドのフォーマットに従っている。本実施例においては、オプションタイプ705を158とし、オプション長706を18としている。
【0035】
本実施例においては、識別子の埋め込み方法としてIPヘッダのオプションフィールドを用いているが、パケット内に識別子を埋め込める方式であれば、別の方式を利用してもよい。
【0036】
図8に、識別子管理部315の処理フローチャートの一例を示す。識別子管理部315は識別子埋め込み部313から、パケットを送信しようとしているプログラムの情報を受け取り起動すると、当該プログラムの実行ファイルに関する情報(ファイルのパス、ファイルサイズ、最終更新日時)を取得し(ステップ801)、ファイルのパスをキーとして識別子データベース314を確認し(ステップ802)、該当するエントリがあるかどうか判定する(ステップ803)。
【0037】
ステップ803にて、識別子データベース314に該当するエントリがある場合には当該エントリの情報を取得する(ステップ804)。ステップ801にて取得したファイルサイズ、最終更新時刻の情報とステップ804で取得したエントリに記されたファイルサイズ、最終更新時刻の情報とを比較し(ステップ805)、ファイルサイズ、最終更新時刻共に一致している場合には当該エントリ内の識別子を識別子埋め込み部313へと返し(ステップ806)、終了する。
【0038】
ステップ805にて、ファイルサイズと最終更新時刻の少なくとも一方が異なっていた場合には、識別子データベース314内の情報は古いものとして、当該実行ファイルの識別子を計算する(ステップ807)。その後ステップ807で得られた識別子と、ステップ801にて取得したファイルサイズ、最終更新日時を用いて識別子データベース314を更新し(ステップ808)、得られた識別子を識別子埋め込み部313へと返し(ステップ809)、終了する。
【0039】
ステップ803にて識別子データベース314内に該当するエントリがない場合には、当該実行ファイルの識別子を計算し(ステップ807)、得られた識別子と、ステップ801にて取得したファイルサイズ、最終更新日時を用いて識別子データベース314を更新し(ステップ808)、得られた識別子を識別子埋め込み部313へと返し(ステップ809)、終了する。
【0040】
上記の例においては、識別子管理部315は識別子埋め込み部313からのリクエストによって起動し、必要であれば識別子の計算を行い、識別子埋め込み部313へとプログラムの識別子を返す。識別子管理部315の実現方法として、上記のようなリクエストを受けた時に識別子の計算を行うのではなく、事前に計算しておく方法を取ってもよい。その場合の例として、送信側端末101内でのプログラムの起動時にこれを検知し、必要であれば識別子を計算して識別子データベース314を更新しておく方法がある。この場合の識別子管理部315の処理フローチャートの一例を図9に示す。
【0041】
図9において、識別子管理部315は送信側端末101内のプログラムの実行を監視し(ステップ901)、プログラムの実行を検知すると(ステップ902)、当該プログラムに関する情報(実行ファイルのパス、ファイルサイズ、最終更新日時)を取得し(ステップ903)、実行ファイルのパスをキーとして識別子データベース314を確認し(ステップ904)、該当するエントリがあるかどうか判定する(ステップ905)。
【0042】
ステップ905にて、識別子データベース314に該当するエントリがある場合には当該エントリの情報を取得する(ステップ906)。ステップ903にて取得したファイルサイズ、最終更新時刻の情報とステップ906で取得したエントリに記されたファイルサイズ、最終更新時刻の情報とを比較し(ステップ907)、ファイルサイズ、最終更新時刻共に一致している場合には識別子データベース314を更新する必要はないとして、ステップ901に戻り、プログラムの実行の監視を継続する。
【0043】
ステップ907にて、ファイルサイズと最終更新時刻の少なくとも片方が異なっていた場合には、識別子データベース314内の情報は古いものとして、当該実行ファイルの識別子を計算する(ステップ908)。その後ステップ908で得られた識別子と、ステップ903にて取得したファイルサイズ、最終更新日時を用いて識別子データベース314を更新し(ステップ909)、ステップ901に戻り、プログラムの実行の監視を継続する。
【0044】
ステップ905にて識別子データベース314内に該当するエントリがない場合には、当該実行ファイルの識別子を計算し(ステップ908)、得られた識別子と、ステップ903にて取得したファイルサイズ、最終更新日時を用いて識別子データベース314を更新し(ステップ909)、ステップ901に戻り、プログラムの実行の監視を継続する。
【0045】
識別子管理部315が図9に示すような処理により識別子データベースの更新を行っている場合には、識別子管理部315は、識別子埋め込み部313からのリクエストを受けると、識別子データベース314を参照し、プログラムに該当するエントリに記載された識別子を識別子埋め込み部313に返す。
【0046】
次に、受信側端末102の動作について説明する。
【0047】
受信側端末102へとパケットが送信される。判定部323では、受信側端末102のパケットの受信を監視しており、パケットが受信される際に、当該パケットがどのプログラムに受信されようとしているかを特定し、当該プログラムを一意に示す識別子を受信側識別子として取得する。また、当該パケットに送信側端末101によりプログラムの識別子が埋め込まれているかどうか確認し、埋め込まれている場合にはその識別子を送信側識別子として取得する。送信側識別子、受信側識別子、及びパケットの送信元ホストの情報と事前に定めたポリシとを比較し、ポリシに記載された条件が満たされるかどうかを確認し、満たされている場合には当該ポリシに記載された方法に従ってパケットを処理し、その後の対応を行う。
【0048】
図10に、判定部323の処理フローチャートの一例を示す。判定部323は起動されると、ネットワーク105からのパケットの受信を監視する(ステップ1001)。パケットの受信を検知すると(ステップ1002)、当該パケットの受信を一時停止し(ステップ1003)、当該パケットが識別子埋め込み対象のパケットであるかどうかを確認する(ステップ1004)。図6のステップ604と同様に、本実施例ではIPパケットもしくはTCPパケットを識別子埋め込み対象のパケットとする。識別子埋め込み対象のパケットでない場合には当該パケットを通過させ(ステップ1005)、ステップ1001に戻り、パケットの受信の監視を継続する。
【0049】
当該パケットが識別子埋め込み対象のパケットである場合には、当該パケットに識別子が埋め込まれているかどうかを確認し(ステップ1006)、埋め込まれている場合には埋め込まれている識別子を送信側識別子とする(ステップ1007)。当該パケットに識別子が埋め込まれていなかった場合には送信側識別子を「なし」とする(ステップ1008)。
【0050】
次に、当該パケットを受信するプログラムを確認し(ステップ1009)、受信プログラムが特定されたかどうかを判定する(ステップ1010)。確認の結果受信プログラムが何であるか判明した場合には、識別子管理部315へとリクエストを送り当該プログラムの識別子を取得し、受信側識別子とする(ステップ1011)、受信プログラムが判明しなかった場合には受信側識別子を「なし」とする(ステップ1012)。
【0051】
次に、当該パケットから送信元ホスト情報を取得し(ステップ1013)、送信元ホスト、送信側識別子及び受信側識別子と事前に定めたポリシから当該パケットに対する処理方法及びその後の対応を決定する(ステップ1014)。送信元ホスト情報とは、端末を表す情報であり、IPアドレス、MACアドレス、端末のコンピュータ名などである。ステップ1014の詳細については後述する。
【0052】
その後、ステップ1014で得られた当該パケットに対する処理を実施し(ステップ1015)、ポリシで定められたその後の対応を実施する(ステップ1016)。その後にステップ1001に戻り、パケットの受信の監視を継続する。
【0053】
その後の対応として管理者への通知が設定されている場合、判定部323はネットワーク105を介して管理者用端末104へ通知を行う。通知の際には、送信元ホスト、送信側識別子、受信側識別子を含め、どの端末がどのような活動をしていたかが管理者によって把握できるような情報を提供する。
【0054】
図11に、ステップ1014でのポリシに基づく受信パケットの処理方法決定に関しての処理フローチャートの一例を示す。まず、与えられた送信元ホスト、送信側識別子、受信側識別子を取得する(ステップ1101)。ポリシサーバ103のポリシ提供インタフェース334を介してポリシデータベース332にアクセスし(ステップ1102)、ポリシデータベース332にポリシが存在するかを確認する(ステップ1103)。ポリシが存在しない場合には受信パケットの処理方法及びその後の対応を事前に定めたデフォルトのものに設定し(ステップ1109)、受信パケットの処理方法及びその後の対応を返し(ステップ1111)、終了する。
【0055】
ステップ1103にてポリシが存在した場合には、ポリシを取得し、取得したポリシを優先順位順に並べ替え(ステップ1104)、最も優先度の高いポリシを取り出す(ステップ1105)。ステップ1101にて取得した送信元ホスト、送信側識別子、受信側識別子が当該ポリシにおける送信元ホスト、送信側識別子、受信側識別子の条件を全て満たすかどうかを判定する(ステップ1106)。全て満たしている場合、受信パケットに対する処理及びその後の対応を、当該ポリシに記載されたものに設定して(ステップ1110)、受信パケットの処理方法及びその後の対応を返し(ステップ1111)、終了する。
【0056】
ステップ1106にてポリシの条件が満たされていない場合、未処理のポリシが残っているかどうか判定し(ステップ1107)、残っている場合には次に優先度の高いポリシを取りだし、ステップ1101へと戻り判定を継続する。全てのポリシを処理し、未処理のポリシが残っていない場合には、受信パケットの処理方法及びその後の対応を事前に定めたデフォルトのものに設定し(ステップ1109)、受信パケットの処理方法及びその後の対応を返し(ステップ1111)、終了する。
【0057】
次に、ポリシサーバ103の動作について説明する。ポリシサーバ103はポリシを格納するポリシデータベース332を有するが、ポリシサーバ103自体はポリシの追加などの処理は行わず、受信側端末102がポリシ情報を取得するためのポリシ提供インタフェース334、管理者用端末104から管理者がポリシの管理を行うためのポリシ設定インタフェース333を具備する。
【0058】
管理者用端末104の動作について説明する。管理者用端末104では、ポリシ設定用プログラム342が動作し、ポリシサーバ103のポリシ設定インタフェース333を介してポリシの設定を行う。
【0059】
図12に、管理者がポリシの設定を行う際のGUIの一例を示す。当該GUI1200では、登録されているポリシの一覧が表示され、ポリシの追加、削除、更新が行えるようになっている。優先順位入力欄1201、送信元ホスト入力欄1202、送信側識別子入力欄1203、受信側識別子入力欄1204は管理者による入力が可能となっている。送信元ホスト、送信側識別子、受信側識別子の各入力欄の右にはプルダウンボックス1207があり、ここで特定のホストまたは識別子にマッチさせるか、それとも特定のホストまたは識別子以外にマッチさせるかの選択ができる。パケットの処理方法1205はプルダウンボックス1208を選択することにより、パケットの通過か破棄かを選択できるようになっている。また、その後の対応1206も同様にプルダウンボックスで選択が可能である。任意のエントリを編集した後、更新ボタン1209を押すと、現在入力されている内容でポリシが上書きされる。また、削除ボタン1210を押すと、その行に表示されているポリシを削除することができる。また、一番下の行の各入力欄に値を入力して追加ボタン1211を押すとポリシを追加することができる。
【0060】
また、管理者用端末104では、通知受信部343が動作し、受信側端末102の判定部323から送られてくる通知を、データ送受信部341を介して受信する。
【0061】
本実施例においては、受信側端末102、ポリシサーバ103、管理者用端末104は全て異なる端末であるように記載しているが、これらのうちのいずれか2つ、もしくは全てが同一の端末であってもよい。その場合には、本実施例に置いてネットワーク105を介して行われている情報の伝達は、端末内のメモリやファイルなどを介して行われるようになっていてもよい。
【0062】
また、本実施例においては送信側端末101と受信側端末102という2種類のユーザ端末が存在しているが、一台の端末に送信側端末101の機能及び受信側端末102の機能の両方が具備されているような実装であってもよい。そのような実装にすることで、一台の端末を受信側端末として保護すると同時に送信側端末として保護することが可能となる。
【0063】
本実施例によれば、送信側端末でパケットにプログラムの情報を埋め込み、受信側端末で送信元ホスト、送信側端末のプログラム、受信側端末のプログラムに応じたパケットの処理を行うことにより、互いに通信が可能なプログラムの組合わせを制限することができ、予期しないプログラムから受信側端末を保護することが可能になる。また、予期しないプログラムからの通信を破棄すると同時に管理者への連絡を行う枠組みを作成することにより、ウイルスなどに感染して不正な通信を行ってしまっている送信側端末への対策を進めることが可能になる。
【実施例2】
【0064】
近年、ファイル共有ソフトを介した情報漏えいが問題となっている。ファイル共有ソフトを介した情報漏えいの場合、情報漏えいを起こす通信を行うのはウイルスなどのマルウェアではなく、ファイル共有ソフトである。このように、マルウェアなどによる通信でないにも関わらず、ユーザ端末が被害を受ける場合があり、このような場合にもユーザ端末を保護することが求められる。
【0065】
本実施例においては、実施例1の変形例として、送信側端末101の識別子埋め込み部313にて、パケットを送信しようとしているプログラムの識別子だけでなく、送信側端末101の内部の状態を表す情報も埋め込む場合の例を示す。
【0066】
本実施例における送信側端末101のソフトウェア構成を図13に示す。本実施例と実施例1との相違点は、内部状態取得部1301であり、識別子埋め込み部313において、識別子管理部315からプログラム311の識別子を取得するのと同様、内部状態取得部1301から送信側端末101の内部状態を取得し、パケットへと埋め込む。
【0067】
内部状態取得部1301での内部状態の取得方法について本実施例では規定しない。内部情報取得方法の一例としては、アンチウイルスソフトによる端末内のマルウェアの検知、「P2Pファイル交換ソフトウエア環境におけるノード型情報流出防止機能の提案」、松岡正明、松木隆宏、寺田真敏、鬼頭哲郎、仲小路博史、情報処理学会 コンピュータセキュリティ研究会 研究報告 Vol.2008 No.71 pp.115-122、2008.に記載される、端末内のファイルアクセスの監視による情報漏えいの可能性の検知、または「端末内の動作監視に基づく情報漏えいウイルスの検知手法に関する検討」、鬼頭哲郎、松木隆宏、松岡正明、仲小路博史、寺田真敏、情報処理学会 コンピュータセキュリティ研究会 研究報告 Vol.2008 No.71 pp.317-322、2008.に記載される、任意のプロセスによるOSの機能呼び出しの監視による、情報漏えいウイルスへの感染の検知がある。これらの方法により端末内にマルウェアが存在する、端末から情報が漏えいしそうになっている、情報漏洩ウイルスへと感染している、といった内部情報を取得できる。
【0068】
図14に、送信側端末101の内部状態に対応する状態情報の値の一例を示す。内部状態1401により状態情報の値1402は変化する。本実施例においては状態情報の値は単純な数値としているが、内部状態をカテゴリ分けし、階層的な状態情報の値の付け方をするなど、他の表現を用いてもよい。
【0069】
本実施例においては、実施例1との相違点として、ポリシデータベース332へのフィールドの追加がある。送信側端末101で識別子に加え、状態情報をパケットに埋め込むようにしているため、ポリシデータベース332のフィールドにも状態情報を加え、状態情報の値に応じたパケットの処理を行えるようになっている。
【0070】
ポリシデータベース332へのフィールドの追加に伴い、判定部323及びポリシとのマッチングフローにおいて実施例1との相違が発生するが、ここで発生する相違は状態情報の値の抽出やマッチング処理である。これらの処理は識別子に対する処理と同様の方式で行われるため、省略する。
【0071】
本実施例によれば、例えば通常状態では受信側端末においてファイル共有ソフトの通信を通過させるが、送信側端末でアンチウイルスソフトによりウイルスが発見されたなどの事態が発生した場合には、情報漏えいの危険性があるため、受信側端末においてファイル共有ソフトの通信を破棄する、といった端末の内部状態に応じた柔軟な対応が可能になり、利便性の確保とユーザ端末の保護を両立させることが可能となる。
【符号の説明】
【0072】
100:ユーザ端末保護システム、101:送信側端末、102:受信側端末、103:ポリシサーバ、104:管理者用端末、105:ネットワーク、313:識別子埋め込み部、314:識別子データベース、315:識別子管理部、323:判定部、326:ポリシ取得部、332:ポリシデータベース、333:ポリシ設定インタフェース、334:ポリシ提供インタフェース、342:ポリシ設定用プログラム。
【技術分野】
【0001】
本発明は、ユーザの端末を安全に保つための方法、システムに関する。
【背景技術】
【0002】
昨今、ユーザ端末の周囲にはネットワークを介した攻撃やコンピュータウイルスなど、脅威が蔓延している。これらの脅威からユーザ端末を保護するための技術として、ファイアウォールがある。ファイアウォールは、予め定めたルールに従い、受信したパケットを通過または破棄するものである。ファイアウォールでは、発信元IPアドレス、宛先IPアドレス、発信元ポート番号、宛先ポート番号などのTCP/IPレベルの情報に関する条件をルールとして指定可能である。
【0003】
ファイアウォールの一例として特許文献1に記載されている技術がある。ファイアウォールでは事前にルールを設定し、それに従って自身のファイアウォールを通過しようとするパケットの通過の可否を決定するが、ルールの数が増大するとパケット一つあたりのルールとの比較回数が増加し、パフォーマンスに影響を及ぼす恐れがある。特許文献1では、ルールを適切に並べ替えることでルールとの比較回数の増大を抑える技術について記載している。
【0004】
また、近年ネットワークに蔓延している攻撃活動は、ボットなどのマルウェアに感染してしまった端末によるものが多い。ユーザ端末を保護するためには、マルウェアに感染して攻撃活動を行ってしまっている端末への対応も求められる。
【0005】
マルウェアに感染したユーザ端末に対する対応の一例として、非特許文献1で述べられている、経済産業省と総務省の共同プロジェクトであるサイバークリーンセンターがある。サイバークリーンセンターでは、ボットに感染しているユーザ端末を特定し、当該ユーザにボットを駆除するために必要な情報を提供する活動を行っている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特許第3568850号
【非特許文献】
【0007】
【非特許文献1】小林偉昭、寺田真敏、永安佑希允、中村章人、「情報セキュリティ研究開発の動向:3.マクロな分析技術の動向」、情報処理 2007年7月 Vol.48 No.7、707頁−712頁、社団法人 情報処理学会
【発明の概要】
【発明が解決しようとする課題】
【0008】
ネットワークからの攻撃からユーザ端末を保護するためにファイアウォールが利用されている。ファイアウォールを用いた場合、TCP/IPの送信元IPアドレスや宛先ポート番号などの単位でブロックするので、ウイルスによる攻撃が行われるからという理由でサービスをブロックしてしまうと、ウイルスではない正当なアプリケーションによる通信もブロックしてしまい、ユーザの利便性を損なう結果になってしまう。このように、ファイアウォールを用いた場合、ウイルスやボット等のマルウェアによるアクセスと、それ以外の通常のアクセスとを区別することができない。
【0009】
また、マルウェアによるアクセスも通常のアクセスも区別しないでブロックするため、マルウェアに感染している端末の特定ができず、感染端末への対応が取れないという問題がある。
【課題を解決するための手段】
【0010】
上述の通り、端末に流入してくるパケットが、正当なプログラムから送出されたパケットであるか、それともウイルスなどのマルウェアによって送出されたパケットであるかの判別はできないため、開示するユーザ端末保護システムでは、どのようなプログラムによって送出されたパケットであるかという情報を、パケット内部に埋め込むこととしている。
【0011】
ユーザ端末保護システムでは、端末からネットワークへと送出されるパケットに、そのパケットが端末内のどのプログラムによって送出されたかという情報を埋め込む。そして通信相手(受信端末)側でパケットに当該情報が埋め込まれているか検査し、埋め込まれている場合には当該情報及び受信端末側で当該パケットを受信しようとしてるプログラムの情報を事前に定めたポリシと照合し、当該パケットに対する処理を決定する。
【0012】
ユーザ端末保護システムの具体的な態様は次の通りである。送信側端末及び受信側端末はネットワークへと接続する。送信側端末において、ネットワークへのパケットの送出を監視し、当該パケットを送出しようとしているプログラムを特定し、当該プログラムを一意に識別するプログラム識別子を取得し、当該パケットに当該プログラム識別子を埋め込み、当該パケットをネットワークへと送出する。また、受信側端末において、ネットワークからのパケットの受信を監視し、当該パケットにプログラム識別子(第1の識別子)が埋め込まれているか検査し、埋め込まれている場合には当該パケットを受信するプログラムのプログラム識別子(第2の識別子)を取得し、第1の識別子と第2の識別子及びパケットに含まれる送信元情報とが所定の条件を満たす場合に事前に定められた処理を当該パケットに対して行う。
【発明の効果】
【0013】
本発明によれば、ネットワークを介して行われるマルウェアなどの攻撃活動からユーザ端末を保護することができる。
【図面の簡単な説明】
【0014】
【図1】ユーザ端末保護システムの構成例を示す。
【図2】ユーザ端末保護システムを構成する各装置のハードウェア構成例を示す。
【図3】ユーザ端末保護システムを構成する各装置のソフトウェア構成例を示す。
【図4】識別子データベースの構成例を示す。
【図5】ポリシデータベースの構成例を示す。
【図6】識別子埋め込み部の処理フロー例を示す。
【図7】IPパケットへの識別子の埋め込みフォーマット例を示す。
【図8】識別子管理部の処理フロー例を示す。
【図9】識別子管理部の変形例の処理フロー例を示す。
【図10】判定部の処理フロー例を示す。
【図11】ポリシとのマッチングの処理フロー例を示す。
【図12】ポリシ設定用GUIの例を示す。
【図13】実施例2における送信側端末のソフトウェア構成例を示す。
【図14】実施例2における状態情報の値の一例を示す。
【発明を実施するための形態】
【0015】
以下、本発明の実施の形態について、図面を用いて説明する。なお以降の説明は本発明の実施形態を示すものであり、本発明の構成や機能その他を制限するものではない。
【実施例1】
【0016】
図1は、本実施例によるユーザ端末保護システム100の構成例を示している。ユーザ端末保護システム100は、送信側端末101、受信側端末102、ポリシサーバ103、管理者用端末104を備え、これらがネットワーク105で接続されている。ネットワーク105には図示されていない端末や通信装置なども接続されている。ネットワーク105は企業内ネットワークなどのLAN(Local Area Network)でもよいし、LANに留まらず、各装置がインターネットを介して接続されていてもよい。なお、送信側端末101、受信側端末102は、それらの動作を説明するために送信側、受信側を付した名称にしているが、いずれも後述する構成の端末装置である。
【0017】
図2は、ユーザ端末保護システム100を構成する装置である送信側端末101、受信側端末102、ポリシサーバ103、管理者用端末104のハードウェア構成例を示す。各装置を構成するハードウェアは、実質的に同様の装置構成を有し、各演算装置で実行されるソフトウェアによって各々の動作が定められる。
【0018】
送信側端末101は情報処理装置であり、ユーザが所有するPCなどの端末である。送信側端末101は、演算装置211、メモリ212、ハードディスク等の記憶装置213、ネットワークカードなどの通信装置214、キーボードやマウス等の入力装置215、LCD(Liquid Crystal Display)等の表示装置216を備える。演算装置211は、記憶装置213に格納されたプログラムを実行し、各部の制御を行う。記憶装置213は、演算装置211が実行するプログラムおよび演算装置211が使用するデータ等を格納する。通信装置214は、ネットワーク105を介して他の装置からデータを受信して演算装置211へ送ると共に、演算装置211が生成したデータを、ネットワーク105を介して他の装置へ送信する。演算装置211は、入力装置215や表示装置216を制御し、入力装置215からデータを入力し、データを表示装置216へ出力する。記憶装置213にはプログラムが格納されており、プログラムは記憶装置213からメモリ212にロードされ、演算装置211によって実行される。送信側端末101は、これらのプログラムを記憶装置213からロードして実行するが、他の例として、CD、DVD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等の記録媒体からこのプログラムをロードしてもよい。また他の例として、他の装置から、通信媒体を介して、これらのプログラムをロードしてもよい。通信媒体とは、ネットワークまたはこれらを伝搬するディジタル信号または搬送波を指す。
【0019】
本実施例においては、受信側端末102、ポリシサーバ103、管理者用端末104のハードウェア構成は送信側端末101と同様のものであるため省略する。
【0020】
図3は、ユーザ端末保護システム100を構成する送信側端末101、受信側端末102、ポリシサーバ103、管理者用端末104のソフトウェア構成例を示す。
【0021】
送信側端末101は、ネットワーク105と情報を送受信するデータ送受信部312と、内部で動作するプログラム311と、プログラム311がデータ送受信部312を介してネットワーク105へパケットを送出しようとする時にこれを検知してプログラム311の識別子をパケットに埋め込む識別子埋め込み部313と、送信側端末101内にあるプログラムの識別子を格納する識別子データベース314と、識別子データベース314への情報の追加や更新、読み出しを行う識別子管理部315とを有する。
【0022】
図4に、識別子データベース314の一例を示す。識別子データベース314は、プログラムの実行ファイルのパス401、ファイルサイズ402、最終更新日時403、識別子404で構成される。ファイルサイズ402及び最終更新日時403は、プログラムの実行ファイルのファイルサイズ及び最終更新日時である。識別子404は、プログラムを一意に示す値であり、一例としてはMD5やSHA1、SHA256などのハッシュ関数に実行ファイルを入力して得られるハッシュ値がある。識別子として用いる値は、同じプログラムに対して同じ値が与えられ、また同じ識別子を持つ異なるプログラムの存在確率が十分に低いものであればハッシュ値以外の値を用いてもよい。本実施例においては、識別子404として、実行ファイルのMD5によるハッシュ値を用いる。
【0023】
図3に説明を戻す。受信側端末102は、ネットワーク105と情報を送受信するデータ送受信部321と、内部で動作するプログラム322と、プログラム322に対するパケットを受信したときにこれを検知して事前に定めたポリシと比較することで当該パケットの処理方法を決定する判定部323と、受信側端末102内にあるプログラム322の識別子を格納する識別子データベース324と、識別子データベース324への情報の追加や更新を行う識別子管理部325と、ポリシサーバ103からポリシ情報を取得するポリシ取得部326とを有する。識別子データベース324及び識別子管理部325は、送信側端末101内の識別子データベース314及び識別子管理部315と同様のものである。
【0024】
ポリシサーバ103は、ネットワーク105と情報を送受信するデータ送受信部331と、ポリシを格納するポリシデータベース332と、ポリシを設定するためのポリシ設定インタフェース333と、ポリシを提供するためのポリシ提供インタフェース334とを有する。
【0025】
図5に、ポリシデータベース332の一例を示す。ポリシデータベース332は、パケットに対する処理を決定するためのポリシを格納するデータベースであり、ポリシの優先順位501、送信元ホスト502、送信側識別子503、受信側識別子504、パケットの処理方法505、その後の対応506で構成される。
【0026】
ポリシの優先順位501は、本実施例においてパケットとポリシとのマッチングを取る際の順番を表す数値であり、数値が小さいものほど優先順位が高い。送信元ホスト502、送信側識別子503、受信側識別子504はパケットの処理方法505で表される処理を行う対象のパケットを決定するための条件である。送信元ホスト502はパケットを送信してきたホスト(端末)を表す。送信側識別子503は送信側端末101においてパケットに埋め込まれた、当該パケットを送出したプログラムの識別子である。受信側識別子504は、受信側端末102において当該パケットを受信するプログラムの識別子である。
【0027】
本実施例においては、送信元ホスト502、送信側識別子503、受信側識別子504は、特定のホストもしくは識別子(複数可)、全てにマッチする「any」、特定のホストもしくは識別子以外の全て、といった形で指定できる。また、送信側識別子503、受信側識別子504は識別子が埋め込まれていなかった、もしくは受信プログラムが不明であった場合を表す「なし」も指定できる。パケットの処理方法505は、パケットがポリシにマッチした場合の当該パケットに対する処理方法を表すものである。その後の対応506は、パケットを処理した後に特段の対応が求められる場合に実施すべき事項である。
【0028】
図3に説明を戻す。管理者用端末104は、ネットワーク105と情報を送受信するデータ送受信部341と、内部で動作するポリシ設定用プログラム342と、受信側端末102からの通知を受信する通知受信部343とを有する。
【0029】
ユーザ端末保護システム100の動作を説明する。送信側端末101内のプログラム311は、データ送受信部312を介してネットワーク105へとパケットを送信しようとする。識別子埋め込み部313では、送信側端末101内の一つ以上のプログラム311によるネットワーク105へのパケットの送信を監視しており、パケットが送信される際に当該パケットがどのプログラムによって送信されようとしているかを特定し、当該プログラムを一意に示す識別子を取得し、当該パケットへと当該識別子を埋め込んだ上で、データ送受信部312を介してネットワーク105へとパケットを送信する。
【0030】
図6に、識別子埋め込み部313の処理フローチャートの一例を示す。識別子埋め込み部313は起動されると、ネットワーク105へのパケットの送信を監視する(ステップ601)。あるプログラムによるパケットの送信を検知すると(ステップ602)、当該パケットの送信を一時停止し(ステップ603)、当該パケットが識別子埋め込み対象のパケットであるかどうかを確認する(ステップ604)。本実施例ではIPパケットもしくはTCPパケットを識別子埋め込み対象のパケットとする。当該パケットが識別子埋め込み対象のパケットでない場合には、当該パケットを送信し(ステップ607)、その後ステップ601へと戻り、パケット送信の監視を継続する。
【0031】
当該パケットが識別子埋め込み対象のパケットである場合には、当該パケットを送信しようとしているプログラムの識別子を識別子管理部315を介して識別子データベース314から取得し(ステップ605)、当該パケットに取得した識別子を埋め込み(ステップ606)、当該パケットを送信する(ステップ607)。その後ステップ601へと戻り、パケット送信の監視を継続する。
【0032】
パケットへの情報の埋め込み方法の一例として、特開2009−169895に記載されたIPヘッダのオプションフィールドを用いた方法がある。当該特許文献では、IPパケットのオプションフィールドに任意の情報を埋め込みネットワークへと送出し、周囲のネットワーク機器などで情報が埋め込まれたパケットの検知及び削除を行う仕組みについて記載されている。
【0033】
本実施例においては、パケットへの識別子の埋め込み方法として、IPヘッダもしくはTCPヘッダのオプションフィールドを用いる。そのため、埋め込み対象のパケットはIPパケットもしくはTCPパケットとなる。
【0034】
図7に、IPパケットへの識別子の埋め込みフォーマットの一例を示す。IPパケット701は、通常、IPヘッダ702とデータ703から構成される。本実施例においては、IPヘッダの後ろにIPヘッダオプションフィールド704を埋め込む。IPヘッダオプションフィールド704はオプションクラス705、オプション長706、識別子707から構成される。この構造はIPの仕様を記載したRFC791内のオプションフィールドのフォーマットに従っている。本実施例においては、オプションタイプ705を158とし、オプション長706を18としている。
【0035】
本実施例においては、識別子の埋め込み方法としてIPヘッダのオプションフィールドを用いているが、パケット内に識別子を埋め込める方式であれば、別の方式を利用してもよい。
【0036】
図8に、識別子管理部315の処理フローチャートの一例を示す。識別子管理部315は識別子埋め込み部313から、パケットを送信しようとしているプログラムの情報を受け取り起動すると、当該プログラムの実行ファイルに関する情報(ファイルのパス、ファイルサイズ、最終更新日時)を取得し(ステップ801)、ファイルのパスをキーとして識別子データベース314を確認し(ステップ802)、該当するエントリがあるかどうか判定する(ステップ803)。
【0037】
ステップ803にて、識別子データベース314に該当するエントリがある場合には当該エントリの情報を取得する(ステップ804)。ステップ801にて取得したファイルサイズ、最終更新時刻の情報とステップ804で取得したエントリに記されたファイルサイズ、最終更新時刻の情報とを比較し(ステップ805)、ファイルサイズ、最終更新時刻共に一致している場合には当該エントリ内の識別子を識別子埋め込み部313へと返し(ステップ806)、終了する。
【0038】
ステップ805にて、ファイルサイズと最終更新時刻の少なくとも一方が異なっていた場合には、識別子データベース314内の情報は古いものとして、当該実行ファイルの識別子を計算する(ステップ807)。その後ステップ807で得られた識別子と、ステップ801にて取得したファイルサイズ、最終更新日時を用いて識別子データベース314を更新し(ステップ808)、得られた識別子を識別子埋め込み部313へと返し(ステップ809)、終了する。
【0039】
ステップ803にて識別子データベース314内に該当するエントリがない場合には、当該実行ファイルの識別子を計算し(ステップ807)、得られた識別子と、ステップ801にて取得したファイルサイズ、最終更新日時を用いて識別子データベース314を更新し(ステップ808)、得られた識別子を識別子埋め込み部313へと返し(ステップ809)、終了する。
【0040】
上記の例においては、識別子管理部315は識別子埋め込み部313からのリクエストによって起動し、必要であれば識別子の計算を行い、識別子埋め込み部313へとプログラムの識別子を返す。識別子管理部315の実現方法として、上記のようなリクエストを受けた時に識別子の計算を行うのではなく、事前に計算しておく方法を取ってもよい。その場合の例として、送信側端末101内でのプログラムの起動時にこれを検知し、必要であれば識別子を計算して識別子データベース314を更新しておく方法がある。この場合の識別子管理部315の処理フローチャートの一例を図9に示す。
【0041】
図9において、識別子管理部315は送信側端末101内のプログラムの実行を監視し(ステップ901)、プログラムの実行を検知すると(ステップ902)、当該プログラムに関する情報(実行ファイルのパス、ファイルサイズ、最終更新日時)を取得し(ステップ903)、実行ファイルのパスをキーとして識別子データベース314を確認し(ステップ904)、該当するエントリがあるかどうか判定する(ステップ905)。
【0042】
ステップ905にて、識別子データベース314に該当するエントリがある場合には当該エントリの情報を取得する(ステップ906)。ステップ903にて取得したファイルサイズ、最終更新時刻の情報とステップ906で取得したエントリに記されたファイルサイズ、最終更新時刻の情報とを比較し(ステップ907)、ファイルサイズ、最終更新時刻共に一致している場合には識別子データベース314を更新する必要はないとして、ステップ901に戻り、プログラムの実行の監視を継続する。
【0043】
ステップ907にて、ファイルサイズと最終更新時刻の少なくとも片方が異なっていた場合には、識別子データベース314内の情報は古いものとして、当該実行ファイルの識別子を計算する(ステップ908)。その後ステップ908で得られた識別子と、ステップ903にて取得したファイルサイズ、最終更新日時を用いて識別子データベース314を更新し(ステップ909)、ステップ901に戻り、プログラムの実行の監視を継続する。
【0044】
ステップ905にて識別子データベース314内に該当するエントリがない場合には、当該実行ファイルの識別子を計算し(ステップ908)、得られた識別子と、ステップ903にて取得したファイルサイズ、最終更新日時を用いて識別子データベース314を更新し(ステップ909)、ステップ901に戻り、プログラムの実行の監視を継続する。
【0045】
識別子管理部315が図9に示すような処理により識別子データベースの更新を行っている場合には、識別子管理部315は、識別子埋め込み部313からのリクエストを受けると、識別子データベース314を参照し、プログラムに該当するエントリに記載された識別子を識別子埋め込み部313に返す。
【0046】
次に、受信側端末102の動作について説明する。
【0047】
受信側端末102へとパケットが送信される。判定部323では、受信側端末102のパケットの受信を監視しており、パケットが受信される際に、当該パケットがどのプログラムに受信されようとしているかを特定し、当該プログラムを一意に示す識別子を受信側識別子として取得する。また、当該パケットに送信側端末101によりプログラムの識別子が埋め込まれているかどうか確認し、埋め込まれている場合にはその識別子を送信側識別子として取得する。送信側識別子、受信側識別子、及びパケットの送信元ホストの情報と事前に定めたポリシとを比較し、ポリシに記載された条件が満たされるかどうかを確認し、満たされている場合には当該ポリシに記載された方法に従ってパケットを処理し、その後の対応を行う。
【0048】
図10に、判定部323の処理フローチャートの一例を示す。判定部323は起動されると、ネットワーク105からのパケットの受信を監視する(ステップ1001)。パケットの受信を検知すると(ステップ1002)、当該パケットの受信を一時停止し(ステップ1003)、当該パケットが識別子埋め込み対象のパケットであるかどうかを確認する(ステップ1004)。図6のステップ604と同様に、本実施例ではIPパケットもしくはTCPパケットを識別子埋め込み対象のパケットとする。識別子埋め込み対象のパケットでない場合には当該パケットを通過させ(ステップ1005)、ステップ1001に戻り、パケットの受信の監視を継続する。
【0049】
当該パケットが識別子埋め込み対象のパケットである場合には、当該パケットに識別子が埋め込まれているかどうかを確認し(ステップ1006)、埋め込まれている場合には埋め込まれている識別子を送信側識別子とする(ステップ1007)。当該パケットに識別子が埋め込まれていなかった場合には送信側識別子を「なし」とする(ステップ1008)。
【0050】
次に、当該パケットを受信するプログラムを確認し(ステップ1009)、受信プログラムが特定されたかどうかを判定する(ステップ1010)。確認の結果受信プログラムが何であるか判明した場合には、識別子管理部315へとリクエストを送り当該プログラムの識別子を取得し、受信側識別子とする(ステップ1011)、受信プログラムが判明しなかった場合には受信側識別子を「なし」とする(ステップ1012)。
【0051】
次に、当該パケットから送信元ホスト情報を取得し(ステップ1013)、送信元ホスト、送信側識別子及び受信側識別子と事前に定めたポリシから当該パケットに対する処理方法及びその後の対応を決定する(ステップ1014)。送信元ホスト情報とは、端末を表す情報であり、IPアドレス、MACアドレス、端末のコンピュータ名などである。ステップ1014の詳細については後述する。
【0052】
その後、ステップ1014で得られた当該パケットに対する処理を実施し(ステップ1015)、ポリシで定められたその後の対応を実施する(ステップ1016)。その後にステップ1001に戻り、パケットの受信の監視を継続する。
【0053】
その後の対応として管理者への通知が設定されている場合、判定部323はネットワーク105を介して管理者用端末104へ通知を行う。通知の際には、送信元ホスト、送信側識別子、受信側識別子を含め、どの端末がどのような活動をしていたかが管理者によって把握できるような情報を提供する。
【0054】
図11に、ステップ1014でのポリシに基づく受信パケットの処理方法決定に関しての処理フローチャートの一例を示す。まず、与えられた送信元ホスト、送信側識別子、受信側識別子を取得する(ステップ1101)。ポリシサーバ103のポリシ提供インタフェース334を介してポリシデータベース332にアクセスし(ステップ1102)、ポリシデータベース332にポリシが存在するかを確認する(ステップ1103)。ポリシが存在しない場合には受信パケットの処理方法及びその後の対応を事前に定めたデフォルトのものに設定し(ステップ1109)、受信パケットの処理方法及びその後の対応を返し(ステップ1111)、終了する。
【0055】
ステップ1103にてポリシが存在した場合には、ポリシを取得し、取得したポリシを優先順位順に並べ替え(ステップ1104)、最も優先度の高いポリシを取り出す(ステップ1105)。ステップ1101にて取得した送信元ホスト、送信側識別子、受信側識別子が当該ポリシにおける送信元ホスト、送信側識別子、受信側識別子の条件を全て満たすかどうかを判定する(ステップ1106)。全て満たしている場合、受信パケットに対する処理及びその後の対応を、当該ポリシに記載されたものに設定して(ステップ1110)、受信パケットの処理方法及びその後の対応を返し(ステップ1111)、終了する。
【0056】
ステップ1106にてポリシの条件が満たされていない場合、未処理のポリシが残っているかどうか判定し(ステップ1107)、残っている場合には次に優先度の高いポリシを取りだし、ステップ1101へと戻り判定を継続する。全てのポリシを処理し、未処理のポリシが残っていない場合には、受信パケットの処理方法及びその後の対応を事前に定めたデフォルトのものに設定し(ステップ1109)、受信パケットの処理方法及びその後の対応を返し(ステップ1111)、終了する。
【0057】
次に、ポリシサーバ103の動作について説明する。ポリシサーバ103はポリシを格納するポリシデータベース332を有するが、ポリシサーバ103自体はポリシの追加などの処理は行わず、受信側端末102がポリシ情報を取得するためのポリシ提供インタフェース334、管理者用端末104から管理者がポリシの管理を行うためのポリシ設定インタフェース333を具備する。
【0058】
管理者用端末104の動作について説明する。管理者用端末104では、ポリシ設定用プログラム342が動作し、ポリシサーバ103のポリシ設定インタフェース333を介してポリシの設定を行う。
【0059】
図12に、管理者がポリシの設定を行う際のGUIの一例を示す。当該GUI1200では、登録されているポリシの一覧が表示され、ポリシの追加、削除、更新が行えるようになっている。優先順位入力欄1201、送信元ホスト入力欄1202、送信側識別子入力欄1203、受信側識別子入力欄1204は管理者による入力が可能となっている。送信元ホスト、送信側識別子、受信側識別子の各入力欄の右にはプルダウンボックス1207があり、ここで特定のホストまたは識別子にマッチさせるか、それとも特定のホストまたは識別子以外にマッチさせるかの選択ができる。パケットの処理方法1205はプルダウンボックス1208を選択することにより、パケットの通過か破棄かを選択できるようになっている。また、その後の対応1206も同様にプルダウンボックスで選択が可能である。任意のエントリを編集した後、更新ボタン1209を押すと、現在入力されている内容でポリシが上書きされる。また、削除ボタン1210を押すと、その行に表示されているポリシを削除することができる。また、一番下の行の各入力欄に値を入力して追加ボタン1211を押すとポリシを追加することができる。
【0060】
また、管理者用端末104では、通知受信部343が動作し、受信側端末102の判定部323から送られてくる通知を、データ送受信部341を介して受信する。
【0061】
本実施例においては、受信側端末102、ポリシサーバ103、管理者用端末104は全て異なる端末であるように記載しているが、これらのうちのいずれか2つ、もしくは全てが同一の端末であってもよい。その場合には、本実施例に置いてネットワーク105を介して行われている情報の伝達は、端末内のメモリやファイルなどを介して行われるようになっていてもよい。
【0062】
また、本実施例においては送信側端末101と受信側端末102という2種類のユーザ端末が存在しているが、一台の端末に送信側端末101の機能及び受信側端末102の機能の両方が具備されているような実装であってもよい。そのような実装にすることで、一台の端末を受信側端末として保護すると同時に送信側端末として保護することが可能となる。
【0063】
本実施例によれば、送信側端末でパケットにプログラムの情報を埋め込み、受信側端末で送信元ホスト、送信側端末のプログラム、受信側端末のプログラムに応じたパケットの処理を行うことにより、互いに通信が可能なプログラムの組合わせを制限することができ、予期しないプログラムから受信側端末を保護することが可能になる。また、予期しないプログラムからの通信を破棄すると同時に管理者への連絡を行う枠組みを作成することにより、ウイルスなどに感染して不正な通信を行ってしまっている送信側端末への対策を進めることが可能になる。
【実施例2】
【0064】
近年、ファイル共有ソフトを介した情報漏えいが問題となっている。ファイル共有ソフトを介した情報漏えいの場合、情報漏えいを起こす通信を行うのはウイルスなどのマルウェアではなく、ファイル共有ソフトである。このように、マルウェアなどによる通信でないにも関わらず、ユーザ端末が被害を受ける場合があり、このような場合にもユーザ端末を保護することが求められる。
【0065】
本実施例においては、実施例1の変形例として、送信側端末101の識別子埋め込み部313にて、パケットを送信しようとしているプログラムの識別子だけでなく、送信側端末101の内部の状態を表す情報も埋め込む場合の例を示す。
【0066】
本実施例における送信側端末101のソフトウェア構成を図13に示す。本実施例と実施例1との相違点は、内部状態取得部1301であり、識別子埋め込み部313において、識別子管理部315からプログラム311の識別子を取得するのと同様、内部状態取得部1301から送信側端末101の内部状態を取得し、パケットへと埋め込む。
【0067】
内部状態取得部1301での内部状態の取得方法について本実施例では規定しない。内部情報取得方法の一例としては、アンチウイルスソフトによる端末内のマルウェアの検知、「P2Pファイル交換ソフトウエア環境におけるノード型情報流出防止機能の提案」、松岡正明、松木隆宏、寺田真敏、鬼頭哲郎、仲小路博史、情報処理学会 コンピュータセキュリティ研究会 研究報告 Vol.2008 No.71 pp.115-122、2008.に記載される、端末内のファイルアクセスの監視による情報漏えいの可能性の検知、または「端末内の動作監視に基づく情報漏えいウイルスの検知手法に関する検討」、鬼頭哲郎、松木隆宏、松岡正明、仲小路博史、寺田真敏、情報処理学会 コンピュータセキュリティ研究会 研究報告 Vol.2008 No.71 pp.317-322、2008.に記載される、任意のプロセスによるOSの機能呼び出しの監視による、情報漏えいウイルスへの感染の検知がある。これらの方法により端末内にマルウェアが存在する、端末から情報が漏えいしそうになっている、情報漏洩ウイルスへと感染している、といった内部情報を取得できる。
【0068】
図14に、送信側端末101の内部状態に対応する状態情報の値の一例を示す。内部状態1401により状態情報の値1402は変化する。本実施例においては状態情報の値は単純な数値としているが、内部状態をカテゴリ分けし、階層的な状態情報の値の付け方をするなど、他の表現を用いてもよい。
【0069】
本実施例においては、実施例1との相違点として、ポリシデータベース332へのフィールドの追加がある。送信側端末101で識別子に加え、状態情報をパケットに埋め込むようにしているため、ポリシデータベース332のフィールドにも状態情報を加え、状態情報の値に応じたパケットの処理を行えるようになっている。
【0070】
ポリシデータベース332へのフィールドの追加に伴い、判定部323及びポリシとのマッチングフローにおいて実施例1との相違が発生するが、ここで発生する相違は状態情報の値の抽出やマッチング処理である。これらの処理は識別子に対する処理と同様の方式で行われるため、省略する。
【0071】
本実施例によれば、例えば通常状態では受信側端末においてファイル共有ソフトの通信を通過させるが、送信側端末でアンチウイルスソフトによりウイルスが発見されたなどの事態が発生した場合には、情報漏えいの危険性があるため、受信側端末においてファイル共有ソフトの通信を破棄する、といった端末の内部状態に応じた柔軟な対応が可能になり、利便性の確保とユーザ端末の保護を両立させることが可能となる。
【符号の説明】
【0072】
100:ユーザ端末保護システム、101:送信側端末、102:受信側端末、103:ポリシサーバ、104:管理者用端末、105:ネットワーク、313:識別子埋め込み部、314:識別子データベース、315:識別子管理部、323:判定部、326:ポリシ取得部、332:ポリシデータベース、333:ポリシ設定インタフェース、334:ポリシ提供インタフェース、342:ポリシ設定用プログラム。
【特許請求の範囲】
【請求項1】
ネットワークに接続されているユーザ端末を保護するための方法であって、第1の端末内における前記ネットワークへのパケットの送信を監視し、前記パケットの送信を行おうとしているプログラムを特定し、特定した前記プログラムを表す第1の識別子を前記パケット内に埋め込んで送信し、
第2の端末内において前記ネットワークからのパケット受信を監視し、前記パケット受信の監視によって得られたパケットに埋め込まれている前記第1の識別子を抽出し、監視によって得られた前記パケットを受信するプログラムの識別子である第2の識別子と前記第1の識別子との組み合わせに基づいて前記パケットの処理方法を決定することを特徴とするユーザ端末保護方法。
【請求項2】
請求項1に記載のユーザ端末保護方法であって、前記第1および第2の識別子の組み合わせに基づく前記パケットの処理方法を、事前に定めたポリシを参照することによって決定することを特徴とするユーザ端末保護方法。
【請求項3】
請求項2に記載のユーザ端末保護方法であって、GUIを用いて前記ポリシがユーザによって設定されることを特徴とするユーザ端末保護方法。
【請求項4】
請求項1に記載のユーザ端末保護方法であって、前記第1の端末における前記パケットへの前記第1の識別子を、前記パケットのIPヘッダもしくはTCPヘッダのオプションフィールドに埋め込むことを特徴とするユーザ端末保護方法。
【請求項5】
請求項1に記載のユーザ端末保護方法であって、前記第2の端末において、決定した前記処理方法に従って前記パケットを処理した後、必要に応じて管理者への通知を行うことを特徴とするユーザ端末保護方法。
【請求項6】
請求項1に記載のユーザ端末保護方法であって、
前記第1の端末における前記パケットへの前記第1の識別子の埋め込みの際に、前記第1の端末の内部状態を表す状態情報を埋め込み、
前記第2の端末における前記パケットの処理方法決定の際に、前記第1の識別子と前記第2の識別子に加え、前記パケットに埋め込まれた前記状態情報に基づき前記パケットの処理方法を決定することを特徴とするユーザ端末保護方法。
【請求項7】
第1および第2の端末が接続されているネットワークにおけるユーザ端末保護システムであって、
前記第1の端末は、前記第1の端末内における前記ネットワークへのパケット送信を監視する手段と、
前記パケット送信を行おうとしているプログラムを特定し、前記プログラムを表す第1の識別子をパケット内に埋め込んで送信する手段とを有し、
前記第2の端末は、前記第2の端末内において前記ネットワークからのパケット受信を監視する手段と、
前記パケット受信の監視によって得られたパケットに埋め込まれている前記第1の識別子を抽出する手段と、
前記パケットを受信するプログラムの識別子である第2の識別子と前記第1の識別子との組み合わせに基づいて前記パケットの処理方法を決定する手段とを有することを特徴とするユーザ端末保護システム。
【請求項8】
請求項7に記載のユーザ端末保護システムであって、事前に定めたポリシを格納するデータベースを有し、前記パケットの処理方法を決定する手段が、前記ポリシデータベースを参照して処理方法を決定することを特徴とするユーザ端末保護システム。
【請求項9】
請求項8に記載のユーザ端末保護システムであって、前記ポリシデータベースに格納されているポリシの設定を行うためのGUIを具備することを特徴とするユーザ端末保護システム。
【請求項10】
請求項7に記載のユーザ端末保護システムであって、前記第1の端末が、前記パケットのIPヘッダもしくはTCPヘッダのオプションフィールドにプログラム識別子を埋め込む手段を有することを特徴とするユーザ端末保護システム。
【請求項11】
請求項7に記載のユーザ端末保護システムであって、前記第2の端末が、決定した前記処理方法に従って前記パケットを処理した後に必要に応じて管理者への通知を行う機能を有することを特徴とするユーザ端末保護システム。
【請求項12】
請求項7に記載のユーザ端末保護システムであって、前記第1の端末が、前記パケットへの前記第1の識別子の埋め込みの際に、前記第1の端末の内部状態を表す状態情報を埋め込む手段を有し、
前記第2の端末の前記パケットの処理方法を決定する手段は、前記パケットの処理方法決定の際に、前記第1の識別子と前記第2の識別子に加え、前記パケットに埋め込まれた状態情報に基づき前記パケットの処理方法を決定することを特徴とするユーザ端末保護システム。
【請求項1】
ネットワークに接続されているユーザ端末を保護するための方法であって、第1の端末内における前記ネットワークへのパケットの送信を監視し、前記パケットの送信を行おうとしているプログラムを特定し、特定した前記プログラムを表す第1の識別子を前記パケット内に埋め込んで送信し、
第2の端末内において前記ネットワークからのパケット受信を監視し、前記パケット受信の監視によって得られたパケットに埋め込まれている前記第1の識別子を抽出し、監視によって得られた前記パケットを受信するプログラムの識別子である第2の識別子と前記第1の識別子との組み合わせに基づいて前記パケットの処理方法を決定することを特徴とするユーザ端末保護方法。
【請求項2】
請求項1に記載のユーザ端末保護方法であって、前記第1および第2の識別子の組み合わせに基づく前記パケットの処理方法を、事前に定めたポリシを参照することによって決定することを特徴とするユーザ端末保護方法。
【請求項3】
請求項2に記載のユーザ端末保護方法であって、GUIを用いて前記ポリシがユーザによって設定されることを特徴とするユーザ端末保護方法。
【請求項4】
請求項1に記載のユーザ端末保護方法であって、前記第1の端末における前記パケットへの前記第1の識別子を、前記パケットのIPヘッダもしくはTCPヘッダのオプションフィールドに埋め込むことを特徴とするユーザ端末保護方法。
【請求項5】
請求項1に記載のユーザ端末保護方法であって、前記第2の端末において、決定した前記処理方法に従って前記パケットを処理した後、必要に応じて管理者への通知を行うことを特徴とするユーザ端末保護方法。
【請求項6】
請求項1に記載のユーザ端末保護方法であって、
前記第1の端末における前記パケットへの前記第1の識別子の埋め込みの際に、前記第1の端末の内部状態を表す状態情報を埋め込み、
前記第2の端末における前記パケットの処理方法決定の際に、前記第1の識別子と前記第2の識別子に加え、前記パケットに埋め込まれた前記状態情報に基づき前記パケットの処理方法を決定することを特徴とするユーザ端末保護方法。
【請求項7】
第1および第2の端末が接続されているネットワークにおけるユーザ端末保護システムであって、
前記第1の端末は、前記第1の端末内における前記ネットワークへのパケット送信を監視する手段と、
前記パケット送信を行おうとしているプログラムを特定し、前記プログラムを表す第1の識別子をパケット内に埋め込んで送信する手段とを有し、
前記第2の端末は、前記第2の端末内において前記ネットワークからのパケット受信を監視する手段と、
前記パケット受信の監視によって得られたパケットに埋め込まれている前記第1の識別子を抽出する手段と、
前記パケットを受信するプログラムの識別子である第2の識別子と前記第1の識別子との組み合わせに基づいて前記パケットの処理方法を決定する手段とを有することを特徴とするユーザ端末保護システム。
【請求項8】
請求項7に記載のユーザ端末保護システムであって、事前に定めたポリシを格納するデータベースを有し、前記パケットの処理方法を決定する手段が、前記ポリシデータベースを参照して処理方法を決定することを特徴とするユーザ端末保護システム。
【請求項9】
請求項8に記載のユーザ端末保護システムであって、前記ポリシデータベースに格納されているポリシの設定を行うためのGUIを具備することを特徴とするユーザ端末保護システム。
【請求項10】
請求項7に記載のユーザ端末保護システムであって、前記第1の端末が、前記パケットのIPヘッダもしくはTCPヘッダのオプションフィールドにプログラム識別子を埋め込む手段を有することを特徴とするユーザ端末保護システム。
【請求項11】
請求項7に記載のユーザ端末保護システムであって、前記第2の端末が、決定した前記処理方法に従って前記パケットを処理した後に必要に応じて管理者への通知を行う機能を有することを特徴とするユーザ端末保護システム。
【請求項12】
請求項7に記載のユーザ端末保護システムであって、前記第1の端末が、前記パケットへの前記第1の識別子の埋め込みの際に、前記第1の端末の内部状態を表す状態情報を埋め込む手段を有し、
前記第2の端末の前記パケットの処理方法を決定する手段は、前記パケットの処理方法決定の際に、前記第1の識別子と前記第2の識別子に加え、前記パケットに埋め込まれた状態情報に基づき前記パケットの処理方法を決定することを特徴とするユーザ端末保護システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2011−186728(P2011−186728A)
【公開日】平成23年9月22日(2011.9.22)
【国際特許分類】
【出願番号】特願2010−50602(P2010−50602)
【出願日】平成22年3月8日(2010.3.8)
【国等の委託研究の成果に係る記載事項】(出願人による申告)国等の委託研究の成果に係る特許出願(平成21年度 総務省「情報漏えい対策技術の研究開発(ネットワークを通じた情報流出の検知及び漏出情報の自動流通停止のための技術開発)」委託研究、産業技術力強化法第19条の適用を受ける特許出願)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
【公開日】平成23年9月22日(2011.9.22)
【国際特許分類】
【出願日】平成22年3月8日(2010.3.8)
【国等の委託研究の成果に係る記載事項】(出願人による申告)国等の委託研究の成果に係る特許出願(平成21年度 総務省「情報漏えい対策技術の研究開発(ネットワークを通じた情報流出の検知及び漏出情報の自動流通停止のための技術開発)」委託研究、産業技術力強化法第19条の適用を受ける特許出願)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
[ Back to top ]