本論文ではマルウェアの対策手法として,ソフトウェアの挙動に着目したネットワークセ キュリティ監視手法を提案する.これまで多くのネットワークセキュリティ監視手法ではネッ トワークトラフィックの断片的な特徴を観測していたため,監視対象のホストで動作してい るソフトウェアの特定には限界があった.本手法では1つのソフトウェアが複数のチャネル を用いて通信する点に着目し,ソフトウェアの挙動を追跡する.これによってネットワーク トラフィックからソフトウェアの複雑な動作を把握できるようになり,マルウェアに感染した ホストの検知が容易になると期待される.
5.1 マルウェアの挙動に基づいたネットワークセキュリティ監視手法 の提案
本論文ではネットワークセキュリティ監視によってマルウェアを検知するために,マルウェ アの挙動に着目した手法を考案する.近年のマルウェアは亜種の発生頻度が高くなっており,
従来のシグネチャなどを用いたマルウェア検知手法は限界に来ている.第3章での解析では,
マルウェアは亜種の数が多くても共通する挙動を持ったものが多いこと,マルウェアはネッ トワーク通信においても自身を隠蔽化していることが明らかになった.本論文ではこの2つ の事実にもとづき,ソフトウェアの挙動を俯瞰的にとらえることができるネットワークセキュ リティ監視手法によって問題の解決を図る.
特に本手法では,ある特定のホストに関連した複数の事象を組み合わせてインシデントを 検知するイベント相関分析の手法を発展させ,ミクロな相関関係とマクロな相関関係の2種 類を柔軟に組み合わせられる手法を提案する.既存のイベント相関分析やマルウェアの通信 モデルに応じて活動していた手法は,ミクロな相関関係とマクロな相関関係のいずれかに分 類できるが,どちらか一方だけではマルウェアに十分対応するのは難しい.そのため,本手 法ではこの2つを組み合わせたネットワークセキュリティ監視手法を実現する.
e
1e
1'e
1''e
2e
2'e
2''e
3e
3'e
3''図5.1: マクロな相関関係の例
5.1.1 マクロな相関関係
ソフトウェアの通信挙動を抽象化し,通信内容や発生順序の変化にも耐性がある相関関係 をマクロな相関関係とする.これは,新たに出現したマルウェア亜種に対しての有効性を考 慮した検知手法である.多くのボットの亜種は細部が異なるが,おおまかな通信内容や動作 手順などに共通する部分が見られる.筆者による調査の他にも,Paulらの調査[21]で示され ているようなC&Cサーバからの命令形態や命令に関する処理は,新しい亜種でも大幅に変更 されない傾向がある.またGuofeiの研究[33]や筆者らの調査でも,複数種類のボットに共通 する動作がある点を指摘している.そのため,共通する動作をモデル化すれば新しいボット の亜種も既知のボット同様に検知ができると期待される.
図5.1にマクロな相関関係の例を示す.図中では3段階のイベントの発生段階を表してい る.e1,e01,e001... が第1段階,e2,e02,e002... が第2段階,e3,e03,e003... が第3段階となっ ており,これらの3段階が満たされたことでマルウェアの活動とみなす.各段階ではen,e0n, e00n...のいずれの事象が検知されても,第n段階を満たしたと判断する.BotHunterでもこの ような段階を攻撃,マルウェア転送,マルウェア管理などの活動に抽象化した検知機構を用 いることによって,マルウェアが発生させる通信内容が変化した場合でも,高い検知精度を 維持している.多くのイベント相関分析ではイベントの発生順序に着目しており,複数イベ ントが任意の順序で発生する条件や,イベントの発生回数などを条件として設定するのが困 難であり,柔軟性に欠ける.しかし,このような相関関係を有効に利用することで,より制 度の高い検知の実現が期待される.
e
1e
2e
3!"#$%&'()&%*+, -../*01.
23456*7,
89:;<=>?@AB CDEF*+,
図5.2: ミクロな相関関係の例
5.1.2 ミクロな相関関係
また,マルウェアの特徴を排した通信を検知するために,ソフトウェアの通信の厳密な関係 を定義したものをミクロな相関関係と呼ぶ.第3.2節で示したように,受動攻撃型マルウェア の通信を断片的に見てもマルウェアに関連した活動だと判断するのは難しく,能動感染型マ ルウェアとは異なる判断基準が必要となる.このような通信を部分的に監視しても,マルウェ アの通信なのか悪意のない一般ユーザによる通信なのかを判断するのは難しい.BotHunterは
第5.1.1節で述べたとおり,攻撃やマルウェアの転送,マルウェアの管理といった状態毎にイ
ベントを抽象化しているため,汎用性に優れる反面,個々のイベント毎に相関関係を定義で きないという構造上の弱点がある.例えば,送信されたGETリクエストのパラメータとダウ ンロードされたファイルの形式の関係や,あるサーバから指示されたドメイン名と接続先の HTTPサーバのドメイン名との関係などのように,個々のイベント間の具体的な相関関係を 定義し,検知に利用できない.
しかし,共通する通信内容の発生順序や通信内容に着目すると,それぞれ通信に相関関係 があることが分かった.これらはマルウェア自身の行動アルゴリズムやC&Cサーバからの 命令に基づいた行動であり,マルウェアの活動の基礎となる部分である.このようなシステ ムはボットネット構築に深く関連するため,短期間で著しく変化する可能性は低いと考えら れる.また,マルウェアの開発者が相関関係の細部を変更するのは容易だが,厳密なシナリ オではなく,マクロな相関関係と組み合わせて複数の分岐を許容するシナリオを記述できれ ば,検知の回避に対して耐性が高くなる.このように,個々のイベントの関係性を具体的か つ柔軟に捉えることで,汎用性の高いシナリオで精度の高い検知が実現できると見込まれる.
そのため受動感染型マルウェアが発生させるような通信を高精度に検知するためには,マル ウェアの活動の一部を厳密にシナリオ化した検知手法も必要であると考えられる.
図5.2にミクロな相関関係の例を示す.図中の例ではe1,e2,e3が連続して発生した場合 にマルウェアの活動とみなしている.これらの個々の事象は一般ユーザの通信にも頻繁に出 現するため,各事象をIDSのシグネチャに設定して検知を試みた場合,False positiveが多発 してしまう.しかし,マルウェアの活動形態が明らかあれば,どのようなコマンドに基づい
TCP: 3249 <-> 80 (HTTP)