.
セキュリティ / SSL => FC/CentOS4 で構築する不正侵入検知システム > 3-2.Snortアラートのための Swatch設定例
Linux 活用ガイド:目次

サーバ構築ガイド

レンタル ガイド

ショップ 構築ガイド

情報漏洩対策

Snortアラートのための Swatch設定例

Swatch のセットアップについては、かなり前ですが 「 ログ自動監視ツールを導入する~Swatchについて 」 で説明しています。ここでは、/var/log/snort/alert 用のSwatch 定義ファイル作成についてのみ説明します。

Swatch を使用し、Snort Alert をリアルタイムに監視し、危険性の高い攻撃に対し、リアルタイムで管理者にメール通知や、ベル、コマンド等を実行する例です。

プライオリティを監視する

snort を -A fast オプションで起動した場合、alert ログは以下の一行となります。

/var/log/snort/alert

03/24-19:00:46.190801 [**] [1:402:4] ICMP Destination Unreachable (Port Unreachable) [**] [Classification: Misc activity] [Priority: 3] {ICMP} xxx.x.xx.x -> 192.168.4.144

  • [**]フィルタ名(攻撃概要) [**]
  • Classification 攻撃のタイプ
  • Priority 攻撃の危険度

プライオリティは、数字が若いほど危険度が高くなります。一般的にログフィルターをかける場合は、プライオリティを設定するケースが多いと思います。

~/.swatch/swatch.snort

watchfor /Priority: 1/
mail=secuser@hostB,subject=Snort Alert !!Priority 1
bell 5
throttle 00:00:15

アクションを起こす場合、連続するアラートに対しては注意しなければなりません。例えば、メールサーバーでウイルスフィルターやスパムフィルターを実装している場合、検出内容をその都度メールで報告すれば、システムがダウンするほどの負荷がかかります。

Swatchは、1行単位でアクションを起こすため、連続するアラー トを想定して throttleを利用するようにします。

throttle 00:00:15
15秒間は同じ文字を検出しても無視します。

注意
起動因数に -A fast 、または /etc/sysconfig/snort で ALERTMODE=fast として snort を起動した場合、MySQL にはログを出力しなくなります。

classification(攻撃タイプ)によるアラートの監視

プライオリティによるアラート監視と平行し、危険な攻撃タイプとされている classification によりアラートを監視します。 これらの攻撃内容は理解が難しいため以下で紹介されている classification を参考にしました。

検出後に行う対応について
参考URL => http://www.snort.gr.jp/docs/SnortClass.html

デフォルトで無効になっていたルール(Snort-2.3.3)
# include $RULE_PATH/web-attacks.rules
# include $RULE_PATH/backdoor.rules
# include $RULE_PATH/shellcode.rules
# include $RULE_PATH/policy.rules
# include $RULE_PATH/porn.rules
# include $RULE_PATH/info.rules
# include $RULE_PATH/icmp-info.rules
# include $RULE_PATH/chat.rules
# include $RULE_PATH/multimedia.rules
# include $RULE_PATH/p2p.rules

~/.swatch/swatch.snort

########################################### Port Scan Alert
watchfor /TCP.*Portscan/i
mail=secuser@hostB,subject=Port Scan Arert !(snort)
bell 3
throttle 00:00:10,use=message

watchfor /BAD-TRAFFIC.*IP/i
mail=secuser@hostB,subject=IP Scan Arert !(snort)
bell 3
throttle 00:00:10,use=message

watchfor /TICMP.*PING.*NMAP/i
mail=secuser@hostB,subject=Ping Scan Arert !(snort)
bell 3
throttle 00:00:10,use=message

watchfor /UDP.*Portscan/i
mail=secuser@hostB,subject=UDP Scan Arert !(snort)
bell 3
throttle 00:00:10,use=message

########################################### ポートスキャン
watchfor /classification.*attempted-recon/i
mail=secuser@hostB,subject=attempted-recon (Port Scan Arert-snort)
bell 3
throttle 00:00:10,use=message

watchfor /classification.*network-scan/i
mail=secuser@hostB,subject=network-scan (Port Scan Arert-snort)
bell 3
throttle 00:00:10,use=message

########################################### 攻撃コード実行
watchfor /classification.*attempted-user/i
mail=secuser@hostB,subject=attempted-user (Atach Code-snort)
bell 3
throttle 00:00:10,use=message

watchfor /classification.*attempted-admin/i
mail=secuser@hostB,subject=attempted-admin (Atach Code-snort)
bell 3
throttle 00:00:10,use=message

watchfor /classification.*shellcode-detect/i
mail=secuser@hostB,subject=shellcode-detect (Atach Code-snort)
bell 3
throttle 00:00:10,use=message

watchfor /classification.*misc-attack/i
mail=secuser@hostB,subject=misc-attack (Atach Code-snort)
bell 3
throttle 00:00:10,use=message

########################################### アクセス権のダッシュ
# アクセス権の奪取を示すトラフィックの検出
# 対象ホストで何者かがアクセス権を獲得することに成功

watchfor /classification.*bad-unknown/i
mail=secuser@hostB,subject=The right of access was deprived !(Access Code-snort)
bell 3

watchfor /classification.*successful-admin!/i
mail=secuser@hostB,subject=The right of access was deprived !(Access Code-snort)
bell 3

########################################### サービス妨害攻撃
# DoS攻撃検出

watchfor /classification.*attempted-dos/i
mail=secuser@hostB,subject=attempted-dos (DoS Atack-snort)
bell 3
throttle 00:10:00,use=message

watchfor /classification.*successful-dos/i
mail=secuser@hostB,subject=attempted-dos (DoS Atack-snort)
bell 3
throttle 00:10:00,use=message

watchfor /classification.*denial-of-service/i
mail=secuser@hostB,subject=attempted-dos (DoS Atack-snort)
bell 3
throttle 00:10:00,use=message

########################################### その他の攻撃

### etc/passwd、/etc/shadowなど不審なファイル名が含まれたトラフィックを検出
watchfor /classification.*suspicious-filename-detect/i
mail=secuser@hostB,subject=An important file name is included in the Traffic!(snort)
bell 3

### rlogin や PC-Anywere などへのログイン失敗時に検出
watchfor /classification.*unsuccessful-user/i
mail=secuser@hostB,subject=unsuccessful-user(rlogin auth error-snort)
bell 3

### rpc経由でなんらかの操作が行なわれた
watchfor /classification.*rpc-portmap-decode/i
mail=secuser@hostB,subject=rpc-portmap-decode (RPC snort)
bell 3

### telnetでのrootログインや、SecurityScannerなどのログインチェック
watchfor /classification.*suspicious-login/i
mail=secuser@hostB,subject=Telnet root login!(snort)
bell 3
throttle 00:00:10,use=message

### 攻撃コードに含まれるシステムコールのコードを検出(誤検知しやすい)
watchfor /classification.*system-call-detect/i
mail=secuser@hostB,subject=system-call-detect (snort)
bell 3

### Subsevenなどトロイ系バックドアを検出する。
watchfor /classification.*trojan-activity/i
mail=secuser@hostB,subject=trojan-activity (Backdoor detection-snort)
bell 3

### 予約されたIPアドレスでの通信などを検出する。
watchfor /classification.*non-standard-protocol/i
mail=secuser@hostB,subject=Illegal use IP address!(snort)
bell 3

### リモートからOracleSQLなどへのコマンド実行を検出する。
watchfor /classification.*protocol-command-decode/i
mail=secuser@hostB,subject=protocol-command-decode (snort)
bell 3

### WebApplicationに対するアクセスを検出
# サービススキャン行為とみなしている。
# WebApplicationへの不正アクセスが発生した場合に、
# 過去の履歴を確認する行為が行われた時に検出される
watchfor /classification.*web-application-activity/i
mail=secuser@hostB,subject=web-application-activity (snort)
bell 3

# WebApplicationに対する攻撃行為を検出
# 一部に誤検知しやすいルールが含まれる。
watchfor /classification.*web-application-attack/i
mail=secuser@hostB,subject=web-application-attack (snort)
bell 3
throttle 00:00:10,use=message

# その他注意すべきトラフィックを検出(ウィルス・ワーム類)
watchfor /classification.*misc-activity/i
mail=secuser@hostB,subject=misc-activity (snort)
bell 3
throttle 00:00:20,use=message

# 侵入を目的とするさまざまなトラフィックを検出する。
# 攻撃コードからSNMPへのアクセスまで含まれる。
watchfor /classification.*misc-attack/i
mail=secuser@hostB,subject=misc-attack (snort)
bell 3
throttle 00:00:10,use=message

# ポルノ等/NEWS Groupや特定のWebサイトへのアクセスで検出
watchfor /classification.*kickass-porn/i
mail=secuser@hostB,subject=kickass-porn (snort)
bell 3
throttle 00:00:20,use=message

# Chatなどのトラフィックを検出
watchfor /classification.*policy-violation/i
mail=secuser@hostB,subject=policy-violation (snort)
bell 2

# 既成のCGIやネットワーク機器にデフォルトアカウントで
# ログインしようとするトラフィックを検出
watchfor /classification.*default-login-attempt/i
mail=secuser@hostB,subject=default-login-attempt (snort)
bell 2
throttle 00:00:10,use=message

Swatch の exec と iptables スクリプトを併用すれば、自動でポートを閉鎖する事も可能です。当然ですが、これらは検出された後のアクションであり、後の祭り的要素も含まれます。

ACID で Snort が検出した不正パケットを把握し、必要に応じて Swatch のチューニング も行う必要がります。

bottom_mark
ページ最上部
ページ最上部 前のページ