(57)【要約】      （修正有）【課題】マルウェアの経路を高速にトレースするための技術を提供する。【解決手段】マルウェアの経路をトレースする情報処理装置（サーバー２０）は、マルウェアを示す情報に基づいて、第一の操作履歴から検索を行う第一の検索手段（データベース２２４ａ）と、第一の検索手段にて検索された結果に、特定の操作が含まれているか否かを判定する判定手段と、判定手段にて特定の操作が含まれていると判定された場合、該特定の操作に基づいて、特定の操作の履歴である第二の操作履歴から検索を行う第二の検索手段（データベース２２４ｂ）と、を備える。【選択図】図２
2017037575.tif 000002
【特許請求の範囲】
【請求項１】
マルウェアの経路をトレースする情報処理装置であって、  前記マルウェアを示す情報に基づいて、第一の操作履歴から検索を行う第一の検索手段と、  前記第一の検索手段にて検索された結果に、特定の操作が含まれているか否かを判定する判定手段と、前記判定手段にて特定の操作が含まれていると判定された場合、該特定の操作に基づいて、特定の操作の履歴である第二の操作履歴から検索を行う第二の検索手段と、を備えることを特徴とする情報処理装置。
【請求項２】
前記特定の操作は、外部記憶装置に関する操作、共有フォルダに関する操作、Ｗｅｂアクセスに関する操作、デバイスの接続に関する操作、メールに関する操作のうちの少なくとも一つであることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
マルウェアの経路をトレースする情報処理方法であって、  前記マルウェアを示す情報に基づいて、第一の操作履歴から検索を行う第一の検索工程と、  前記第一の検索工程にて検索された結果に、特定の操作が含まれているか否かを判定する判定工程と、前記判定工程にて特定の操作が含まれていると判定された場合、該特定の操作に基づいて、特定の操作の履歴である第二の操作履歴から検索を行う第二の検索工程と、を備えることを特徴とする情報処理方法。
【請求項４】
マルウェアの経路をトレースする情報処理システムであって、  前記マルウェアを示す情報に基づいて、第一の操作履歴から検索を行う第一の検索手段と、  前記第一の検索手段にて検索された結果に、特定の操作が含まれているか否かを判定する判定手段と、前記判定手段にて特定の操作が含まれていると判定された場合、該特定の操作に基づいて、特定の操作の履歴である第二の操作履歴から検索を行う第二の検索手段と、を備えることを特徴とする情報処理システム。
【請求項５】
マルウェアの経路をトレースするプログラムであって、  コンピュータを、    前記マルウェアを示す情報に基づいて、第一の操作履歴から検索を行う第一の検索手段と、  前記第一の検索手段にて検索された結果に、特定の操作が含まれているか否かを判定する判定手段と、前記判定手段にて特定の操作が含まれていると判定された場合、該特定の操作に基づいて、特定の操作の履歴である第二の操作履歴から検索を行う第二の検索手段と、して機能させることを特徴とするプログラム。    
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルウェアの経路をトレースする情報処理装置、情報処理方法、情報処理システムおよびプログラムに関する。
【背景技術】
【０００２】
マルウェアはますます巧妙化している。マルウェアの感染を防ぐためには、マルウェアの感染経路や感染範囲（拡散範囲）を特定することが重要である。なお、あるマルウェアが見つかったときにそのマルウェアがどこからやってきたのかを辿る作業をバックトレースと呼び、そのマルウェアがさらにどの端末に伝搬してしまっているかを予測する作業をフォワードトレースと呼ぶことにする。詳細なバック／フォワードトレースを行うために、端末装置における詳細な操作履歴を取得し解析している（特許文献１、特許文献２）。しかし、端末装置における詳細な操作履歴を取得した場合、操作履歴の総量が多くなり、操作履歴を保管しているデータベースマネジメントシステム（以下、「データベース」という）が肥大化し、操作履歴の検索に多大な時間がかかってしまう。
【０００３】
マルウェアのバック／フォワードトレースを行う際の検索キーとして、ファイルパスやデバイスＩＤなどが使用されるため、ファイルパスやデバイスＩＤなど複数の項目にインデックスを付けて検索を効率化することが知られている。しかし、複数の項目にインデックスを付けると、操作履歴の総量が多すぎるためにインデックスの効果がなくなったり、インデックスによりデータベースのメモリ使用量が増加し、データベースの運用に支障がでたりする可能性がある。データベースを運用するために、データベースサーバのメモリを増加させるなどのスペックの向上を行えば、データベースの運用に支障がでることなく運用させることは可能だが、高性能なスペックがもとめられ、コストがかかりユーザビリティが低い。
【０００４】
また、検索する項目が一つであるような簡単な検索を行う場合は、複数項目にインデックスを付加しなくても、高速に検索することができ、高性能なスペックを必要としない。しかし、複数の項目にインデックスを付けない構成で検索した場合は、メモリの使用量はおさえられるが、インデックスが付いていない項目への検索に時間がかかりすぎてしまうという問題がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】ＷＯ２０１４／０８７５９７号公報
【特許文献２】特開２００９−１７６１３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１、２は、マルウェアの経路をトレースするための検索時間を考慮していない。
【０００７】
本発明は、上記問題点に鑑みてなされたものであり、検索する際に複数のデータベースを使い分けることにより、マルウェアの経路を高速にトレースするための技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、
マルウェアの経路をトレースする情報処理装置であって、  前記マルウェアを示す情報に基づいて、第一の操作履歴から検索を行う第一の検索手段と、  前記第一の検索手段にて検索された結果に、特定の操作が含まれているか否かを判定する判定手段と、前記判定手段にて特定の操作が含まれていると判定された場合、該特定の操作に基づいて、特定の操作の履歴である第二の操作履歴から検索を行う第二の検索手段と、を備えることを特徴とする情報処理装置を提供する。
【発明の効果】
【０００９】
本発明によれば、マルウェアの経路を高速にトレースすることができる。
【００１０】
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。
【図面の簡単な説明】
【００１１】
【図１】情報処理システムの一例を示す図である。
【図２】各種プログラムを実行することでＣＰＵなどによって実現される機能を示したブロック図である。
【図３】ログ処理部の処理を示すフローチャートである。
【図４】バックトレース処理を示すフローチャートである。
【図５】フォワードトレース処理を示すフローチャートである。
【図６】クライアント装置内のバックトレースの一例を示す図である。
【図７】クライアント装置内のフォワードトレースの一例を示す図である。
【図８】感染元クライアント装置を特定するバックトレースの一例を示す図である。
【図９】感染クライアント装置を特定するバックトレースの一例を示す図である。
【図１０】各種プログラムを実行することでＣＰＵなどによって実現される機能を示したブロック図である。
【図１１】各種プログラムを実行することでＣＰＵなどによって実現される機能を示したブロック図である。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。ただし、この実
施形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに
限定する趣旨のものではない。また、実施形態で説明されている特徴の組み合わせの全て
が発明の解決手段に必須のものとは限らない。
【００１３】
＜第一実施形態＞
[基本的な考え方]
本発明は、複数のデータベース（後述する図２のデータベース２２４ａ、データベース２２４ｂ）を使い分けることにより、高速なトレースを行うことができる。データベースは、たとえば、単純な検索に適した構成を有するデータベース（データベース２２４ａ）と、複雑な検索に適した構成を有するデータベース（データベース２２４ｂ）とを用いる。  
次にトレース処理について説明する。トレース（バックトレース、フォワードトレース）を行うための処理を分類すると、クライアント装置内における、マルウェアの侵入経路や感染範囲（拡散範囲）を特定する処理Ａ（後述する図４のＳ４０２、図５のＳ５０２、図６、図７）と、他のクライアント装置における、マルウェアの感染を特定する処理Ｂ（後述する図４のＳ４０４、図５のＳ５０４、図８、図９）に分類することができる。
【００１４】
処理Ａについては、指定されたクライアント装置の操作ログ（操作履歴）に対してトレースを行うため、トレース対象操作ログは少なくなる。しかし、処理Ｂについては、トレース対象の操作ログを取得しているクライアント装置全てが対象となり、トレース対象操作ログが肥大化する。そこで、処理Ｂのトレース対象となる操作ログは全ての操作ログを対象となるのではなく、たとえば、特定の操作（外部記憶装置に関する操作ログや共有フォルダに関する操作ログなど）に限定して、ファイルパスやデバイスＩＤにインデックスを付けてトレースする。
【００１５】
従って、トレース処理に合わせたデータベースを使い分けることで、ユーザビリティが高く、かつ高速なトレースを短時間で行うことができる。たとえば、処理Ａでは、ＰＣ名でインデックスを付けたデータベース２２４ａ（図２のデータベース２２４ａ）を使用し、トレース処理を行う。処理Ｂでは、ファイルパスやデバイスＩＤなどの複数項目にインデックスを付けたデータベース２２４ｂ（図２のデータベース２２４ｂ）を使用し、トレース処理を行う。
【００１６】
これにより、処理Ａでは解析対象操作ログが少ないため、トレース速度をおとすことがない。また、処理Ｂでは、ファイルパスやデバイスＩＤにインデックスが付いているため、高速に検索でき、かつ、操作ログが削減されているためにデータベースの肥大化などを防止することが可能となる。
なお、後述する処理では、ＰＣ名でインデックスを付けたデータベース２２４ａ（図２のデータベース２２４ａ）、ファイルパスやコピー元にインデックスを付けたデータベース２２４ｂ（図２のデータベース２２４ｂ）を用いて説明するが、これに限定されず、インデックスは何れの項目でもよい。
【００１７】
[構成]
図１は、クライアント装置１０ａ、１０ｂ（以下、単にクライアント装置１０と称す。）と操作履歴を収集するサーバ装置２０とを含む情報処理システムの一例を示す図である。クライアント装置１０は、たとえば、企業、学校、行政機関または家庭などに設置され、ユーザの業務履歴（操作履歴ないしは閲覧履歴）を取得するコンピュータの一例である。なお、クライアント装置１０は、パーソナルコンピュータに限定されず、スキャナ装置、複合機、デジタルカメラ、携帯端末装置でもよい。サーバ装置２０は、複数のクライアント装置１０から操作履歴を取得して、データベース２２４ａまたはデータベース２２４ｂに入力し、マルウェアの侵入経路や感染範囲を特定するコンピュータ（情報処理装置）である。クライアント装置１０は、インターネットやイントラネットなどのネットワーク１００を介してサーバ装置２０やＷｅｂサーバ、ＦＴＰサーバ、メールサーバなどと接続されている。
【００１８】
クライアント装置１０は、オフィス（企業、学校および行政機関）や家庭などに配置されるパーソナルコンピュータなどの情報処理装置（端末装置）である。クライアント装置１０では、記憶装置１５に記憶されているソフトウエアにしたがってＣＰＵ１１が各種手段として機能する。記憶装置１５は、ハードディスクドライブ（ＨＤＤ）やＳＳＤなどである。メモリ１３は、ＲＡＭやＲＯＭなどを含む。ＲＯＭには、ＢＩＯＳなどのブートプログラムが記憶されている。ブートプログラムにしたがって、オペレーティングシステム（ＯＳ）が起動され、さらにＯＳにしたがって、各種の常駐プログラム（エージェントサービスやマルウェア検知プログラム、マルウェア経路検索プログラムなど）が起動される。ＲＡＭは、ワークエリアとして機能する。ネットワークインターフェース１４は、ネットワーク１００を通じて他のコンピュータと通信するための通信回路である。ＣＰＵ１１およびネットワークインターフェース１４は、情報をサーバ装置から受信する受信手段や情報をサーバ装置に送信する送信手段として機能する。記憶装置１５は、Ｗｅｂブラウザやメーラーだけでなく、ＯＳや、エージェントサービスやマルウェア検知プログラム、マルウェア経路検索プログラム、操作履歴データベースなどを記憶する。エージェントサービスは、操作履歴の監視と記録を担当するプログラムである。ＯＳとしては、一例として、Ｗｉｎｄｏｗｓ（登録商標）について説明するが、ＭａｃＯＳ（登録商標）、Ｌｉｎｕｘ（登録商標）、ｉＯＳ（登録商標）、Ａｎｄｒｏｉｄ（登録商標）などであってもよい。入力部１６は、ポインティングデバイス（マウスやタッチパネル）やキーボードなどである。キーボードはソフトウエアキーボードであってもよい。また、入力部１６は、入力された操作者の音声を音声認識機能により認識してＣＰＵ１１へ指示を入力する音声認識入力部であってもよい。表示装置１２は、情報を表示するためのユーザインタフェースである。外部インタフェース１７は、ＵＳＢインタフェースなどであり、リムーバブルデバイス１８を接続する。リムーバブルデバイス１８は、たとえば、ストレージクラスとして認識されるＵＳＢメモリなどである。
【００１９】
サーバ装置２０の記憶装置２５は、ハードディスクドライブ（ＨＤＤ）やＳＳＤなどであり、サーバプログラムを記憶している。メモリ２３は、ＲＡＭやＲＯＭなどを含む。ＣＰＵ２１は、サーバプログラムをＲＡＭにロードし、複数のクライアント装置１０から操作履歴データを取得して、データベース２２４ａまたはデータベース２２４ｂに入力し、マルウェア侵入経路や感染範囲を特定する。データベースは２２４ａと２２４ｂの２つまたはそれ以上の数のデータベースを使用する。ネットワークインターフェース２４は、ネットワーク１００を通じて他のコンピュータと通信するための通信回路である。表示装置２２は、情報を表示するためのユーザインタフェースである。
【００２０】
図２は、各種プログラムを実行することでＣＰＵなどによって実現される機能を示したブロック図である。クライアント装置１０のエージェントサービス２０１は、サーバ装置２０の管理部２２５から設定される設定情報をマルウェア経路検索部２０２に設定したり、ユーザの操作を監視して操作履歴を操作履歴データベース２０４に記録したり、マルウェア経路検索部２０２の検索結果を取得したり、サーバ装置２０に対してマルウェア侵入経路または感染範囲の検索を依頼するためのリクエストを送信したりする。
【００２１】
マルウェア経路検索部２０２は、マルウェア検知部２０３からマルウェア情報（感染ファイルのパス名、マルウェア名、マルウェアに関連したプロセスパス名など）を取得すると、そのマルウェアの侵入経路を操作履歴に基づいてバックトレースしたり、そのマルウェアの感染範囲を操作履歴に基づいてフォワードトレースしたりする。なお、マルウェア検知部２０３からマルウェア情報を取得することに限らず、入力部１６から入力されたマルウェア情報や、サーバ装置２０から送信されたマルウェア情報を取得してもよい。
【００２２】
マルウェア検知部２０３は、マルウェア定義ファイルに基づいて既知のマルウェアや未知のマルウェアを検知する。操作履歴データベース２０４には、ユーザがクライアント装置１０において実行した各種の操作内容と操作日時などが操作履歴として記録されている。エージェントサービス２０１は、所定のタイミングになると操作履歴の一部またはすべてをサーバ装置２０に転送し、転送済みの操作履歴を削除してもよい。
【００２３】
また、クライアント装置１０のエージェントサービス２０１、マルウェア経路検索部２０２、マルウェア検知部２０３、データベース２０４の一部、または全てをシンクライアント（たとえば、ターミナルサービス）により実現してもよい。ターミナルサービスとは、クライアントコンピュータがサーバコンピュータにリモート接続し、サーバコンピュータ上に生成された仮想デスクトップ環境を利用してサーバコンピュータ上でアプリケーションプログラムを実行できるようにするサービスである。このとき、複数のユーザが同時並行的にそれぞれのユーザアカウントを用いて、サーバコンピュータが提供するサービスにログインし、仮想デスクトップ環境を利用することができる。
【００２４】
サーバ装置２０は、クライアント装置１０のマルウェア経路検索部２０２と同様の機能を有するマルウェア経路検索部２２２を有している。マルウェア経路検索部２２２は、情報取得部２２３を通じてマルウェア経路検索（侵入経路検索、感染範囲検索）の検索リクエストを受信すると、そのクライアント装置の操作履歴を検索対象として操作履歴データベース２２４ａ（第一の検索手段）、または操作履歴データベース２２４ｂ（第二の検索手段）を検索し、マルウェアの侵入経路または感染範囲を特定する。この検索結果はビューワ２１１によって表示装置２２に表示されたり、クライアント装置１０に送信されたりする。ログ処理部２２１は、エージェントサービス２０１により転送されてきた操作履歴を操作履歴データベース２２４ａ（第一の検索手段）、または操作履歴データベース２２４ｂ（第二の検索手段）に書き込む。
【００２５】
操作履歴データベース２２４ａおよび操作履歴データベース２２４ｂは、クライアント装置１０の操作履歴データベース２０４と比較して、長期間にわたる操作履歴のデータが記憶されている。操作履歴データベース２２４ａと操作履歴データベース２２４ｂは、記録されている操作履歴が異なり、データベース２２４ａは、ＰＣ名にインデックスを付け、ＰＣ名をキーとして指定した際に検索性能が高いデータベース（単純な検索に適した構成を有するデータベース）である。データベース２２４ｂは、様々な操作履歴データに対してインデックスを付与し検索性能が高いが、インデックスによるサーバ負荷が高いデータベース（複雑な検索に適した構成を有するデータベース）である。
【００２６】
情報取得部２２３は、クライアント装置１０との間でのデータの送受信などを担当する。情報取得部２２３は、エージェントサービス２０１から検索リクエストを受信すると、リクエストをマルウェア経路検索部２２２に渡す。たとえば、これらの通信処理はＨＴＴＰ通信で行われる。情報取得部２２３は、マルウェア経路検索部２２２からバックトレース／フォワードトレースの結果を受信すると、リクエストを送信してきたクライアント装置１０に結果を送信する。
ログ処理部２２１は、クライアント装置１０から受信した操作履歴を操作履歴データベース２２４ａ、または２２４ｂに書き込む。詳しくは、後述する。ビューワ２１１は、マルウェア経路検索部２２２から受信したバックトレース／フォワードトレースの結果を表示装置２２に表示させる。管理部２２５は、エージェントサービス２０１に対して各種の設定（操作履歴の記録対象、操作履歴の保持期間の設定など）を行う。
【００２７】
[サーバ装置のログ処理部]  
サーバ装置２０のログ処理部２２１は、エージェント２０１から収集した操作履歴をデータベース２２４ａ、またはデータベース２２４ｂに割り振る。
【００２８】
図３は、ログ処理部２２１の処理を示すフローチャートである。Ｓ３０１にて、ログ処理部２２１は、エージェント２０１から収集した操作履歴（ログ）から１レコード読み込む。Ｓ３０２にて、ログ処理部２２１は読み込んだログが外部記憶装置関連（外部記憶装置に関する操作）のログかどうかを判断する。外部記憶装置関連のログとは、たとえばＵＳＢメモリなどの外部記憶装置内のファイルをローカルドライブへコピーや移動、ローカルドライブから外部記憶装置へのファイルのコピーや移動、外部記憶装置内のコピー、削除、新規作成、開くなどの操作のログである。外部記憶装置関連のログであった場合（Ｓ３０２にてＹＥＳ）、Ｓ３０７に進み、Ｓ３０７にて、ログ処理部２２１は、データベース２２４ｂに外部記憶装置関連のログ（第二の操作履歴）を書き込む。
【００２９】
外部記憶装置関連のログでない場合（Ｓ３０２にてＮＯ）、Ｓ３０３にて、ログ処理部２２１は、読み込んだログが共有フォルダ関連（共有フォルダに関する操作）のログかどうかを判断する。共有フォルダ関連のログとは、たとえば他の情報処理装置などで公開されている共有フォルダ上のファイルをローカルドライブへコピーや移動、ローカルドライブから共有フォルダへのファイルのコピーや移動、共有フォルダ内のコピー、削除、新規作成、開くなどの操作のログである。共有フォルダ関連のログであった場合（Ｓ３０３にてＹＥＳ）、Ｓ３０７に進み、Ｓ３０７にて、ログ処理部２２１は、データベース２２４ｂに共有フォルダ関連のログ（第二の操作履歴）を書き込む。
【００３０】
共有フォルダ関連のログでない場合（Ｓ３０３にてＮＯ）、Ｓ３０４にて、ログ処理部２２１は、読み込んだログがＷｅｂアクセス関連（Ｗｅｂアクセスに関する操作）のログかどうかを判断する。Ｗｅｂアクセス関連のログとは、たとえばＨＴＴＰなどを利用し外部のＷｅｂページにアクセスしたログや、Ｗｅｂブラウザのアドレスバーを監視してアドレスバーの文字列の先頭がｈｔｔｐやｆｔｐで始まるログのことである。Ｗｅｂアクセスログ関連のログであった場合（Ｓ３０４にてＹＥＳ）、Ｓ３０７に進み、Ｓ３０７にて、ログ処理部２２１は、データベース２２４ｂにＷｅｂアクセスログ関連のログ（第二の操作履歴）を書き込む。
【００３１】
Ｗｅｂアクセス関連のログでない場合（Ｓ３０４にてＮＯ）、Ｓ３０５にて、ログ処理部２２１は、読み込んだログがデバイスの接続（デバイスの接続に関する操作）のログかどうかを判断する。デバイスの接続ログとは、たとえば外部記憶装置が情報処理装置に接続された際に取得されるデバイス固有ＩＤなどを取得しているログ、または外部記憶装置が取り外された際に出力されるログのことである。デバイスの接続ログであった場合（Ｓ３０５にてＹＥＳ）、Ｓ３０７に進み、Ｓ３０７にて、ログ処理部２２１は、データベース２２４ｂにデバイスの接続ログ（第二の操作履歴）を書き込む。
【００３２】
デバイスの接続ログでない場合（Ｓ３０５にてＮＯ）、Ｓ３０６にて、ログ処理部２２１は、読み込んだログがメールに関連した（メールに関する操作）ログかどうかを判断する。メールに関連したログとは、たとえばメールを受信したログ、またはメールを送信したログのことである。メールに関連したログであった場合（Ｓ３０６にてＹＥＳ）、Ｓ３０７に進み、Ｓ３０７にて、ログ処理部２２１は、データベース２２４ｂにデバイスの接続ログ（第二の操作履歴）を書き込む。
メールに関連したログでない場合（Ｓ３０６にてＮＯ）、または、Ｓ３０７にてデータベース２２４ｂに該当のログを書き込むと、Ｓ３０７にて、ログ処理部２２１は、ログ（第一の操作履歴）をデータベース２２４ａに書き込みし、次のレコードを読み込み、処理を繰り返す。なお、Ｓ３０２〜Ｓ３０６の処理の順序は、これに限定されず、どのような順序でもよいし、各々並列に処理を実行してもよい。
【００３３】
[バックトレースの詳細]  
マルウェア経路検索部２２２は、トレース内容によりデータベース２２４ａとデータベース２２４ｂとを切り替えながら、バックトレースを行う。
【００３４】
図４は、マルウェア経路検索部２２２のバックトレース処理を示すフローチャートである。Ｓ４０１にて、マルウェア経路検索部２２２は、マルウェア経路検索（侵入経路検索）の検索リクエストを受信すると、バックトレースを開始する。検索リクエストには、マルウェアに感染しているＰＣ名と、そのファイルが存在するフルパス（ファイルパス）が含まれており、マルウェア経路検索部２２２は、ＰＣ名とファイルパスに基づいてバックトレースを行う。
【００３５】
Ｓ４０２にて、感染しているＰＣ名に対応するクライアント装置の操作履歴についてバックトレース（クライアント装置内のトレース）を行い、感染しているクライアント装置の侵入経路を特定する。その際に使用するデータベースは、データベース２２４ａを使用する。
【００３６】
ここで、図６を用いて侵入経路を特定する処理について説明する。図６は、リムーバブルデバイスによってマルウェアに感染したときのバックトレースの一例を示す。ここでは、操作履歴６００に記憶されている操作の内容からバックトレースを実行する例を説明する。操作履歴６００は、たとえば、操作名６０１、ファイル名６０２、プロセス名６０３、コピー元６０４、リネーム元６０５、ＵＲＬ６０６、操作日時６０７などを含んでいる。ＵＲＬ６０６はネットワークのアクセスログから特定されてもよいし、対象のプロセスのアクティブウインドウのウィンドウ名（タイトル名）／アドレスバー名から判断されてもよい。なお、プロセスによっては、あるプロセス（親プログラム）が元になって何らかのプログラム（子プログラム）を生成する場合がある。その場合は、親プログラム／子プログラムのウィンドウ名（タイトル名）／アドレスバー名からＵＲＬ６０６が判断されてもよい。マルウェア経路検索部２２２は、トレース対象となるパスをトレースする。トレース対象となるファイル名（例：ｔｅｓｔ．ｅｘｅ）を検索キーとして操作履歴６００を検索し、日時の新しい操作内容から順番に経路をバックトレースして行く。この例では、マルウェア（ｔｅｓｔ．ｅｘｅ）がリネームされており、リネーム元６０５（Ｍａｌｗａｒｅ２．ｅｘｅ）が取得できる。さらにリネーム元について過去の操作履歴を遡ると、新規作成されていることがわかり、作成したプロセス名６０３（Ｍａｌｗａｒｅ．ｅｘｅ）が取得できる。プロセス名に従って過去の操作履歴を遡ると、操作名として最初の侵入に関与した操作である「ファイルコピー」を見つける。見つかったレコードにおけるコピー元６０４は、リムーバブルデバイスがコピー元であったことを示している。よって、マルウェア経路検索部２２２は、マルウェア（ｔｅｓｔ．ｅｘｅ）の侵入経路は、リムーバブルデバイスであると特定する。なお、操作履歴６００のレコードにリムーバブルデバイスのプロダクトＩＤやベンダーＩＤやシリアルＩＤなどを記録しておけば、具体的にどのリムーバブルデバイスであったかを特定できるようになる。
【００３７】
Ｓ４０３にて、他のクライアント装置から感染した可能性があるかどうかを判断する。たとえば、Ｓ４０２にて特定された侵入経路が、外部記憶装置や共有フォルダであった場合、他のクライアント装置から感染した可能性があると判断し、Ｓ４０４に進む。Ｓ４０２にて特定された侵入経路が、外部記憶装置や共有フォルダでない場合、他のクライアント装置から感染した可能性がないと判断し、処理を終了する。
【００３８】
Ｓ４０４にて、感染元クライアント装置を検索するために、他のクライアント装置の操作履歴をトレースする。たとえば、Ｓ４０２にて特定された侵入経路が外部記憶装置であった場合は、そのマルウェアファイルを作成した他のクライアント装置を検索する。または、共有フォルダであった場合、共有フォルダにコピーした他のクライアント装置を検索する。この際に、データベース２２４ａを使用すると検索性能が低いため、データベース２２４ｂを使用し、検索性能を向上させる。
【００３９】
ここで、図８を用いて感染元クライアント装置を検索する処理について説明する。図８は、リムーバブルデバイスによってマルウェアに感染したときの感染元クライアント装置の検索の一例を示す。ここでは、操作履歴８００に記憶されている操作の内容からバックトレースを実行する例を説明する。操作履歴８００は、たとえば、ＰＣ名８０１、操作名８０２、ファイル名８０３、プロセス名８０４、コピー元８０５、リネーム元８０６、ＵＲＬ８０７、操作日時８０８などを含んでいる。マルウェア経路検索部２２２は、トレース対象となるリムーバブルデバイスのファイルを新規作成したクライアント装置を検索する。ＰＣ名８０１（ＰＣＢ）のトレース結果から、リムーバブルデバイスのファイル（例：リムーバブル）から感染したことが判明しているため、リムーバブルデバイスのファイルを検索キーとして、ファイルパスやコピー元でインデックスを付けた操作履歴８００を検索し、日時の新しい操作内容から順番に経路をバックトレースしていく。バックトレースした結果、ＰＣ名８０１（ＰＣＡ）がマルウェア(Ｍａｌｗａｒｅ．ｅｘｅ)をリムーバブルデバイスからコピーしたことがわかり、感染元クライアント装置（ＰＣＡ）とマルウェアのファイルパス（Ｍａｌｗａｒｅ．ｅｘｅ）が取得できる。
【００４０】
Ｓ４０５にて、Ｓ４０４の検索結果により、感染元クライアント装置が特定できたかどうかを判断する。特定できた場合は、Ｓ４０２に進み、感染元クライアント装置のＰＣ名（ＰＣＡ）と、マルウェアのファイルパス（Ｍａｌｗａｒｅ．ｅｘｅ）に基づいて、バックトレースを行う。特定できなかった場合は、処理を終了する。
【００４１】
[フォワードトレースの詳細]  
マルウェア経路検索部２２２は、トレース内容によりデータベース２２４ａまたはデータベース２２４ｂを切り替えながら、フォワードトレースを行う。
【００４２】
図５は、マルウェア経路検索部２２２のフォワードトレース処理を示すフローチャートである。Ｓ５０１にて、マルウェア経路検索部２２２は、マルウェア経路検索（感染範囲検索）の検索リクエストを受信すると、フォワードトレースを開始する。検索リクエストには、マルウェアに感染しているＰＣ名と、そのファイルが存在するフルパス（ファイルパス）が含まれており、マルウェア経路検索部２２２は、ＰＣ名とファイルパスに基づいてフォワードトレースを行う。
【００４３】
Ｓ５０２にて、感染しているＰＣ名に対応するクライアント装置の操作履歴について、フォワードトレース（クライアント装置内のトレース）を行い、感染しているクライアント装置の感染範囲を特定する。その際に使用するデータベースはデータベース２２４ａを使用する。
【００４４】
ここで、図７を用いて感染範囲を特定する処理について説明する。  図7は、リムーバブルデバイスによってマルウェアに感染したときのフォワードトレースの一例を示す。ここでは、操作履歴７００に記憶されている操作の内容からフォワードトレースを実行する例を説明する。操作履歴７００は、たとえば、操作名７０１、ファイル名７０２、プロセス名７０３、コピー元７０４、リネーム元７０５、ＵＲＬ７０６、操作日時７０７などを含んでいる。ＵＲＬ７０６は、ネットワークのアクセスログから特定されてもよいし、対象のプロセスのアクティブウインドウのウィンドウ名（タイトル名）／アドレスバー名から判断されてもよい。なお、プロセスによっては、あるプロセス（親プログラム）が元になって何らかのプログラム（子プログラム）を生成する場合がある。その場合は、親プログラム／子プログラムのウィンドウ名（タイトル名）／アドレスバー名から、ＵＲＬ７０６が判断されてもよい。マルウェア経路検索部２２２は、トレース対象となるパスをトレースする。トレース対象となるファイル名（例：Ｍａｌｗａｒｅ．ｅｘｅ）を検索キーとして、ＰＣ名でインデックスを付けた操作履歴７００を検索し、日時の古い操作内容から順番に経路をフォワードトレースして行く。この例では、マルウェア（Ｍａｌｗａｒｅ．ｅｘｅ）がリムーバブルデバイスから、コピーされており、コピー先のファイル名７０２（Ｍａｌｗａｒｅ．ｅｘｅ）が取得できる。さらにコピー先（Ｍａｌｗａｒｅ．ｅｘｅ）を操作履歴からフォワードトレースすると、ファイルを新規作成しており、新規作成したファイル名７０２（Ｍａｌｗａｒｅ２．ｅｘｅ）が取得できる。さらに新規作成したファイル名（Ｍａｌｗａｒｅ２．ｅｘｅ）を検索キーとして操作履歴７００を検索し、リネームされている（ｔｅｓｔ．ｅｘｅ）ことがわかる。よって、マルウェア経路検索部２２２は、マルウェア（Ｍａｌｗａｒｅ．ｅｘｅ）の感染範囲を特定することができる。
【００４５】
Ｓ５０３にて、他のクライアント装置へ感染した可能性があるかを判断する。たとえば、Ｓ５０２にて特定された感染範囲に、外部記憶装置や共有フォルダがあった場合、他のクライアント装置へ感染した可能性があると判断し、Ｓ５０４に進む。Ｓ５０２にて特定された感染範囲に、外部記憶装置や共有フォルダがない場合、他のクライアント装置に感染した可能性がないと判断し、処理を終了する。
【００４６】
Ｓ５０４にて、感染したクライアント装置を検索するために、他のクライアント装置の操作履歴をトレースする。たとえば、Ｓ５０３にて特定された外部記憶装置のマルウェアファイルに対してアクセスした他のクライアント装置を検索する。または、共有フォルダであった場合、共有フォルダのマルウェアファイルに対してアクセスした他のクライアント装置を検索する。この際に、データベース２２４ａを使用すると検索性能が低いため、データベース２２４ｂを使用し、検索性能を向上させる。
【００４７】
ここで、図９を用いて感染したクライアント装置を検索する処理について説明する。図９は、リムーバブルデバイスによってマルウェアに感染したときの感染したクライアント装置の検索の一例を示す。ここでは、操作履歴９００に記憶されている操作の内容からフォワードトレースを実行する例を説明する。操作履歴９００は、たとえば、ＰＣ名９０１、操作名９０２、ファイル名９０３、プロセス名９０４、コピー元９０５、リネーム元９０６、ＵＲＬ９０７、操作日時９０８などを含んでいる。マルウェア経路検索部２２２は、トレース対象となるリムーバブルデバイスのファイルを新規作成したＰＣを検索する。ＰＣ名８０１（ＰＣＡ）のトレース結果から、リムーバブルデバイスのファイル（例：リムーバブル）に感染したことが判明しているため、リムーバブルデバイスのファイルを検索キーとして、ファイルパスやコピー元でインデックスを付けた操作履歴９００を検索し、日時の古い操作内容から順番に経路をフォワードトレースして行く。フォワードトレースした結果、ＰＣ名８０１（ＰＣＢ）が、リムーバブルデバイスからマルウェア(Ｍａｌｗａｒｅ２．ｅｘｅ)としてコピーしたことがわかり、感染したクライアント装置（ＰＣＢ）と、マルウェアのファイルパス（Ｍａｌｗａｒｅ２．ｅｘｅ）が取得できる。
【００４８】
Ｓ５０５にて、Ｓ５０４の検索結果により、感染したクライアント装置が特定できたかどうかを判断する。特定できた場合は、Ｓ５０２に進み、感染したクライアント装置のＰＣ名（ＰＣＢ）と、マルウェアのファイルパス（Ｍａｌｗａｒｅ２．ｅｘｅ）に基づいて、フォワードトレースを行う。特定できなかった場合は、処理を終了する。
【００４９】
本実施形態によれば、性能の異なる複数のデータベース（たとえば、単純な処理に適した構成を有するデータベース２２４ａ、複雑な処理に適した構成を有するデータベース２２４ｂ）を、トレース処理（クライアント装置内のトレース、他のクライアント装置のトレース）に応じて使い分けることにより、マルウェアの経路を高速にトレースすることができる。
【００５０】
＜第二実施形態＞
第一実施形態では、データベース２２４ａ、データベース２２４ｂは、サーバ装置２０に内蔵されているものとして説明した。しかし、図１０が示すように、データベース２２４ａ、データベース２２４ｂは、サーバ装置２０の外部に設置されていてもよい。また、図１１が示すように、データベース２２４ｂ（または、データベース２２４ａ）をサーバ装置２０に内蔵させ、データベース２２４ａ（または、データベース２２４ｂ）をサーバ装置２０の外部に設置されていてもよい。なお、第二実施形態の大部分は、第一実施形態の動作と共通するため、第一実施形態と異なる構成、動作のみ説明し、共通の構成、動作については説明を省略する。
【００５１】
図１０は、各種プログラムを実行することでＣＰＵなどによって実現される機能を示したブロック図の一例である。情報処理装置３０、情報処理装置４０は、コンピュータの一例である。データベース２２４ａを内蔵している情報処理装置３０、データベース２２４ｂを内蔵している情報処理装置４０は、サーバ装置２０とネットワークを介して接続されている。なお、情報処理装置３０は、データベース２２４ａと、データベース２２４ｂとを内蔵してもよい。
【００５２】
図１１は、各種プログラムを実行することでＣＰＵなどによって実現される機能を示したブロック図の一例である。データベース２２４ａを内蔵している情報処理装置３０は、サーバ装置２０とネットワークを介して接続されている。なお、データベース２２４ａをサーバ装置２０に内蔵させ、データベース２２４ｂを情報処理装置３０に内蔵させてもよい。
【００５３】
なお、本発明は、上述した実施形態に限定されるものではなく、次のような態様についても含まれる。具体的には、複数の情報処理端末を所定のネットワークで接続し、各情報処理端末で行われる所定の操作（例えば、マウスやキーボード等を用いた入力に関する操作、メール等のアプリケーション操作、Ｗｅｂアクセスに関する操作、ＵＳＢメモリ等の外部記憶装置に関する操作、共有フォルダに関する操作、その他各種デバイスに関する操作等）の操作履歴を所定のサーバで収集するシステムにおいて、ある特定の情報処理端末でマルウェア検知ソフト等によりマルウェアが検出された場合、マルウェアの経路をトレースする。このトレース処理では、最終的に、マルウェアの拡散範囲や侵入経路等を特定するためにシステム全域にわたってバックトレース又はフォワードトレースを行う。このようなトレース処理においては、操作履歴を集めたデータベースの検索を高速で且つ短時間に行うことが求められる。そのために、メモリ容量を増やしたりしてスペックを向上したデータベースを準備してもよいが、多大なコストがかかってしまう。これを防ぐために、本発明では、例えば、データベースの合理化を図り、上記のシステム内で集めた操作履歴が記憶されたデータベース（これを第一の検索手段とする）と、マルウェアの侵入経路あるいは拡散経路等をトレースして特定するのに要する特定の操作履歴毎に整理したデータベース（これを第二の検索手段とする）とを予め構築しておく。これにより、まず、マルウェアが検知された特定の情報処理端末を検索するときには、特定の情報処理端末に関する操作履歴を検索するために第一の検索手段に切り替えて検索（一次検索）し、その検索結果として、そのマルウェアが情報処理端末のどこから進入したのか、どのように拡散しているのか、あるいはどこから外部に拡散していったのか等を特定し、その特定した操作履歴を抽出する（第一のトレース結果）。この第一のトレース結果には、例えば、特定の情報処理端末の操作履歴に関する情報が含まれる。次に、この第一のトレース結果に基づいて、少なくとも特定の操作履歴毎に整理した第二の検索手段に切り替えて検索する。これにより、第一の検索手段によりマルウェアの経路に関する特定の操作履歴を抽出し、その抽出結果に基づいて第二の検索手段によりシステム内の検索（二次検索）を効率的に実行できる。このとき、第二の検索手段の検索では、第一のトレース結果を活用してトレース検索の範囲を絞り込めているので、処理負荷が低減されて高速処理が可能となり、メモリ削減によりデータベースの低コスト化も図ることができる。つまり、第一の検索手段では、調査対象として特定されている情報処理端末の操作履歴を検索するだけよく、第二の検索手段では、システム全体をトレースするのに必要な操作履歴（特定の操作履歴）に基づいてデータベースが構築されているのがよい。なお、第二の検索手段での検索結果（第二のトレース結果）に基づいて、例えば、マルウェアの侵入経路が別の情報処理端末であることが判明した場合、再び第一の検索手段を用いて別の情報処理端末の検索を実施してトレース処理を継続してもよい。また、第一の検索手段では、複数の情報処理端末が所定のグループに分類、又は関連付けられた端末群毎に操作履歴を整理した形態をとってもよい。
【００５４】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウエア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2017037575.tif 000003
【図２】
2017037575.tif 000004
【図３】
2017037575.tif 000005
【図４】
2017037575.tif 000006
【図５】
2017037575.tif 000007
【図６】
2017037575.tif 000008
【図７】
2017037575.tif 000009
【図８】
2017037575.tif 000010
【図９】
2017037575.tif 000011
【図１０】
2017037575.tif 000012
【図１１】
2017037575.tif 000013