前回は、誤検知を是正するためのSnortの設定見直しやルールセットの絞込み、簡単なシグネチャの編集などについて説明した。今回も、引き続きルールセットに関連する話題である。ルールセットの種類とルールセットの更新について言及していきたい。●ルールセットの種類 前回も述べたが、SnortなどのIDSを運用していく場合、ルールセットやシグネチャの適用見直し、あるいは修正は避けることができない。このプロセスを通じて、環境に最適化されたSnortの利用が望めるからである。 実際、素のままの状態のSnortでは、誤検知の多発やログの肥大化といったユーザにとってわずらわしい部分がクローズアップされてしまうことが多い。ルールセットの絞込みなどは、常に気をつけておいた方がいいだろう。改めて、Snortに含まれるルールセットとその検知内容について、簡単に紹介しておくことにする。ルールセット名は、snort.confに記述されている順になっている。local.rules:ユーザーが独自に作成・追加したルールに従った通信の検知bad-traffic.rules:0番ポートや127.0.0.0といった特殊なアドレスに対するアクセスを検知exploit.rules:バッファオーバーフローなどの脆弱性を突く不正アクセスを検知scan.rules:各種のスキャンツールによるアクセスを検知finger.rules:fingerサービスに対する問合せや攻撃を検知ftp.rules:ftpサービスに対する問合せや攻撃を検知telnet.rules:telnetサービスに対する問合せや攻撃を検知rpc.rules:rpcサービスに対する問合せや攻撃を検知rservices.rules:rshやrloginといったr系サービスに対する攻撃を検知dos.rules、ddos.rules:DoS(サービス拒否)、DDoS(分散型サービス拒否)攻撃を検知dns.rules:DNSサーバーに対する問合せや攻撃を検知tftp.rules:Tftpサービスに対する問合せや攻撃を検知web-cgi.rules:いわゆるCGIに対する攻撃を検知web-coldfusion.rules:Webアプリケーションサーバー・ColdFusionに対する攻撃を検知web-iis.rules:MicrosoftのWebサーバー・IISに対する攻撃を検知web-frontpage.rules:IIS上で動作するFrontPageの拡張機能(Server Extension)に対する攻撃を検知web-misc.rules:その他のWebサーバーに対する攻撃を検知web-client.rules:Webクライアント(ブラウザ)に対する攻撃を検知web-php.rules:スクリプト言語であるPHPに対する攻撃を検知sql.rules:MicrosoftのSQL Serverに対する攻撃を検知x11.rules:X Window Systemに対する攻撃を検知icmp.rules:ICMPを利用した不正アクセスや攻撃を検知netbios.rules:NetBiosを利用した不正アクセスや攻撃を検知misc.rules:不正なプログラムを使った通信などを検知attack-responses.rules:不正アクセスに成功した者が行う通信などを検知oracle.rules:オラクルに対する攻撃を検知mysql.rules:MySQLに対する攻撃を検知snmp.rules:snmpサービスに対する攻撃を検知smtp.rules:SMTPサーバーに対する攻撃を検知imap.rules:IMAPに対する攻撃を検知pop2.rules、pop3.rules:POP2サーバー、POP3サーバーに対する攻撃を検知nntp.rules:NNTPサーバーに対する攻撃を検知other-ids.rules:他のIDSの出す通信パケットを検知web-attacks.rules:Webサイトへの攻撃を検知backdoor.rules:いわゆるバックドアの通信を検知shellcode.rules:シェルコードを利用した不正アクセスを検知policy.rules:セキュリティポリシーに反する通信(anonymousFTPのログインやメールサーバーのリレー許容など)を検知porn.rules:アダルトサイトへのアクセスを検知info.rules:各種サービスに対する不振な情報の問合せを検知icmp-info.rules:一般的なICMPをすべて検知virus.rules:ウイルスが仕込まれたプログラムを実行することで行われる不正な通信を検知chat.rules:ICQやIRCといったツールを利用したチャット通信を検知multimedia.rules:マルチメディアデータを検知p2p.rules:ピア・ツー・ピアソフトの利用を検知experimental.rules:実験的なシグネチャを格納するファイル(今のところ中身は空) なお、web-attacks.rulesからp2p.rulesまではデフォルトでコメントアウトされているので、これらのルールによる処理は通常行われない。内容を確認の上、必要があると思われるなら適用してみよう。もっとも、誤検知が頻発する恐れのあるルールや検知結果に疑問が残るルールもあり、安易な適用は止めておいた方がいいだろう。●ルールセットの更新 ルールセットの絞込みと同様に気をつけたいのがルールセットの更新である。インターネットの普及が進み悪質なウイルスが出回る昨今、サーバに対する攻撃や不正アクセスの方法については、日々新しい手法が考案されているといっても過言ではない。ウイルスの蔓延自体、不正アクセス技術の一端にあるといっていいかもしれない。 今まで見てきたように、Snortはあらかじめ用意されているルールセットに基づいて、不正と思われるアクセスを検出・警告する。そのため、新たに現出した手法による不正アクセスや攻撃には対処することができない。常に最新の不正アクセスや攻撃に対処するためには、定期的なルールセットの更新が不可欠になるのだ。【執筆:磯野康孝】(詳しくはScan本誌をご覧ください)http://www.ns-research.jp/cgi-bin/ct/p.cgi?m-sc_netsec