(58)【調査した分野】(Int.Cl.,DB名)
前記関係構築部は、各エッジに対して、エッジを識別するエッジ識別子と、エッジによって結ばれる2つのソフトウェアオブジェクトの関係性を識別するエッジタイプと、最新の動作時刻を示す更新時刻と、を含むプロファイルを付加する
請求項1に記載の汚染範囲特定装置。
【発明を実施するための形態】
【0011】
実施の形態および図面において、同じ要素または対応する要素には同じ符号を付している。説明した要素と同じ符号が付された要素の説明は適宜に省略または簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。
【0012】
実施の形態1.
汚染範囲特定装置100について、
図1から
図7に基づいて説明する。
【0013】
***構成の説明***
図1に基づいて、汚染範囲特定装置100の構成を説明する。
汚染範囲特定装置100は、プロセッサ101とメモリ102と補助記憶装置103と通信装置104と入出力インタフェース105といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
【0014】
プロセッサ101は、演算処理を行うICであり、他のハードウェアを制御する。例えば、プロセッサ101は、CPU、DSPまたはGPUである。
ICは、Integrated Circuitの略称である。
CPUは、Central Processing Unitの略称である。
DSPは、Digital Signal Processorの略称である。
GPUは、Graphics Processing Unitの略称である。
【0015】
メモリ102は揮発性または不揮発性の記憶装置である。メモリ102は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ102はRAMである。メモリ102に記憶されたデータは必要に応じて補助記憶装置103に保存される。
RAMは、Random Access Memoryの略称である。
【0016】
補助記憶装置103は不揮発性の記憶装置である。例えば、補助記憶装置103は、ROM、HDDまたはフラッシュメモリである。補助記憶装置103に記憶されたデータは必要に応じてメモリ102にロードされる。
ROMは、Read Only Memoryの略称である。
HDDは、Hard Disk Driveの略称である。
【0017】
通信装置104はレシーバ及びトランスミッタである。例えば、通信装置104は通信チップまたはNICである。
NICは、Network Interface Cardの略称である。
【0018】
入出力インタフェース105は、入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース105はUSB端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。
USBは、Universal Serial Busの略称である。
【0019】
汚染範囲特定装置100は、受付部110と関係構築部120と汚染範囲特定部130と出力部140といった要素を備える。これらの要素はソフトウェアで実現される。
【0020】
補助記憶装置103には、受付部110と関係構築部120と汚染範囲特定部130と出力部140としてコンピュータを機能させるための汚染範囲特定プログラムが記憶されている。汚染範囲特定プログラムは、メモリ102にロードされて、プロセッサ101によって実行される。
補助記憶装置103には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ102にロードされて、プロセッサ101によって実行される。
プロセッサ101は、OSを実行しながら、汚染範囲特定プログラムを実行する。
OSは、Operating Systemの略称である。
【0021】
汚染範囲特定プログラムの入出力データは記憶部190に記憶される。
メモリ102は記憶部190として機能する。但し、補助記憶装置103、プロセッサ101内のレジスタおよびプロセッサ101内のキャッシュメモリなどの記憶装置が、メモリ102の代わりに、又は、メモリ102と共に、記憶部190として機能してもよい。
【0022】
汚染範囲特定装置100は、プロセッサ101を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ101の機能を分担する。
【0023】
汚染範囲特定プログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。
【0024】
***動作の説明***
汚染範囲特定装置100の動作の手順は汚染範囲特定方法に相当する。また、汚染範囲特定装置100の動作の手順は汚染範囲特定プログラムによる処理の手順に相当する。
【0025】
図2に基づいて、汚染範囲特定方法を説明する。
ステップS110において、関係構築部120は、複数のソフトウェア動作データに基づいて、オブジェクト関係データを生成する。
【0026】
ソフトウェア動作データは、ソフトウェア動作を示すデータである。
【0027】
ソフトウェア動作は、ソフトウェアの実行によって発生した動作である。以下に、ソフトウェア動作の例を示す。
(1)プロセス起動。
(2)プロセス終了。
(3)通信。
(4)ファイル書き込み。
(5)ファイル読み込み。
(6)ファイル権限変更。
(7)システムコール。
(8)アプリケーション動作。
(9)認証(成功)。
(10)認証(失敗)。
(11)ポリシー違反
【0028】
ソフトウェア動作データの具体例は、通信ログ、OSログ、ファイル操作ログ、アプリケーションログまたはメモリ操作ログなどのログデータである。ログデータは、例えば、OSまたはアプリケーションから出力される。
【0029】
ソフトウェア動作データは、動作タイプと動作オブジェクト情報と動作時刻とを含む。
【0030】
動作タイプは、ソフトウェア動作の種類である。
【0031】
動作オブジェクト情報は、ソフトウェア動作で使用された複数のソフトウェアオブジェクトを示す。
ソフトウェアオブジェクトは、ソフトウェアの実行時に使用される要素である。以下に、ソフトウェアオブジェクトの例を示す。
(1)データファイルまたはプログラムファイルなどのファイル。
(2)データファイルの中の各データ。各データはプロセスで使用される。
(3)プロセス。プロセスは、プログラムファイルが実行された後の各インスタンスである。
【0032】
具体的には、動作オブジェクト情報は、動作オブジェクトと対象オブジェクトとを示す。
動作オブジェクトは、ソフトウェア動作を行うソフトウェアオブジェクトである。つまり、動作オブジェクトは、ソフトウェア動作の主体となるソフトウェアオブジェクトである。動作オブジェクトの具体例はプロセスである。
対象オブジェクトは、ソフトウェア動作の対象となるソフトウェアオブジェクトである。つまり、対象オブジェクトはソフトウェア動作の客体となるソフトウェアオブジェクトである。対象オブジェクトの具体例はファイルである。
【0033】
動作時刻は、ソフトウェア動作が発生した時刻である。
【0034】
オブジェクト関係データは、複数のソフトウェアオブジェクトの関係を示すデータである。具体的には、オブジェクト関係データは、オブジェクト関係グラフを表す。
オブジェクト関係グラフは、ソフトウェアオブジェクト毎にノードを有し、ノードの組毎にエッジを有する。
ノードは、ソフトウェアオブジェクトを表す。
エッジは、ソフトウェアオブジェクト間の関係を表す。
【0035】
図3に、オブジェクト関係データ191を示す。オブジェクト関係データ191は、オブジェクト関係データの一例である。
オブジェクト関係データ191は、オブジェクト関係グラフ191Gを表す。
オブジェクト関係グラフ191Gにおいて、プロセス名、ファイル名またはログ名が記されている要素がノードである。ノードを結ぶ線がエッジである。矢印線で表されたエッジは、動作タイプに応じた有向関係性を表す有向エッジである。エッジに付された用語は動作タイプに応じた関係性を示す。
【0036】
図2に戻り、説明を続ける。
関係構築(S110)の手順について後述する。
【0037】
ステップS120において、汚染範囲特定部130は、オブジェクト関係データとアラートデータとに基づいて、汚染範囲データを生成する。
【0038】
アラートデータは、サイバー攻撃の発生を知らせるデータであり、異常オブジェクト情報を含む。
異常オブジェクト情報は、異常オブジェクトを示す。
異常オブジェクトは、サイバー攻撃が検知されたソフトウェアオブジェクトである。
【0039】
汚染範囲データは、汚染範囲を示すデータであり、侵入経路データと汚染オブジェクトデータとを含む。汚染範囲は、サイバー攻撃の影響を受ける範囲である。
侵入経路データは、サイバー攻撃の侵入経路を示す。サイバー攻撃の侵入経路は、汚染範囲に含まれる。
汚染オブジェクトデータは、汚染オブジェクトを示す。
汚染オブジェクトは、サイバー攻撃の影響を受けるソフトウェアオブジェクトである。
【0040】
図4に、侵入経路データ192を示す。侵入経路データ192は、侵入経路データの一例である。
侵入経路データ192は、外部プロセスからプロセス2までの侵入経路を示す。プロセス2が異常オブジェクトである。
【0041】
図5に、汚染オブジェクトデータ193を示す。汚染オブジェクトデータ193は、汚染オブジェクトデータの一例である。
汚染オブジェクトデータ193は、侵入経路上の各ソフトウェアオブジェクトの他に、プロセス2から影響を受ける各ソフトウェアオブジェクトを示す。
【0042】
図2に戻り、説明を続ける。
汚染範囲特定(S130)の手順について後述する。
【0043】
ステップS130において、出力部140は、汚染範囲データを出力する。
つまり、出力部140は、侵入経路データと汚染オブジェクトデータとを出力する。
【0044】
図6に基づいて、関係構築(S110)の手順を説明する。
空のオブジェクト関係データが予め用意される。
ステップS111からステップS113は、ソフトウェア動作データごとに実行される。
【0045】
ステップS111において、受付部110は、ソフトウェア動作データを受け付ける。
具体的には、ソフトウェア動作データが汚染範囲特定装置100に入力される。そして、受付部110は、入力されたソフトウェア動作データを受け付けて記憶部190に記憶する。
ソフトウェア動作データは、利用者によって入力されてもよいし、監視対象との通信で入力されてもよいし、その他の方法で入力されてもよい。
【0046】
ステップS112において、関係構築部120は、ソフトウェア動作データから、動作タイプと動作オブジェクト情報とを抽出する。
【0047】
ステップS113において、関係構築部120は、動作タイプと動作オブジェクト情報とに基づいて、オブジェクト関係データを更新する。
【0048】
オブジェクト関係データは以下のように更新される。オブジェクト関係データはオブジェクト関係グラフを表す。動作オブジェクト情報は、動作オブジェクトと対象オブジェクトとの2つのソフトウェアオブジェクトを示す。
関係構築部120は、オブジェクト関係グラフの中から、動作オブジェクト情報に示される各ソフトウェアオブジェクトを表すノードを探す。
関係構築部120は、見つからなかったノードを新規に生成し、生成したノードをオブジェクト関係グラフに追加する。
関係構築部120は、オブジェクト関係グラフから、動作オブジェクトノードと対象オブジェクトノードを選択する。動作オブジェクトノードは動作オブジェクトを表すノードであり、対象オブジェクトノードは対象オブジェクトを表すノードである。
関係構築部120は、選択した2つのノードを結ぶエッジを生成し、生成したエッジをオブジェクト関係グラフに追加する。具体的には、関係構築部120は、動作オブジェクトと対象オブジェクトの有向関係性を動作タイプに応じて特定し、動作オブジェクトノードから対象オブジェクトノードへの有向エッジを追加する。有向エッジは、特定された有向関係性を表す向きを有する。
【0049】
複数のソフトウェア動作データのそれぞれに対して関係構築(S110)が実行されることにより、例えば、オブジェクト関係データ191(
図3参照)が生成される。
【0050】
図7に基づいて、汚染範囲特定(S120)の手順を説明する。
ステップS121において、受付部110は、アラートデータを受け付ける。
具体的には、アラートデータが汚染範囲特定装置100に入力される。そして、受付部110は、入力されたアラートデータを受け付けて記憶部190に記憶する。
アラートデータは、利用者によって入力されてもよいし、攻撃検知装置との通信で入力されてもよいし、その他の方法で入力されてもよい。攻撃検知装置は、監視対象を監視し、発生したサイバー攻撃を検知し、アラートデータを出力する装置である。
【0051】
ステップS122において、汚染範囲特定部130は、アラートデータから、異常オブジェクト情報を抽出する。
【0052】
ステップS123において、汚染範囲特定部130は、オブジェクト関係グラフを用いて、異常オブジェクトノードから外部プロセスノードまでの侵入経路を特定する。
【0053】
侵入経路は以下のように特定される。オブジェクト関係グラフの中の各エッジは有向エッジである。
まず、汚染範囲特定部130は、オブジェクト関係グラフの中から異常オブジェクトノードを選択する。異常オブジェクトノードは、異常オブジェクトを表すノードである。
そして、汚染範囲特定部130は、異常オブジェクトノードから外部プロセスノードまで各有向エッジを逆方向に辿る。外部プロセスノードは、外部プロセスを表すノードである。外部プロセスは、監視対象の外部で生成されたプロセスである。
異常オブジェクトノードから外部プロセスノードまでの経路が侵入経路である。
【0054】
ステップS124において、汚染範囲特定部130は、オブジェクト関係グラフを用いて、汚染オブジェクトを特定する。
【0055】
汚染オブジェクトは以下のように特定される。
汚染範囲特定部130は、オブジェクト関係グラフから、侵入経路に位置する各ノードを選択する。選択される各ノードによって表されるソフトウェアオブジェクトは汚染オブジェクトである。
さらに、汚染範囲特定部130は、侵入経路に位置する各ノードから各有向エッジを順方向に辿る。辿った先の各ノードで表されるソフトウェアオブジェクトは汚染オブジェクトである。
【0056】
ステップS125において、汚染範囲特定部130は、汚染範囲データを生成する。
つまり、汚染範囲特定部130は、侵入経路データと汚染オブジェクトデータとを生成する。
【0057】
侵入経路データは以下のように生成される。
汚染範囲特定部130は、ステップS123で特定された侵入経路を示すデータを生成する。生成されるデータが侵入経路データである。
【0058】
汚染オブジェクトデータは以下のように生成される。
汚染範囲特定部130は、ステップS124で特定された汚染オブジェクトを示すデータを生成する。生成されるデータが汚染オブジェクトデータである。
【0059】
オブジェクト関係データ191(
図3参照)を用いて汚染範囲特定(S120)が実行されることにより、侵入経路データ192(
図4参照)および汚染オブジェクトデータ193(
図5参照)が生成される。異常オブジェクトはプロセス2である。
【0060】
***実施例の説明***
関係構築(S110)(
図6を参照)の実施例を以下に示す。
【0061】
<実施例1>
ステップS111において、受付部110は、プロセス終了を示すログデータを受け取る。
ステップS112において、関係構築部120は、ログデータから、動作タイプと動作オブジェクト情報を抽出する。動作タイプはプロセス終了である。動作オブジェクトは指示プロセスであり、対象オブジェクトは終了プロセスである。
ステップS113において、関係構築部120は、オブジェクト関係グラフに動作オブジェクトノードがなければ、動作オブジェクトノードをオブジェクト関係グラフに追加する。また、関係構築部120は、オブジェクト関係グラフに対象オブジェクトノードがなければ、対象オブジェクトノードをオブジェクト関係グラフに追加する。そして、関係構築部120は、動作オブジェクトノードから対象オブジェクトノードへのエッジをオブジェクト関係グラフに追加する。エッジには動作タイプに応じた関係性が付記される。
【0062】
<実施例2>
ステップS111において、受付部110は、通信を示すログデータを受け取る。
ステップS112において、関係構築部120は、ログデータから、動作タイプと動作オブジェクト情報を抽出する。動作タイプは通信である。動作オブジェクトは通信元プロセスであり、対象オブジェクトは通信先プロセスである。通信元プロセスと通信先プロセスとの各プロセスが外部プロセスである場合、各プロセスは外部アドレスで識別される。外部アドレスは、監視対象の外部の装置を識別するアドレスである。
ステップS113において、関係構築部120は、オブジェクト関係グラフに動作オブジェクトノードがなければ、動作オブジェクトノードをオブジェクト関係グラフに追加する。また、関係構築部120は、オブジェクト関係グラフに対象オブジェクトノードがなければ、対象オブジェクトノードをオブジェクト関係グラフに追加する。つまり、動作オブジェクト情報が動作オブジェクトまたは対象オブジェクトの識別子として外部アドレスを示す場合、外部プロセスを表すノードが生成される。そして、関係構築部120は、動作オブジェクトノードから対象オブジェクトノードへのエッジをオブジェクト関係グラフに追加する。エッジには動作タイプに応じた関係性が付記される。
【0063】
<実施例3>
ステップS111において、受付部110は、ファイル操作(write)を示すログデータを受け取る。
ステップS112において、関係構築部120は、ログデータから、動作タイプと動作オブジェクト情報を抽出する。動作タイプはファイル書込みである。動作オブジェクトはプロセスであり、対象オブジェクトはファイルである。
ステップS113において、関係構築部120は、オブジェクト関係グラフに動作オブジェクトノードがなければ、動作オブジェクトノードをオブジェクト関係グラフに追加する。また、関係構築部120は、オブジェクト関係グラフに対象オブジェクトノードがなければ、対象オブジェクトノードをオブジェクト関係グラフに追加する。そして、関係構築部120は、動作オブジェクトノードから対象オブジェクトノードへのエッジをオブジェクト関係グラフに追加する。エッジには動作タイプに応じた関係性が付記される。
【0064】
<実施例4>
ステップS111において、受付部110は、ファイル操作(read)を示すログデータを受け取る。
ステップS112において、関係構築部120は、ログデータから、動作タイプと動作オブジェクト情報を抽出する。動作タイプはファイル読込みである。動作オブジェクトはプロセスであり、対象オブジェクトはファイルである。
ステップS113において、関係構築部120は、オブジェクト関係グラフに動作オブジェクトノードがなければ、動作オブジェクトノードをオブジェクト関係グラフに追加する。また、関係構築部120は、オブジェクト関係グラフに対象オブジェクトノードがなければ、対象オブジェクトノードをオブジェクト関係グラフに追加する。そして、関係構築部120は、動作オブジェクトノードから対象オブジェクトノードへのエッジをオブジェクト関係グラフに追加する。エッジには動作タイプに応じた関係性が付記される。
【0065】
<実施例5>
ステップS111において、受付部110は、ファイル操作(権限変更)を示すログデータを受け取る。
ステップS112において、関係構築部120は、ログデータから、動作タイプと動作オブジェクト情報を抽出する。動作タイプはファイル権限変更である。動作オブジェクトはプロセスであり、対象オブジェクトはファイルである。
ステップS113において、関係構築部120は、オブジェクト関係グラフに動作オブジェクトノードがなければ、動作オブジェクトノードをオブジェクト関係グラフに追加する。また、関係構築部120は、オブジェクト関係グラフに対象オブジェクトノードがなければ、対象オブジェクトノードをオブジェクト関係グラフに追加する。そして、関係構築部120は、動作オブジェクトノードから対象オブジェクトノードへのエッジをオブジェクト関係グラフに追加する。エッジには動作タイプに応じた関係性が付記される。
【0066】
<実施例6>
ステップS111において、受付部110は、OSシステムコールを示すログデータを受け取る。
ステップS112において、関係構築部120は、ログデータから、動作タイプと動作オブジェクト情報を抽出する。動作タイプはシステムコールである。システムコールの種類は例えば名称で識別される。動作オブジェクトはプロセスであり、対象オブジェクトはプロセスまたはファイルである。
ステップS113において、関係構築部120は、オブジェクト関係グラフに動作オブジェクトノードがなければ、動作オブジェクトノードをオブジェクト関係グラフに追加する。また、関係構築部120は、オブジェクト関係グラフに対象オブジェクトノードがなければ、対象オブジェクトノードをオブジェクト関係グラフに追加する。そして、関係構築部120は、動作オブジェクトノードから対象オブジェクトノードへのエッジをオブジェクト関係グラフに追加する。エッジには動作タイプに応じた関係性が付記される。
【0067】
<実施例7>
ステップS111において、受付部110は、アプリケーション動作を示すログデータを受け取る。
ステップS112において、関係構築部120は、ログデータから、動作タイプと動作オブジェクト情報を抽出する。動作タイプはアプリケーション動作である。アプリケーション動作の種類は例えば名称で識別される。動作オブジェクトはプロセスであり、対象オブジェクトはプロセスまたはファイルである。
ステップS113において、関係構築部120は、オブジェクト関係グラフに動作オブジェクトノードがなければ、動作オブジェクトノードをオブジェクト関係グラフに追加する。また、関係構築部120は、オブジェクト関係グラフに対象オブジェクトノードがなければ、対象オブジェクトノードをオブジェクト関係グラフに追加する。そして、関係構築部120は、動作オブジェクトノードから対象オブジェクトノードへのエッジをオブジェクト関係グラフに追加する。エッジには動作タイプに応じた関係性が付記される。
【0068】
<実施例8>
ステップS111において、受付部110は、セキュリティを示すログデータを受け取る。セキュリティの具体例は認証である。
ステップS112において、関係構築部120は、ログデータから、動作タイプと動作オブジェクト情報を抽出する。動作タイプは認証成功、認証失敗またはポリシー違反である。動作オブジェクトはプロセスであり、対象オブジェクトはプロセスである。
ステップS113において、関係構築部120は、オブジェクト関係グラフに動作オブジェクトノードがなければ、動作オブジェクトノードをオブジェクト関係グラフに追加する。また、関係構築部120は、オブジェクト関係グラフに対象オブジェクトノードがなければ、対象オブジェクトノードをオブジェクト関係グラフに追加する。そして、関係構築部120は、動作オブジェクトノードから対象オブジェクトノードへのエッジをオブジェクト関係グラフに追加する。エッジには動作タイプに応じた関係性が付記される。
【0069】
***実施の形態1の効果***
汚染範囲特定装置100は、侵入経路および汚染部分(汚染オブジェクト)を特定することができる。
汚染範囲特定装置100は、複数のソフトウェアオブジェクトの関係をオブジェクト関係グラフによって一元的に管理することができる。これにより、侵入経路および汚染部分が迅速に特定される。
侵入経路および汚染部分が特定されることにより、汚染部分の除去および再発防止の対応が可能となる。
【0070】
実施の形態2.
3つのソフトウェアオブジェクト間の関係を含むオブジェクト関係データを生成する形態について、主に実施の形態1と異なる点を
図8に基づいて説明する。
【0071】
***構成の説明***
汚染範囲特定装置100の構成は、実施の形態1における構成(
図1参照)と同じである。
【0072】
***動作の説明***
汚染範囲特定方法は、実施の形態1における方法(
図2参照)と同じである。
但し、関係構築(S110)によって、3つのソフトウェアオブジェクト間の関係を含むオブジェクト関係データが生成される。
【0073】
図6に基づいて、関係構築(S110)の手順を説明する。
ステップS111において、受付部110は、ソフトウェア動作データを受け付ける。
ソフトウェア動作データは、動作タイプと動作オブジェクト情報を含む。動作オブジェクト情報は、動作タイプで識別されるソフトウェア動作で使用される3つのソフトウェアオブジェクトを示す。
【0074】
ステップS112において、関係構築部120は、ソフトウェア動作データから、動作タイプと動作オブジェクト情報を抽出する。
【0075】
ステップS113において、関係構築部120は、動作タイプとオブジェクト情報とに基づいて、オブジェクト関係データを更新する。
【0076】
オブジェクト関係データは以下のように更新される。オブジェクト関係データはオブジェクト関係グラフを表す。動作オブジェクト情報は、第1オブジェクトと第2オブジェクトと第3オブジェクトとの3つのソフトウェアオブジェクトを示す。
関係構築部120は、オブジェクト関係グラフの中から、動作オブジェクト情報に示される各ソフトウェアオブジェクトを表すノードを探す。
関係構築部120は、見つからなかったノードをオブジェクト関係グラフに追加する。
関係構築部120は、オブジェクト関係グラフから、第1オブジェクトノードと第3オブジェクトノードを選択する。第1オブジェクトノードは第1オブジェクトを表すノードであり、第3オブジェクトノードは第3オブジェクトを表すノードである。関係構築部120は、選択した2つのノードを結ぶエッジをオブジェクト関係グラフに追加する。具体的には、関係構築部120は、第1オブジェクトノードから第3オブジェクトノードへの有向エッジを追加する。
関係構築部120は、オブジェクト関係グラフから、第2オブジェクトノードと第3オブジェクトノードを選択する。第2オブジェクトノードは第2オブジェクトを表すノードである。関係構築部120は、選択した2つのノードを結ぶエッジをオブジェクト関係グラフに追加する。具体的には、関係構築部120は、第3オブジェクトノードから第2オブジェクトノードへの有向エッジを追加する。
【0077】
***実施例の説明***
図8に基づいて、関係構築(S110)(
図6参照)の実施例を説明する。
図8は、オブジェクト関係データ194を示す。オブジェクト関係データ194はオブジェクト関係グラフ194Gを表す。
ステップS111において、受付部110は、プロセス起動を示すログデータを受け取る。
ステップS112において、関係構築部120は、ログデータから、動作タイプと動作オブジェクト情報を抽出する。動作タイプはプロセス起動である。第1オブジェクトは親プロセスであり、第2オブジェクトは子プロセスであり、第3オブジェクトはプログラムファイルである。
ステップS113において、関係構築部120は、オブジェクト関係グラフに第1オブジェクトノードがなければ、第1オブジェクトノードをオブジェクト関係グラフに追加する。また、関係構築部120は、オブジェクト関係グラフに第2オブジェクトノードがなければ、第2オブジェクトノードをオブジェクト関係グラフに追加する。また、関係構築部120は、オブジェクト関係グラフに第3オブジェクトノードがなければ、第3オブジェクトノードをオブジェクト関係グラフに追加する。そして、関係構築部120は、第1オブジェクトノードから第3オブジェクトノードへのエッジをオブジェクト関係グラフに追加する。さらに、関係構築部120は、第3オブジェクトノードから第2オブジェクトノードへのエッジをオブジェクト関係グラフに追加する。各エッジには動作タイプに応じた関係性が付記される。
【0078】
***実施の形態2の効果***
汚染範囲特定装置100は、2つのソフトウェアオブジェクト間の関係だけでなく3つのソフトウェアオブジェクト間の関係も管理することができる。
【0079】
実施の形態3.
オブジェクト関係グラフの中の各ノードと各エッジにプロファイルを付加する形態について、主に実施の形態1と異なる点を
図9から
図11に基づいて説明する。
【0080】
***構成の説明***
汚染範囲特定装置100の構成は、実施の形態1における構成(
図1参照)と同じである。
【0081】
***動作の説明***
汚染範囲特定方法は、実施の形態1における方法(
図2参照)と同じである。
但し、関係構築(S110)によって、オブジェクト関係グラフの中の各ノードと各エッジにプロファイルが付加される。
【0082】
図6に基づいて、関係構築(S110)の手順を説明する。
ステップS111において、受付部110は、ソフトウェア動作データを受け付ける。
【0083】
ステップS112において、関係構築部120は、ソフトウェア動作データから、動作タイプと動作オブジェクト情報と動作時刻とを抽出する。
【0084】
ステップS113において、関係構築部120は、動作タイプとオブジェクト情報と動作時刻とに基づいて、オブジェクト関係データを更新する。
【0085】
オブジェクト関係データは以下のように更新される。オブジェクト関係データはオブジェクト関係グラフを表す。動作オブジェクト情報は、動作オブジェクトと対象オブジェクトとの2つのソフトウェアオブジェクトを示す。
関係構築部120は、オブジェクト関係グラフの中から、動作オブジェクト情報に示される各ソフトウェアオブジェクトを表すノードを探す。
関係構築部120は、見つかったノードに付加されているプロファイルを更新する。具体的には、プロファイルの中の更新時刻を今回の動作時刻すなわち最新の動作時刻に更新する。
関係構築部120は、見つからなかったノードをオブジェクト関係グラフに追加する。さらに、関係構築部120は、追加されたノードに対するプロファイルを生成し、生成されたプロファイルを追加されたノードに付加する。ノード用のプロファイルは、ノード識別子とノードタイプと更新時刻とを含む。ノード識別子はノードを識別する。ノードタイプはノードによって表されるソフトウェアオブジェクトの種類を識別する。ノードタイプの具体例は、プロセス、データファイル、プログラムファイルおよびログファイルである。更新時刻は今回の動作時刻すなわち最新の動作時刻である。
関係構築部120は、オブジェクト関係グラフから、動作オブジェクトノードと対象オブジェクトノードを選択する。関係構築部120は、選択した2つのノードを結ぶエッジをオブジェクト関係グラフに追加する。具体的には、関係構築部120は、動作オブジェクトノードから対象オブジェクトノードへの有向エッジを追加する。さらに、関係構築部120は、追加されたエッジに対するプロファイルを生成し、生成されたプロファイルを追加されたエッジに付加する。エッジ用のプロファイルは、エッジ識別子とエッジタイプと更新時刻とを含む。エッジタイプは、動作タイプに応じた関係性を識別する。つまり、エッジタイプは、エッジによって結ばれる2つのソフトウェアオブジェクトの関係性を識別する。更新時刻は今回の動作時刻すなわち最新の動作時刻である。
【0086】
***実施例の説明***
関係構築(S110)(
図6参照)の実施例を以下に示す。
ステップS111において、受付部110は、通信を示すログデータを受け取る。ログデータは通信データ情報を含んでもよい。通信データ情報は、通信データおよび通信データ量などを示す。
ステップS112において、関係構築部120は、ログデータから、動作タイプと動作オブジェクト情報と動作時刻とを抽出する。動作タイプは通信である。動作オブジェクトは通信元プロセスであり、対象オブジェクトは通信先プロセスである。通信先プロセスまたは通信先プロセスが外部アドレスで識別される場合、そのプロセスは外部プロセスである。関係構築部120は、ログデータから通信データ情報を抽出してもよい。
ステップS113において、関係構築部120は、オブジェクト関係グラフに動作オブジェクトノードがなければ、動作オブジェクトノードと動作オブジェクトノード用のプロファイルをオブジェクト関係グラフに追加する。また、関係構築部120は、オブジェクト関係グラフに対象オブジェクトノードがなければ、対象オブジェクトノードと対象オブジェクトノード用のプロファイルをオブジェクト関係グラフに追加する。追加される各プロファイルは、ノード識別子とノードタイプと生成時刻と更新時刻とを含む。ノードタイプはプロセスである。生成時刻と更新時刻とのそれぞれは、ログデータから抽出された動作時刻と同じである。また、関係構築部120は、動作オブジェクトノードまたは対象オブジェクトノードがオブジェクト関係グラフにあれば、そのノード用のプロファイルの中の更新時刻を、ログデータから抽出された動作時刻に更新する。
さらに、関係構築部120は、動作オブジェクトノードから対象オブジェクトノードへのエッジとそのエッジプロファイルをオブジェクト関係グラフに追加する。エッジには動作タイプに応じた関係性が付記される。エッジプロファイルは、エッジ用のプロファイルであり、エッジ識別子とエッジタイプと生成時刻と更新時刻とを含む。生成時刻と更新時刻とのそれぞれは、ログデータから抽出された動作時刻と同じである。
関係構築部120は、各プロファイルに通信データ情報を含めてもよい。
【0087】
図9、
図10および
図11に、エッジプロファイルを含むオブジェクト関係グラフの例を示す。「Edge ID」はエッジ識別子を意味する。「Type」はエッジタイプを意味する。「Origin」は生成時刻を意味する。「Update」は更新時刻を意味する。
図9は、オブジェクト関係データ195Aを示す。オブジェクト関係データ195Aはオブジェクト関係グラフ195Bを表す。オブジェクト関係グラフ195Bはエッジプロファイル195Cを含む。エッジプロファイル195Cは、通信元プロセスから通信ログへのエッジ用のプロファイルである。
図10は、オブジェクト関係データ195Dを示す。オブジェクト関係データ195Dはオブジェクト関係グラフ195Eを表す。オブジェクト関係グラフ195Eはエッジプロファイル195Fを含む。エッジプロファイル195Fは、通信先プロセスから通信ログへのエッジ用のプロファイルである。
図11は、オブジェクト関係データ195Gを示す。オブジェクト関係データ195Gはオブジェクト関係グラフ195Hを表す。オブジェクト関係グラフ195Hはエッジプロファイル195Iを含む。エッジプロファイル195Iは、通信元プロセスから通信先プロセスへのエッジ用のプロファイルである。
【0088】
***実施の形態3の効果***
汚染範囲特定装置100は、各ノードおよび各エッジにプロファイルを付加することができる。つまり、各ソフトウェアオブジェクトおよびソフトウェアオブジェクト間の関係をより詳細に管理することができる。
各プロファイルは時刻情報を有する。これにより、時系列の矛盾をなくして侵入経路および汚染部分を高精度に特定することが可能となる。
【0089】
***実施の形態3の補足***
実施の形態3に実施の形態2が適用されてもよい。つまり、実施の形態3におけるオブジェクト関係データは、実施の形態2におけるオブジェクト関係グラフと同様に、3つのソフトウェアオブジェクト間の関係を含んでもよい。
【0090】
実施の形態4.
各ノードプロファイルに有効フラグが追加される形態について、主に実施の形態3と異なる点を説明する。
【0091】
***構成の説明***
汚染範囲特定装置100の構成は、実施の形態1における構成(
図1参照)と同じである。
【0092】
***動作の説明***
汚染範囲特定方法は、実施の形態1における方法(
図2参照)と同じである。
但し、関係構築(S110)によって、オブジェクト関係グラフの中の各ノードと各エッジにプロファイルが付加される。そして、各ノード用のプロファイルは有効フラグを含む。有効フラグは、ソフトウェアオブジェクトが有効であるか否かを示す。
【0093】
図6に基づいて、関係構築(S110)の手順を説明する。
ステップS111において、受付部110は、ソフトウェア動作データを受け付ける。
【0094】
ステップS112において、関係構築部120は、ソフトウェア動作データから、動作タイプと動作オブジェクト情報と動作時刻とを抽出する。
【0095】
ステップS113において、関係構築部120は、動作タイプとオブジェクト情報と動作時刻とに基づいて、オブジェクト関係データを更新する。
【0096】
オブジェクト関係データは以下のように更新される。
オブジェクト関係データはオブジェクト関係グラフを表す。動作オブジェクト情報は、動作オブジェクトと対象オブジェクトとの2つのソフトウェアオブジェクトを示す。
関係構築部120は、オブジェクト関係グラフの中から、動作オブジェクト情報に示される各ソフトウェアオブジェクトを表すノードを探す。
関係構築部120は、見つかったノードに付加されているプロファイルを更新する。具体的には、プロファイルの中の更新時刻を今回の動作時刻に更新する。さらに、関係構築部120は、動作タイプがオブジェクト無効動作を識別するか判定する。オブジェクト無効動作は、ソフトウェアオブジェクトが無効になるソフトウェア動作である。例えば、オブジェクト無効動作は、プロセス終了またはファイル削除などである。動作タイプがオブジェクト無効動作を識別する場合、関係構築部120は、プロファイルの中の有効フラグの値を無効値に更新する。無効値は無効を意味する値である。
関係構築部120は、見つからなかったノードをオブジェクト関係グラフに追加する。さらに、関係構築部120は、追加されたノード用のプロファイルを生成し、生成されたプロファイルを追加されたノードに付加する。ノード用のプロファイルは、ノード識別子とノードタイプと更新時刻と有効フラグとを含む。有効フラグの初期値は有効値である。有効値は有効を意味する値である。
関係構築部120は、オブジェクト関係グラフから、動作オブジェクトノードと対象オブジェクトノードを選択する。関係構築部120は、選択した2つのノードを結ぶエッジをオブジェクト関係グラフに追加する。具体的には、関係構築部120は、動作オブジェクトノードから対象オブジェクトノードへの有向エッジを追加する。さらに、関係構築部120は、追加されたエッジ用のプロファイルを生成し、生成されたプロファイルを追加されたエッジに付加する。エッジ用のプロファイルは、エッジ識別子とエッジタイプと更新時刻とを含む。
【0097】
***実施例の説明***
関係構築(S110)(
図6参照)の実施例を以下に示す。
ステップS111において、受付部110は、プロセス終了を示すログデータを受け取る。
ステップS112において、関係構築部120は、ログデータから、動作タイプと動作オブジェクト情報と動作時刻とを抽出する。動作タイプはプロセス終了である。動作オブジェクトは指示プロセスであり、対象オブジェクトは終了プロセスである。
ステップS113において、動作オブジェクトノードがオブジェクト関係グラフになく、対象オブジェクトノードがオブジェクト関係グラフにある。関係構築部120は、動作オブジェクトノードと動作オブジェクトノード用のプロファイルをオブジェクト関係グラフに追加する。追加されるプロファイルは、ノード識別子とノードタイプと生成時刻と更新時刻と有効フラグとを含む。ノードタイプはプロセスである。生成時刻と更新時刻とのそれぞれは、ログデータから抽出された動作時刻と同じである。有効フラグは有効値を示す。また、関係構築部120は、対象オブジェクトノード用のプロファイルの中の更新時刻を、ログデータから抽出された動作時刻に更新する。さらに、関係構築部120は、対象オブジェクトノード用のプロファイルの中の有効フラグの値を無効値に更新する。
さらに、関係構築部120は、動作オブジェクトノードから対象オブジェクトノードへのエッジとそのエッジプロファイルをオブジェクト関係グラフに追加する。エッジには動作タイプに応じた関係性が付記される。エッジプロファイルは、エッジ用のプロファイルであり、エッジ識別子とエッジタイプと生成時刻と更新時刻とを含む。生成時刻と更新時刻とのそれぞれは、ログデータから抽出された動作時刻と同じである。
【0098】
***実施の形態4の効果***
汚染範囲特定装置100は、各ノード用のプロファイルに有効フラグを含めることができる。これにより、侵入経路および汚染部分をより高精度に特定することが可能となる。
【0099】
***実施の形態の補足***
図12に基づいて、汚染範囲特定装置100のハードウェア構成を説明する。
汚染範囲特定装置100は処理回路109を備える。
処理回路109は、受付部110と関係構築部120と汚染範囲特定部130と出力部140とを実現するハードウェアである。
処理回路109は、専用のハードウェアであってもよいし、メモリ102に格納されるプログラムを実行するプロセッサ101であってもよい。
【0100】
処理回路109が専用のハードウェアである場合、処理回路109は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGAまたはこれらの組み合わせである。
ASICは、Application Specific Integrated Circuitの略称である。
FPGAは、Field Programmable Gate Arrayの略称である。
【0101】
汚染範囲特定装置100は、処理回路109を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路109の機能を分担する。
【0102】
処理回路109において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
【0103】
このように、汚染範囲特定装置100の機能はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
【0104】
各実施の形態は、好ましい形態の例示であり、本開示の技術的範囲を制限することを意図するものではない。各実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
【0105】
汚染範囲特定装置100の要素である「部」は、「処理」または「工程」と読み替えてもよい。
関係構築部(120)は、ソフトウェア動作の動作タイプと前記ソフトウェア動作で使用された複数のソフトウェアオブジェクトを示す動作オブジェクト情報とをそれぞれが含む複数のソフトウェア動作データに基づいて、前記複数のソフトウェアオブジェクトの関係を示すオブジェクト関係データを生成する。汚染範囲特定部(130)は、前記オブジェクト関係データと、サイバー攻撃の発生を知らせるアラートデータと、に基づいて、サイバー攻撃の影響を受ける汚染範囲を示す汚染範囲データを生成する。