www.morihi-soc.net

誰もが安心して使える、安全なインターネットを目指して

10分で出来る snort インストールと検知テスト

今回はとにかく,すぐに Snort を動かしたいとき向けのインストールと検知テスト方法を紹介します.

前提:OS は Ubuntu 12.04.1 amd64 版を使用します.また root 権限が必須です.

1. snort インストール

apt でインストールします.

$ sudo apt-get install snort


インストールの途中で「Address range for the local network」という入力を促される画面が表示されます.通常は,snort を動作させる予定の IP アドレスのネットワークレンジを指定するのですが,今回はこの情報を使用しないので何を指定しても問題ないです.なお下記の画像では192.168.0.0/16を指定しています.

Snort の apt インストール時設定

アドレスレンジの指定

 

2. 設定

2-1. snort.conf の作成

インストールが完了したら,シグネチャファイルを作成します.ファイルの作成場所はどこでもいいので snort.conf というファイルを作成します.なお今回はホームディレクトリに作成します.内容は大文字小文字,スペースなど入力を間違えると,起動時にエラーが発生します.コピペ推奨.

$ vi ~/snort.conf

alert tcp any any -> any 80 (msg:”web detection test”; content:”DETECTION-TEST”;nocase; sid:1000000;)

※1行で書く

 

設定ファイルの動作テストをします.

$ snort -T -c ~/snort.conf

実行結果を確認します.

Snort successfully validated the configuration!

Snort exiting

と表示された場合,snort.conf の内容に間違いはないようです.

 

Fatal Error, Quitting..

と表示された場合,おそらく snort.conf のどこかに間違いがあります.見なおして,もう一度上記のコマンドを実行してください.

 

2-2. ログディレクトリの作成

snort で検知したログを保存するディレクトリを作成します.なお今回はホームディレクトリに作成します.

$ mkdir ~/log

 

3. 検知テスト

snort の動作検証では Web の通信で検知するかどうかを検証します.そのため,snort の実行前に一度,Web サービスを起動します.なお今回は python で簡易的な Web サービスを起動しますが,Apache や他の Web サービスを使用しても構いません.

$ sudo python -m SimpleHTTPServer 80 &

 

一度,Web ブラウザから上記で起動した Web サービスにアクセスしてみてください.問題無く起動できていれば,コマンドを実行したディレクトリの中身一覧が表示されます.

 

Web サービスにアクセスできることが確認できたら,いよいよ snort の検知テストです.

 

まずは snort を起動します.

$ sudo snort -c ~/snort.conf -l ~/log -k none -A fast &

 

正常に起動できたことが確認できたら,Web ブラウザで下記のファイルにアクセスしてください.

 

http://Web サービスを起動したサーバ/DETECTION-TEST

 

アクセスした後,ログディレクトリの中身を確認してみましょう.

$ ls ~/log/

alert というファイルと,snort.log.数字 というファイルの2つが作成されているでしょうか? ファイルの中身は次のとおりです.

 

  • alert

テキストファイルで,検知したデータの情報が記録されます.

日付  [**] [1:シグネチャ番号:0] シグネチャの説明 [**] [Priority: 0] {TCP} 送信元 IPアドレス:ポート番号 -> 送信先 IP アドレス:送信先ポート番号

 

  • snort.log.数字

pcap 形式のファイルで,検知したパケットが格納されます.tcpdump や Wireshark で中身を確認することができます.

 

alert ファイルの中「web detection test」という検知結果が記録されている場合,検知テストは成功です.もし記録されていない場合,検知テストは失敗です.失敗した原因としては,例えば snort.conf の内容に問題がある場合や,検知テスト対象の Web サーバにアクセスできていないなどが考えられます.

 

検知テストが終了したら Web サービスと snort を停止しておいてください.例えば,ps コマンドで python と snort が動作しているプロセス番号を調べて,kill コマンドで停止させてください.

 

 

今回は,とにかく snort をすぐ動かしたいときの手順と検知テストの方法を紹介しました.ソースからインストールしたり,snort.org 公式のシグネチャセットを使用したりするなどの方法は今後,紹介します.

 

Written by 森久

7月 16th, 2013 at 8:01 pm

Posted in Security,Snort