(57)【特許請求の範囲】
【請求項１】
マルウェアの拡散範囲を特定する特定装置であって、
１以上の情報処理装置において実行された操作の履歴である操作履歴を記憶した記憶手段と、
マルウェアを示す情報を含む、マルウェア拡散情報を取得する取得手段と、
前記操作履歴に基づいて、前記取得手段により取得されたマルウェア拡散情報が示すマルウェアの侵入経路を特定し、
前記操作履歴において前記侵入経路に含まれる１以上の操作に対応する１以上のマルウェア拡散情報を生成し、
前記１以上のマルウェア拡散情報の各々について、前記操作履歴において当該マルウェア拡散情報が示すマルウェアを直接的又は間接的な起点としてマルウェアを拡散させる１以上の操作を特定する
特定手段と、
を備えることを特徴とする特定装置。
【請求項２】
前記マルウェア拡散情報は、マルウェアの拡散又は侵入の原因を示す原因情報を更に含み、
前記特定手段は、前記原因情報に基づく処理により、前記１以上の操作を特定する
ことを特徴とする請求項１に記載の特定装置。
【請求項３】
前記原因情報が、ファイルが原因でマルウェアが拡散したことを示す場合、前記特定手段は、前記操作履歴において、前記マルウェア拡散情報が示すマルウェアの実行により生じたプロセスによる、ファイルの作成、ファイルの変更、レジストリの作成、レジストリの変更、及び共有メモリへのアクセスのうちの少なくともいずれかに関する操作を特定する
ことを特徴とする請求項２に記載の特定装置。
【請求項４】
前記原因情報が、ファイルが原因でマルウェアが拡散したことを示す場合、前記特定手段は、前記操作履歴において、前記マルウェア拡散情報が示すマルウェアの実行により生じたプロセスにより起動されたプロセス、又は前記マルウェア拡散情報が示すマルウェアを読み込んだプロセスによる、ファイルの作成、ファイルの変更、レジストリの作成、レジストリの変更、及び共有メモリへのアクセスのうちの少なくともいずれかに関する操作を特定する
ことを特徴とする請求項２又は３に記載の特定装置。
【請求項５】
前記原因情報が、ファイルが原因でマルウェアが拡散したことを示す場合、前記特定手段は、前記操作履歴において、前記マルウェア拡散情報が示すマルウェアのコピー、移動、及びリネームのうちの少なくともいずれかに関する操作を特定する
ことを特徴とする請求項２乃至４のいずれか１項に記載の特定装置。
【請求項６】
前記原因情報が、ＷＥＢアクセスが原因でマルウェアが侵入したことを示す場合、前記特定手段は、前記操作履歴において、前記マルウェア拡散情報が示す侵入元のＵＲＬにアクセスしたプロセスによる、前記侵入元のＵＲＬへのアクセスから他のＵＲＬへのアクセスの間に行われた、ファイルの作成及びファイルの上書きのうちの少なくともいずれかに関する操作を特定する
ことを特徴とする請求項２に記載の特定装置。
【請求項７】
前記原因情報が、メール受信が原因でマルウェアが侵入したことを示す場合、前記特定手段は、前記操作履歴において、前記マルウェア拡散情報が示す侵入元のメールアドレスからメールを受信したプロセスによる、ファイルの作成及びファイルの上書きのうちの少なくともいずれかに関する操作を特定する
ことを特徴とする請求項２に記載の特定装置。
【請求項８】
前記原因情報が、リムーバブルデバイスが原因でマルウェアが拡散したことを示す場合、前記特定手段は、前記操作履歴において、前記マルウェア拡散情報が示す侵入元のリムーバブルデバイスからのファイルのコピー、移動、及びリネームのうちの少なくともいずれかに関する操作を特定する
ことを特徴とする請求項２に記載の特定装置。
【請求項９】
前記原因情報が、共有フォルダが原因でマルウェアが拡散したことを示す場合、前記特定手段は、前記操作履歴において、前記マルウェア拡散情報が示す侵入元の共有フォルダからのファイルのコピー、移動、及びリネームのうちの少なくともいずれかに関する操作を特定する
ことを特徴とする請求項２に記載の特定装置。
【請求項１０】
前記特定手段は、前記取得手段により取得されたマルウェア拡散情報に基づいて特定した１以上の操作に対応する１以上のマルウェア拡散情報を生成する
ことを特徴とする請求項１乃至９のいずれか１項に記載の特定装置。
【請求項１１】
マルウェアを検出する検出手段を更に備え、
前記取得手段は、前記検出手段により検出されたマルウェアに対応するマルウェア拡散情報を取得する
ことを特徴とする請求項１乃至１０のいずれか１項に記載の特定装置。
【請求項１２】
前記取得手段は、ユーザにより入力されたマルウェア拡散情報を取得する
ことを特徴とする請求項１乃至１０のいずれか１項に記載の特定装置。
【請求項１３】
マルウェアの拡散範囲を特定する特定装置の制御方法であって、
前記特定装置の記憶手段が、１以上の情報処理装置において実行された操作の履歴である操作履歴を記憶した記憶工程と、
前記特定装置の取得手段が、マルウェアを示す情報を含む、マルウェア拡散情報を取得する取得工程と、
前記特定装置の特定手段が、
前記操作履歴に基づいて、前記取得工程により取得されたマルウェア拡散情報が示すマルウェアの侵入経路を特定し、
前記操作履歴において前記侵入経路に含まれる１以上の操作に対応する１以上のマルウェア拡散情報を生成し、
前記１以上のマルウェア拡散情報の各々について、前記操作履歴において当該マルウェア拡散情報が示すマルウェアを直接的又は間接的な起点としてマルウェアを拡散させる１以上の操作を特定する
特定工程と、
を備えることを特徴とする特定装置の制御方法。
【請求項１４】
マルウェアの拡散範囲を特定する特定処理をコンピュータに実行させるプログラムであって、当該コンピュータを、
１以上の情報処理装置において実行された操作の履歴である操作履歴を記憶した記憶手
段と、
マルウェアを示す情報を含む、マルウェア拡散情報を取得する取得手段と、
前記操作履歴に基づいて、前記取得手段により取得されたマルウェア拡散情報が示す
マルウェアの侵入経路を特定し、
前記操作履歴において前記侵入経路に含まれる１以上の操作に対応する１以上のマル
ウェア拡散情報を生成し、
前記１以上のマルウェア拡散情報の各々について、前記操作履歴において当該マルウ
ェア拡散情報が示すマルウェアを直接的又は間接的な起点としてマルウェアを拡散させる
１以上の操作を特定する
特定手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特定装置、その制御方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、コンピュータ上でマルウェアが発見された際に、マルウェアの侵入経路を割り出す技術が知られている（特許文献１参照）。侵入経路を割り出すことができれば、侵入口を塞ぐなどの対策を取ることが可能である。しかし、侵入口を塞いだとしても、既に侵入してしまったマルウェアが自動的に消滅する訳ではない。企業や学校のような組織においては、多数のコンピュータがネットワークを介して接続されており、侵入したマルウェアは、ネットワークを介して広範に拡散してしまう可能性がある。マルウェアの拡散範囲を把握する技術としては、特許文献２が開示するような技術が知られている。特許文献２によれば、マルウェア（ウイルス）として検出されたファイルに対するアクセスを行ったＰＣを特定し、そのＰＣをネットワークから遮断する処置が行われる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１４／０８７５９７号
【特許文献２】特開２００９−１７６１３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献２では、マルウェア（ウイルス）として検出されたファイルに直接アクセスしたＰＣを検出するにすぎない。そのため、例えば、マルウェアとして検出されたファイルに対して、あるＰＣ（ＰＣＡ）がアクセスし、ＰＣＡが、それを更に別のＰＣ（ＰＣＢ）にコピーした場合に対処できない。この場合、ＰＣＡはネットワーク遮断の対象になるが、ＰＣＢは対象外となるため、マルウェアの拡散を防ぐことができない可能性がある。【０００５】
本発明はこのような状況に鑑みてなされたものであり、マルウェアの拡散範囲の特定精度を向上させる技術を提供する
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明は、マルウェアの拡散範囲を特定する特定装置であって、１以上の情報処理装置において実行された操作の履歴である操作履歴を記憶した記憶手段と、マルウェアを示す情報、又はマルウェアの侵入元を示す情報を含む、マルウェア拡散情報を取得する取得手段と、前記操作履歴において、前記マルウェア拡散情報が示すマルウェア又は侵入元を直接的又は間接的な起点としてマルウェアを拡散させる１以上の操作を特定する特定手段と、を備えることを特徴とする特定装置を提供する。
【発明の効果】
【０００７】
本発明によれば、マルウェアの拡散範囲の特定精度を向上させることが可能となる。【０００８】
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
【図面の簡単な説明】
【０００９】
添付図面は明細書に含まれ、その一部を構成し、本発明の実施の形態を示し、その記述と共に本発明の原理を説明するために用いられる。
【図１】マルウェアの拡散の概念図。
【図２】マルウェアの拡散範囲を特定する特定装置の全体構成を示す図。
【図３】ＰＣ操作ログ６のフォーマットの例を示す図。
【図４】ファイルに関するマルウェア拡散範囲リスト５の例を示す図。
【図５】レジストリに関するマルウェア拡散範囲リスト５の例を示す図。
【図６】共有メモリに関するマルウェア拡散範囲リスト５の例を示す図。
【図７】クライアントＰＣ８及びサーバ９のハードウェア構成を示す図。
【図８】クライアントＰＣ８によるＰＣ操作ログの出力処理を示すフローチャート。
【図９】ログトレース処理のフローチャート。
【図１０】トレースフロー１−Ａに関するフローチャート。
【図１１】トレースフロー１−Ｂに関するフローチャート。
【図１２Ａ】トレースフロー２に関するフローチャート。
【図１２Ｂ】トレースフロー２に関するフローチャート。
【図１３Ａ】トレースフロー３に関するフローチャート。
【図１３Ｂ】トレースフロー３に関するフローチャート。
【図１４Ａ】トレースフロー４に関するフローチャート。
【図１４Ｂ】トレースフロー４に関するフローチャート。
【図１５Ａ】トレースフロー２−Ａに関するフローチャート。
【図１５Ｂ】トレースフロー２−Ａに関するフローチャート。
【図１６Ａ】トレースフロー２−Ｂに関するフローチャート。
【図１６Ｂ】トレースフロー２−Ｂに関するフローチャート。
【図１７】ＰＣ操作ログの一例を示す図。
【図１８】図１７に示すＰＣ操作ログのバックトレースにより得られるマルウェア拡散範囲リストを示す図。
【図１９】ＰＣ操作ログの一例を示す図。
【図２０】図１９、図２５、又は図２８に示すＰＣ操作ログのバックトレースにより得られるマルウェア拡散範囲リストを示す図。
【図２１】ＰＣ操作ログの一例を示す図。
【図２２】図２１に示すＰＣ操作ログのバックトレースにより得られるマルウェア拡散範囲リストを示す図。
【図２３】ＰＣ操作ログの一例を示す図。
【図２４】図２３に示すＰＣ操作ログのバックトレースにより得られるマルウェア拡散範囲リストを示す図。
【図２５】ＰＣ操作ログの一例を示す図。
【図２６】図２５に示すＰＣ操作ログのバックトレースにより得られるマルウェア拡散範囲リストに対して途中までフォワードトレースを行った結果を示す図。
【図２７】図２６に示すマルウェア拡散範囲リストの６番目の項目「リムーバブルデバイス（出口）」に対してフォワードトレースを行った結果を示す図。
【図２８】ＰＣ操作ログの一例を示す図。
【図２９】図２８に示すＰＣ操作ログのバックトレースにより得られるマルウェア拡散範囲リストに対して途中までフォワードトレースを行った結果を示す図。
【図３０】図２９に示すマルウェア拡散範囲リストの６番目の項目「共有（出口）」に対してフォワードトレースを行った結果を示す図。
【図３１Ａ】マルウェア拡散範囲リストの一例を示す図。
【図３１Ｂ】マルウェア拡散範囲リストの一例を示す図。
【図３２】図３１Ａ及び図３１Ｂに示すマルウェア拡散範囲リストの視覚的な表現を示す図。
【図３３】図１７に示すＰＣ操作ログに対してフォワードトレースを行った結果を示す図。
【図３４】図１９に示すＰＣ操作ログに対してフォワードトレースを行った結果を示す図。
【図３５】図２１に示すＰＣ操作ログに対してフォワードトレースを行った結果を示す図。
【図３６】図２３に示すＰＣ操作ログに対してフォワードトレースを行った結果を示す図。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して、本発明の実施形態を説明する。なお、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。また、実施形態の中で説明されている特徴の組み合わせすべてが、本発明に必須とは限らない。
【００１１】
［第１の実施形態］
＜＜マルウェアの拡散＞＞
最初に、図１を参照して、本実施形態で想定するマルウェアの説明と、マルウェアの拡散について説明する。
【００１２】
ファイル「Malware.exe」はマルウェアであり、マルウェアとしての活動を行うバイナリやスクリプトコードなどを含んでいる。「Malware.exe」がプロセスとして実行されてファイル「Malware.txt」を作成した場合、「Malware.txt」には、マルウェアとしての活動を行うバイナリやスクリプトコードなどが含まれている可能性がある。そのため、本実施形態では、「マルウェアが作成したファイル」もマルウェアと見なす。
【００１３】
また、マルウェアと見なされた「Malware.txt」をマルウェアではない別のプロセス「A.exe」が読み込んだとすると、そのプロセス「A.exe」は、マルウェアとして動作する可能性がある。そのため、本実施形態では、「マルウェアが作成したファイルを読み込んだプロセス」もマルウェアと見なす。但し、「Malware.txt」を読み込んだプロセス「A.exe」が終了してしまえば、読み込まれた「Malware.txt」のデータはメモリ上から破棄されるため、再び「A.exe」がプロセスとして起動した際には、「A.exe」は通常のプロセスとして扱ってもよいといえる。このため、本実施形態では、「Malware.txt」を読み込んでから終了するまでの間だけ、プロセス「A.exe」をマルウェアと見なす。
【００１４】
また、「A.exe」がマルウェアと見なされている状態でファイル「A.txt」を作成したとすると、「A.txt」には、「Malware.txt」と同じようなマルウェアのコードが含まれている可能性がある。そのため、「A.txt」を他のプロセス「B.exe」が読み込んだ場合、プロセス「B.exe」もマルウェアと見なす。
【００１５】
こうして作成された「A.txt」は、マルウェアの拡散範囲に含まれるため、そのファイル情報は、「マルウェア拡散範囲リスト」（後述）に登録される。また、プロセス「A.exe」が、「マルウェアが作成したファイルを読み込んだ」場合だけでなく、「マルウェアによって変更されたレジストリを読み込んだ」場合や、「マルウェアが使用した共有メモリにアクセスした」場合も、プロセス「A.exe」をマルウェアと見なす。即ち、マルウェアによってレジストリや共有メモリが作成・変更された場合、それらの情報も、ファイルの情報と同じく、マルウェア拡散範囲リストに登録される。そして、プロセス「B.exe」が更にファイルやレジストリ等を作った場合、そのファイルやレジストリ等を読み込んだプロセスも同様の扱いを受ける。
【００１６】
また、ファイル「A.exe」が他のマルウェアによってプロセスとして起動された場合も、何らかの手段（起動時のパラメータや、プロセス間通信など）により、プロセス「A.exe」がマルウェアからデータを受け取っている可能性がある。そのため、前述の場合と同様に、プロセス「A.exe」をマルウェアと見なす。
【００１７】
上述のような処理を行うことで、マルウェアに感染している可能性のあるファイルやレジストリ等が、マルウェア拡散範囲リストに登録されていく。処理が完了した後、このマルウェア拡散範囲リストを参照することによって、マルウェアに感染している可能性のある範囲を、ファイル単位やレジストリ単位で把握することができる。また、例えば、起動しないとマルウェアとして検知されないファイルが存在する場合でも、マルウェア拡散範囲リストを参照することによって、そのようなファイルをマルウェアとして検知することが可能である。
【００１８】
以上の説明から分かる通り、本実施形態において、「ファイルがマルウェアに感染している」とは、ファイルがマルウェアとしての活動を行うバイナリやスクリプトコードなどを含んでいる（或いは、含んでいる可能性がある）ということを意味する。このようなファイルがプロセスとして実行されると、このプロセスはマルウェアとしての活動を行う可能性がある。また、このようなファイルを別のプロセスが読み込んだ場合、そのプロセスもマルウェアとしての活動を行う可能性がある。
【００１９】
＜＜特定装置の全体構成＞＞
図２を参照して、マルウェアの拡散範囲を特定する特定装置の全体構成について説明する。特定装置は、ネットワーク７を介して相互に接続されたクライアントＰＣ８（情報処理装置）及びサーバ９を含む。図２にはクライアントＰＣ８が１つしか図示されていないが、複数のクライアントＰＣがネットワーク７に接続されていてもよい。
【００２０】
ＰＣ操作監視部１は、クライアントＰＣ８における操作・処理を監視する。例えば、任意のプロセスが起動した場合、ＰＣ操作監視部１は、そのプロセスに関する情報（ファイルパス、ファイルサイズ、ファイルハッシュ値等）を取得して、この情報を保持する。この情報は、起動されたプロセスがマルウェア拡散範囲リスト（後述）に登録されているかの判定などに利用される。ＰＣ操作監視部１が監視する操作・処理としては、例えば以下のものが挙げられる。
【００２１】
・ファイルの生成・変更・読込
・レジストリキーの生成・変更・アクセス
・共有メモリの生成・変更・アクセス
・ＵＲＬへのアクセス
・電子メールの受信
ＰＣ操作監視部１は、上記の操作を検知すると、その操作内容をログ出力部２（後述）に伝え、ＰＣ操作ログとして出力させる。ＰＣ操作監視部１に用いられる技術は、ファイルシステムフィルタドライバ、ネットワークフィルタドライバ、パケットフィルタドライバ、Ｗｉｎｄｏｗｓ（登録商標）の標準ＡＰＩなどを用いる。
【００２２】
マルウェア検知部３は、クライアントＰＣ８上のオブジェクトが、マルウェアであるか否かを判定し、マルウェアである場合にはそれを検知する。マルウェアを検知した場合、マルウェア検知部３は、マルウェアに関する情報（マルウェアの検体名、ファイルパス、ハッシュ値等）を、マルウェア検知ログとしてＰＣ操作ログに記録する。マルウェア検知部３には、アンチウイルスソフトなどを用いてもよい。図２において、マルウェア検知部３はクライアントＰＣ８上に配置されているが、これはマルウェア検知部３の配置場所を限定するものではない。マルウェア検知部３は、例えば、サーバ９上であっても、ネットワーク７上に設置されていてもよい。
【００２３】
ログ出力部２は、ＰＣ操作監視部１によって検知されたコンピュータ上の操作（ファイルの作成・削除・名前変更・コピー・移動、レジストリの作成・変更、共有メモリの作成・変更等）をＰＣ操作ログとして出力する。図２において、ログ出力部２はクライアントＰＣ８上に配置されているが、これはログ出力部２の配置場所を限定するものではない。ログ出力部２は、例えば、サーバ９上であっても、ネットワーク７上に設置されていてもよい。
【００２４】
ＰＣ操作ログ６は、コンピュータ上の操作（ファイルの作成・削除・名前変更・コピー・移動、レジストリの作成・変更、共有メモリの作成・変更、メール受信、ｗｅｂアクセス等）を記録したログである。ＰＣ操作ログ６は、ログ出力部２によって生成される。図３に、ＰＣ操作ログ６のフォーマットの例を示す。ＰＣ操作ログ６は、ネットワーク７を介して、複数のクライアントＰＣの操作ログを集約・蓄積する。図２において、ＰＣ操作ログ６はサーバ９上に配置されているが、これはＰＣ操作ログ６の配置場所を限定するものではない。ＰＣ操作ログ６は、例えば、クライアントＰＣ８上に配置されていてもよい。
【００２５】
マルウェア拡散範囲リスト５は、マルウェアに感染している（もしくは感染している可能性のある）ファイルやレジストリ、共有メモリ等に関する情報、及び、拡散経路等の情報を保持する。図４に、ファイルに関するマルウェア拡散範囲リスト５の例を、図５に、レジストリに関するマルウェア拡散範囲リスト５の例を、図６に、共有メモリに関するマルウェア拡散範囲リスト５の例を示す。図４おいて、マルウェア拡散範囲リスト５は、ファイルが格納されたＰＣ名、パス（ファイルパス）、ハッシュ値、サイズなどの情報を保持しているが、これは一例であり、マルウェア拡散範囲リスト５が保持する情報の種類や数を制限するものではない。また、図２において、マルウェア拡散範囲リスト５はサーバ９上に配置されているが、これはマルウェア拡散範囲リスト５の配置場所を限定するものではない。マルウェア拡散範囲リスト５は、例えば、クライアントＰＣ８上に配置されていてもよい。以下に、マルウェア拡散範囲リスト５が保持する情報について記述する。
【００２６】
・タイプ（原因情報）
タイプは、マルウェアがどのような媒体で拡散したか（マルウェアの拡散又は侵入の原因）を表す。例えば、ファイル形式のマルウェアが、他のプロセスによってコピーされた場合は、タイプは「ファイル」となる。また、ファイル形式のマルウェアをリムーバブルデバイスにコピーして、リムーバブルデバイス経由で他のＰＣに拡散させた場合、タイプは「リムーバブルデバイス」となる。また、実行形式のマルウェアが、レジストリキーの書き込みを行った場合は「レジストリ」、共有メモリの書き込みを行った場合は「共有メモリ」となる。
【００２７】
・ＩＤ、親ＩＤ
ＩＤ及び親ＩＤは、マルウェアが拡散していく過程で、どのような順序で拡散していったかを表す情報である。例えば、図４の場合、ＩＤ２及びＩＤ３の親ＩＤは、共に「１」になっている。これは、ＩＤ１に記録された「C:\virus.exe」というファイルが、ＩＤ２に記録された「C:\Program Files\virus.exe」及びＩＤ３に記録された「C:\Windows\virus.exe」の２か所にコピーされたことを表している。また、新規にＩＤを発行する場合には、マルウェア拡散範囲リスト５内のＩＤの最大値に１を足した値を割り振る等の方法が考えられる。
【００２８】
・その他の情報
マルウェア拡散範囲リスト５には、上述の情報以外に、タイプに応じて異なる情報が記録される（この情報は、ＰＣ操作ログ６に記録された情報を元に生成される）。例えば、タイプがファイルである場合には、ファイル名、ファイルパス、ファイルハッシュ値、操作名、操作時刻等が記録される。
【００２９】
続いて、ログトレース部４について説明する。ログトレース部４は、ＰＣ操作ログ６を時系列的にトレースし、特定の条件に合致したログが見つかった場合、マルウェア拡散範囲リスト５に登録する。例えば、マルウェア拡散範囲リスト５に登録されているファイルが、別の場所にコピーされたというログが存在する場合、コピー先のファイル情報をマルウェア拡散範囲リスト５に登録する。また、図２において、ログトレース部４はサーバ９上に配置されているが、これはログトレース部４の配置場所を限定するものではない。ログトレース部４は、例えば、クライアントＰＣ８上に配置されていてもよい。
【００３０】
＜＜クライアントＰＣ８及びサーバ９のハードウェア構成＞＞
図７を参照して、クライアントＰＣ８及びサーバ９のハードウェア構成について説明する。クライアントＰＣ８及びサーバ９はいずれも、図７に示すコンピュータによって実装可能である。
【００３１】
ＣＰＵ８１は、ＲＯＭ８２やＲＡＭ８３に格納されているコンピュータプログラムやデータを用いてコンピュータ全体の制御を行う。本コンピュータをサーバ９に適用した場合、ＣＰＵ８１は、サーバ９が行うものとして後述する各処理を実行する。また、本コンピュータをクライアントＰＣ８に適用した場合には、ＣＰＵ８１は、クライアントＰＣ８が行うものとして後述する各処理を実行する。
【００３２】
ＲＯＭ８２には、本コンピュータの設定データや、ブートプログラムなどが格納されている。ＲＡＭ８３は、ＨＤＤ（ハードディスクドライブ）８４からロードされたコンピュータプログラムやデータ、インターフェース８７を介して外部から受信したデータなどを一時的に記憶するためのエリアを有する。更に、ＲＡＭ８３は、ＣＰＵ８１が各種の処理を実行する際に用いるワークエリアを有する。即ち、ＲＡＭ８３は、各種のエリアを適宜提供することができる。
【００３３】
ＨＤＤ８４には、ＯＳ（オペレーティングシステム）や、本コンピュータを適用した装置が行う各種の処理をＣＰＵ８１に実行させるためのコンピュータプログラムやデータなどが保存されている。本コンピュータをサーバ９に適用した場合、係るコンピュータプログラムには、サーバ９が行うものとして後述する各処理をＣＰＵ８１に実行させるためのコンピュータプログラムが含まれている。また、マルウェア拡散範囲リスト５、ＰＣ操作ログ６についてもこのＨＤＤ８４内に設けられている。また、本コンピュータをクライアントＰＣ８に適用した場合、係るコンピュータプログラムには、クライアントＰＣ８が行うものとして後述する各処理をＣＰＵ８１に実行させるためのコンピュータプログラムが含まれている。ＨＤＤ８４に保存されているコンピュータプログラムやデータは、ＣＰＵ８１による制御に従って適宜ＲＡＭ８３にロードされ、ＣＰＵ８１による処理対象となる。
【００３４】
入力装置８５は、キーボードやマウスなどにより構成されており、本コンピュータの操作者は、この入力装置８５を操作することで、各種の指示をＣＰＵ８１に対して入力することができる。
【００３５】
表示装置８６は、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ８１による処理結果を画像や文字などでもって表示することができる。
【００３６】
インターフェース８７は、様々なインターフェースで構成されている。例えば、本コンピュータをクライアントＰＣ８に適用した場合、インターフェース８７は、本コンピュータをネットワーク７に接続するためのネットワークインターフェース、本コンピュータに外部記録媒体を接続するためのデバイスインターフェースなどを含む。また、本コンピュータをサーバ９に適用した場合、インターフェース８７は、本コンピュータをネットワーク７に接続するためのネットワークインターフェースなどを含む。
【００３７】
バス８８は、上述の各部を相互に接続する。
【００３８】
本実施形態では、説明を簡単にするために、クライアントＰＣ８及びサーバ９のいずれも図７に示した構成を有するコンピュータであるものとして説明するが、コンピュータの構成については係る構成に限定するものではない。また、クライアントＰＣ８とサーバ９とで異なる構成を有するコンピュータを用いてもよい。
【００３９】
＜＜ＰＣ操作ログの出力処理＞＞
図８を参照して、クライアントＰＣ８によるＰＣ操作ログの出力処理について説明する。クライアントＰＣ８が起動すると、本フローチャートの処理が開始する（Ｓ８００）。
【００４０】
Ｓ８０１で、ＰＣ操作監視部１は、クライアントＰＣ８において所定の操作が行われたか否かを判定する。所定の操作が行われた場合、処理はＳ８０２に進み、そうでない場合、処理はＳ８０３に進む。ＰＣ操作監視部１が監視する操作は、例えば以下のものが挙げられる。
【００４１】
・ファイルのコピー、移動、リネーム、読込
・レジストリの作成、変更、アクセス
・共有メモリの作成、変更、アクセス
・プロセスの起動
・ｗｅｂアクセス
・メールの受信・リムーバブルデバイスの接続・取り外し
・共有フォルダへのアクセス
Ｓ８０２で、ＰＣ操作監視部１は、クライアントＰＣ８において行われた操作の内容を、ログ出力部２に伝え、ログ出力部２は、操作の内容をＰＣ操作ログとして出力する。出力されたログは、ネットワーク７を介してサーバ９へ送信され、ＰＣ操作ログ６として蓄積される。なお、ＰＣ操作ログ６は、クライアントＰＣ８に保存されてもよい。
【００４２】
Ｓ８０３で、マルウェア検知部３は、クライアントＰＣ８においてマルウェアが検知されたか否かを判定する。マルウェアが検知された場合、処理はＳ８０４に進み、そうでない場合、処理はＳ８０５に進む。
【００４３】
Ｓ８０４で、マルウェア検知部３は、マルウェアが検知された旨をログ出力部２へ伝え、ログ出力部２は、マルウェア検知を示すＰＣ操作ログを出力する。マルウェア検知を示すＰＣ操作ログは、例えば、マルウェアとして検知されたファイルの情報などを含む。マルウェア検知を示すＰＣ操作ログは、Ｓ８０２において出力される通常のＰＣ操作ログと同様のフォーマットを持ち、ＰＣ操作ログ６として蓄積される。
【００４４】
Ｓ８０５で、ＰＣ操作監視部１は、クライアントＰＣ８のシャットダウンが指示されたか否かを判定する。シャットダウンが指示された場合、クライアントＰＣ８はシャットダウンし、本フローチャートの処理は終了する。シャットダウンが指示されていない場合、処理はＳ８０１に戻る。即ち、クライアントＰＣ８が起動している間、Ｓ８０１乃至Ｓ８０５の処理が繰り返される。
【００４５】
＜＜ログトレース処理＞＞
図９を参照して、ログトレース部４が実行するログトレース処理について説明する。ログトレース部４は、ＰＣ操作ログ６をトレースし、その結果としてマルウェア拡散範囲リスト５を出力する。出力されたマルウェア拡散範囲リスト５を参照することで、マルウェアの拡散範囲を把握することが可能になる。
【００４６】
Ｓ９００において、ログトレース部４は、ＰＣ操作ログ６の中から、図８のＳ８０４において出力されたマルウェア検知ログを発見する。なお、本実施形態においては、マルウェア検知ログが存在する場合にログトレース処理が開始するものとするが、ログトレース処理の開始条件はこの限りではない。例えば、ユーザが、任意のファイルに関してファイルパスやハッシュ値などをマルウェア検知ログと同様のフォーマットで指定した場合に、ログトレース処理が開始してもよい。これにより、マルウェアとして検知されていないファイルについても、拡散範囲を特定することが可能になる。
【００４７】
Ｓ９０１で、ログトレース部４は、マルウェア検知ログに記録されたファイルや時刻等の情報を元に、ＰＣ操作ログ６を時刻降順に辿り、マルウェアとして検知されたファイル等が、どのような経路でクライアントＰＣ８に侵入したのかをトレースする。以下、Ｓ９０１のトレース処理を、バックトレースと呼ぶ。バックトレースの結果、ログトレース部４は、マルウェアの侵入経路として抽出されたファイル等の情報全てをマルウェア拡散範囲リスト５に登録する。例えば、ログトレース部４が図１７に示すＰＣ操作ログに対してバックトレースを行った場合、図１８に示すマルウェア拡散範囲リストが生成される。なお、図１７に示すＰＣ操作ログの例は、図３に示すＰＣ操作ログの例とは異なるフォーマットを持つ。これは、前述の通り、ＰＣ操作ログは必要に応じて様々な項目を持ち、特定の項目を持つフォーマットに限定されている訳ではないからである。以下の説明においては、様々なフォーマットのＰＣ操作ログ及びマルウェア拡散範囲リストを例示するが、いずれも説明に必要な範囲で作成されたものであり、フォーマットを特定のものに限定するものではない。
【００４８】
後述のフォワードトレースの前にバックトレースを行うことで、マルウェアが発見場所に至るまでの過程で別の場所に自己の複製を作成したりしている場合でも、その場所からの拡散範囲を把握することが可能となる。しかしながら、バックトレース及びその結果をマルウェア拡散範囲リスト５に登録する処理は、必須ではない。バックトレースを行わない場合、ログトレース部４は、Ｓ９００において発見されたマルウェア検知ログに関する情報（或いは、ユーザにより指定されたファイルに関する、例えばファイルパスやハッシュ値などの情報）をマルウェア拡散範囲リスト５に登録する。
【００４９】
Ｓ９０２で、ログトレース部４は、マルウェア拡散範囲リスト５に登録された項目を１つ取得する。取得した項目は、例えば、「ファイル」（図１８の１つ目の項目参照）、「Ｗｅｂ」（図２２の１つ目の項目参照）、「メール」（図２４の１つ目の項目参照）、「リムーバブルデバイス（入口）」（図２７の７つ目の項目参照）、「リムーバブルデバイス（出口）」（図２７の６つ目の項目参照）、「共有（入口）」（図３０の７つ目の項目参照）、「共有（出口）」（図３０の６つ目の項目参照）といったようなタイプを有する。
【００５０】
ところで、マルウェア拡散範囲リスト５の各項目は、マルウェアの拡散を示す情報（マルウェア拡散情報）と見なすことができ、マルウェア拡散情報は、マルウェアを示す情報、又はマルウェアの侵入元を示す情報を含む。例えば、図１８の１つ目の項目は、マルウェアを示す情報として、パス「C:\Dir1\Malware.exe」を含んでおり、図２２の１つ目の項目は、マルウェアの侵入元を示す情報として、ＵＲＬ「http://example.com」を含んでいる。また、マルウェア拡散範囲リスト５の各項目の「タイプ」は、マルウェアの拡散又は侵入の原因を示す情報（原因情報）と見なすことができる。例えば、図１８の１つ目の項目は、タイプ（原因情報）として「ファイル」を含み、これは、ファイルが原因でマルウェアが拡散したことを示す。また、図２２の１つ目の項目は、タイプ（原因情報）として「Ｗｅｂ」を含み、これは、ＷＥＢアクセスが原因でマルウェアが侵入したことを示す。また、図２４の１つ目の項目は、タイプ（原因情報）として「メール」を含み、これは、メール受信が原因でマルウェアが侵入したことを示す。また、図２７の６つ目の項目は、タイプ（原因情報）として「リムーバブルデバイス（出口）」を含み、これは、リムーバブルデバイスが原因でマルウェアが拡散したことを示す。また、図３０の６つ目の項目は、タイプ（原因情報）として「共有（出口）」を含み、これは、共有フォルダが原因でマルウェアが拡散したことを示す。
【００５１】
前述の通り、バックトレースが行われない場合、Ｓ９０１で、ログトレース部４は、Ｓ９００で発見されたマルウェア検知ログ（又は、ユーザにより指定された情報）に対応する情報をマルウェア拡散情報として、マルウェア拡散範囲リスト５に登録する。この場合、Ｓ９０２において取得される項目（即ち、マルウェア拡散情報）は、例えば、図１８の３つ目の項目のような情報を含む。
【００５２】
Ｓ９０３で、ログトレース部４は、Ｓ９０２において取得した項目のタイプに基づき、処理の条件分岐を行う。タイプが「ファイル」の場合、Ｓ９０４乃至Ｓ９０６において３種類のフォワードトレースが実行された後、処理はＳ９１１に進む。タイプが「Ｗｅｂ」の場合、Ｓ９０７においてフォワードトレースが実行された後、処理はＳ９１１に進む。タイプが「メール」の場合、Ｓ９０８においてフォワードトレースが実行された後、処理はＳ９１１に進む。タイプが「リムーバブルデバイス（出口）」の場合、Ｓ９０９においてフォワードトレースが実行された後、処理はＳ９１１に進む。タイプが「共有（出口）」の場合、Ｓ９１０においてフォワードトレースが実行された後、処理はＳ９１１に進む。なお、「リムーバブルデバイス（出口）」、「共有（出口）」は一例であり、「リムーバブルデバイス（入口）」、「共有（入口）」でもよいし、「リムーバブルデバイス」、「共有」でもよい。フォワードトレースの処理内容は、Ｓ９０２において取得した項目（マルウェア拡散情報）のタイプにより異なる。簡単に言えば、フォワードトレースは、マルウェア拡散情報が示すマルウェア又は侵入元を直接的又は間接的な起点としてマルウェアを拡散させる１以上の操作を特定する処理である。Ｓ９０４乃至Ｓ９１０に示す７種類のフォワードトレースの詳細は、図１０乃至図１６Ｂを参照して後述する。
【００５３】
なお、Ｓ９０４乃至Ｓ９０６の処理の順序は、これに限定されず、どのような順序でもよいし、各々並列に処理を実行してもよい。
【００５４】
Ｓ９１１で、ログトレース部４は、マルウェア拡散範囲リスト５に、未取得の項目があるかどうかを探索する。未取得の項目が１つも無ければ、全てのログの探索が完了しているものとして、処理を終了する。未取得の項目が１つでもあれば、Ｓ９０２の処理に戻る。即ち、ログトレース部４は、マルウェア拡散範囲リスト５に登録された全ての項目を取得するまで、Ｓ９０２乃至Ｓ９１１の処理を繰り返す。なお、Ｓ９０２乃至Ｓ９１１の処理の繰り返しの過程で、Ｓ９０４乃至Ｓ９１０のフォワードトレースによりマルウェア拡散範囲リスト５に項目が追加された場合、追加された項目についてもＳ９０２における取得の対象となる。
【００５５】
また、Ｓ９０２において、マルウェア拡散範囲リスト５に登録された項目の取得は、「タイプ」に限定されず、「操作名」や「パス名」等でもよい。その場合、Ｓ９０３においては、Ｓ９０２にて取得した項目に基づきタイプを判定し、処理の条件分岐を行う。
【００５６】
＜＜トレースフロー１−Ａ＞＞
ＰＣ操作ログが図１７に示すものである場合を例に、図９のＳ９０４において実行されるフォワードトレース（トレースフロー１−Ａ）について説明する。この場合、図９のＳ９０１におけるバックトレースにより、図１８に示すマルウェア拡散範囲リストが生成され、Ｓ９０２において１つ目の項目（時刻１０：００の項目）が取得される。この項目のタイプは「ファイル」であるので、Ｓ９０３における条件分岐により、処理はＳ９０４に進む。
【００５７】
図１０に、トレースフロー１−Ａに関するフローチャートを示す。トレースフロー１−Ａは、プロセスとして起動したマルウェアが生成したファイルやレジストリなどをマルウェアとして検出するためのトレースフローである。
【００５８】
Ｓ１０００で、ログトレース部４は、ＰＣ操作ログ６から、トレース対象のファイル(C:\Dir1\Malware.exe)の起動ログ及び終了ログを検出する。具体的には、ＰＣ操作ログ６を時系列に探索し、トレース対象のファイルパス(C:\Dir1\Malware.exe)と、操作ログ上の「元パス」が一致しており、かつ操作名が「起動」又は「終了」であるログを検出する。ここでは、図１７のＰＣ操作ログにおいて、時刻１０：００のログが起動ログとして検出され、時刻１１：１２のログが終了ログとして検出される。
【００５９】
Ｓ１００１で、ログトレース部４は、ＰＣ操作ログ６から、トレース対象の操作ログ（トレース対象ログ）を取得する。トレース対象ログは、トレース対象のファイル(C:\Dir1\Malware.exe)がプロセスとして起動してから終了するまでの間に、このプロセスが実行した操作に対応する、操作ログである。具体的には、起動ログと同じ「プロセス名」及び「プロセスＩＤ」を持つログのうち、時刻が起動ログから終了ログまでの間に存在するログを全て取得し、時系列昇順に並べる。図１７の場合、この条件に該当するログは、時刻１０：０１のログとなる。この例では、トレース対象ログは１つ（時刻１０：０１のログ）だけであるが、一般的には、複数のログがトレース対象ログとして取得される。なお、本実施形態では、ログの抽出条件として「プロセスのパス」と「プロセスＩＤ」を挙げたが、マルウェア拡散範囲リスト５に含まれている情報であれば、例えばハッシュ値などを用いてもよく、条件に用いる情報の数や種類は制限されないものとする。
【００６０】
Ｓ１００２で、ログトレース部４は、Ｓ１００１で取得したトレース対象ログから１つ目の項目を取得し、取得した項目を、Ｓ１００３の処理対象とする。ここでは、図１７の時刻１０：０１のログが取得され、Ｓ１００３における処理対象となる。
【００６１】
Ｓ１００３で、ログトレース部４は、Ｓ１００２で取得したログが以下のいずれかに該当するか否かを判定する。
【００６２】
・ファイルの新規作成又は既存ファイルの変更にあたるログ
・レジストリキーの新規作成又は既存のキーの変更ログ
・共有メモリへのアクセスログ、又は共有メモリの新規生成ログ
処理対象のログが上記の条件に該当する場合、生成・変更等されたもの（ファイル等）は、マルウェアに感染している可能性がある。そのため、ログトレース部４は、生成・変更等されたものをマルウェア拡散範囲リスト５に登録する必要がある。即ち、処理はＳ１００４へ移行する。具体的には、操作名が「作成」もしくは「上書き」もしくは「メモリアクセス」であった場合、ログトレース部４は、処理対象のログが条件該当していると判断する。現在の例では、図１７の時刻１０：０１のログの操作名は「作成」であるので、処理はＳ１００４に進む。
【００６３】
なお、図１７にはファイルの例しか含まれていないが、レジストリの作成及び上書きや、共有メモリのアクセス及び上書きの場合も同様である。但し、この場合は、操作ログに含まれる内容は、適宜変更される（例えば、レジストリの場合、操作ログには元パスの代わりにレジストリキーが含まれ、共有メモリの場合、操作ログには元パスの代わりにメモリアドレスが含まれる）。
【００６４】
Ｓ１００４で、ログトレース部４は、現在の処理対象の操作ログが既にマルウェア拡散範囲リスト５に登録されているか否かを判定する。登録されていない場合、処理はＳ１００５に進み、登録されている場合、処理はＳ１００６に進む。現在の例では、図１７の時刻１０：０１のログが処理対象であり、これは既に登録されている（図１８参照）。従って、処理はＳ１００６に進む。
【００６５】
Ｓ１００５で、ログトレース部４は、現在の処理対象の操作ログをマルウェア拡散範囲リスト５に登録する。
【００６６】
Ｓ１００６で、ログトレース部４は、Ｓ１００１で取得したトレース対象ログの全てに対して、Ｓ１００３乃至Ｓ１００６の処理を行ったか否かを判定する。トレース対象ログの全てに対して処理が完了している場合、ログトレース部４は、トレースフロー１−Ａの処理を終了し、まだ処理を行っていないログがあれば、ログトレース部４は、Ｓ１００７の処理に進む。
【００６７】
Ｓ１００７で、ログトレース部４は、前回Ｓ１００３乃至Ｓ１００６の処理を行ったログの、時系列的に見て直後のログを取得し、そのログに対してＳ１００３乃至Ｓ１００６の処理を行う。即ち、Ｓ１００１で取得したトレース対象ログに含まれる全ての操作ログに対して、Ｓ１００３乃至Ｓ１００６の処理が行われる。
【００６８】
また、図１７に示す操作ログに対して、トレースフロー１−Ａの処理を適用した場合、生成されるマルウェア拡散範囲リストは、図１８と同一となる。
【００６９】
＜＜トレースフロー１−Ｂ＞＞
ＰＣ操作ログが図１７に示すものである場合を例に、図９のＳ９０５において実行されるフォワードトレース（トレースフロー１−Ｂ）について説明する。この場合、図９のＳ９０１におけるバックトレースにより、図１８に示すマルウェア拡散範囲リストが生成され、Ｓ９０２において１つ目の項目（時刻１０：００の項目）が取得される。この項目のタイプは「ファイル」であるので、Ｓ９０３における条件分岐により、処理はＳ９０４に進む。その後、Ｓ９０４において上述のトレースフロー１−Ａが実行され、処理はＳ９０５に進む。
【００７０】
図１１に、トレースフロー１−Ｂに関するフローチャートを示す。トレースフロー１−Ｂは、マルウェアを読み込んだプロセスや、マルウェアによって起動されたプロセスなどをマルウェアとして検出するためのトレースフローである。
【００７１】
Ｓ１１００で、ログトレース部４は、ＰＣ操作ログ６から、トレース対象ログを取得する。具体的には、任意のプロセスがマルウェア拡散範囲リスト５に登録されているプロセスによって起動されたことを示すログ（後述の条件１に合致するログ）、及び、任意のプロセスがマルウェア拡散範囲リスト５に登録されている項目（ファイル・レジストリ・共有メモリなど）を読み込んだこと（後述の条件２に合致するログ）を示すログを取得する。ここでは、例として、トレース対象のプロセスが「C:\Dir1\Malware.exe」であり（即ち、図９のＳ９０２で取得した項目のパスが「C:\Dir1\Malware.exe」であり）、かつ図１７のようなＰＣ操作ログが存在する場合を挙げる。
【００７２】
（条件１）トレース対象のファイル名（ファイル名は、ファイルパスから、フォルダパスを除去することで抽出する）と、操作ログ上の「親プロセス名」が一致しており、かつトレース対象のプロセスＩＤと、操作ログ上の「親プロセスＩＤ」が一致しており、かつ操作名が「起動」又は「終了」である操作ログ
この条件の場合、時刻１１：００のログ及び時刻１１：１０のログが該当する。
【００７３】
（条件２）トレース対象のファイル名（ファイル名は、ファイルパスから、フォルダパスを除去することで抽出する）と、操作ログ上の「元パス」が一致しており、かつ操作名が「読込」である操作ログ
この条件の場合、時刻１０：０２のログが該当する。
【００７４】
次に、ログトレース部４は、以下の条件のいずれかに合致する操作ログを取得し、時系列昇順に並べる。
・「プロセスＩＤ」が、条件１に該当するログのプロセスＩＤと一致しており、かつ「プロセス名」が条件１に該当するログのプロセス名と一致しており、かつ時刻が条件１に該当する「起動」ログから条件１に該当する「終了」ログまでの間に存在する操作ログ
この条件の場合、時刻１１：０１のログが該当する。
・「プロセスＩＤ」が、条件２に該当するログのプロセスＩＤと一致しており、かつプロセス名が、条件２に該当するログのプロセス名と一致しており、かつ時刻が、条件２に該当するログの時刻以降である操作ログ
この条件の場合、時刻１０：１０と時刻１１：１１のログが該当する。
【００７５】
上記のような条件に該当するログが存在する場合は、処理はＳ１１０１に進む。
【００７６】
Ｓ１１０１で、ログトレース部４は、Ｓ１１００で取得したトレース対象ログから１つ目の項目を取得し、取得した項目を、Ｓ１１０２の処理対象とする。
【００７７】
Ｓ１１０２で、ログトレース部４は、Ｓ１１０１で取得したログが以下のいずれかに該当するか否かを判定する。
【００７８】
・ファイルの新規作成又は既存ファイルの変更にあたるログ
・レジストリキーの新規作成又は既存のキーの変更ログ
・共有メモリへのアクセスログ、又は共有メモリの新規生成ログ
処理対象のログが上記の条件に該当する場合、生成・変更等されたもの（ファイル等）は、マルウェアに感染している可能性がある。そのため、ログトレース部４は、生成・変更等されたものをマルウェア拡散範囲リスト５に登録する必要がある。即ち、処理はＳ１１０３へ移行する。Ｓ１１０３乃至Ｓ１１０６の処理は、図１０のＳ１００４乃至Ｓ１００７と同様であるため、説明を省略する。
【００７９】
また、図１７に示す操作ログに対して、トレースフロー１−Ｂの処理によって生成されたマルウェア拡散範囲リストを、図３３に示す。
【００８０】
＜＜トレースフロー２＞＞
ＰＣ操作ログが図１９に示すものである場合を例に、図９のＳ９０６において実行されるフォワードトレース（トレースフロー２）について説明する。この場合、図９のＳ９０１におけるバックトレースにより、図２０に示すマルウェア拡散範囲リストが生成され、Ｓ９０２において１つ目の項目（時刻１０：００の項目）が取得される。この項目のタイプは「ファイル」であるので、Ｓ９０３における条件分岐により、処理はＳ９０４に進む。その後、Ｓ９０４において上述のトレースフロー１−Ａが実行され、Ｓ９０５において上述のトレースフロー１−Ｂが実行され、処理はＳ９０６に進む。
【００８１】
図１２Ａ及び図１２Ｂに、トレースフロー２に関するフローチャートを示す。トレースフロー２は、マルウェアがコピーや移動された先のファイルをマルウェアとして検出するためのトレースフローである。
【００８２】
Ｓ１２００で、ログトレース部４は、ＰＣ操作ログ６から、トレース対象のファイル(C:\Dir1\Malware.exe)がコピー、移動、又はリネーム等されたログを取得する。具体的には、「元パス」がトレース対象のファイルパスと一致しており、かつ操作名が「コピー」、「リネーム」、又は「移動」であるログを取得し、時系列昇順に並べる。図１９の場合、この条件に該当するログは、時刻１０：０１のログとなる。この例では、トレース対象ログは１つ（時刻１０：０１のログ）だけであるが、一般的には、複数のログがトレース対象ログとして取得される。
【００８３】
Ｓ１２０１で、ログトレース部４は、Ｓ１２００で取得したトレース対象ログから、１つ目の項目を取得し、取得した項目に対して、Ｓ１２０２の処理を行う。ここでは、図１９の時刻１０：０１のログが取得され、Ｓ１２０２における処理の対象となる。
【００８４】
Ｓ１２０２で、ログトレース部４は、Ｓ１２０１で取得したログが以下のいずれかに該当するかどうかを判定する。
【００８５】
・ファイルのコピー
・ファイルの移動
・ファイルのリネーム
コピー・移動・リネーム元のファイルがマルウェアに感染していれば、コピー・移動・リネームされた先のファイルは、マルウェアに感染していると考えられる。そのため、処理対象のログが上記の条件に該当する場合、ログトレース部４は、コピー・移動・リネームされた先のファイルをマルウェア拡散範囲リスト５に登録する必要がある。即ち、Ｓ１２０３の処理に移行する。現在の例では、図１９の時刻１０：０１のログの操作名は「リネーム」であるため、処理はＳ１２０３に進む。
【００８６】
Ｓ１２０３で、ログトレース部４は、現在の処理対象の操作ログにおける「先パス」のファイルの情報が既にマルウェア拡散範囲リスト５に登録されているか否かを判定する。登録されていない場合、処理はＳ１２０４に進み、登録されている場合、処理はＳ１２０５に進む。現在の例では、図１９の時刻１０：０１のログが処理対象であり、これは既に登録されている（図２０参照）。従って、処理はＳ１２０５に進む。
【００８７】
Ｓ１２０４で、ログトレース部４は、現在の処理対象の操作ログをマルウェア拡散範囲リスト５に登録する。
【００８８】
Ｓ１２０５で、ログトレース部４は、コピー・移動・リネーム等がされた先がリムーバブルデバイスであるかどうかを判定する。コピー・移動・リネーム等の操作によって、ファイルがリムーバブルデバイス又は共有フォルダへ持ち出された場合、他のＰＣが同一のリムーバブルデバイス又は共有フォルダにアクセスし、該当のファイルをコピーなどする可能性がある。この場合、マルウェアがリムーバブルデバイスや共有フォルダを経由して拡散する可能性がある。このような経路によるマルウェアの拡散範囲を把握するために、該当のリムーバブルデバイス又は共有フォルダの情報と、持ち出されたファイルの情報を、マルウェア拡散範囲リスト５へ登録する必要がある。そこで、コピー・移動・リネーム等がされた先がリムーバブルデバイスである場合、処理はＳ１２０６に進む。そうでない場合、処理はＳ１２０８に進む。
【００８９】
具体的には、処理対象の操作ログの「先デバイスタイプ」が「Ｒｅｍｏｖａｂｌｅ」である場合に、コピー・移動・リネーム等がされた先がリムーバブルデバイスであると判断される。現在の例では、図１９の時刻１０：０１のログの先デバイスタイプは「Ｌｏｃａｌ」であるため、この条件に該当しない。なお、この条件に該当する操作ログの例としては、図２５の４つ目の項目（時刻１０：０２における「F:\A.exe」へのコピー）などが挙げられる。
【００９０】
Ｓ１２０６で、ログトレース部４は、Ｓ１２０５におけるリムーバブルデバイスの情報が、マルウェア拡散範囲リスト５に登録されているかどうかを判定する。登録されている場合、処理はＳ１２０８に進み、登録されていない場合、処理はＳ１２０７に進む。
【００９１】
Ｓ１２０７で、ログトレース部４は、Ｓ１２０５におけるリムーバブルデバイスの情報をマルウェア拡散範囲リスト５に登録する。ここで登録される項目の「パス」は、Ｓ１２０１で取得したログ（処理対象のログ）の「先パス」とし、「タイプ」は、「リムーバブルデバイス（出口）」とする。このタイプは、ファイルをリムーバブルデバイスに持ち出したことを示すタイプである。なお、図９のＳ９０２において取得された項目のタイプが「リムーバブルデバイス（出口）」であった場合の処理については、図１５Ａ、図１５Ｂ，及び図２５乃至図２７を参照して後述する。
【００９２】
Ｓ１２０８で、ログトレース部４は、コピー・移動・リネーム等がされた先が共有フォルダであるかどうかを判定する。共有フォルダの場合、処理はＳ１２０９に進み、そうでない場合、処理はＳ１２１１に進む。具体的には、処理対象のログの「先デバイスタイプ」が「Ｒｅｍｏｔｅ」であれば、コピー・移動・リネーム等がされた先が共有フォルダであると判断される。現在の例では、図１９の時刻１０：０１のログの先デバイスタイプは「Ｌｏｃａｌ」であるため、この条件に該当しない。なお、この条件に該当する操作ログの例としては、図２８の３つ目の項目（時刻１０：０２における「\\PCB\share\A.exe」へのコピー）などが挙げられる。
【００９３】
Ｓ１２０９で、ログトレース部４は、Ｓ１２０８における共有フォルダの情報が、マルウェア拡散範囲リスト５に登録されているかどうかを判定する。登録されている場合、処理はＳ１２１１に進み、登録されていない場合、処理はＳ１２１０に進む。
【００９４】
Ｓ１２１０で、ログトレース部４は、Ｓ１２０８における共有フォルダの情報をマルウェア拡散範囲リスト５に登録する。ここで登録される項目の「パス」は、Ｓ１２０１で取得したログ（処理対象のログ）の「先パス」とし、「タイプ」は、「共有（出口）」とする。このタイプは、ファイルを共有フォルダに持ち出したことを示すタイプである。なお、図９のＳ９０２において取得された項目のタイプが「共有（出口）」であった場合の処理については、図１６Ａ、図１６Ｂ、及び図２８乃至図３０を参照して後述する。
【００９５】
Ｓ１２１１及びＳ１２１２の処理は、図１０のＳ１００６及びＳ１００７と同様であるため、説明を省略する。
【００９６】
また、図１９に示す操作ログに対して、トレースフロー２の処理によって生成されたマルウェア拡散範囲リストを、図３４に示す。
【００９７】
＜＜トレースフロー３＞＞
ＰＣ操作ログが図２１に示すものである場合を例に、図９のＳ９０７において実行されるトレースフロー３について説明する。この場合、図９のＳ９０１におけるバックトレースにより、図２２に示すマルウェア拡散範囲リストが生成され、Ｓ９０２において１つ目の項目（時刻９：５０の項目）が取得される。この項目のタイプは「ＷＥＢ」であるので、Ｓ９０３における条件分岐により、処理はＳ９０７に進む。
【００９８】
図１３Ａ及び図１３Ｂに、トレースフロー３に関するフローチャートを示す。トレースフロー３は、ｗｅｂからダウンロードしたマルウェアを検出するためのトレースフローである。即ち、ｗｅｂブラウザがトレース対象のＵＲＬにアクセスした後に生成又は上書きしたファイルがあるかを検出するためのトレースフローである。
【００９９】
Ｓ１３００で、ログトレース部４は、ＰＣ操作ログ６から、Ｓ９０２で取得した項目に記述されているＵＲＬにアクセスしたＷＥＢアクセスログを検出する。具体的には、ＰＣ操作ログ６を時系列に探索し、トレース対象の「ＵＲＬ」がＰＣ操作ログの「ＵＲＬ」と一致しており、かつ操作名が「ＷＥＢアクセス」であるログを検出する。但し、「ＰＣ名」「時刻」「ＵＲＬ」がＳ９０２で取得したトレース対象のＷｅｂアクセスログの「ＰＣ名」「時刻」「ＵＲＬ」と一致するログは除外する。図２１においては、最終的に、ＰＣ名「ＰＣＢ」の時刻１３：００のログが検出される。
【０１００】
Ｓ１３０１で、ログトレース部４は、ＰＣ操作ログ６から、トレース対象のログ（トレース対象ログ）を取得する。トレース対象ログは、トレース対象のＵＲＬにアクセスした際、ブラウザが行った処理のログである。具体的には、プロセスＩＤ及びプロセス名が、Ｓ１３００で検出したログのそれと一致しており、かつ時刻がＳ１３００で検出したログの以降である操作ログを取得し、時系列昇順に並べる。但し、Ｓ１３０１で取得するログには、Ｓ１３００で検出したログは含まないものとする。即ち、図２１においては、ＰＣ名「ＰＣＢ」の時刻１３：０１と時刻１３：０３の「作成」、時刻１３：０２の「Ｗｅｂアクセス」の３つがトレース対象ログとして取得される。
【０１０１】
Ｓ１３０２で、ログトレース部４は、Ｓ１３０１で取得したトレース対象ログから１つ目の項目を取得し、取得した項目を、Ｓ１３０３の処理対象とする。ここでは、図２１のＰＣ名「ＰＣＢ」の時刻１３：０１のログが取得され、Ｓ１３０３の処理対象となる。
【０１０２】
Ｓ１３０３で、ログトレース部４は、Ｓ１３０２で取得したログが、トレース対象のＵＲＬ以外のＷＥＢアクセスログか否かを判定する。具体的には、ログトレース部４は、Ｓ１３０２で取得したログが、以下の全てに該当するかどうかを判定する。
【０１０３】
・操作名が「ＷＥＢアクセス」である
・アクセスしたＵＲＬが、Ｓ１３００で検出したログと一致しない
処理対象のログが上記の条件に全て該当する場合、トレースフロー３の処理は終了する。そうでない場合（１つでも上記条件が該当しない場合）、処理はＳ１３０４に進む。ブラウザがトレース対象のＵＲＬにアクセスした後に、別のＵＲＬにアクセスした時点で、そのブラウザはトレース対象からは除外するべきである。そのため、Ｓ１３０３の処理を行う。現在の例では、図２１の時刻１３：０１のログの操作名は「作成」であるため、上記の条件に該当しないと判断される。
【０１０４】
Ｓ１３０４で、ログトレース部４は、処理対象のログが、以下のいずれかに該当するかどうかを判定する。
【０１０５】
・ファイルの作成
・ファイルの上書き
処理対象のログが上記の条件に該当する場合、生成又は上書きされたファイルはＷＥＢからダウンロードしてきたマルウェアであると考えられる。そのため、ログトレース部４は、生成又は上書きされたファイルをマルウェア拡散範囲リスト５に登録する必要がある。即ち、Ｓ１３０５ａの処理に移行する。現在の例では、図２１の時刻１３：０１のログの操作名は「作成」であるため、処理はＳ１３０５ａに進む。なお、図２１にはファイルの例しか含まれていないが、レジストリの作成及び上書きや、共有メモリのアクセス及び上書きの場合も同様である。但し、この場合は、操作ログに含まれる内容は、適宜変更される（例えば、レジストリの場合、操作ログには元パスの代わりにレジストリキーが含まれ、共有メモリの場合、操作ログには元パスの代わりにメモリアドレスが含まれる）。
【０１０６】
Ｓ１３０５ａで、ログトレース部４は、該当のＷＥＢの情報がマルウェア拡散範囲リスト５に既に登録されているかどうかを判定する。具体的には、タイプが「ＷＥＢ」であり、ＵＲＬと時刻とＰＣ名がすべてＳ１３００で検出したログと同一であり、操作名が「ｗｅｂアクセス」である項目があるかどうかを判定する。登録されていなければＳ１３０５ｂの処理に進み、登録されていればＳ１３０６の処理に進む。
【０１０７】
Ｓ１３０５ｂで、ログトレース部４は、マルウェア拡散範囲リスト５に、ＷＥＢからマルウェアをダウンロードしたことを表す項目を追加する。追加する項目は、具体的には、タイプが「ＷＥＢ」であり、ＵＲＬがＳ１３００で検出したＵＲＬであり、操作名が「ｗｅｂアクセス」である項目を追加する。
【０１０８】
Ｓ１３０６で、ログトレース部４は、現在の処理対象の操作ログが既にマルウェア拡散範囲リストに登録されているか否かを判定する。登録されていない場合、処理はＳ１３０７に進み、登録されている場合、処理はＳ１３０８に進む。現在の例では、図２１の時刻１３：０１のログが処理対象であり、これは登録されていない（図２２参照）。従って、処理はＳ１３０７に進む。
【０１０９】
Ｓ１３０７で、ログトレース部４は、現在の処理対象の操作ログをマルウェア拡散範囲リスト５に登録する。これにより、このフローにおいてマルウェア拡散範囲リスト５に登録された項目が後で図９のＳ９０２において読み込まれた際、そこからのフォワードトレースが実行される。
【０１１０】
Ｓ１３０８及びＳ１３０９の処理は、図１０のＳ１００６及びＳ１００７と同様であるため、説明を省略する。
【０１１１】
また、図２１に示す操作ログに対して、トレースフロー３の処理によって生成されたマルウェア拡散範囲リストを、図３５に示す。
【０１１２】
＜＜トレースフロー４＞＞
ＰＣ操作ログが図２３に示すものである場合を例に、図９のＳ９０８において実行されるトレースフロー４について説明する。この場合、図９のＳ９０１におけるバックトレースにより、図２４に示すマルウェア拡散範囲リストが生成され、Ｓ９０２において１つ目の項目（時刻９：５０の項目）が取得される。この項目のタイプは「メール」であるので、Ｓ９０３における条件分岐により、処理はＳ９０８に進む。
【０１１３】
図１４Ａ及び図１４Ｂに、トレースフロー４に関するフローチャートを示す。トレースフロー４は、メールに添付されたマルウェアをダウンロードしたことを検出するためのトレースフローである。
【０１１４】
Ｓ１４００で、ログトレース部４は、ＰＣ操作ログ６から、Ｓ９０２で取得した項目に記述されているものと同じメールを受信したログを検出する。具体的には、ＰＣ操作ログ６を時系列に探索し、トレース対象の「メッセージＩＤ」がＰＣ操作ログのそれと一致しており、かつ操作名が「メール受信」であるログを検出する。但し、「ＰＣ名」「時刻」「メッセージＩＤ」がＳ９０２で取得したトレース対象のメール受信ログのそれと一致するログは除外する。図２３においては、ＰＣ名「ＰＣＢ」の時刻１３：００のログが検出される。
【０１１５】
Ｓ１４０１で、ログトレース部４は、ＰＣ操作ログ６から、トレース対象のログ（トレース対象ログ）を取得する。トレース対象ログは、トレース対象のメールを受信した際、メーラーが行った処理のログである。具体的には、プロセスＩＤ及びプロセス名が、Ｓ１４００で検出したログのそれと一致しており、かつ時刻がＳ１４００で検出したログの以降である操作ログを取得し、時系列昇順に並べる。但し、Ｓ１４０１で取得するログには、Ｓ１４００で検出したログは含まないものとする。即ち、図２３においては、ＰＣ名「ＰＣＢ」の時刻１３：０１のログが取得される。
【０１１６】
Ｓ１４０２で、ログトレース部４は、Ｓ１４０１で取得したトレース対象ログから１つ目の項目を取得し、取得した項目をＳ１４０３の処理対象とする。ここでは、図２４のＰＣ名「ＰＣＢ」の時刻１３：０１のログが取得され、Ｓ１４０３の処理対象となる。
【０１１７】
Ｓ１４０３で、ログトレース部４は、Ｓ１４０２で取得したログが、以下のいずれかに該当するかどうかを判定する。
【０１１８】
・ファイルの作成
・ファイルの上書き
処理対象のログが上記の条件に該当する場合、生成又は上書きされたファイルは、添付ファイルからダウンロードしてきたマルウェアであると考えられる。そのため、ログトレース部４は、生成又は上書きされたファイルをマルウェア拡散範囲リスト５に登録する必要がある。即ち、Ｓ１４０４の処理に移行する。現在の例では、図２３の時刻１３：０１のログの操作名は「作成」であるため、処理はＳ１４０４に進む。
【０１１９】
Ｓ１４０４で、ログトレース部４は、マルウェア拡散範囲リスト５に、添付ファイルからマルウェアをダウンロードしたことを表す項目を追加する。追加する項目は、具体的には、タイプが「メール」であり、メールアドレスとメッセージＩＤがＳ１４００で検出したメールアドレスであり、操作名が「メール受信」である項目を追加する。
【０１２０】
Ｓ１４０５で、ログトレース部４は、現在の処理対象の操作ログをもとに、新たにマルウェア拡散範囲リスト５と同一のフォーマットの項目を作り出し、前記作り出した項目が既にマルウェア拡散範囲リスト５に登録されているか否かを判定する。登録されていない場合、処理はＳ１４０６に進み、登録されている場合、処理はＳ１４０７に進む。現在の例では、図２３の時刻１３：０１のログが処理対象であり、このログをもとに、マルウェア拡散範囲リストに追加する項目を作り出す。作り出した項目は、タイプが「ファイル」、ＰＣ名が「ＰＣＢ」、時刻が１３：０１、パスが「D:\Dir2\abcd.pdf」、操作名が「作成」というものになるので、これは登録されていない（図２４参照）。従って、処理はＳ１４０６に進む。
【０１２１】
Ｓ１４０６で、ログトレース部４は、現在の処理対象の操作ログをマルウェア拡散範囲リスト５に登録する。Ｓ１４０４及びＳ１４０６における処理の結果、マルウェア拡散範
囲リスト５は、図２４の状態から図３６の状態に変化する。これにより、このフローにおいてマルウェア拡散範囲リスト５に登録された項目が後で図９のＳ９０２において読み込まれた際、そこからのフォワードトレースが実行される。
【０１２２】
Ｓ１４０７及びＳ１４０８の処理は、図１０のＳ１００６及びＳ１００７と同様であるため、説明を省略する。
【０１２３】
＜＜トレースフロー２−Ａ＞＞
ＰＣ操作ログが図２５に示すものである場合を例に、図９のＳ９０９において実行されるトレースフロー２−Ａについて説明する。但し、ここではリムーバブルデバイスに関する説明のみを行うため、図２５に示す操作ログのバックトレース（図９のＳ９０１）により図２０に示すマルウェア拡散範囲リストが生成され、図２０及び図２５の情報をもとにフォワードトレースを行い、Ｓ９０２においてタイプが「リムーバブルデバイス（出口）」である項目（図２６の６番目の項目）を取得した状態を前提に説明する。この前提に従い、Ｓ９０３の条件分岐により、処理はＳ９０９に進む。
【０１２４】
図１５Ａ及び図１５Ｂに、トレースフロー２−Ａに関するフローチャートを示す。トレースフロー２−Ａは、リムーバブルデバイスに持ち出されたマルウェアが、このリムーバブルデバイスを介して他のＰＣに拡散したことを検出するためのトレースフローである。
【０１２５】
Ｓ１５００で、ログトレース部４は、ＰＣ操作ログ６から、図９のＳ９０２で取得した項目に記述されているリムーバブルデバイスの情報と同一の情報を持つリムーバブルデバイスが接続されたログを検出する。具体的には、ＰＣ操作ログ６を時系列に探索し、トレース対象の「シリアルＩＤ」、「ベンダーＩＤ」、及び「プロダクトＩＤ」が操作ログのそれと全て一致しており、かつ操作名が「アタッチ」であるログを検出する。図２５においては、時刻１２：００のログが該当する。
【０１２６】
Ｓ１５０１で、ログトレース部４は、ＰＣ操作ログ６から、トレース対象のログ（トレース対象ログ）を取得する。トレース対象ログは、トレース対象のデバイスから、トレース対象のファイルをコピー等した際の操作ログである。具体的には、元デバイスタイプが「Ｒｅｍｏｖａｂｌｅ」であり、かつ元パスに含まれるドライブレターが、Ｓ１５００で検出したログのドライブレターと一致しており、かつ、「トレース対象のパスからドライブレターを除去した文字列」が、「操作ログの元パスからドライブレターを除去した文字列」と一致しており、かつＰＣ名がＳ１５００で検出したログのＰＣ名と一致しているログを取得し、時系列昇順に並べる。図２５においては、時刻１２：０５のログがトレース対象ログとして取得される。
【０１２７】
Ｓ１５０２で、ログトレース部４は、Ｓ１５０１で取得したトレース対象ログから１つ目の項目を取得し、取得した項目を、Ｓ１５０３の処理対象とする。ここでは、図２５の時刻１２：０５のログが取得され、Ｓ１５０３の処理対象となる。
【０１２８】
Ｓ１５０３で、ログトレース部４は、Ｓ１５０２で取得したログが、以下のいずれかに該当するかどうかを判定する。
【０１２９】
・ファイルのコピー
・ファイルの移動
・ファイルのリネーム
処理対象のログが上記の条件に該当する場合、コピー・移動・リネーム元のファイルがマルウェアに感染していれば、コピー・移動・リネームされた先のファイルは、マルウェアに感染していると考えられる。そのため、ログトレース部４は、コピー・移動・リネームされたものをマルウェア拡散範囲リスト５に登録する必要がある。即ち、Ｓ１５０４の処理に移行する。現在の例では、図２５の時刻１２：０５のログの操作名は「コピー」であるため、処理はＳ１５０４に進む。
【０１３０】
Ｓ１５０４で、ログトレース部４は、マルウェア拡散範囲リスト５に、リムーバブルデバイスによってマルウェアが拡散したことを表す項目を追加する。追加する項目は、具体的には、タイプが「リムーバブルデバイス（入口）」であり、パスがＳ１５０２で取得したパスであり、「シリアルＩＤ」、「ベンダーＩＤ」、及び「プロダクトＩＤ」がＳ１５００で検出されたログである項目を追加する。
【０１３１】
Ｓ１５０５で、ログトレース部４は、現在の処理対象の操作ログをもとに、新たにマルウェア拡散範囲リスト５と同一のフォーマットの項目を作り出し、前記作り出した項目が既にマルウェア拡散範囲リスト５に登録されているか否かを判定する。登録されていない場合、処理はＳ１５０６に進み、登録されている場合、処理はＳ１５０７に進む。現在の例では、図２５の時刻１２：０５のログが処理対象であり、このログをもとに、マルウェア拡散範囲リストに追加する項目を作り出す。作り出した項目は、タイプが「ファイル」、ＰＣ名が「ＰＣＢ」、時刻が１２：０５、パスが「C:\Local\A.exe」、操作名が「コピー」というものになるので、これは登録されていない（図２６参照）。従って、処理はＳ１５０６に進む。
【０１３２】
Ｓ１５０６で、ログトレース部４は、現在の処理対象の操作ログをマルウェア拡散範囲リスト５に登録する。Ｓ１５０４及びＳ１５０６における処理の結果、マルウェア拡散範囲リスト５は、図２６の状態から図２７の状態に変化する。これにより、このフローにおいてマルウェア拡散範囲リスト５に登録された項目が図９のＳ９０２において読み込まれた際、そこからのフォワードトレースが実行される。即ち、リムーバブルデバイスによって拡散した先をフォワードトレースする。フォワードトレースした先が、再びリムーバブルデバイスであった場合には、再度、トレースフロー２−Ａの処理が開始されるため、全てのリムーバブルデバイスによる拡散範囲を把握することが可能になる。
【０１３３】
Ｓ１５０７及びＳ１５０８の処理は、図１０のＳ１００６及びＳ１００７と同様であるため、説明を省略する。
【０１３４】
＜＜トレースフロー２−Ｂ＞＞
ＰＣ操作ログが図２８に示すものである場合を例に、図９のＳ９１０において実行されるトレースフロー２−Ｂについて説明する。但し、ここでは共有フォルダに関する説明のみを行うため、図２８に示す操作ログのバックトレース（図９のＳ９０１）により図２０に示すマルウェア拡散範囲リストが生成され、図２０及び図２８の情報をもとにフォワードトレースを行い、Ｓ９０２においてタイプが「共有（出口）」である項目（図２９の６番目の項目）を取得した状態を前提に説明する。この前提に従い、Ｓ９０３の条件分岐により、処理はＳ９１０に進む。
【０１３５】
図１６Ａ及び図１６Ｂに、トレースフロー２−Ｂに関するフローチャートを示す。トレースフロー２−Ｂは、共有フォルダに持ち出されたマルウェアが、この共有フォルダを介して他のＰＣに拡散したことを検出するためのトレースフローである。
【０１３６】
共有フォルダ上にあるファイルに対してアクセスする方法は、以下の２通りが考えられる。
【０１３７】
・共有パスを指定してアクセスする場合（「\\PCB\share\A.exe」のようなパスを指定してアクセスする場合）
・共有フォルダが設置されているＰＣにおいて、ローカルパスを指定してアクセスする場合（「C:\share\A.exe」のようなパスを指定してアクセスする場合）
図２８において、時刻１０：０２に「\\PCB\share\A.exe」にコピーしたログと元パスが「C:\share\A.exe」である共有ログとが存在する。これは、共有フォルダ（\\PCB\share）として公開されているフォルダは、それが設置されているＰＣ（ＰＣＢ）の「C:\share\A.exe」というパスに存在していることを表している。即ち、「\\PCB\share\A.exe」と「C:\share\A.exe」とは、同一のファイルを指すパスである。このことを考慮すると、トレース対象のファイルが共有フォルダに存在する場合、２通りのパスからのトレースを行う必要がある。
【０１３８】
Ｓ１６００で、ログトレース部４は、共有フォルダに対する２通りのアクセス方法のうち、後者のアクセスを突き止めるために必要な情報を検出する。具体的には、以下の４つ全てに当てはまる操作ログを検出する。
（１）元パスから抽出したファイル名が、トレース対象のパスから抽出したファイル名と一致している。
（２）トレース対象のパスから抽出した共有ＰＣ名（共有パスの、先頭の「\\」から次の「\」までの間にある文字列。「\\PCB\share\A.exe」の場合は、「ＰＣＢ」となる）と、ＰＣ名が一致している。
（３）時刻がトレース対象のそれと一致している。
（４）操作名が「共有ログ」である。
【０１３９】
図２８においては、時刻１０：０２の「共有ログ」が検出される。
【０１４０】
Ｓ１６０１で、ログトレース部４は、ＰＣ操作ログ６から、トレース対象のログ（トレース対象ログ）を取得する。トレース対象ログは、トレース対象のパス（共有フォルダ上のパス）にあるファイルをコピー等した際の操作ログである。具体的には、以下のいずれかに当てはまる操作ログを取得し、時系列昇順に並べる。
【０１４１】
・元デバイスタイプが「Ｒｅｍｏｔｅ」であり、かつトレース対象のパスから共有ＰＣ名を除去した文字列」と、「操作ログの元パスから共有ＰＣ名を除去した文字列」が一致している
・元パスが、Ｓ１６００で検出した「共有ログ」と一致している
図２８においては、時刻１０：０５のログと、時刻１２：００のログがトレース対象ログとして取得される。
【０１４２】
Ｓ１６０２で、ログトレース部４は、Ｓ１６０１で取得したトレース対象ログから１つ目の項目を取得し、取得した項目を、Ｓ１６０３の処理対象とする。ここでは、図２８の時刻１０：０５のログが取得され、Ｓ１６０３の処理対象となる。
【０１４３】
Ｓ１６０３で、ログトレース部４は、Ｓ１６０２で取得した処理対象のログが、以下のいずれかに該当するかどうかを判定する。
【０１４４】
・ファイルのコピー
・ファイルの移動
・ファイルのリネーム
処理対象のログが上記の条件に該当する場合、コピー・移動・リネーム元のファイルがマルウェアに感染していれば、コピー・移動・リネームされた先のファイルは、マルウェアに感染していると考えられる。そのため、ログトレース部４は、コピー・移動・リネーム等されたものをマルウェア拡散範囲リスト５に登録する必要がある。即ち、Ｓ１６０４の処理に移行する。現在の例では、図２８の時刻１０：０５のログの操作名は「コピー」であるため、処理はＳ１６０４に進む。
【０１４５】
Ｓ１６０４で、ログトレース部４は、マルウェア拡散範囲リスト５に、共有フォルダを介してマルウェアが拡散したことを表す項目を追加する。追加する項目は、具体的には、タイプが「共有（入口）」であり、パスがＳ１６０２で取得したパスである項目である。
【０１４６】
Ｓ１６０５で、ログトレース部４は、現在の処理対象の操作ログをもとに、新たにマルウェア拡散範囲リスト５と同一のフォーマットの項目を作り出し、前記作り出した項目が既にマルウェア拡散範囲リスト５に登録されているか否かを判定する。登録されていない場合、処理はＳ１６０６に進み、登録されている場合、処理はＳ１６０７に進む。現在の例では、図２８の時刻１０：０５のログが処理対象であり、このログをもとに、マルウェア拡散範囲リストに追加する項目を作り出す。作り出した項目は、タイプが「ファイル」、ＰＣ名が「ＰＣＢ」、時刻が１０：０５、パスが「D:\Dir10\A.exe」、操作名が「コピー」というものになるので、これは登録されていない（図２９参照）。従って、処理はＳ１６０６に進む。
【０１４７】
Ｓ１６０６で、ログトレース部４は、現在の処理対象の操作ログをマルウェア拡散範囲リスト５に登録する。
【０１４８】
Ｓ１６０７及びＳ１６０８の処理は、図１０のＳ１００６及びＳ１００７と同様であるため、説明を省略する。
【０１４９】
全てのトレース対象ログに対する処理（特に、Ｓ１６０４及びＳ１６０６の処理）が完了すると、マルウェア拡散範囲リスト５は、図２９の状態から図３０の状態に変化する。これにより、このフローにおいてマルウェア拡散範囲リスト５に登録された項目が図９のＳ９０２において読み込まれた際、そこからのフォワードトレースが実行される。即ち共有フォルダによって拡散した先をフォワードトレースする。フォワードトレースした先が、再び共有フォルダであった場合には、再度、トレースフロー２−Ｂの処理が開始されるため、全ての共有フォルダによる拡散範囲を把握することが可能になる。
【０１５０】
以上説明したように、第１の実施形態によれば、ログトレース部４は、所定のマルウェア又はマルウェアの侵入元に基づいてＰＣ操作ログ６をトレースし、マルウェアの拡散を引き起こす操作を特定する。これにより、マルウェアの拡散範囲の特定精度を向上させることが可能となる。
【０１５１】
［第２の実施形態］
第２の実施形態では、マルウェアの拡散範囲を視覚的に表現するための技術について説明する。本実施形態において、マルウェアの拡散範囲を特定する特定装置の構成などは、特に断らない限り、第１の実施形態と同様である。
【０１５２】
例えば、マルウェア拡散範囲リスト５が「ＰＣ名」の情報を持つ場合、ＰＣ名単位でマルウェア拡散範囲リストの項目を集約すると、ＰＣ名単位でのマルウェア拡散状況が把握できる。更に、各項目のＩＤ及び親ＩＤを参照することによって、どのＰＣからどのＰＣへマルウェアが拡散していったのかという情報も把握することができる。
【０１５３】
例として、図３１Ａ及び図３１Ｂのようなマルウェア拡散範囲リストが生成されたとする。これは、ＰＣＤにおいてマルウェアが検知され、バックトレースを行った結果、そのマルウェアが「http://example.com」というｗｅｂサイトから侵入したということを表している。また、バックトレースの結果をもとに、フォワードトレースを行った結果、ＰＣＢからＰＣＥへリムーバブルデバイスを介して、ＰＣＢからＰＣＧへ共有フォルダを介して、それぞれマルウェアが拡散したことが確認できる。更に、ＰＣＥからＰＣＦへ、ＰＣＧからＰＣＨへ、それぞれメールとリムーバブルデバイスを介してマルウェアが拡散したことも確認できる。この情報を視覚的に表現したものを図３２に示す。図３２の表示は、例えば、クライアントＰＣ８やサーバ９が行う。
【０１５４】
図３２において、ノード３２００は、ＰＣ等の端末や、ｗｅｂやメール等の侵入口を表す。ノード３２００はコネクタ３２０１によって接続されており、拡散の経路を表している。また、コネクタ３２０１上には媒体３２０２を表示することもできる。これにより、ノード３２００間で、例えば共有フォルダやリムーバブルデバイスを介してマルウェアが拡散していったことを表すことができる。図３２では、ＰＣＧとＰＣＨとの間で、リムーバブルデバイスを介してマルウェアが拡散していったことが表されている。
【０１５５】
以上説明したように、第２の実施形態によれば、クライアントＰＣ８又はサーバ９は、図３２に示すような表示を行う。これにより、マルウェアの侵入口や拡散経路、マルウェアが潜伏している可能性のある端末の台数などを、容易に把握することが可能となる。
【０１５６】
［その他の実施形態］
上述した第１の実施形態では、マルウェア検知、又はマルウェア検知ログをトリガーとしてトレースを行うものとした。しかしながら、例えば、ユーザや管理者が指定する情報（例えば、パス名、ＵＲＬ等）に基づいてトレースを行ってもよい。また、マルウェア拡散範囲リスト５への情報の登録は、バックトレース及びフォワードトレースの結果に基づく自動的な登録に限らず、ユーザや管理者が手作業で登録を行ってもよい。
【０１５７】
また、マルウェアの拡散した範囲を特定することにより、感染した範囲を含む該当するゲートウェイを切断することも可能である。該当するゲートウェイを切断することにより、拡散していない範囲（端末）への二次感染を防ぐことができる。また、ＰＣ操作監視部１は、拡散していない範囲（端末）への二次感染を防ぐために、該当する端末の使用を不可にしたり、該当する端末のネットワークへの接続を不可にしてもよい。
【０１５８】
以上説明したように、上述の各実施形態によれば、マルウェアの拡散範囲を特定する特定装置が提供される。また、マルウェア拡散範囲を特定する特定装置は、クライアントＰＣ８に設けられてもよいし、サーバ９に設けられてもよい。クライアントＰＣ８に設ければ、スタンドアローン環境でも拡散範囲を特定できるようになる。サーバ９に設ければ、クライアントＰＣ８の特定処理による負荷を軽減できる。
【０１５９】
また、特定装置がクライアントＰＣ８に設けられていると共に、クライアントＰＣ８に接続されたサーバ９にも設けられていてもよい。クライアントＰＣ８に設けられた特定装置と、サーバ９に設けられた特定装置とが連携してマルウェアの拡散範囲を特定してもよい。これにより、負荷を分散できる。また、クライアントＰＣ８に記憶する操作履歴を削減できる。
【０１６０】
上述の各実施形態を実現するプログラム（例えば、コンピュータを、図２に示す特定装置として機能させるためのプログラム）も本発明の範囲に含まれ得る。
【０１６１】
本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
【０１６２】
本願は、２０１４年１１月５日提出の日本国特許出願特願２０１４−２２５４２２を基礎として優先権を主張するものであり、その記載内容の全てを、ここに援用する。
【符号の説明】
【０１６３】
１…ＰＣ操作監視部、２…ログ出力部、３…マルウェア検知部、４…ログトレース部、５…マルウェア拡散範囲リスト、６…ＰＣ操作ログ、７…ネットワーク、８…クライアントＰＣ、９…サーバ
【図１】
0006461992.tif 000002
【図２】
0006461992.tif 000003
【図３】
0006461992.tif 000004
【図４】
0006461992.tif 000005
【図５】
0006461992.tif 000006
【図６】
0006461992.tif 000007
【図７】
0006461992.tif 000008
【図８】
0006461992.tif 000009
【図９】
0006461992.tif 000010
【図１０】
0006461992.tif 000011
【図１１】
0006461992.tif 000012
【図１２Ａ】
0006461992.tif 000013
【図１２Ｂ】
0006461992.tif 000014
【図１３Ａ】
0006461992.tif 000015
【図１３Ｂ】
0006461992.tif 000016
【図１４Ａ】
0006461992.tif 000017
【図１４Ｂ】
0006461992.tif 000018
【図１５Ａ】
0006461992.tif 000019
【図１５Ｂ】
0006461992.tif 000020
【図１６Ａ】
0006461992.tif 000021
【図１６Ｂ】
0006461992.tif 000022
【図１７】
0006461992.tif 000023
【図１８】
0006461992.tif 000024
【図１９】
0006461992.tif 000025
【図２０】
0006461992.tif 000026
【図２１】
0006461992.tif 000027
【図２２】
0006461992.tif 000028
【図２３】
0006461992.tif 000029
【図２４】
0006461992.tif 000030
【図２５】
0006461992.tif 000031
【図２６】
0006461992.tif 000032
【図２７】
0006461992.tif 000033
【図２８】
0006461992.tif 000034
【図２９】
0006461992.tif 000035
【図３０】
0006461992.tif 000036
【図３１Ａ】
0006461992.tif 000037
【図３１Ｂ】
0006461992.tif 000038
【図３２】
0006461992.tif 000039
【図３３】
0006461992.tif 000040
【図３４】
0006461992.tif 000041
【図３５】
0006461992.tif 000042
【図３６】
0006461992.tif 000043