(57)【要約】【課題】ネットワークを介して行われる通信を監視しているだけでは検知が困難な、コンピュータウイルスなどの不正なプロセスを検知する。【解決手段】端末内の記憶装置及び入出力装置へのシステムアクセスの監視によって得られる活動、及び、端末によって実行されるネットワークを介した通信の監視によって得られる活動と、それらの活動を生じさせた端末内のプロセスとを関連付け、それらの活動が、同一または関連するプロセスにより実行される所定の活動である場合に、この端末内で不正プロセスが動作していると検知する。【選択図】図３
2011053893.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークと接続する端末内で動作する不正なプロセスを検知する不正プロセス検知システムにおける不正プロセス検知方法であって、前記不正プロセス検知システムは、前記端末におけるプロセスの実行に伴う前記端末の記憶装置及び入出力装置へのアクセスであるシステムアクセスを監視し、前記システムアクセスの監視によって得られる、前記プロセスの処理である第1の活動と前記第1の活動を実行した前記プロセスとを関連付けてシステム監視結果データベースに記録し、
前記端末における前記プロセスの実行に伴う、前記ネットワークを介した通信を監視し、前記通信の監視によって得られる、前記プロセスの処理である第２の活動と前記第２の活動を実行した前記プロセスとを関連付けて通信監視結果データベースに記録し、
前記第1及び第２の活動の少なくとも一方と同じであり、実行した前記プロセスが同一または関連するプロセスである活動が、すでに前記システム監視結果データベースまたは前記通信監視結果データベースに記録されているかを判定し、記録されていると判定された前記活動が予め定めた所定の条件を満たすとき、実行した前記プロセスは不正なプロセスであると判定することを特徴とする不正プロセス検知方法。
【請求項２】
請求項１に記載の不正プロセス検知方法であって、前記活動を実行したプロセスと関連するプロセスとは、前記活動を実行したプロセスを第１のプロセスとし、前記関連するプロセスを第２のプロセスとして、前記第１のプロセス及び前記第１のプロセスを生成した親プロセスを再帰的に辿ることにより得られる第１のプロセスリストと、前記第２のプロセス及び前記第２のプロセスを生成した親プロセスを再帰的に辿ることにより得られる第２のプロセスリストとに共通するプロセスが存在することであることを特徴とする不正プロセス検知方法。
【請求項３】
請求項１または請求項２に記載の不正プロセス検知方法であって、前記端末は前記ネットワークを介した通信のIPパケットに該通信を実行したプロセスを示す情報を埋め込み、前記不正プロセス検知システムは、前記通信の監視において、前記第２の活動に対応して前記IPパケットに埋め込まれた前記プロセスの情報を抽出し、抽出した前記情報が示す前記プロセスが前記第２の活動を実行したプロセスとすることを特徴とする不正プロセス検知方法。
【請求項４】
請求項１から請求項３のいずれか1項に記載の不正プロセス検知方法であって、前記不正プロセス検知システムは、前記端末内で前記活動を実行したプロセスは不正なプロセスであるとの判定に応じて、警告を出力することを特徴とする不正プロセス検知方法。
【請求項５】
請求項１から請求項４のいずれか1項に記載の不正プロセス検知方法であって、前記端末が仮想マシンである場合に、前記仮想マシンを制御する仮想マシンモニタが、前記仮想マシンにおける前記システムアクセスを監視し、前記仮想マシンにおける前記第１の活動と前記第１の活動を実行した前記プロセス情報とを関連付けることを特徴とする不正プロセス検知方法。
【請求項６】
端末、通信監視装置及び不正プロセス判定装置が接続されているネットワークにおける不正プロセス検知システムであって、
プロセスの実行に伴う記憶装置及び入出力装置へのアクセスであるシステムアクセスを監視し、前記システムアクセスの監視によって得られる、前記プロセスの処理である第1の活動と前記第1の活動を実行した前記プロセスとを関連付けてアクセス監視結果として通知し、ネットワークを介した通信に該通信を実行した前記プロセスを示す情報を含む端末と、
前記ネットワークを介して前記端末と接続し、前記ネットワークを介した前記通信に含まれる前記プロセスを示す情報を抽出し、前記通信を監視し、前記通信の監視によって得られた第２の活動と抽出した前記プロセスとを関連付けて通信監視結果として通知する通信監視装置と、
前記端末と前記通信監視装置とに接続し、前記端末から通知される前記アクセス監視結果及び前記通信監視装置から通知される前記通信監視結果を記録するデータベースを有し、前記アクセス監視結果または前記通信監視装置に含まれる前記第1または前記第2の活動が、所定の条件を満たし、前記第1または前記第2の活動に関連付けられている前記プロセスと同一または関連するプロセスにより実行された活動として前記データベースにすでに記録されているとき、前記端末内で不正なプロセスが活動していると判定する不正プロセス判定装置とを有することを特徴とする不正プロセス検知システム。
【請求項７】
請求項６に記載の不正プロセス検知システムであって、前記端末が、前記プロセスの親子関係を表した情報を記録し、前記アクセス監視結果の通知時に、前記プロセス及び前記プロセスから親プロセスを再帰的に辿ることによって得られるプロセスリストを含めて通知し、前記通信監視装置への通信に、さらに前記プロセスから親プロセスを再帰的に辿ることによって得られるプロセスリストを含み、
前記通信監視装置は、前記通信監視結果の通知時に、さらに前記プロセスリストを含むことを特徴とする不正プロセス検知システム。
【請求項８】
請求項６に記載の不正プロセス検知システムであって、前記活動を実行したプロセスと関連するプロセスとは、前記活動を実行したプロセスを第１のプロセスとし、前記関連するプロセスを第２のプロセスとして、前記第１のプロセス及び前記第１のプロセスを生成した親プロセスを再帰的に辿ることにより得られる第１のプロセスリストと、前記第２のプロセス及び前記第２のプロセスを生成した親プロセスを再帰的に辿ることにより得られる第２のプロセスリストとに共通するプロセスが存在することであることを特徴とする不正プロセス検知システム。
【請求項９】
請求項６から請求項８のいずれか1項に記載の不正プロセス検知システムであって、前記端末は、前記ネットワークを介した通信のIPパケットに前記プロセスを示す情報として前記プロセスの識別子を埋め込ことを特徴とする不正プロセス検知システム。
【請求項１０】
請求項６から請求項９のいずれか1項に記載の不正プロセス検知システムであって、前記不正プロセス判定装置は、前記端末内で不正なプロセスが活動しているという判定に応じて、警告を出力することを特徴とする不正プロセス検知システム。
【請求項１１】
請求項６から請求項１０のいずれか1項に記載の不正プロセス検知システムであって、前記端末が、仮想マシンが前記プロセスを実行し、前記端末内部における前記システムアクセスを監視し、前記アクセスの監視によって得られる前記第1の活動と全ｋ第1の活動を実行した前記プロセスとを結び付けて前記不正プロセス判定装置へ通知し、前記端末によって実行された前記ネットワークを介した通信に、該通信を実行した前記プロセスを示す情報を埋め込み、前記仮想マシンを制御する仮想マシンモニタに有することを特徴とする不正プロセス検知システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して不正な活動をするコンピュータウイルスなどの不正なプロセスを検知するための方法およびシステムに関する。
【背景技術】
【０００２】
ネットワークを介した不正侵入への対策の一つとして、ネットワーク型侵入検知システムが挙げられる。ネットワーク型侵入検知システムに関する技術としては特許文献１に記載されるものがある。特許文献１において、侵入検知装置は、ネットワークを介した通信を監視し、流れているパケットを解析して不正侵入が行われているか否かを判断する。また、不正侵入が行われていると判断した場合、通信遮断などの対策を行う。
【０００３】
ネットワーク型侵入検知システムを応用し、ネットワーク内部にコンピュータウイルスに感染した端末が存在することを検知する技術として、特許文献２や非特許文献１に記載されるものがある。特許文献２に記載される技術では、ネットワークを介した通信の監視結果に基づいて異常な通信の検知を実行する。異常な通信を検知した場合、異常な通信の特徴パターンを端末へ通知し、端末は自身による通信の特徴パターンと比較することで過去に異常な通信をしたか否かを判定する。また、非特許文献１に記載される技術では、ネットワークを介した通信を監視し、一台の端末による複数のネットワーク活動を関連付けることで、不審な活動を行っている端末を検出する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−７３４３３
【特許文献２】特開２００８−２７８２７２
【非特許文献】
【０００５】
【非特許文献１】「BotHunter: Detecting Malware Infection Through IDS-Driven Dialog Correlation」、Guofei Gu、Phillip Porras、Vinod Yegneswaran、Marth Fong and Wenke Lee、Proceedings of 16th USENIX Security Symposium、pp.167-182、2007.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
近年、ボットと呼ばれるコンピュータウイルスの一種が問題となっている。ボットは、ユーザの端末(コンピュータ)上で動作し、ネットワークを介した遠隔地の攻撃者からの指令に対応して不正な活動を行うものである。ボットの不正な活動には、ソフトウェアの脆弱性を狙った攻撃活動、サービス不能攻撃、スパムメールの送信やボットに感染した端末内の機密情報の外部への送信などがある。
【０００７】
従来のワームなどのコンピュータウイルスとは異なり、ボットは、必ずしもソフトウェアの脆弱性を狙って攻撃するわけではない。特許文献１や特許文献２に記載される技術では、ソフトウェアの脆弱性を狙った異常なデータを含む攻撃を検知することはできるが、スパムメールの送信や機密情報の外部への送信といった不正な活動を検知できないという問題がある。これは、例えばスパムメールの送信は、ソフトウェアの動作に異常を生じるようなデータを送信するのではなく、通常のメールと同じ手順を経て送信されるためである。
【０００８】
また、非特許文献１に記載される技術では、複数のネットワーク活動（メール送信とIRC（Internet Relay Chat）によるチャット通信）が不正プロセスなどによらず正規に行われた場合に、正常な端末を不審な端末と誤検知するという問題がある。このように、従来の侵入検知システムを用いた異常検知では、正規の手続きに則った不正な活動を、正常な活動と切り分けて検知することは困難である。
【課題を解決するための手段】
【０００９】
上述の通り、ネットワークにおける活動だけを監視することにより不正プロセスを検知することは困難であるため、本発明では、端末内でのプロセスの活動またはネットワークにおけるプロセスの活動、もしくはその両者を監視し、当該活動と当該プロセスの識別子とを結びつけ、同一のプロセスまたは関連したプロセス群によって活動をまとめ、不正な活動が行われているかどうかを判定する。
【００１０】
ここで、二つのプロセスが関連しているとは、それぞれのプロセスを生成したプロセス（親プロセス）を再帰的に辿って行った場合に、両者に共通するプロセスが存在することを表す。
【００１１】
本発明の具体的な態様は次のとおりである。端末及び通信監視装置及び不正プロセス判定装置は内部ネットワークへと接続する。端末内における、メモリアクセスや記憶装置、入力装置へのアクセスなど（以下システムアクセス）を監視し、システムアクセスの監視によって得られる活動と端末内でのプロセスとを結びつけ、不正プロセス判定装置へと通知する。また、通信監視装置において端末が実行する通信を監視し、通信の監視によって得られる活動と端末内でのプロセスとを結びつけ、不正プロセス判定装置へと通知する。不正プロセス判定装置では通知された活動を参照し、所定の条件を満たす活動が同一または関連するプロセスにより行われたか否かにより、前記端末内で不正なプロセスが活動していると判定する。
【発明の効果】
【００１２】
本発明によれば、ネットワークを介して行われる通信を監視しているだけでは検知が困難な不正プロセスの活動を検知することができる。
【図面の簡単な説明】
【００１３】
【図１】不正プロセス検知システムの構成例を示す。
【図２】不正プロセス検知システムを構成する各装置のハードウェア構成例を示す。
【図３】不正プロセス検知システムを構成する各装置のソフトウェア構成例を示す。
【図４】プロセス情報データベースの構成例を示す。
【図５】システム監視結果データベースの構成例を示す。
【図６】通信監視結果データベースの構成例を示す。
【図７】判定ポリシの構成例を示す。
【図８】システム監視部の処理フロー例を示す。
【図９】通信監視部の処理フロー例を示す。
【図１０】プロセス情報関連付け部の処理フロー例を示す。
【図１１】不正プロセス判定部の処理フロー例を示す。
【図１２】実施例２における端末のソフトウェア構成例を示す。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について、図面を用いて説明する。なお以降の説明は本発明の実施形態を示すものであり、本発明の構成や機能その他を制限するものではない。
【実施例１】
【００１５】
図１は、本実施例による不正プロセス検知システム１００の構成例を示している。不正プロセス検知システム１００は、端末１０１、通信監視装置１０２、不正プロセス判定装置１０３を備え、これらが内部ネットワーク１０４で接続されている。内部ネットワーク１０４には、図示されていない端末や通信装置なども接続されている。通信監視装置１０２は、インターネットなどの外部ネットワーク１０５にも接続されている。
【００１６】
図１において、通信監視装置１０２は、通信監視装置１０２を介して内部ネットワーク１０４と外部ネットワーク１０５との間で通信されるように設置されているが、通信監視装置１０２を設置する位置は図１の位置に限らず、内部ネットワーク１０４と外部ネットワーク１０５との間の通信を監視できる位置に設置されていればよい。
【００１７】
図２は、本不正プロセス検知システムの各装置１０１、１０２、１０３のハードウェア構成例を示す。各装置を構成するハードウェアは、実質的に同様の装置構成を有し、各演算装置で実行されるソフトウェアによって各々の動作が定められる。
【００１８】
端末１０１は情報処理装置であり、ユーザが所有するＰＣなどの端末である。端末１０１は、演算装置２１１、メモリ２１２、ハードディスク等の記憶装置２１３、ネットワークカードなどの通信装置２１４、キーボードやマウス等の入力装置２１５、LCD(Liquid Crystal Display)等の表示装置２１６を備える。演算装置２１１は、記憶装置２１３に格納されたプログラムを実行し、各部の制御を行う。記憶装置２１３は、演算装置２１１が実行するプログラムおよび演算装置２１１が使用するデータ等を格納する。通信装置２１４は、ネットワーク１０４を介して他の装置からデータを受信して演算装置２１１へ送ると共に、演算装置２１１が生成したデータを、ネットワーク１０４を介して他の装置へ送信する。演算装置２１１は、入力装置２１５や表示装置２１６を制御し、入力装置２１５からデータを入力し、データを表示装置２１６へ出力する。記憶装置２１３にはプログラムが格納されており、プログラムは記憶装置２１３からメモリ２１２にロードされ、演算装置２１１によって実行される。端末１０１は、これらのプログラムを記憶装置２１３からロードして実行するが、他の例として、CD、DVD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等の記録媒体からこのプログラムをロードしてもよい。また他の例として、他の装置から、通信媒体を介して、これらのプログラムをロードしてもよい。通信媒体とは、ネットワークまたはこれらを伝搬するディジタル信号または搬送波を指す。
【００１９】
通信監視装置２は、演算装置２２１、メモリ２２２、ハードディスク等の記憶装置２２３、ネットワークカードなどの通信装置２２４および２２５、キーボードやマウス等の入力装置２２６、LCD等の表示装置２２７を備える。不正プロセス判定装置１０３は、演算装置２３１、メモリ２３２、ハードディスク等の記憶装置２３３、ネットワークカードなどの通信装置２３４、キーボードやマウス等の入力装置２３５、LCD等の表示装置２３６を備える。通信監視装置１０２および不正プロセス判定装置１０３のハードウェアとしての動作は端末１０１の動作に準ずる。
【００２０】
図３は、不正プロセス検知システム１００を構成する端末１０１、通信監視装置１０２、及び不正プロセス判定装置１０３のソフトウェア構成例を示す。
【００２１】
本実施例は、端末１０１が内部で動作している不正プロセスを不正プロセス検知システム１００によって検知する。端末１０１は、内部ネットワーク１０４と情報を送受信するデータ送受信部３１１と、内部で動作するプロセス３１２と、プロセス３１２による記憶装置２１３や入力装置２１５などへのアクセスを監視するシステム監視部３１３と、データ送受信部３１１を介した内部ネットワーク４との通信とプロセスとを関連付けるプロセス情報関連付け部３１４と、システム監視部３１３による監視結果を不正プロセス判定装置１０３へと送信するシステム監視結果通知部３１５と、端末１０１内のプロセスに関してどのプロセスがどのプロセスを生成したかという親子関係を表す情報を格納するプロセス情報データベース３１６とを有する。
【００２２】
プロセス３１２は、記憶装置２１３などに格納されている任意のプログラムの端末１０１内での実行時のインスタンスであり、データ送受信部３１１を介した内部ネットワーク４との情報の送受信、メモリ２１２や入力装置２１５などへのアクセス、もしくはその両方を実行する。プロセス３１２によるメモリ２１２や入力装置２１５などの記憶装置及び入出力装置へのアクセスをシステムアクセスと呼び、内部ネットワーク４との情報の送受信を通信と呼ぶ。本実施例における監視対象は、これらのシステムアクセス及び通信である。
【００２３】
図４に、プロセス情報データベース３１６の一例を示す。プロセス情報データベース３１６は、プロセス識別子４０１、親プロセス識別子４０２で構成される。プロセス識別子４０１は、端末１０１内のプロセスを特定する識別子である。親プロセス識別子４０２は、プロセス識別子４０１で表されるプロセスを生成したプロセス（親プロセス）の識別子である。
【００２４】
図３に説明を戻す。通信監視装置１０２は、内部ネットワーク１０４と情報を送受信するデータ送受信部３２１と、外部ネットワーク１０５と情報を送受信するデータ送受信部３２２と、内部ネットワーク１０４と外部ネットワーク１０５との間に通信される情報を監視する通信監視部３２３と、通信監視部３２３による監視結果を不正プロセス判定装置１０３へ送信する通信監視結果通知部３２４とを有する。
【００２５】
不正プロセス判定装置１０３は、内部ネットワーク１０４と情報を送受信するデータ送受信部３３１と、端末１０１のシステム監視結果通知部３１５から通知されるシステム監視結果をデータ送受信部３３１を介して受信するシステム監視結果受信部３３２と、通信監視装置１０２の通信監視結果通知部３２４から通知される通信監視結果をデータ送受信部３３１を介して受信する通信監視結果受信部３３３と、受信したシステム監視結果を蓄積するシステム監視結果データベース３３４と、受信した通信監視結果を蓄積する通信監視結果データベース３３５と、不正な活動（以下、コンピュータウイルスなどを想定した用語として不正な「活動」を用いるが、不正なプロセスの実行に伴う不正な「処理」または「動作」である。同様に、正規のプロセスの実行に伴う「処理」または「動作」も「活動」である。）を規定する判定ポリシ３３６と、システム監視結果データベース３３４と通信監視結果データベース３３５と判定ポリシ３３６の内容を比較することで端末１０１内で動作しているプロセスが不正プロセスであるかどうかを判定する不正プロセス判定部３３７と、不正プロセス判定部３３７によって得られた判定結果に基づき警告を通知する判定結果通知部３３８とを有する。
【００２６】
図５に、システム監視結果データベース３３４の一例を示す。システム監視結果データベース３３４は、端末識別子５０１、プロセス識別子５０２、関連プロセス識別子リスト５０３、活動内容５０４で構成される。端末識別子５０１は、システム監視部３１３によって検知された活動を行った端末の識別子である。プロセス識別子５０２は、システム監視部３１３によって検知された活動を行った、端末識別子５０１で特定される端末１０１内のプロセスの識別子である。関連プロセス識別子リスト５０３は、プロセス識別子５０２で特定されるプロセスを生成したプロセス（親プロセス）の識別子、この親プロセスを生成したプロセスの識別子、というようにプロセス識別子５０２から親プロセスを再帰的に求めていくことによって得られるプロセス識別子のリストである。以下、符号なしで「関連プロセス識別子リスト」と言う場合は、あるプロセスに対してその親プロセスを再帰的に求めて得られるプロセス識別子のリストを表す。活動内容５０４は、システム監視部３１３によって検知された活動内容を表す情報である。
【００２７】
図６に、通信監視結果データベース３３５の一例を示す。通信監視結果データベース３３５は、端末識別子６０１、プロセス識別子６０２、関連プロセス識別子リスト６０３、通信パラメータ６０４、通信内容６０５で構成される。端末識別子６０１は、通信監視部３２３によって活動が検知された端末１０１の識別子である。プロセス識別子６０２は、通信監視部３２３によって活動が検知された端末識別子６０１で特定される端末１０１内のプロセスの識別子である。関連プロセス識別子リスト６０３は、プロセス識別子６０２で特定されるプロセスを生成したプロセス（親プロセス）の識別子、この親プロセスを生成したプロセスの識別子、というようにプロセス識別子６０２から親プロセスを再帰的に求めていくことによって得られるプロセス識別子のリストである。通信パラメータ６０４は、通信監視部３２３によって検知された通信のパラメータであり、プロトコル６０６、発信元IP（Internet Protocol）アドレス６０７、発信元ポート番号６０８、宛先IPアドレス６０９、宛先ポート番号６１０で構成される。通信内容６０５は、通信監視部３２３によって検知された通信内容(通信種別)である。
【００２８】
図７に、判定ポリシ３３６の一例を示す。判定ポリシ３３６は、判定条件監視結果リスト７０１、判定結果７０２で構成される。判定条件監視結果リスト７０１は、不正プロセス判定部３３７において不正プロセスの活動と判定するために満たされるべき条件としての監視結果のリストである。判定条件監視結果リスト７０１は、一つまたは複数の監視結果７０３から構成され、各々の監視結果７０３はカテゴリ７０４と内容７０５で構成される。カテゴリ７０４は、監視結果７０３がシステム監視部３１３によって検知されたものであるか、通信監視部３２３によって検知されたものであるかを表し、内容７０５はシステム監視部３１３または通信監視部３２３によって検知された活動の内容を表す。判定結果７０２は、判定条件監視結果リスト７０１に含まれる監視結果が全て満たされた場合に不正プロセス判定部３３７から得られる判定結果である。
【００２９】
判定ポリシ３３６への情報登録については、本実施例では規定しない。情報登録の例としては、ネットワーク管理者が手動で登録する、既存のアンチウイルスソフトなどのように外部ウェブサイトに定期的にアクセスして登録する情報をダウンロードするなどがある。
【００３０】
不正プロセス検知システム１００の動作を説明する。端末１０１内のプロセス３１２は、メモリ２１２や記憶装置２１３に格納されたデータの読み書き、入力装置２１５や表示装置２１６へアクセスする（これらをまとめてシステムアクセスと呼ぶ）。システム監視部３１３では、プロセス３１２により端末１０１内のシステムアクセスを監視し、不審な活動を行っているプロセスがないか確認する。本実施例においては、システム監視部３１３で監視する対象のプロセスは端末１０１内で動作する全てのプロセスとしているが、システム監視部３１３により監視対象とするプロセスを、特定のプロセスのみとする、特定のユーザにより起動されたプロセスのみとする、など監視対象となるプロセスに制限を加えてもよい。
【００３１】
図８に、システム監視部３１３の処理フローチャートの一例を示す。システム監視部３１３は起動されると、プロセスの起動及びシステムアクセスの監視を行う（ステップ８０１）。プロセスの起動もしくは任意のプロセスによるシステムアクセスを検知すると（ステップ８０２）、プロセス起動の検知であるかを確認する（ステップ８０３）。
【００３２】
プロセス起動の検知である場合、起動を検知したプロセスの識別子、及びこのプロセスを生成したプロセス（親プロセス）の識別子を取得する（ステップ８０４）。プロセスの識別子及び親プロセスの識別子は、OS（Operating System）の機能を利用して取得するか、もしくは端末１０１内のメモリ２１２の特定個所の読み取りによって取得する。
【００３３】
取得したプロセス識別子と親プロセス識別子とをプロセス情報データベース３１６に登録し（ステップ８０５）、ステップ８０１へ戻り、監視を継続する。端末１０１内のプロセスの中に、不正でないことが明らかなプロセス（正規プロセス）が存在する場合、プロセス情報データベース３１６への登録の際、正規プロセスのプロセス識別子と一致するプロセス識別子または親プロセス識別子をプロセス情報データベース３１６に登録をしないように、プロセスをフィルタリングしてもよい。
【００３４】
ステップ８０３で、システムアクセスの検知である場合、このシステムアクセスの内容を特定し（ステップ８０６）、ステップ８０７でこのシステムアクセスを不正プロセス判定部３３７へ通知するか否かを判断する（ステップ８０７）。
【００３５】
システムアクセス監視及びその内容の特定は、例えば「P2Pファイル交換ソフトウエア環境におけるノード型情報流出防止機能の提案」、松岡正明、松木隆宏、寺田真敏、鬼頭哲郎、仲小路博史、情報処理学会 コンピュータセキュリティ研究会 研究報告 Vol.2008 No.71 pp.115-122、2008.に記載される、端末１０１内のファイルアクセスの監視による特定のフォルダ内へのアクセスの検知、または「端末内の動作監視に基づく情報漏えいウイルスの検知手法に関する検討」、鬼頭哲郎、松木隆宏、松岡正明、仲小路博史、寺田真敏、情報処理学会 コンピュータセキュリティ研究会 研究報告 Vol.2008 No.71 pp.317-322、2008.に記載される、任意のプロセスによるOSの機能呼び出しの監視による、事前に規定した機能呼び出しの組み合わせの同一プロセスによる実行の検知などである。
【００３６】
ステップ８０７でシステムアクセスを通知しないと判断した場合、ステップ８０１へ戻り、システムアクセスの監視を続行する。システムアクセスを通知すると判断した場合、このシステムアクセスを実行したプロセスの識別子を取得し（ステップ８０８）、取得したプロセスの関連プロセス識別子リストをプロセス情報データベース３１６から取得する（ステップ８０９）。システムアクセスを実行したプロセスは、端末１０１のメモリ２１２の特定個所の読み取りによって特定する。OSによってはこのようなメモリの読み取りを機能として提供している場合もある。システム監視結果通知部３１５を呼び出し（ステップ８１０）、不正プロセス判定装置１０３へシステム監視結果（プロセスの識別子（ステップ８０８の結果）、関連プロセス識別子リスト（ステップ８０９の結果）、活動内容（ステップ８０６の結果））を通知し、ステップ８０１へ戻り、システムアクセスの監視を続行する。
【００３７】
プロセス３１２は、システムアクセスに加え、データ送受信部３１１を介して通信する。端末１０１内のプロセス情報関連付け部３１４では、プロセス３１２によるデータ送受信部３１１を介した通信を監視し、プロセスと通信パラメータとを関連付けする。プロセス情報関連付け部３１４は、プロセスの情報と通信のパラメータとを関連付ける機能を有したソフトウェアであって、通信監視装置１０２の通信監視部３２３が通信を検知した場合に、その通信を実したプロセスが何であるか特定できるような情報を提供する。
【００３８】
図９に、プロセス情報関連付け部３１４の処理フローチャートの一例を示す。プロセス情報関連付け部３１４は、データ送受信部３１１を介したパケットの送信を監視する（ステップ９０１）。パケットの送信を検知すると（ステップ９０２）、このパケットの送信を一時停止させ（ステップ９０３）、送信されるパケットがIPパケットであるか確認する（ステップ９０４）。IPパケットでない場合には、このパケットをデータ送受信部３１１を介して送信し（ステップ９０８）、ステップ９０１へ戻り、監視を続行する。
【００３９】
送信されるパケットがIPパケットである場合、このパケットを送信しようとしたプロセスの識別子を取得し（ステップ９０５）、取得したプロセスの関連プロセス識別子リストをプロセス情報データベース３１６から取得する（ステップ９０６）。パケットを送信しようとしたプロセスは、OSの機能を利用して取得するか、もしくは端末１０１内のメモリ２１２の特定個所の読み取りによって特定する。取得したプロセスの識別子及び関連プロセス識別子リストをこのパケットに埋め込み（ステップ９０７）、プロセスの識別子及び関連プロセス識別子リストを埋め込んだパケットを送信し（ステップ９０８）、ステップ９０１へ戻り、監視を続行する。
【００４０】
ステップ９０７において、プロセス識別子などは、たとえば「P2Pファイル交換ソフトウェア環境における情報流通対策アーキテクチャの検討」、寺田真敏、鬼頭哲郎、仲小路博史、松木隆宏、松岡正明、情報処理学会 コンピュータセキュリティ研究会 研究報告 Vol.2008 No.21 pp.243-248、2008.に記載されるように、IPパケットのオプションフィールドに埋め込む。
【００４１】
IPパケットへプロセス情報を埋め込むことで、通信監視部３２３で通信を検知した場合に、他の情報に頼ることなく、パケットの特定の部分（たとえば、オプションフィールド）を参照することで、その通信を実行したプロセスを特定できる。
【００４２】
プロセス情報関連付け部３１４における通信とプロセスとの対応付けの他の例として、通信が実行されるたびに、通信パラメータとプロセス識別子との対応を記録しておき、所定のタイミングで通信監視装置へ通知してもよい。
【００４３】
端末１０１内のプロセス３１２が外部ネットワーク１０５に向けてパケットを送信した場合、このパケットは通信監視装置１０２を通過する。通信監視装置１０２内の通信監視部３２３では、通信監視装置１０２を通過するパケットを監視し、通過するパケットによる通信がどのようなものであるかを特定する。
【００４４】
図１０に、通信監視部３２３の処理フローチャートの一例を示す。通信監視部３２３は、通信監視装置１０２内を通過する通信を監視する（ステップ１００１）。通信を検知すると（ステップ１００２）、その通信の活動内容の特定し（ステップ１００３）、この活動を通知するか否かを判断する（ステップ１００４）。
【００４５】
活動内容は、例えば、特許文献１に記載されているような既存の侵入検知システムにおける手法を用いて、または通過しようとするパケットのIPアドレスやポート番号に基づいて特定する。
【００４６】
ステップ１００４にて通知しないと判断した場合には、ステップ１００１へと戻り、監視を続行する。ステップ１００４にて通知すると判断した場合には、この通信を実行したプロセスに関する情報を取得する（ステップ１００５）。
【００４７】
ステップ１００５におけるプロセスに関する情報の取得、すなわちプロセス識別子と関連プロセス識別子リストの取得は、端末１０１のプロセス関連付け部３１４における通信とプロセスとの対応付け方式によって変化する。前述のように、プロセス関連付け部３１４においてIPパケットにプロセス識別子及び関連プロセス識別子リストを埋め込む場合は、パケットに埋め込まれた情報を抽出することでプロセス識別子及び関連プロセス識別子リストを取得する。
【００４８】
通信監視結果通知部３２４を呼び出し（ステップ１００６）、不正プロセス判定装置１０３へ通信監視結果（通信を行ったプロセスの識別子、関連プロセス識別子リスト、通信内容）を通知し、ステップ１００１へ戻り、通信の監視を続行する。
【００４９】
端末１０１内のシステム監視部３１３および通信監視装置１０２内の通信監視部３２３で検知された活動に関する情報はそれぞれシステム監視結果通知部３１５および通信監視結果通知部３２４により不正プロセス判定装置１０３へ送られる。システム監視結果受信部３３２では、端末１０１から送られてきたシステム監視結果を受信し、システム監視結果データベース３３４へ受信したシステム監視結果を記録し、このシステム監視結果を呼び出しパラメータとして不正プロセス判定部３３７を呼び出す。通信監視結果受信部３３３では、通信監視装置１０２から送られてきた通信監視結果を受信し、通信監視結果データベース３３５へ受信した通信監視結果を記録し、この通信監視結果を呼び出しパラメータとして不正プロセス判定部３３７を呼び出す。不正プロセス判定部３３７では、パラメータとして与えられる監視結果、システム監視結果データベース３３４、通信監視結果データベース３３５、および判定ポリシ３３６に格納された情報を基に、端末１０１内で不正なプロセスが活動しているか否かを判定する。
【００５０】
図１１に、不正プロセス判定部３３７の処理フローチャートの一例を示す。不正プロセス判定部３３７は、パラメータとして渡された監視結果を取得する（ステップ１１０１）。パラメータとして渡される監視結果は、システム監視結果と通信監視結果とのいずれかであるが、以下では両者をまとめて監視結果として取り扱う。取得した監視結果から端末識別子を抽出する（ステップ１１０２）。システム監視結果データベース３３４を参照し（ステップ１１０３）、ステップ１１０２にて抽出した端末識別子と同一の端末識別子を持つシステム監視結果があるか否かを確認する（ステップ１１０４）。システム監視結果データベース３３４に抽出した端末識別子と同一の端末識別子を持つシステム監視結果がある場合にはステップ１１０５へ進み、ない場合にはステップ１１０７へ進む。抽出した端末識別子と同一の端末識別子を持つシステム監視結果のうち、取得した監視結果と関連するシステム監視結果がシステム監視結果データベース３３４にあるか否かを確認する（ステップ１１０５）。システム監視結果データベース３３４に抽出した監視結果と関連するシステム監視結果がある場合には、関連するシステム監視結果を取得する（ステップ１１０６）。ある監視結果が他のシステム監視結果と関連するとは、ある監視結果に含まれるプロセス識別子または関連プロセス識別子リストに記載されたプロセス識別子のいずれかが、他のシステム監視結果に含まれるプロセス識別子または関連プロセス識別子リストに記載されたプロセス識別子のいずれかと一致することを表す。
【００５１】
通信監視結果データベース３３５を参照し（ステップ１１０７）、ステップ１１０２にて抽出した端末識別子と同一の端末識別子を持つ通信監視結果があるか否かを確認する（ステップ１１０８）。通信監視結果データベース３３５に抽出した端末識別子と同一の端末識別子を持つ通信監視結果がある場合にはステップ１１０９へ進み、ない場合にはステップ１０１１へ進む。抽出した端末識別子と同一の端末識別子を持つ通信監視結果のうち、取得した監視結果と関連する通信監視結果があるか否かを確認する（ステップ１１０９）。通信監視結果データベース３３５に取得した監視結果と関連する通信監視結果がある場合には、関連する通信監視結果を取得する（ステップ１１１０）。ある監視結果が他の通信監視結果と関連するとは、前述の通りである。
【００５２】
判定ポリシを参照し（ステップ１１１１）、ステップ１１０１にて取得した監視結果、ステップ１１０６で取得したシステム監視結果、及びステップ１１１０で取得した通信監視結果により判定条件を全て満たすポリシがあるか否かを確認する（ステップ１１１２）。図１１の処理フローチャートを簡略化してあるので、ステップ１１１２の確認対象を分かり易く説明すると、判定条件を全て満たすポリシがあるか否かを確認する対象は、ステップ１１０１にて取得した監視結果に関連するシステム監視結果をステップ１１０６で取得した場合及びステップ１１０１にて取得した監視結果に関連する通信監視結果をステップ１１１０で取得した場合における、ステップ１１０１で取得した監視結果である。すなわち、ステップ１１０１にて取得した監視結果に関連する監視結果がすでにシステム監視結果データベース３３４または通信監視結果データベース３３５にある場合を対象とする。該当するポリシがない場合には処理を終了する。該当するポリシがある場合には、不正なプロセスによる活動が行われていたと判定し（ステップ１１１３）、判定結果通知部３３８を呼び出し（ステップ１１１４）、ステップ１１０１で取得した監視結果を、システム監視結果データベース３３４または通信監視結果データベース３３５に記録して、処理を終了する。
【００５３】
不正プロセス判定部３３７によって判定結果通知部３３８が呼び出されると、判定結果通知部３３８は、端末１０１内で不正プロセスが活動している旨のメッセージ及び不正と判定されたプロセスのプロセス識別子を警告として端末１０１、または図示していない通信制御装置、または内部ネットワーク１０４を管理する組織に通知する。
【００５４】
端末１０１は警告を受信すると、不正と判定されたプロセスの停止、および／またはプロセスのシステムアクセスや通信のブロックなどの措置を取ることにより、不正なプロセスの活動を抑制する。また、プロセスそのものへの措置以外に取りうる措置としては、この不正なプロセスの実行ファイルの以後の起動の禁止、この不正なプロセスの実行ファイルのプロセスが他にある場合にそのプロセスの停止などである。
【００５５】
通信制御装置は警告を受信すると、不正プロセスが活動していると判定された端末１０１による通信、もしくは端末１０１による通信のうち不正と判定されたプロセスの通信を制御する。ここで、制御とは、通信の遮断、帯域制限、経路変更などである。この制御を実行する通信制御装置は、端末１０１から外部ネットワーク１０５へとアクセスする際に通過する経路上に接続するか、通信監視装置１０２内に通信制御装置の機能を内蔵してもよい。
【００５６】
内部ネットワーク１０４を管理する組織は警告を受信すると、不正プロセスが活動していると判定された端末１０１への警告の送信、内部ネットワーク１０４に接続されている端末１０１以外の端末への警告の送信、通信制御装置への警告の送信など、ネットワーク全体の安全性を高める対策を実施する。
【００５７】
本実施例においては、端末１０１、通信監視装置１０２、不正プロセス判定装置１０３の３つの装置を用いているが、端末１０１または通信監視装置１０２が不正プロセス判定装置１０３を兼ね、２つの装置から構成されるシステムでもよい。端末１０１が不正プロセス判定装置１０３を兼ねる場合には、システム監視結果通知部３１５とシステム監視結果受信部３３２はネットワークを介して接続されている必要はなく、システム監視結果通知部３１５からシステム監視結果受信部３３２へ直接システム監視結果を通知する。同様に、通信監視装置１０２が不正プロセス判定装置１０３を兼ねる場合には、通信監視結果通知部３２４と通信監視結果受信部３３３はネットワークを介して接続されている必要はなく、通信監視結果通知部３２４から通信監視結果受信部３３３へ直接通信監視結果を通知する。
【００５８】
また、端末１０１が通信監視装置１０２を兼ねていてもよい。この場合、通信監視部３２３が監視する対象の通信は、内部ネットワーク１０４と外部ネットワーク１０５の間の通信ではなく、端末１０１が内部ネットワーク１０４に対して行う通信となる。またこの場合、プロセス情報関連付け部３１４は、図９のステップ９０７でのプロセス識別子及び関連プロセス識別子リストのIPパケットへの埋め込みを行う必要はなく、プロセス識別子及び関連プロセス識別子リストと通信パラメータとの対応をメモリや記憶装置に保持しておき、通信監視部３２３が図１０のステップ１００５でプロセス識別子及び関連プロセス識別子リストを取得する際に参照できるようにしておけばよい。
【００５９】
また、本実施例においては、システム監視結果通知部３１５及び通信監視結果通知部３２４によって通知される情報には活動を行ったプロセス識別子とその関連プロセス識別子リストが含まれるが、通知される情報に関連プロセス識別子リストを含まなくてもよい。その場合は、端末１０１から不正プロセス判定装置１０３へとプロセス情報データベース３１６に格納された情報を通知し、不正プロセス判定装置１０３のシステム監視結果受信部３３２及び通信監視結果受信部３３３においてプロセス情報データベース３１６に格納された情報から関連プロセス識別子リストを取得する。
【００６０】
本実施例によれば、システムの監視によって得られた活動と通信の監視によって得られた活動をプロセス識別子によって関連付けることによって、不正なプロセスが活動していることを検知できる。
【実施例２】
【００６１】
近年注目されている技術として、仮想マシンモニタという技術がある。仮想マシンモニタは、端末１０１のような情報処理装置の上で動作するソフトウェアであり、実際の端末と同様に扱える仮想マシンを動作させる。仮想マシンは仮想マシンモニタの上で動作する（仮想マシンは仮想マシンモニタの制御下で動作する）ため、仮想マシンモニタは自身が管理するメモリを参照することで、仮想マシンモニタの上で動作している仮想マシンの状態を監視することができる。ボットなどの不正プロセスの中には、端末内で監視が行われていることを検知し、監視を無効化する機能を持つものがあるが、不正プロセスが動作する仮想マシンを仮想マシンモニタを用いて外部から監視することで、監視を無効化されることがない。
【００６２】
本実施例では、ユーザの利用する端末が仮想マシンである場合の例を示す。本実施例と実施例１との相違点は、端末１０１のソフトウェア構成である。実施例１と共通する内容に関しては説明を省略する。
【００６３】
図１２は、本実施例における端末１０１のソフトウェア構成を示している。端末１０１は内部ネットワーク１０４に接続されており、端末１０１の中では、仮想マシンモニタ１２０１が動作し、その上で仮想マシン１２０２が稼働する。仮想マシン１２０２のハードウェア構成は実施例１の端末１０１と同様であり、演算装置、メモリ、記憶装置、通信装置、入力装置、表示装置を備える（一部のみ図示）。仮想マシン１２０２内で活動するプロセス１２０３は、実施例１におけるプロセス３１２と同様、データ送受信部１２０４を介した内部ネットワーク１０４との通信や、メモリ１２０５や記憶装置１２０６、入力装置１２０７、表示装置１２０８などへアクセスする。このアクセスをシステムアクセスと呼ぶ。
【００６４】
本実施例において、仮想マシンモニタ１２０１上には、仮想マシン１２０２以外に、内部ネットワーク１０４とデータを送受信するデータ送受信部１２０９、システム監視部１２１０、プロセス情報関連付け部１２１１、システム監視結果通知部１２１２、及びプロセス情報データベース１２１３がある。システム監視部１２１０では、仮想マシン１２０２内部でのプロセス１２０３のシステムアクセスを仮想マシン１２０２の外部から監視する。プロセス情報関連付け部１２１１では、仮想マシン１２０２から内部ネットワーク１０４への通信を仮想マシン１２０２の外部から監視し、仮想マシン１２０２内のプロセスと監視した通信の通信パラメータとを関連付ける。システム監視結果通知部１２１２は、システム監視部１２１０によって得られた監視結果をデータ送受信部１２０９を介して不正プロセス判定装置１０３へ送信する。プロセス情報データベース１２１３は、仮想マシン１２０２内のプロセスに関して、このプロセスのプロセス識別子と、このプロセスを生成したプロセス（親プロセス）のプロセス識別子とを格納している。
【００６５】
システム監視部１２１０の処理は、仮想マシン１２０２の外部から仮想マシン１２０２内部におけるシステムアクセスを監視すること以外は図８に示した実施例１におけるシステム監視部３１３の処理と同じである。また、同様に、プロセス情報関連付け部１２１１の処理は、プロセスの情報を仮想マシン１２０２の外部から取得すること以外は図９に示した実施例１におけるプロセス情報関連付け部３１４の処理と同じである。同様に、システム監視結果通知部１２１２の動作は実施例１におけるシステム監視結果通知部３１５の動作と同じであり、プロセス情報データベース１２１３の構造は図４に示した実施例１におけるプロセス情報データベース３１６の構造と同じである。
【００６６】
本実施例によれば、仮想マシン１２０２の外側から仮想マシン１２０２内部を監視することで、不正プロセスによるセキュリティソフトの無効化などの影響を受けることなく監視することができ、端末の監視を妨害するような悪質な不正プロセスに対しても検知が可能になる。
【符号の説明】
【００６７】
１００：不正プロセス検知システム、１０１：端末、１０２：通信監視装置、１０３：不正プロセス判定装置、１０４：内部ネットワーク、１０５：外部ネットワーク、３１３：システム監視部、３１４：プロセス情報関連付け部、３１５：システム監視結果通知部、３１６：プロセス情報データベース、３２３：通信監視部、３２４：通信監視結果通知部、３３２：システム監視結果受信部、３３３：通信監視結果受信部、３３４：システム監視結果データベース、３３５：通信監視結果データベース、３３６：判定ポリシ、３３７：不正プロセス判定部、３３８：判定結果通知部。
【図１】
2011053893.tif 000003
【図２】
2011053893.tif 000004
【図３】
2011053893.tif 000005
【図４】
2011053893.tif 000006
【図５】
2011053893.tif 000007
【図６】
2011053893.tif 000008
【図７】
2011053893.tif 000009
【図８】
2011053893.tif 000010
【図９】
2011053893.tif 000011
【図１０】
2011053893.tif 000012
【図１１】
2011053893.tif 000013
【図１２】
2011053893.tif 000014