第 4 章 ネットワークセキュリティ監視によるマルウェア対策とその課題 48
5.2 通信におけるソフトウェア挙動の抽象化
5.2.3 通信の挙動を表す相関関係の抽象化
第5.2.2節の議論を元に,本論文ではイベント発生順序と異なるセッション間での通信内容
比較という2点から通信の挙動を抽象化した.本論文ではこの2つの抽象化を組み合わせる ことで多様な相関関係に対応する.
イベント発生規則
イベント間の相関関係を表すためには,従来の同一セッション内でのイベント発生順序の 追跡やイベント相関分析などと同様に,イベントの発生規則を管理する必要がある.ただし,
複数のイベントが逐次的に発生するのを監視するだけではマルウェアの複雑な挙動に対応す るのが難しい.
図5.6ではe1,2,3,4,5の5種類のイベントの組合せによってボットの活動を検知するモデルの 例を示している.このモデルはC&Cサーバとの通信とボットとしての活動の両方を発見した 場合に,ボットを検知したとみなすモデルである.例えばe1とe2が共に発生した場合はIRC によるC&Cサーバとの通信を,e3が発生した場合はHTTPによるC&Cサーバとの通信をそ
e1
e3
e4 IRCサーバの接続
Windows実行形式ファイル のダウンロード 疑わしいURLへのHTTPアクセス
e2 AND ボットのコマンドに
類似した通信の発生 OR
e5 SMTPによる頻繁なメール送信
AND
OR
ボットの検知
図5.6:ボットの活動パターンのモデル例
れぞれ検知する.このどちらかを発見した場合,C&Cサーバとの通信があったと判断する.
さらにe4がボット更新用のWindows実行形式のファイルダウンロード,e5がSMTPによる 頻繁なメール送信の試みを示している.この2つのどちらかが検知された場合ボットに類す る活動があったと判断する.このような活動モデルにもとづいた検知を試みる場合,多様な イベントの発生順序を処理できなければ効果的な検知は難しいと考えられる.
このようなイベントの発生規則に対応するため,本論文では逐次,繰り返し,和条件,積 条件の4種類のイベント発生規則を定義する.図5.7に対応すべきイベントの発生規則をそれ ぞれ状態遷移図で表記している.独立したイベントをenと表記し,それぞれの発生規則を式 (例:eaeb)で表現している.イベントと式は置換でき,複雑な式でも対応出来るようにする.
1. 逐次:
複数のイベントが順番に発生したことを検査する規則.イベントeaとebがあったとき,
ea,ebの順番にイベントが発生するのをeaebと表記する.イベント相関分析の大部分 は逐次型のイベント発生規則に基づいた検知手法となっている.
2. 繰り返し:
あるイベントが一定時間内に一定回数以上発生したかどうかを検査する規則.一つのイ ベントがN回繰り返し発生するのをea{N}と表記する.図中の(2)のようにe1が5回発 生したあとにe2が発生するのはe1{5}e2と表記できる.
3. 和条件:
e1 e2
e1e2
e1 e2
e1{5}e2
5
e1
e2
e3
e4
e1(e2∨e3)e4
e3
e2
e4
e1
e2
e3
e1(e2∧e3)e4
!"#$%&'()*+,-./ !0#$1234)*+,-./
!5#$678)*+,-./
!9#$:78)*+,-./
図5.7:イベント発生順序の抽象化
複数存在するイベントのいずれかが発生したかを検査する規則.eaとebのどちらかが 発生したのを表記する場合はea∨ebと表記する.図中ではe1(e2∨e3)e4となっているた め,発生規則としてe1e2e4か,e1e3e4のいずれかが成立すれば規則が成り立ったと判断 する.
4. 積条件:
複数存在するイベントがすべて発生したかを検査する規則.eaとebの両方が発生した のを表記する場合はea∧ebと表記する.図中ではe1(e2∧e3)e4となっているため,発生 規則としてe1e2e3e4か,e1e3e2e4のどちらかが成立すれば規則が成り立ったと判断する.
本論文で提案する手法として重要なのが和条件と積条件である.イベント相関分析などの 既存手法でも,条件によって結果が分岐していく形式の和条件を実現している実装[67]はあ る.しかし,一度分岐したあと,再び一つのイベント発生を条件とするような記述はできな い.例えば(e1∨e2)(e3∨e4)...(e2n−1∨e2n)のような並列規則を実現するためには,分岐後の状 態が2n−1個必要となり,空間計算量もO(2n)で増加する.ルールとして記述するのは現実的 ではない.また,積条件のイベントも同様に,(e1∧e2∧...∧en)という規則を状態遷移によっ て満たすためには,n!個の状態数が必要となり,空間計算量がO(n!)となる.そのため,本論
kbm..test.exe...98rrd ad4..test.exe...98uga 6ym..test.exe..135ega lok..test.exe..109uga [IRC]
fetch http://example.com/a.exe
[HTTP]
GET /a.exe HTTP/1.1 Host: example.com
H1
H2
H3
H2
H3
H4
H5
H1
!"#$%&'()*+,-./%0(123456789
P1
!%#$:;(12345<=>?/)*+,89
P2
P4
P3
(P1=P4)∩(P2=P3)
P1
P1' P1'' P1'''
P1=P1′=P1′′=P1′′′
[DNS]
A Record: 192.168.0.1
[IPv4]
Destination Address: 192.168.0.1
H1
H2
H3
!@#$ABCDE7FGHIJKLLM(NO
P1
P2
P1=P2
図5.8:セッション間での通信内容比較例
文で提案する手法を実現するためにはこれらの発生規則を適切に扱える処理系が求められる.
異なるセッション間での通信内容比較
イベントの発生規則と同時に必要となるのが,異なるセッションに出現する通信内容を比 較し,相関関係を検査する機能である.これは従来の手法におけるプロトコルに従った相関 関係を扱う手法で部分的に実現されている機能を参考にしている.従来手法ではFTPの命令 を解釈して,新しいセッションのIPアドレスやポート番号を入手し,セッション間の相関関 係を理解する.このような他のセッション上に出現したデータに基づいて新しいセッション を開始するソフトウェアは多く,マルウェアの活動でもこのような事例が見られる.そのた め,異なるセッション上のデータ比較が抽象化されればソフトウェアの挙動を追跡する上で 重要な機能となる.
図5.8はセッション間でのデータ比較の事例を示している.図中の(1)ではマルウェアの活 動で見られるIRCセッションとHTTPセッションの相関関係をデータ比較によって表現して いる.H1がマルウェアに感染したホスト,H2がIRCサーバを起ち上げているC&Cサーバ,
H3が新しいマルウェアの配布サーバである.H1がIRCによって新しいマルウェアをダウン ロードする命令を受信したのち,HTTPによって新しいマルウェアを取得している.この際,
H2から送信される命令のURLのドメイン名(図中P1)とファイルパス(図中P2)はその後に
発生するHTTP GETリクエストのHostパラメータ(図中P4)と要求ファイルパス(図中P3) と対応しており,P1=P4とP2=P3の両方が成立てば,H1からH3へのHTTPセッションは H2からH1への命令が起因していると推測でき,両セッションの相関関係が把握できる.マ ルウェアに感染したホストでもユーザが操作していればHTTPのセッションが発生する可能 性は高い.しかし,このような相関関係を見ることで,リスクの高いHTTPセッションの特 定ができるようになる.
また,図中の(2)では部分的に同一のデータパターンが発生しているのを比較している例で ある.これはマルウェアが感染を拡大させる際に,連続して複数のホストに新しいマルウェ アを送信しているセッションを表している.図中ではtest.exeというファイル名がすべての セッションに共通しているが,近年亜種が大量に発生しているマルウェアではこのような細 部の名前などは頻繁に変更される場合が多い.しかし,送信しているデータの特定部分が共 通したパターンを送信するということが分かっていれば,それを利用してセッション間の相 関関係を検査できる.最初にP1を保持し,その後発生したセッションのP01,P001,P0001 をそれ ぞれP1と比較する.これによって,一定回数パターンが一致した場合にマルウェアの感染と みなすようなネットワークセキュリティ監視が実現できる.
図中の(3)では規定された手順で相関関係のあるセッションが生成されたのを,追跡して いる例を示している.これは従来手法などでも実装によっては追跡ができた.図中の例では DNSでの問い合わせ結果に含まれるAレコードのIPアドレスをP1として保持し,その後発 生したセッションの宛先IPアドレスを検査している.図中ではH3がP1に保持していたIP アドレスと一致したため,2つのセッションの相関関係があると判断できる.