1.ACIDの基本的な使用法
|
ACID起動後の画面は以下の通りである。
|
|
画面上、青色の文字はそれぞれACIDの集計画面へのリンクである。
例えば画面左枠内のUniqueAlerts:の数字をクリックすることにより下のように、全部のアラート毎の集計結果が表示される。
この画面から<Total#>、Sensor#、<Src Addr.>、<Dest Addr.>、<First>、<Last>以下のそれぞれの値は、それらアラートの詳細情報を表示するためのリンクとなっている。それぞれのリンクは、そのアラートを一覧表示、センサー毎に集計して表示、Source
IP Address、Destination IP Address毎に集計して表示、そして最初、最後に検知されたアラートを表示、以上の集計画面へのリンクとなる。
また <Total#> のように <> で囲まれているフィールドに関しては、それら <> をクリックすることによって、そのフィールドの値でアラート一覧を昇順、降順にソートすることができる。
|
|
以下の画面はアラート一覧を表示させたものである。
各アラートの項目 ID のリンク先はアラートの詳細情報を表示する。<Source Address>、<Dest. Address>のリンクはそれぞれのIPアドレスに関する集計情報を表示するためのリンクとなっている。
|
|
アラートの詳細画面は以下のようになる。各アラートのレイヤ3以上の情報に関して詳細に表示される。
実際にSnortのアラートを監視する場合には、これらの情報を詳しく調査する必要がある。
|
|
2.ACIDによるアラート監視
|
それではACIDを使って不正アクセス監視を実施する際の手順を解説する。
通常の監視ではACIDの初期画面から ・Snapshot の ・Last 24 Hours: か ・Today's: の alerts unique
を選択する。これらは最後の24時間、本日の0時以降に検知されたアラートを、アラートの種類ごとに集計するものである。
最後にアラートを確認してから、時間が経過しているのであれば Last 72 Hours: を参照すると良い。
|
|
ここでは ・Last 24 Hours: alerts unique を表示させてみる。
過去24時間内に検知されたアラートが、アラートの種類ごとに集計されて表示される。Classificationのドキュメントで解説してあるように、まず
<Classification> に注意する。この集計画面でのアラート表示順には特に意味が無いので、大量のアラートが検知された場合に監視作業の効率が悪い。よって<Classification>
の <> をクリックして Classificaton に従って並び替えると良い。
Classification のドキュメントに従って、この画面のアラートを見てみると、 misc-attack、bad-unknown が注意すべきアラートであることがわかる。
この例での MS-SQL Worm propagation attempt のアラートは正しく MS-SQL Worm を検知しているが、これらは過去のワームであり、十分に対処してあるはずである。注意すべきは、自分の組織のコンピュータから発せられたことを示すアラートである。
CodeRedやNimdaなどを含むWorm系のアラートは、ルールを書き換えて、自分のネットワークから外部に向けて発されたトラヒックに対してのみ監視すると、不要なアラートを減らすことができて良いだろう。
続いて ATTACK-RESPONSES id check returned userid のアラートを調査してみる。 <Total#>
の列に表示された値 3 をクリックする。
|
|
過去24時間に検知された ATTACK-RESPONSES id check returned
userid のアラートが一覧表示される。
ここで <Source Address> に注意してみる。いづれも組織内の IP アドレスで 80/HTTP が送信元である。さらに
<Dest. Address> に目を向けると、いづれも組織外の High Port であるので、これらは単なる HTTP トラヒックであり、誤検知であることがわかる。
念のためにアラートの詳しい情報を調査してみる。いづれかのアラートの ID フィールドの値をクリックする。
|
|
このアラートは特にパケットの詳細情報を参照するまでもないが、念のため調べてみたところ、サーバのコンテンツ内に
"uid=" の文字を含む物が存在したようで、これにSnortが反応してしまったことがわかる。
このアラートのSnortの該当するルールを調べてみたところ以下のように "uid=" と "gid=" が同じパケット内に現れた場合に反応するように構成されている。
alert ip $HOME_NET any -> $EXTERNAL_NET any (msg:"ATTACK-RESPONSES id
check returned userid"; content:"uid="; byte_test:5,<,65537,0,relative,string;
content:"gid="; distance:1; within:15; byte_test:5,<,65537,0,relative,string;
classtype:bad-unknown; sid:1882; rev:7;)
たまたまこの条件に該当するコンテンツが存在したのである。これは誤検知の典型的な例である。
|
|
他の場合でもたいていはこの一覧表示、重要なアラートの調査、判定の作業を繰り返えせば良い。
できれば、普段からセキュリティ情報に注意し、アラートの示す脆弱性や攻撃手法についての詳しい情報をインターネットなどから収集して、何が問題であるのかを把握し、IDSの監視を行なうと良いだろう。
|
|