侵入者検知システムの導入

03/06/18

結局「Snort」が本当に役に立つのかわからないままでいます(※注)。とにかく欲しくないログばかり記録してくれます。「Snort」を起動中にもコードレッド等のアタックがあるはずなのに、全くそれに関しては無効のようです。pingにも反応しなければ、シマンテックのセキュリティーチェックにも反応しません。唯一Windowsとのパケットでのやりとり?が一定の時間ごとに記録されていくだけみたいです。

それでもインストールしたいならば、以下のように・・・

ここからソースを拾ってきます。ココではかりに「/root/DL」以下にDLしてきたとします。(以前のバージョンで作成されたlogが残っていると起動に失敗することがあるので、ログをディレクトリごと削除してください。

次に、ターミナルを立ち上げて

$cd /root/DL
$ tar -zxvf snort-2.0.0.tar.gz
$ cd snort-2.0.0
$ ./configure
$ make
$ su
passwd:*********
# make inastall

これでインストールは完了ですが、専用のディレクトリを作成したり、作成されたいくつかのファイルを移動させてやります。

まず、「snort」というユーザーを作成します。

# groupadd snort
# useradd -g snort -d /dev/null -c "Snort User" -s /bin/false snort

ファイルマネージャーを起動させ、「/etc/snort」(注:所有者はrootでもよいが、他人も読み込み可能とする)と「/var/log/snort」(注:所有者を「snort」にします。)を作成します。

先ほど作成された「/root/DL/snort-2.0.0」の中に、「etc」と「rules」というディレクトリがあると思います。「etc」の中の「classification.config」と「snort.conf」と「reference.config」を「/etc/snort」以下にコピーし、ディレクトリ「rules」も同じ場所にコピーします。

次に「snort.conf」を開きます。以下のようにします。

var HOME_NET 192.168.1.0/24
#192.168.1.7/32とすると「192.168.1.7」を監視するのですが、やたらめったらおかしなログばかり記録されました。「SMB」と「IIS」に関するエラーのようですが・・・(※注)

var EXTERNAL_NET !$HOME_NET

# List of DNS servers on your network
var DNS_SERVERS 192.168.1.7/32

# List of SMTP servers on your network
var SMTP_SERVERS 192.168.1.7/32

# List of web servers on your network
var HTTP_SERVERS 192.168.1.7/32

# List of sql servers on your network
var SQL_SERVERS 192.168.1.7/32

# List of telnet servers on your network
var TELNET_SERVERS 192.168.1.7/32


# Ports you run web servers on
var HTTP_PORTS 80

# Ports you want to look for SHELLCODE on.
var SHELLCODE_PORTS !80

# Ports you do oracle attacks on
var ORACLE_PORTS 1521

var AIM_SERVERS [64.12.24.0/24,64.12.25.0/(一行で)
24,64.12.26.14/24,64.12.28.0/ 24,64.12.29.0/(一行で)
24,64.12.161.0/ 24,64.12.163.0/24,205.188.5.0/(一行で)
24,205.188.9.0/24]

var RULE_PATH ./rules


preprocessor frag2

preprocessor stream4: detect_scans, disable_evasion_alerts

preprocessor stream4_reassemble

preprocessor http_decode: 80 unicode iis_alt_unicode double_encode iis_flip_slash full_whitespace

preprocessor rpc_decode: 111 32771

preprocessor bo

preprocessor telnet_decode

#ポートスキャンの検知。これは3秒間に4つ以上のポートにアクセスした場合にportscan.logに記述する。
preprocessor portscan: $HOME_NET 4 3 portscan.log

#ポートスキャンを行っても検知しないネットワークアドレスを記述
#preprocessor portscan-ignorehosts: 0.0.0.0

#preprocessor arpspoof_detect_host: 192.168.40.1 f0:0f:00:f0:0f:00

# preprocessor conversation: allowed_ip_protocols all, timeout 60, max_conversations 3000
#preprocessor portscan2: scanners_max 256, targets_max 1024, target_limit 5, port_limit 20, timeout 60

さらにシグニチャのインクルード設定をします。同じく「snort.con」に続けて書き込みます

include classification.config

include reference.config

#本当は、「/etc/snort/rules」ではなくて「$RULE_PATH」なのだけれど、うまくいきませんでした。
include /etc/snort/rules/bad-traffic.rules
include /etc/snort/rules/exploit.rules
include /etc/snort/rules/scan.rules
include /etc/snort/rules/finger.rules
include /etc/snort/rules/ftp.rules
include /etc/snort/rules/telnet.rules
include /etc/snort/rules/rpc.rules
include /etc/snort/rules/rservices.rules
include /etc/snort/rules/dos.rules
include /etc/snort/rules/ddos.rules
include /etc/snort/rules/dns.rules
include /etc/snort/rules/tftp.rules
include /etc/snort/rules/web-cgi.rules
include /etc/snort/rules/web-coldfusion.rules
include /etc/snort/rules/web-iis.rules
include /etc/snort/rules/web-frontpage.rules
include /etc/snort/rules/web-misc.rules
include /etc/snort/rules/web-client.rules
include /etc/snort/rules/web-php.rules
include /etc/snort/rules/sql.rules
include /etc/snort/rules/x11.rules
include /etc/snort/rules/icmp.rules
include /etc/snort/rules/netbios.rules
include /etc/snort/rules/misc.rules
include /etc/snort/rules/attack-responses.rules
include /etc/snort/rules/oracle.rules
include /etc/snort/rules/mysql.rules
include /etc/snort/rules/snmp.rules
include /etc/snort/rules/smtp.rules
include /etc/snort/rules/imap.rules
include /etc/snort/rules/pop2.rules
include /etc/snort/rules/pop3.rules
include /etc/snort/rules/nntp.rules
include /etc/snort/rules/other-ids.rules
# include /etc/snort/rules/web-attacks.rules
# include /etc/snort/rules/backdoor.rules
# include /etc/snort/rules/shellcode.rules
# include /etc/snort/rules/policy.rules
# include /etc/snort/rules/porn.rules
# include /etc/snort/rules/info.rules
#pingで反応(けどしなかった・・・※以下の「実験するには」を参照)↓
include /etc/snort/rules/icmp-info.rules
# include /etc/snort/rules/virus.rules
# include /etc/snort/rules/chat.rules
# include /etc/snort/rules/multimedia.rules
# include /etc/snort/rules/p2p.rules
include /etc/snort/rules/experimental.rules
include /etc/snort/rules/local.rules

ココまで出来たら、起動させます。

# /usr/local/bin/snort -A fast -c /etc/snort/snort.conf -u snort -g snort

エラーがでなければオッケーです。

/var/log/snort」以下に「alert」と「portscan.log」というファイルが出来ていると思います。

実験するには?

snort.conf」の「include /etc/snort/rules/icmp-info.rules」を有効にさせ

EXTERNAL_NET」を

var EXTERNAL_NET [!$HOME_NET,192.168.1.7] #クライアントのPCのIPを加える。

で、snortを起動させます。192.168.1.7のマシンから「ping」を打ち込んでみます。

[**] [1:382:4] ICMP PING Windows [**]
[Classification: Misc activity] [Priority: 3]
06/18-23:24:54.905641 192.168.1.7 -> 192.168.1.10
ICMP TTL:128 TOS:0x0 ID:48357 IpLen:20 DgmLen:60
Type:8 Code:0 ID:512 Seq:6144 ECHO
[Xref => http://www.whitehats.com/info/IDS169]

こんな感じのログが残ると思います。

この続きは、こちらで。

<Pre Next>

■目次

■最近観た映画2


■最近観た映画3

 


■ここがサブタイトル