• 検索結果がありません。

設計

ドキュメント内 PDF Year 2009 Dissertation (ページ 90-96)

第 6 章 ネットワークセキュリティ監視システ ム : ROOK の設計と実装

6.2 設計

本手法は1つのソフトウェアとして実装する.本手法ではセッションやホストに対して変 数を設定し,管理する必要がある.セッションやホストの管理においてはIPだけではなく,

TCPUDPなどのプロトコルを解釈し,各セッションや各ホストの状態も同時に管理しなけ ればならない.ネットワークトラフィックの解釈と管理はIDSなどで基本的に実装されてい る機能であり,既存のIDSと組み合わせるなどした場合,1つのシステム上で冗長的に処理 することになる.また,変数を用いた検知を実施する場合,検知エンジンを根本的な部分か ら変更する必要がある.従来のIDSでは静的な条件によって検知することを前提に検知エン

The Internet

ルータ1

ルータ2 ホスト (h1, 2, ... Ni)

監視点A 監視点B

図6.1:本手法によるネットワーク監視点

ジンが設計されているが,本手法では動的な変数を積極的に使うことが前提となるため,効 率的な検知エンジンの設計が異なってくる.そのため,本手法は独自のソフトウェアとして 開発した.

6.2.1 想定するネットワークと観測地点

ネットワークセキュリティ監視システム本手法はIPネットワークのトラフィックを監視し,

マルウェアの活動を検知する.図6.1にネットワーク構成の例と監視点の例を示す.図は監 視対象となる内部ホスト(hn)がNi台接続しているネットワークである.この例ではインター ネットに接続するために,2つルータが配置されている.近年は冗長化されたネットワークが 多く,外部ネットワークに接続する部分でもルータを分割して負荷分散や障害対策をしてい る場合が見られる.

本手法は監視対象となる管理ネットワーク内のホストの挙動に着目しているため,監視対 象となるホストのトラフィックを可能な限り監視できる監視点が望ましい.マルウェアの活 動を検知する際にもっとも重要となるのがインターネットを含む外部ネットワークとのトラ フィックである.これはマルウェアに感染したホストが外部ネットワークにあるC&Cサーバ やマルウェアの配布サーバなどと通信することによて,新しいマルウェアが導入される,機 密情報が漏洩するなどの影響があるためである.そのため,必要最低限の監視をするために 外部ネットワークに接続されているルータの前後を監視点Aとしている.これは経路が冗長 化されている場合はすべての経路のトラフィックを同時に監視しなければならないことを示 している.これは,冗長化構成の場合,負荷分散や帯域の調整のために1つのルータを通過 するトラフィックだけを見ていてもあるホストに関連するトラフィックが部分的にしか把握で

きないことがあるためである.もう一方の監視点Bは各ネットワークセグメントや部屋など の物理的な単位で区分けされたネットワークのトラフィック通過点をすべて監視している.各 セグメントの境界を監視できれば同一管理ネットワーク内で悪意のある活動をしているマル ウェアを発見しやすくなるという利点はあるが,簡素装置の設置やネットワークトラフィック の集約にコストがかかってしまうため,状況に応じて監視点を増やすというのが現実的な運 用方法になると考えられる.

6.2.2 ルールの記述と運用

本手法は検知対象に詳しい人物が主要なルールを作成し,それを各ネットワークの管理者 に配布する形態を想定している.マルウェアを検知するためのルールを記述するためにはマ ルウェアの動作解析ができる環境が必要となり,一般的なネットワーク管理者がその環境の 容易と解析の手間をかけられるとは考えにくい.また,マルウェアを動作をルールとして記 述するためには,マルウェアに関する背景などを十分に理解していなければならない.ただ し,本手法では検知すべきマルウェアに関する知識をルールという形式に落としこむことが できるため,専門家がルールを記述し配布すれば多くのネットワークで本手法の運用ができ る.多くのIDSやセキュリティ対策ソフトでも,専門家が検知や防御に必要となるルールや シグネチャを作成し配布するという運用形態をとっているため,本手法も同様に実現可能で あると考える.

また,ルールも記述内容を簡略化できるようにすることで,一般のネットワーク管理者も 必要に応じてルールを記述できるようになる.ルールを配布する運用形態の問題点は,脅威 が発生してからルールの作成,配布に時間がかかることだが,ネットワーク管理者が暫定的 なルールを作成できれば,突発的に発生した危険性の高い脅威に対しても対応ができる.多 くの商用製品ではユーザによるルールやシグネチャの追加や変更を許可していないが,許可 している製品やオープンソースのソフトウェアなどでは任意のルール・シグネチャを追加で き,ネットワーク管理者が独自にルールを作成したり,有志でルールを作成して共有するな どの活動が見られる.よって,本手法もルールの記述方法をオープンにし,任意のルールを 追加できるようにすることで,この問題を軽減できると考える.

6.2.3 変数の設計

本実装で用いる変数は第5.3節で示した要件を満たしつつ,柔軟にあつかえるよう設計す る.表6.1に必要となる変数の種類と処理内容を示す.

本実装では主に数値型とデータ列型の2種類のデータ型が必要となる.変数の重要な機能 の1つは状態遷移の管理である.第5.3節では逐次的に発生するイベントの状態遷移,繰り返 し条件,和条件,積条件が必要要件としてあげられている.逐次的なイベント発生と和条件,

表6.1: 変数に必要な機能一覧

値の型 操作 操作の種類

数値 定数の書き込み 書き込み

ネットワークトラフィックの解析結果に基づく書き込み 書き込み

定数の加算 読み込み+書き込み

定数との比較(一致・大小) 読み込み

ネットワークトラフィックの解析結果との比較(一致・大小) 読み込み

データ列 定数の書き込み 書き込み

ネットワークトラフィックの解析結果に基づく書き込み 書き込み

定数との比較(一致) 読み込み

ネットワークトラフィックの解析結果との比較(一致) 読み込み

積条件はそれぞれ変数に対する値の有無だけなので真偽値を管理十分である.しかし,繰り 返しについては発生回数を数えるという処理は真偽値型では難しい.したがって,数値型の データ型が必要となる.真偽値は数値型が包含しているため表中からは省略している.また,

本実装では異なるセッションで発生したデータを比較する機能が必要となる.第5.3節にお ける事例のように,比較するデータは数値として扱えるものだけではなく,文字列など連続 したデータを扱う場合がある.また,これらのデータはデータ長は書き込み時まで不明な場 合がほとんどであると考えられる.そのため,データ列型を用意し,任意の長さの文字列や データ列を比較できるようにする.

変数に対する比較,書き込みはあらかじめルールによって設定されている定数とネットワー クトラフィックの解析結果の両者に対応させる.異なるセッション上のデータを比較する場合 はネットワークトラフィックの解析結果を用いる必要がある.また数値は加算処理により変化 するため,状況に応じてネットワークトラフィックとの比較結果が異なる可能性がある.ま た,データ列型の変数をvarray,定数をDf ixedとした場合,varrayに対して書き込まれるネッ トワークトラフィックの解析結果Dntとの関係がvarray=Dntとなり,Df ixedDntの比較にな るため,イベントの発生条件がvarrayDf ixedとの比較だけの場合は,無意味になる.しか し,イベントの発生条件がvarrayDf ixedとの比較だけではなく,別の変数votherが積条件や 和条件として関係していた場合,vothervarrayの変化はそれぞれ非同期的になるため,Df ixedDntの比較だけでは対応できない.そのため,数値型およびデータ列型はともに定数とネッ トワークトラフィックの解析結果の両方に対して比較と書き込みができなければならない.

また,変数は個別に生存時間が設定できる必要がある.変数の保持には記憶領域を消費す るため,無限に保持することはできない.変数が記憶領域を圧迫した場合のために削除する ための基準を設け,それにしたがって不要な変数を削除しなければならない.しかし,本手 法で用いられるルールはマルウェアを検知するという共通の目的であるという前提があるた め,変数ごとに優先度という基準を設けるのは難しい.そのため,本手法では変数に対する 書き込み処理時に生存時間を指定するものとする.変数はマルウェアの活動に基づいて状態

ドキュメント内 PDF Year 2009 Dissertation (ページ 90-96)