December 18, 2004

Using Program Behavior for Intrusion Detection

Anup K. Ghosh, Arron Schwartzbard and Michael Schatz,
"Using Program Behavior Profiles for Intrusion Detection",
Proceedings of the SANS Third Conference and Workshop on Intrusion Detection, 1999.

ちょいとタイトルが違うが、著者は同じであり、論文の内容はほぼ同じであろうと推測される論文をリンクしておく
Learning Program Behavior Profiles for Intrusion Detection - (1st workshop on Intrusion Detection and Network Monitoring)

計算機の監査ログ(Sun BSM)を対象としたAnamaly Detection手法の新たな(?)提案である.
この論文では,MIT Lincoln Laboratoryで提供されているSun BSMのログを対象にし,各プログラムにおけるSystem Callの呼び出しを解析対象として異常検知を試みた結果,4種類の攻撃(DoS, Probe, UserToRoot, RemoteToLocal)のうちDoS攻撃を除いた攻撃手法に関しては未知の攻撃を高い精度で検知できるということを示している.

方法としては非常に基本的な方法のように思えるのだが,この論文では各コマンドを基本単位とし,そのコマンドを実行する際に呼び出されれるシステムコールの頻度と状態遷移を収集して正常状態を構築.この正常状態ルールを基にして,得られるデータを監査し,正常状態と大きくかけ離れているものを異常、すなわち不正侵入として検知する手法を述べている.
私の知っている限り,基本に忠実な異常検知(anomaly detection)だと思うのですが...

ユーザの振る舞いを解析対象とせず,System call levelを対象としている、つまりユーザの通常の振る舞いを構築するのではなく,ユーザによって実行される個々のプロセス(コマンド)単位で profilingしたというのが特徴のようである.その特徴ゆえにユーザの振る舞いに影響されることなく異常な振る舞いをするプロセスを検知することができるという利点がある.正常な振る舞いを格納するデータベースは,個々のプログラム毎に生成される.その解析ではN-gramを生成し,その各N- gramの出現頻度回数を調べている.この論文ではMIT Lincoln Labが公開しているデータを利用し、155種類のコマンドについてこのような振る舞いデータを
収集し,データベースを構築した.

試験データを基に生成したデータベースを使って評価を行った結果、DoS攻撃以外は6割から8割の検知が可能になった.なお本研究ではFalse positive、つまり攻撃でないものを攻撃として検知したという数を攻撃種類別に数え上げてはいない.なぜならば、このシステムでは攻撃があったことを検知することは可能だが,その攻撃がどんな種類の攻撃かはわからないからである.これは異常検知システムにおけるよく知られた欠点の一つである.ただし実験トータルとしてfalse positiveは2.1%と低い結果だったということだけは得られているそうである.なおDoS攻撃の検知率が低い理由は、攻撃が「正規の手段」つまり正常時の振る舞いとして起こりうる手段を使った攻撃であるため,個々の振る舞いだけを見ていてもそれが攻撃、すなわち異常として判定できないためである.

ただし、これを既知と未知の攻撃における検知率として分類し,比較すると異常検知として未知の攻撃をいい成績で検知できていることが示されている.ここで既知の攻撃とは正常のふるまい規則を構築するのに使用したトレーニングデータに含まれていた、または似通った攻撃手法のことを指す.これに対して未知の攻撃とはトレーニングデータに含まれていない攻撃を指したものである.未知の攻撃については4種類の攻撃手法全てにおいて50%以上の検知率となっていた.

またClear attackとStealthy attackに分類した攻撃の検知率も提示していた.これは攻撃者が地震の攻撃痕跡を隠そうとした場合における検知率で、user2rootの攻撃種別にしか当てはまらない(?)そうだが、それでも88%もの検知率が得られているそうです.
攻撃者がログを改ざんして痕跡を消そうが、消すまいが、それは検知率に影響しない.つまりコマンド単位での振る舞いに関する異常を検知しているので、そんな上位レベルでの振る舞いがどうであるかは関係ない.ということを示したい.という意図なんでしょう.

今となっては時間の経っている論文であるせいもありますが,こう素直に異常検知を作ってみて、MITのデータを使って評価したらうまくいった.という論文ですね.着眼点としてユーザの振る舞いではなく、ここのコマンドに注目し、そのSystem callの呼び出し具合を解析対象としたというのは面白いのですが,期待されている通りにコマンドを使用するだけで成立してしまう攻撃手法がDoS以外にもあるような気もします.ま、でも、基本を押さえておくという意味では短いし、いい(?)論文だと言えるでしょう.DARPAの支援も受けているようです.

Posted by z at December 18, 2004 08:36 PM