(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0012】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。ただし、この実施形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに限定する主旨のものではない。また、実施形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【0013】
<実施形態1>
まず、通信パケットを収集し履歴情報として記録する例を、
図1から
図4までを用いて説明する。
図1は、ユーザーが閲覧したWebページの例を示す図である。
図2は、ユーザー(又はユーザーのPC21)がWebサーバー22にアクセスして、ユーザーのPC21のWebブラウザにWebページを表示するまでの流れを示す図である。
【0014】
図1の11は、HTML(Hyper Text Markup Language)言語によるページ本文をWebブラウザで表示した画面(Webページ)である。社員等は、例えば「www.abcdef.co.jp」のURLを自身のPC21のWebブラウザから入力し、Webサーバー(WWW)22に送信する(
図2のステップS23)。
【0015】
このことにより、Webサーバー22は「www.abcdef.co.jp/index.html」というファイルをPC21のWebブラウザに送信する(
図2のステップS24)。
【0016】
PC21のWebブラウザはこのファイルを受信すると、そのHTMLソース中に含まれている2個の画像(
図1の12及び13)のファイル情報を検知する。つまり、Webブラウザは、「www.abcdef.co.jp/top/japanese.gif」と、「www.abcdef.co.jp/top/english.gif」とを検知し、各画像ファイルをWebサーバー22に要求する(
図2のステップS25)。
【0017】
Webサーバー22は、この要求に応じて各画像ファイルをPC21のWebブラウザに送信し(
図2のステップS26)、
図1に示されるWebページ11の表示が完成する。
【0018】
この場合に、PC21によって記録される履歴の一例を
図3に示す。
図1の画面表示に関して、
図3に示すように3つの履歴(31、32、33)が記録されており、記憶容量が必要以上に大きくなってしまう。
【0019】
また、ファイル拡張子フィルタにより「.gif」を指定した場合に記録される履歴の一例を
図4に示す。ファイル拡張子フィルタをかけることによって、記憶容量を削減しつつ、ユーザーが意図してWebブラウザに表示させた「www.abcdef.co.jp」のファイル要求の履歴(41)は記録されている。しかし、仮にファイル要求された履歴(32及び33)が、マルウェアを画像ファイルに偽装させたものであった場合、マルウェア感染に関する分析のための有意な情報を記録できない。
【0020】
そこで、
図6を用いて、本実施形態に係るシステムについて説明する。
図6は、実施形態1におけるシステム構成及び情報処理装置52の機能構成の一例を示す図である。
図6において52は、情報処理装置を示し、例えば一般的なパーソナルコンピュータ(PC)である。なお、情報処理装置52には、Webブラウザがインストールされているものとする。
【0021】
情報処理装置52は、情報提供装置53が提供するWebページにアクセスした履歴を記録する。情報提供装置53は、例えば、インターネットやイントラネット上に設置されたWebサーバー等である。つまり、情報提供装置53と、情報処理装置52とはネットワーク54を介して通信可能に接続されている。
【0022】
情報処理装置52は、機能構成として、ファイル要求取得部521(第一の取得手段)、ファイル要求解析部522(第一の分析手段)、ファイル操作取得部523(第二の取得手段)、ファイル操作解析部524(第二の分析手段)、ファイル要求リスト記憶部525、履歴記録部526を有している。
【0023】
ファイル要求取得部521(例えば、パケットキャプチャドライバ)は、ネットワーク54から受信される/ネットワーク54へ送信される通信パケットを取得しファイル要求解析部522へ転送する。ファイル要求解析部522は、ファイル操作解析部524が解析した結果を参照し、ファイル要求取得部521から転送された通信パケットを解析する。
【0024】
また、ファイル要求解析部522は、解析した結果に基づき履歴情報を作成し履歴記録部526へ転送する。または、ファイル要求リスト記憶部525に記憶させるためのファイル要求情報を作成し、ファイル要求リスト記憶部525へ格納する。
【0025】
ファイル操作取得部523は、ファイルシステムドライバへのアクセス要求を検出し、ファイル操作を取得しファイル操作解析部524へ転送する。ファイルシステムドライバへのアクセス要求を検出するプログラム構造については後述する。
【0026】
ファイル操作解析部524は、ファイル要求リスト記憶部525に格納されているファイル要求情報を参照し、ファイル操作取得部523から転送されたファイル操作を解析する。また、ファイル操作解析部524は、解析した結果に基づき履歴情報を作成し履歴記録部526へ転送する。
【0027】
ファイル要求リスト記憶部525は、ファイル要求解析部522が作成したファイル要求情報を格納したファイル要求リストを、後述するHDD107等に記憶する。履歴記録部526は、ファイル要求解析部522、または、ファイル操作解析部524が作成した履歴情報をHDD107等に記録する。
【0028】
情報処理装置52は、ファイアウォール51を経てネットワーク54に接続され、ユーザーの閲覧要求に応じて、ユーザーが閲覧したいWebページを所有する情報提供装置53にアクセス要求する。このことで、情報処理装置52のユーザーは閲覧したいWebページを閲覧することができる。
【0029】
図5は、情報処理装置(又はコンピュータ)52のハードウェア構成の一例を示す図である。
図5に示されるように、情報処理装置52は、ハードウェア構成としてCPU101、ROM102、RAM103、入力装置104、表示装置105、通信装置106、HDD107を有する。CPU101は、情報処理装置全体の制御を司る。ROM102には、CPU101によって実行される、電源投入時に最初に読み込まれるプログラム等が記憶されている。RAM103は、CPU101がプログラムを実行するためのワークエリアとして使用される。入力装置104は、各種データ及びコマンドの入力を行う。なお、入力装置104の一例としては、例えば、マウスやキーボード、又はスタイラスペン(ペン)、又は光学式デジタイザ等である。
【0030】
表示装置105は、各種データ、又はウィンドウ等の表示及び入力装置104の操作に対応するカーソルを表示する。通信装置106は、外部端末からデータを取得したり、外部端末にデータを送信したりする。HDD107は、後述する履歴情報、ファイル要求リストテーブル等を記憶するエリアとして使用される。また、HDD107には、以下に示す履歴情報の記録等に関するアプリケーションプログラムが記憶されている。
【0031】
CPU101が、HDD107に記憶されているアプリケーションプログラムをRAM103上に読み出して、このアプリケーションプログラムに基づいて、処理を実行することにより、上述した機能、又は後述するフローチャートに係る処理を実現する。
【0032】
図7は、ファイル操作取得部523が、ファイルシステムドライバへのアクセス要求を検出するためのプログラム構造を示す図である。ファイルシステムは、一般に、論理ドライブごとに存在する。また、アプリケーションプログラム71は、ファイルシステムドライバ73を介してファイルシステムにアクセスする。ファイルシステムドライバ73は、たとえば、「NTFS」や「FAT」「FAT32」といったファイルシステムを操作するためのドライバである。
【0033】
本実施形態では、アプリケーションプログラム71とファイルシステムドライバ73との間にファイル操作取得部523にあたるフィルタドライバ72が配置されている。フィルタドライバ72は、ファイルシステムドライバ73に対して発行されるアクセス要求をすべて監視し、補足することができるため、補足したアクセス要求に含まれている情報について、アクセス要求の抽出、アクセス要求の改変、アクセス要求の破棄等を行うことが可能である。通常、フィルタドライバ72は、アクセス要求をファイルシステムドライバ73に転送する。
【0034】
フィルタドライバ72は、アクセス要求に含まれている情報を抽出し、ファイル操作解析部524のプログラムにあたるファイル操作解析プログラム74に転送する。これにより、ファイル操作解析プログラム74は、アプリケーションプログラム71が、いつ、どのディレクトリのどのファイルへアクセスしたか、どのようなファイル操作を実行したか等を解析することが可能となる。また、ファイル操作解析プログラム74は、解析した結果をファイル要求解析部522、履歴記録部526に転送する。
【0035】
図7において、アプリケーションプログラム71は、例えば、文書編集アプリケーション、表計算アプリケーションなどのアプリケーションプログラムに限らず、ウイルスプログラムなどのマルウェアでもよい。フィルタドライバ72は、アプリケーションプログラム71からファイルシステムドライバ73へのアクセス要求を補足(インターセプト)して、アクセス要求から抽出した情報を、ファイル操作解析プログラム74に転送する。
【0036】
ここで、ファイル操作解析プログラム74に転送される情報としては、どのアプリケーション(例えば、プロセス名、プロセスID等)から、どのファイルシステムのどのファイル(例えば、パス名を含むファイル名等)にアクセス要求があったのかを特定可能な情報である。また、フィルタドライバ72は、アクセス要求だけではなく、すべてのファイルシステムの処理を監視し、補足することも可能である。
【0037】
図8は、通信パケットを取得し、履歴を記録するまでの処理の流れの一例を示すフローチャートである。ステップS81において、ファイル要求取得部521は、ネットワークに送信される/ネットワークから受信されるパケットを取得する。取得されるパケットは、例えば、プロセス名、日時、宛先元/送信元アドレス、宛先元/送信元ホスト名、メソッド、URL、WWWサーバー名等である。ファイル要求取得部521は、ファイル要求解析部522へ取得したパケットを転送する。
【0038】
続いて、ステップS82において、ファイル要求解析部522は、ステップS81にて転送されたパケットの内容から、ダウンロードを行ったか否かを判定する。ダウンロードを行ったか否かの判断は、パケットのメソッドを確認し、パケットのメソッドが「GET」である場合、ダウンロードを行ったと判定する。
【0039】
ファイルのダウンロードを行っていないと判定した場合(ステップS82のNO)、ステップS83において、ファイル要求解析部522は、履歴情報を作成して履歴記録部526へ転送し、履歴記録部526は、ファイル要求解析部522から転送された履歴情報を記録し、処理を終了する。ダウンロードを行ったと判定した場合(ステップS82のYES)、ステップS84へ進む。
【0040】
ステップS84において、ファイル要求解析部522は、ダウンロードされたファイルの保存先を示すファイルパスを取得する。様々なファイルパスの取得方法があるが、例えば、フィルタドライバ72によって情報処理装置52のファイル操作を監視して、ファイルのハッシュ値とファイルパスを含むファイル操作を記録しておく。ファイル要求解析部522において、ダウンロードされたファイルのハッシュ値を取得し、取得したハッシュ値について、ファイル操作記録を参照することによって、対応するファイルパスを取得することができる。
【0041】
また、フィルタドライバ72によって情報処理装置52のファイル操作を監視し、ファイル名とファイルパスを含むファイル操作を記録しておく。ファイル要求解析部522において、ダウンロードされたファイルのファイル名を取得し、取得したファイル名についてファイル操作記録を参照することによって、対応するファイルパスを取得することができる。
【0042】
ステップS85において、ファイル要求解析部522は、ステップS84にて取得したファイルの保存先が予め決められた特定のフォルダであるか否かを判定する。なお、フォルダに限定せず、ディレクトリでもよい。例えば、特定のフォルダは、「tempフォルダ」等である。ダウンロードされたファイルの保存先が、特定のフォルダか否かを判定するのは、例えば「tempフォルダ」以外にファイルをダウンロードする場合は、マルウェアの可能性が高いためである。
【0043】
特定のフォルダであると判定した場合(ステップS85のYES)、ファイル要求解析部522は、ファイル要求リストへ格納するファイル要求情報を、ファイル要求リスト記憶部525へ転送し、ステップS86へ進む。ファイル要求リストへ格納するファイル要求情報については後述する。
【0044】
特定のフォルダではないと判定した場合(ステップS85のNO)、ファイル要求解析部522は、履歴情報を作成して履歴記録部526へ転送し、ステップS83へ進む。ステップS83へ進んだ後の処理は上述した処理と同様である。
【0045】
ステップS86において、ファイル要求リスト記憶部525は、ファイル要求解析部522から転送されたファイル要求リストへ格納するファイル要求情報を格納し、処理を終了する。ファイル要求リストの例を
図9に示す。ファイル要求リストに格納される情報は、ファイルを一意に特定する情報と、履歴情報作成のために必要となる情報である。例えば、ファイルパス、プロセス名、日時、送信元アドレス、宛先元アドレス、送信元ホスト名、メソッド、URL、リンク元URL、WWWサーバー名等である。
【0046】
図10は、ファイルシステムドライバへのアクセス要求を補足し、履歴を記録するまでの処理の流れの一例を示すフローチャートである。なお、以下の説明ではアクセス要求を読み込み要求として説明するが、これに限定されず、例えば、書き込み要求でもよい。
【0047】
ステップS101において、ファイル操作取得部523はファイルシステムドライバへの読み込み要求(例えば、IRP_MJ_READ)を補足する。ファイル操作取得部523は、読み込み要求に含まれている情報をファイル操作解析部524へ転送し、ステップS102へ進む。
【0048】
ステップS102において、ファイル操作解析部524は、ステップS101にてファイル操作取得部523から転送された読み込み要求から、ファイル操作の対象であるファイルパス(ファイル操作のアクセス先)を取得する。
【0049】
続いて、ステップS103において、ファイル操作解析部524は、ステップS102で取得したファイルパスが、予め決められた特定のフォルダ内のパスであるか否かを判定する。例えば、特定のフォルダは、「tempフォルダ」等である。特定のフォルダ内のパスか否かを判定するのは、例えば「tempフォルダ」以外にファイルをダウンロードする場合は、マルウェアの可能性が高いためである。
【0050】
特定のフォルダ内のパスであると判定した場合(ステップS103のYES)、ステップS104へ進む。ステップS104において、ファイル操作解析部524は、ファイル要求リスト記憶部525に記憶されているファイル要求リストを参照し、ステップS102で取得したファイルパスが、ファイル要求リストに記憶されているファイルパスと一致するレコードがあるか否かを判定する。
【0051】
一致すると判定した場合(ステップS104のYES)、ステップS105において、ファイル操作解析部524は、ファイル操作(ファイル読み込み)を行っているプロセスのプロセス名と、ステップS104にてファイルパスが一致すると判定されたレコードのプロセス名が一致するか否かを判定する。プロセス名が一致しない場合、他のプロセスによる操作と判定する。プロセス名が一致するか否かを判定するのは、予め決められた特定のフォルダにダウンロードされたファイルに対して、ダウンロードしたプロセスとは異なるプロセスが操作した場合は、マルウェアの可能性が高いためである。
【0052】
他のプロセスによる操作と判定した場合(ステップS105のYES)、ファイル操作解析部524は、判定に用いたレコードをもとに、履歴情報を作成して履歴記録部526へ転送し、ステップS106へ進む。
【0053】
ステップS106において、履歴記録部526は、ファイル操作解析部524から転送された履歴情報を記録し、処理を終了する。なお、ステップS103乃至ステップS105の処理の順序は、これに限定されず、どのような順序でもよいし、各々並列に処理を実行してもよい。
【0054】
なお、ファイル要求リストは、一定時間経過後に削除する構成にしてもよい。削除することにより、情報処理装置の記憶容量を削減することができる。
【0055】
また、記録された履歴情報は、マルウェア感染に関する分析に活用することができる。
図11は、履歴情報に基づいたトレースの一例を示す。ここでは、CPU101が、履歴情報に記憶されている操作の内容からバックトレースを実行する例を説明する。
【0056】
履歴情報は、例えば、操作名、ファイルパス、プロセス名、メソッド、URL、リンク元URL、日時等を含んでいる。マルウェア(Malware.exe)を検索キーとして履歴情報を検索し、日時の新しい操作内容から順番に経路をバックトレースしていく。この例では、マルウェア(Malware.exe)が、2017年7月28日10時15分に、Reader.exeによって新規作成されていることがわかる。さらに、過去の履歴情報を遡ってゆくと、2017年7月28日10時15分に、ウイルス(Malware.exe)を新規作成したReader.exeによって、あるファイル(C:¥Temp¥01.js)が読み込まれたことがわかる。さらに、過去の操作履歴を遡り、あるファイル(C:¥Temp¥01js)は、browser.exeによって、新規作成されていることがわかる。そして、さらに、過去の操作履歴を遡り、あるファイル(C:¥Temp¥01.js)は、browser.exeによって、あるサイト(http://www.absdefg.co.jp)からダウンロードされたことを突き止めることができる。(
図11の矢印)
【0057】
図11から分かるように、ファイル操作の内容によって履歴情報を作成するか否かを判断することにより、例えば、「.js」を履歴ファイル拡張子としてユーザーが選択するしないにかかわらず、矢印で示す履歴を記録することができ、マルウェアの感染元を特定することができる。
【0058】
上述した本実施形態によれば、ファイル操作の内容によって履歴情報を作成するか否かを判断することにより、重要性の高い履歴情報を選択的に記録することができる。
【0059】
<実施形態2>
以下では、
図12を参照して、本発明における実施形態2について説明する。本実施形態では、情報処理装置52にてファイル操作取得を、情報収集装置55にてファイル要求取得を行い、情報解析装置56にて履歴情報を記録する構成について説明する。なお、本実施形態の動作の大部分が実施形態1の動作と共通するため、ここでは、実施形態1と異なる動作についてのみ説明し、共通の動作については説明を省略する。
まず、
図12を参照して、本実施形態における情報処理システムの構成例について説明する。情報処理システムは、
図6に示す情報処理システムの構成に加えて、情報収集装置55、情報解析装置56を含む。情報収集装置55、情報解析装置56は、パーソナルコンピュータ(PC)やワークステーション(WS)等の情報処理装置により実現することができる。
【0060】
情報収集装置55は、ファイル要求取得部521を備え、ネットワークを流れるパケットを取得する。情報解析装置56は、ファイル要求解析部522、ファイル操作解析部524、ファイル要求リスト記憶部525、履歴記録部526を備える。情報処理装置52、情報収集装置55、情報解析装置56はネットワークを介して接続されている。
【0061】
情報処理装置52のファイル操作取得部523は、取得したアクセス要求を情報解析装置56のファイル操作解析部524へ転送する。情報収集装置55のファイル要求取得部521は、取得したパケットを情報解析装置56のファイル要求解析部522へ転送する。
【0062】
取得したアクセス要求/パケットは、定期的に情報解析装置56に転送する。なお、転送するタイミングは、所定時間単位(例えば、2時間毎)、所定量以上のアクセス要求/パケットが蓄積された場合、情報処理装置52/情報収集装置55が起動した場合、情報解析装置56からの要求を受けた場合等、様々な条件を設定可能である。情報解析装置56は、実施形態1と同様に、
図8、
図10に示す処理を実行する。なお、情報収集装置55と、情報解析装置56とが同一上の装置で実現される構成でもよい。
【0063】
<実施形態3>
次に、
図13を参照して、本発明における実施形態3について説明する。本実施形態では、情報招致装置52にてファイル操作取得と、ファイル要求取得とを行い、情報解析装置56にて履歴情報を記録する構成について説明する。なお、本実施形態の動作の大部分が実施形態1及び実施形態2の動作と共通するため、共通の動作については説明を省略する。
【0064】
図13を参照して、本実施形態における情報処理システムの構成例について説明する。情報処理装置52は、ファイル要求取得部521と、ファイル操作取得部523を備える。情報処理装置52のファイル要求取得部521は取得したパケットを、ファイル操作取得部523は取得したアクセス要求をファイル要求解析部522、情報解析装置56のファイル操作解析部524へ転送する。情報解析装置56は、実施形態1及び実施形態2と同様に、
図8、
図10に示す処理を実行する。
【0065】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実
施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又はコンピュータ
可読媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ
(またはCPUやMPU等)がプログラムを読み出して実行する処理である。