Snort - みる会図書館


検索対象: UNIX MAGAZINE 2004年12月号
11件見つかりました。

1. UNIX MAGAZINE 2004年12月号

連載 / ネットワークとセキュリティ 39 行目付近にある、 という行の頁の、、 # " を削除してください。 snortruIes—snapshot—2—1. tar ・ gz # urI = http ://www.snort.org/dl/rules/=> 目の、 という行のう頁に、、 # " を j 助日してコメントアウトし、 42 行 snortruIes—snapshot—2_2. tar. gz urI = http://www.snort.org/dl/rules/=> 92 行目付近の use-external-bins の値を次のように変 設疋します。 になっていますが、今回は外部プログラムを利用するよう ないます。標隼定では、 PerI モジュールを利用するよう を利用するか、 PerI モジュールを利用するかの設定をおこ 次に、ファイルのダウンロードなどに外部のプログラム ともできます。 つながっていない場合、 scp を通じてルールを更新するこ なお、 Snort を利用するマシンカ値接インターネットに skipfile threshold. conf ・変更後 # skipfile threshold. conf ・変更前 行目付近の skipfile のコメント設定を外します。 また、変更した設疋ファイルを上書きされないよう、 194 1 use_external bins ・変更後 # use_external_bins = 0 ・変更前 更します。 70 ールがあり、 /usr/local/etc/snort/backup にバックア たとえば、 /usr/local/etc/snort/rules に Snort のル ディレクトリを指定します。 す。また、引数ー b で変更前のルールをバックアップする で Snort のルールが保存されたディレクトリを指定しま oinkmaster を利用してルールを更新するには、引数ー o oinkmaster の利用 これで oinkmaster の言定は完了です。 # mkdir /usr/local/etc/snort/backup を作成します。 次に、変更前のルールをバックアップするディレクトリ ップをとる場合には、以下のコマンドを実行します。 # /usr/local/bin/oinkmaster. pI - ー 0 /usr/local/etc/snort/rules , -b /usr/local/etc/snort/backup とくにエラーがなければ、更新されたルールの情報カ哂 面に表示され、指定されたディレクトリに新しいルールフ ァイルが展開されているはずです。 なお、変更前のルールはバックアップ先として指定され tar と gzip でア た /usr/local/etc/snort/backup に ーカイプされて保存されます。 ルールを更新したあと、 Snort カ第又疋を再言ムみするよ うにします。 # kill —HUP ' /sbin/pidof snort' これは Linux での例です。 FreeBSD の場合は ports の sysutils/psmisc 、 NetBSD の場合は pkgsrc の sysu- tils/psmisc をインストールすると、 pidof コマンドカ坏リ用 できます 3 。 その他の UNIX 系 OS の場合は以下のようにします。 # ki11 —HUP 'ps ax ー grep snort ー - grep -v grep ー awk '{print $ 1 } , ' Snort を chroot 環境下や root 以外のユーザーで動作 させていると、 HUP シグナルで設疋の再読込みをおこな うことができません。この場合にはいったん Snort を完全 に終了させ、起動しなおしてください。 RPM から Snort をインストールした場合には、 Snort をユーザー snort で 動作させる定 ( ) になっているので、 # /etc/init . d/snortd restart というコマンドを実行してください。 また、引数ー D を使って Snort をデーモンモードで起動 する場合、 HUP シグナルで設疋の再読込みをおこなうに は、フルノヾスで Snort を起動する必要があります。 定期的にルールを更新する こでは、 cron を使って定期的に oinkmaster を起動 し、 Snort のルールファイルを更新する方法を説明します。 実行時に通知をおこなうことなくルールを更新するに は、 /etc/crontab ファイルの末尾に図 3 の行を追加しま す。 /etc/crontab の PATH 変数の指定に /usr/local/ 3 わざわざインストールするほどのものでもない気もしますが・ UNIX MAGAZINE 2004. 12

2. UNIX MAGAZINE 2004年12月号

連載 / ネットワークとセキュリティ いる Winny のルールは含まれていません。 が、さきほど紹介した oinkmaster を通じて更新すること た、 BIeeding Snort のルールは頻繁に更新されています いるため、 Snort 標準ルールと問題なく併用できます。ま snort の標準ルールの sid と重複しないように設疋されて Bleeding Snort で公開されているルールの sid は、 ・ http://isc.sans.org/diary・ php SANS ーー Handler's Diary もできます。 72 ティ・ホールがみつかるかもしれません。そこで、 Snort ーザー権限で任意のコマンドを実行できてしまうセキュリ 権限で動作させていました。しかし、将来的に Snort にユ これまで説明したインストール手川頁では、 Snort を root 実行ユーサーの変更 ことができるようになります。 らなかった、 Windows RPC 上のサービスの詳細を知る 成したルールを利用することで、ポート番号だけでは分か まなインターフェイスか有在しています。 kawa さんが作 ポート番号を利用しますが、 Windows RPC にはさまざ dows RPC では、 135 番ポートや 445 番ポートなどの ンターフェイスを検知する Snort のルールです。 Wi1 ト kawa さんの日記で公開されている Windows RPC イ ? 200405C & to = 200405293 # 200405293 ・ http://kawa.smokerz.net/d/ ka 、 memo する必要があります。 理者が local.rule などのファイルに手作業でルールを追加 いるため、残念ながら自動的に更新することはできず、管 なお、通常の web ページのなかにルールカ載されて 理者にとっても参考になると思われます。 る場合も多いため、 Snort を利用しているネットワーク管 く、新たな攻撃手法を検知する実験的なルールが掲載され 掲載されるサイトです。たんに情報を提供するだけではな 動向や、新たに公開された脆弱性に関する情報がいち早く 当者による日記です。インターネット上の最新のアタック 10 月号で紹介した DShieId を運営する SANS の担 を実行するためだけのユーザーとグループを作成し、その ユーザー権限で snort を動作させれば、セキュリティ・ホ ールを悪用された際にも被害を少なくすることができるで しよう。 以下に、 Red Hat Linux や Debian GNU/Linux で、 snort を実行するためのユーザー、、 snort" を作成する方法 を示します。 Snort を実行するユーザーには有効なシェル を割り当てる必要がないため、シェルとして /bin/false を なお、 RPM などのバイナリ・パッケージを利用して # groupadd snort 成します。 また、 Snort を実行するために、グループ、、 snort" も作 # useradd —d /var/log/snort $ su 指定します。 —d /bin/false snort と、 Snort のルールのチュー ニングについて説明する予定 次回は、 Snort でよくみられる言盟衾知や過剰検知の実例 oinkmaster のインストールと設疋について説明しました。 今月は Snort のルールの概略と、ルール自動更新ツール ☆ ます。 ん Snort を完全に終了させてから再起動する必要があり 動作させている環境で設定の変更をおこなうには、いった れます。そのため、 Snort を root 以外のユーザー権限で シグナルで設疋の再読込みがおこなえなくなる点が挙げら この方法を利用した場合のデメリットとしては、 HUP —c /usr/local/etc/snort/snort . conf # snort —D —u snort —g snort ¯i ethO , で Snort を起動する例を示します。 ンを指定します。以下にユーザー snort 、グループ snort す。また、実行グループを指定するためには、 -g オプショ コマンドライン・オプションに -u オプションを指定しま Snort を root 以外のユーザーの権限で実行するには、 実行されるようになっているはすです。 めのユーザーとグループカイ乍成さ楸 Snort がその権限で snort をインストールした場合には、 Snort を実行するた です。 UNIX MAGAZINE 2004. 12 ( しらはた・しん慶應義塾大学 )

3. UNIX MAGAZINE 2004年12月号

0 ネットワークと セキュリティ 白畑真 Snort のインストールと運用 ( 2 ) 前回は、ネットワーク型 IDS (lntrusion Detection System : 侵入検知システム ) である Snort と、セキュリ ティ・イベント分析ツールの BASE のインストールと設 定について述べました。今月は、 Snort のシグネチャの更 新とチューニング、運用の Tips について説明します。 Snort では、シグネチャに処理方法をイ寸加した設疋ファ イルのことを、、ルール " と呼んでいます。そのため、この 記事ではとくに断わらないかぎり、 Snort のシグネチャを 、、ルール " と呼ぶことにします。 Snort とルール snort はシグネチャ型 1 の IDS です。アタックにともな うトラフィックを言当したルールを読み込み、それにもと づいてネットワークを監視します。したがって、新種のア タックを検知するためには、そのアタック手法に対応した ルールを利用する必要があります。 さいわい、下記の Snort の web サイトでは、多いときは 1 日に数回のペースでアタックに対応したルールが更新さ れており、新しいルールを入手することができます。 Snort 2.2.0 に添付されているルールの数は 2 , 464 種類ですが、原 ・ snortrules-snapsh0t-CURRENT. tar. gz ルが入手できます。 現在、 Snort の Web サイトからは以下のルールファイ ・ http://www.snort.org/dl/rules/ 稿執筆時点では 2 , 491 種類に増えています。 UNIX MAGAZ 工 NE 2004. 12 するカッじ 0 す。 言当しておき、このシグネチャに該当するトラフィックを侵入とみなして警告 1 あらかじめ攻撃と考えられるトラフィック・パターンを、、シグネチャ " として Snort の開発版 (CURRENT) 用のルールファイル ・ snortrules-snapshot-2-2. tar. gz Snort 2.2 系用のルールファイル ・ snortrules-snapshot-2-1. tar. gz Snort 2.1 系用のルールファイル ・ snortrules-snapshot-2-0. tar. gz snort 2.0 系 ( 2.0.6 以降 ) 用のルールファイル Snort のルールは、バージョンアップにともない書式が 拡張されています。とくに、 Snort 2.1 から PCRE (perl 互換正規表現 ) を用いたルールが記述できるようになった ため、多くのルールファイルが正規表現を使うものに書き 換えられました。使っている Snort のバージョンに合った ルールファイルを利用しましよう。 Snort のルールの構造 まず、 Snort のルールの構造について説明します。 では、 Snort に付属の rules/dns. rules 内の、 DNS のゾ ーン輯医を検知するシグネチャ ( 図 1 ) を例に説明します。 Snort のルールは、ルールヘッダとルールオプションに 分けられます。図 1 のルールの場合には、 alert tcp $EXTERNAL_NET any ー > $HOME—NET 53 がルールヘッダで、 (msg: "DNS zone transfer TCP" ・ ・ rev : 12 ; ) がルールオプションになります ( 実際は 1 行ですが、図で は適宜改行しています ) 。 Snort では、これらのルールの集 合を、、ルールセット " と呼びます。 ルー丿レヘッタ ルールヘッダは、図 2 のような構造になっています。 65

4. UNIX MAGAZINE 2004年12月号

連載 / ネットワークとセキュリティ /etc/crontab に〕自加する言綻 図 3 30 図 4 6 * * * て 00t oinkmaster ・ p1 —q ー 0 /usr/local/etc/snort/rules —b /usr/local/etc/snort/backup , & & kill —HUP ' /sbin/pidof snort ( ー logger -t oinkmaster ルールの更辛寺にメールで通知するための言 30 6 * * * TMP= ' mktemp /tmp/oinkmaster. XXXXXXXX ' & & if [ —s $TMP ] ; then mail —s "oinkmaster—report" root@example . com く $TMP; fi ; rm $TMP) , (oinkmaster. pl ー 0 /usr/local/etc/snort/rules/ -b /usr/local/etc/snort/backup -q > $TMP 2 > & 1 ; & & kill —HUP ' /sbin/pidof snort ( bin がない場合には、以下のように追加してください。 PATH=/sbin : /bin : /usr/sbin : /usr/bin=> : /usr/local/bin また、 Linux 以外の UNIX 系 OS の場合、 k 土 11 —HUP ( /sbin/pidof snort ' の部分を、 kill -HUP ps ax ー grep snort ー grep —v grep ー awk '{print $ 1 } ) ' に読み替えてください。 この例は毎朝 6 時半に root 権限で oinkmaster. pl を 実行し、 Snort を再起動するという設疋です。 oinkmaster に引数一 q を指定すると、ルールの更新がおこなわれない場 合には出力をしません。最後に、 logger コマンドを利用し て、 oinkmaster の出力が syslog に送信されるようにし ています。 ルールを更新すると同時に、メールで更新内容の通知を おこなうには、 /etc/crontab ファイルの末尾に図 4 の行 を追加します。 この例では、変更内容をテンボラリ・ファイルに書き出 し、その内容を oinkmaster-report という Subject で root@example.com 宛にメールで通知しています。 サードバーティのルールセット Snort は、シグネチャを言することで、アタックの検 知以外にも、任意のネットワーク上のトラフィックを検知 できます。ここでは、 Snort 標準のルールセット以外に 役立つルールセットを公開している Web サイトを紹介し UNIX MAGAZINE 2004. 12 ・ http://www.bleedingsnort.com BIeeding Snort ます。 Bleeding Snort では、以下のようなルールを提供して います。 ・ bleeding-malware. rules スパイウェアやアドウェアなど、 malware と呼ばれる ツールの動作にともなう通信を検知します。これらのソ フトウェアは、 Windows 用のフリー・ソフトウェアに 添付されたり、 ActiveX コントロールとしてインストー ルされるなど、利用者が知らないうちにインストールさ れるケースが多くみられます。また、画面に広告を表示 したり、ブックマークを書き換えたり、 Web サイトの 訪問履歴などの個人情報を外部に漏洩したりするほか、 Windows の動作を不安定にすることもあります。この ルールを利用した Snort で、 LAN の内部から外部への 通信を監視させれば、 malware か動作している LAN 内 のマシンを特定するのに役立つでしよう。 ・ bleeding-virus. rules 電子メールを通じて感染するウイルスや、メールに添付 された不審なファイルの拡張子 (. exe や . pif など ) を検 知するルールです。対応しているウイルスの数は多くあ りませんが、 Snort 標準のルールと併用することで、よ り多くのウイルスを検知できるでしよう。 ・ bleeding-policy. rules ポリシーとしてネットワーク管理者が禁止している行為 をおこなっていると考えられるユーザーの行動を検知す るルールです。検知対象には、 . exe ファイルのダウンロ ード、 HotmaiI や lnstant Messenger の利用、 HTTP を利用したトンネリングなどが含まれています。 ・ bleeding-p2p. rules P2P クライアントの利用にともなう通信の検知をおこ なうルールです。 KaZaA や eDonkey 、 BitTorrent な どの海外でよく利用されている P2P クライアントの通 信が対象となっています。なお、国内でよく利用されて 71

5. UNIX MAGAZINE 2004年12月号

連載 / ネットワークとセキュリティ 丿レー丿レオプション UN 工 X MAGAZINE 2004. 12 [Xref = > url help. undernet .org/proxyscan/] CPriority: 2 ] [C1assification: Attempted lnformation Leak] [ * * ] [ 1 : 615 : 5 ] SCAN SOCKS Proxy attempt [ * * ] ています。以下同様 ) 。 log 出力の一部を示します ( 誌面の都合上、で折り返し ーワードカ又疋されているシグネチャを用いた場合の sys- 以下に、 Snort に classtype キーワードや reference キ reference: cve, 1999 ー 0532 ; reference :nessus , 10595 ; グネチャ情報データベースもあります ( 丕 ) 。 お、 Snort 標準のルールに関しては Snort-DB というシ る際に、参考・情報のリンクを作成するのに役立ちます。な ィ・イベント分析ツールがイベントに関する情報を表示す ードは Snort の動作には直接景彡響しませんが、セキュリテ 情報へのポインタを示すために利用されます。このキーワ reference キーワードは、シグネチャに関連した外部の reference キーワード classtype : attempted—recon; 洩への言鵡于行為を示しています。 config ファイルで定義されています。以下の例は、情幸届 す。 Snort 標準の classtype の一覧は、 classification. べントがどの程度の脅威であるかを示すために利用されま classtype キーワードは、そのシグネチャが検知するイ classtype キーワード msg: "DNS zone transfer TCP" ・ TCP " というメッセージを出力します。 は、当該バケットが発見されると、、 DNS zone transfer Snort が出力するメッセージを指定します。以下の例で msg キーワードには、シグネチャにマッチしたときに msg キーワード メタテータ・ルールオプション は、、 ; " ( セミコロン ) で区切られます。 ( コロン ) で区切って並べます。また、各オプションの内容 、、 ( " と ) のあいだに、オプション・キーワードと値を ( キーワード 1 : 値 ; キーワード 2 : 値 ; キーワード 3 : 値 ; ) ルールオプションの書式は以下のとおりです。 Classification に classtype で指定した内容が、 Xref に reference で指定した内容が反映されています。 また、先月紹介した BASE などのセキュリティ・イベ ント分析ツールでは、 classtype や reference をもとに セキュリティ・イベントに関するリンクを作成しています。 sid キーワード sid (Snort rules (D) キーワードは、 Snort のなかで ルールを一意に識別するために利用されます。 sid の割当 ては次のとおりです。 ・ 100 未満 : 将来のために予約 ・ 100 ~ 1 , 000 , 000 : Snort に同梱されるルールに利用 ・ 1 , 000 000 以上 : ローカルルールに利用 ユーザーが独自にルールを作成する際には、 1 , 000 , 000 以上の値を sid に指定しましよう。 また、 sid-msg. map ファイルには、 sid の値とメッセー ジの対応表カ己載されています。このキーワードは rev キ ーワードと同時に利用します。 sid:255; rev キーワード rev キーワードは、 Snort のルールのリビジョンを一意 に識別するために利用されます。ある sid をもつシグネチ ャの内容力畯更された場合、 rev キーワードの値を更新し てシグネチャの変更を示します。 rev: 12 ; ペイロード検知ルールオプション content キーワード content キーワードは、 Snort が侵入検知をおこなうう えでもっとも重要なキーワードです。 Snort は、監視対象 のバケットにおいて content キーワードで指定された内容 を検索し、マッチしたものに対して出力をおこないます。 もっとも基本的な content キーワードの指定方法は、 ASCII 文字列をそのまま記述するものです。以下に、ペ イロード中に、、 .. /.. /.. / " が含まれるバケットを検知対象と するキーワードの例を示します。 content : もう 1 つは、 content キーワードをバイトコードで指 定する方法です。こちらは、 ( パイプ ) と、、「のあい 67

6. UNIX MAGAZINE 2004年12月号

連載 / ネットワークとセキュリティ ・考えられる誤検知 考えられる見逃し ・対応策 カ税明されています。 回は、外部コマンドがすでにインストールされているもの モジュールがインストールされている必要があります。今 Archive::Tar 、 IO::ZIib 、 LWP::UserAgent という perl ラム (tar 、 gzip 、 wget) がインストールされているか、 また、ファイルのダウンロードや展開用の外部プログ Windows での動作カ寉認されているそうです。 NetBSD 、 Linux 、 AIX 、 Solaris 、 Mac OS X 、 QNX 、 OS で動作します。現在のところ、 OpenBSD 、 FreeBSD 、 oinkmaster は、 Perl 5.6.1 以降が動く UNIX 系の oinkmaster の動作環境 て説明します。 この節では、 oinkmaster のインストールと設疋につい なう一 -- ー連の作業を自動的におこなう perl スクリプトです。 ルールの入手、展開、設疋反映といったルール更新にとも 業を自動化することができます。 oinkmaster は、新しい しかし、 oinkmaster2 を使えば、面倒なルールの更新作 るのはなかなカ壻の折れる作業です。 いルールがリリースされるたびに、手動でルールを適用す 可欠です。 Snort のルールは頻繁に更新されるため、新し Snort の効率的な運用には、ルールのメンテナンスカ坏 ルールの自動更新 - ー - oinkmaster は、 Snort-DB の内容を検索してみるとよいでしよう。 Snort の検知結果やルールの内容に疑問が生じたときに として、それらの利用を村豺是に説明を進めます。 oinkmaster の入手 まず、下記の Web サイトから oinkmaster のソ ードを入手します。 ・ http://oinkmaster.sourceforge.net/ ースコ 2 余談になりますが、 oink は豚の鳴き声窈疑声語です ( そして、 Snort には 、豚の鼻息 " という意味があります ) 。 oinkmaster を意すれば、プヒプ ヒの達人 " とでもなるでしようか。なかなかユニークなネーミングです。 UNIX MAGAZINE 2004. 12 Web サイトの、、 Dow ⅲ oad " からファイル名のリンクを クリックすると、 SourceForge のミラーサイト一覧が表小 されるので、任意のミラーサイトを選択すれば、自動的に ダウンロードが開始されます。 なお、原稿執筆時点での oinkmaster の最新バージョン は 1.1 です。 インストール ソースコードをダウンロードしたら、ファイルを展開し ます。 % tar xvzf oinkmaster—l . 1 . tar. gz oinkmaster にはインストーラが付属していないので、 手作業でファイルをコピーします。まず、カレント・ディ レクトリを変更し、ユーザーを root に変更します。 % cd oinkmaster—l . 1 % su oinkmaster 本体を /usr/local/bin にコピーします。 # cp oinkmaster. pl /usr/local/bin/ oinkmaster の成疋ファイルである oinkmaster. conf を、 /usr/local/etc もしくは /etc にコピーします。 # cp oinkmaster . conf /usr/local/etc/ oinkmaster のマニュアルページを /usr/local/man manl にコピーします。 # cp oinkmaster. 1 /usr/local/man/manl/ 言又疋ファイルの編集 次に、 oinkmaster の設疋ファイルを編集します。 # vi /usr/local/etc/oinkmaster . conf まず、利用している Snort のバージョンに合ったルール のダウンロード先を設疋します。バージョンごとのファイ ルのダウンロード先については、 ・ http://www.snort.org/dl/rules/ で確認してください。 oinkmaster 1.1 の標準設疋では、ダウンロード先とし て Snort 2.2 系のルールファイルが指定されているので、 Snort 2.2.0 を使っている場合には、ダウンロード先の設 定変更は不要です。 Snort 2.1 系を利用している場合には、 69

7. UNIX MAGAZINE 2004年12月号

だにバイトコードを言します。バイトコードを利用する と、 ASCII 文字列では指定できないバイナリデータを検知 対象にできます。 content : 00 00 FC 卩 ASCII 文字列とバイトコードを混在させることも可能 です。 content : 04 lbind" 否定演算子、、 ! " を使えば、指定したパターンカ観れない バケットも検知対象にできます。以下に、バケット内に GET が含まれないものを検知対象とする例を示します。 content : ! "GET" 非ペイロードオロルールオプション dsize キーワード dsize キーワードは、バケットのペイロードのサイズを もとに検知対象を指定する方法です。バッフア・オーバー フローを狙ったバケットなど、通常では考えられない大き さのバケットを検知するのに役立ちます。以下に、 400 バ イトより大きいバケットを検知する例を示します。 dsize : > 400 ; なお、 dsize キーワードは、 TCP ストリーム再構築機能 が有効な場合には利用できません。 flow キーワード flow キーワードは、トラフィックの向きを検知するた めに利用できます。このキーワードを利用するには、 TCP ストリーム再構築機能が有効になっている必要があります ( 標準で肩効 ) 。 ステートの状態 stateless : ストリーム再構築機能の状況にかかわらず 検知対象とする。 established : 確立済みの TCP 接続のみを対象とす る。 . TCP セッションの方向 セッションを言当するシグネチャでは、かならずルール のお型から右辺に対する動作をします。 to-client : ルール左辺から右辺へのサーバーの応答を 対象とする。 連載 / ネットワークとセキュリティ to-server : ルール左辺から右辺へのクライアントのリ クエストを対象とする。 from-client : ルール左辺から右辺へのクライアント のリクエストを対象とする (toserver と等価 ) 。 from-server : ルール左辺から右辺へのサーバーの応 答を対象とする (to-client と等価 ) 。 flow オプションを利用する際は、通常、ステートの状態 と TCP セッションの方向を組み合わせて指定します。 flow:to_server,established; ・ストリームの光態 only-stream : ストリームの再構築をおこなったバケ ットを検知対象とする ( 標準 ) 。 no-stream . ストリームの再構築をおこなったバケッ トを検矢は寸象としない。 前述した dsize オプションを利用する場合など、ストリ ーム再構築機能を無効にするには、 no-stream オプショ ンを指定します。 その他の言項目 このほかにも、 snort のルールにはたいへん多くの設疋 項目があるため、今回は主要な設定項目に絞って解説しま した。詳細な設疋項目については、 Snort のマニュアルの 3 章を参照してください。また、 2.0.2 とやや旧いバージョ ンですが、日本語版のマニュアルもあります。いずれも下 己の URL で見られます。 ・ http://www.snort.org/docs/ Snort-DB snort の Web サイトでは、、 Snort-DB" というシグネ チャ情報データベースを公開しています。 ・ http://www.snort.org/snort-db/ Snort-DB では、シグネチャの一意な識別子である sid をもとに、 ・ルールの内容 ・攻撃の概略 ・攻撃による景 ・攻撃に関する情報 . 影響を受けるシステム 一三ロ 68 UNIX MAGAZINE 2004. 12

8. UNIX MAGAZINE 2004年12月号

ユニックス・マガジン 2004 年 12 月 1 日発行 ( 毎月 1 回 1 日発行 ) 第 19 巻第 12 号通巻 218 号昭和 63 年 9 月 5 日第三種郵便物認可 屬 0 E ec ・ 200 第 Vo の基礎知識 プロトコルの概要から導入時の注意点まで ・ Vo をする技術 - ′関連プロトルーー -- -- 323 と S ・設計・時の注意点 饕 Open Cygwin WindÖw Here . リ NIX 使りのための V 旦 i 。 ・レジストリの操作 ・シェル拡張 . クミング・テクニック 条件にマッチしているかを調べる関数 ルーティンク BGP の運用とスケーラヒリティ ネットワークとセキュリティ Snort のルールと自動更新ツール oinkmaster FreeBSD のフートプロセスをみる vm forkproc() と仮想アドレス空間の管理 ネットワーク・ミニ実験室 DHCP の振舞いを調へる 国立天文台のネットワーク 、衛星の引越し、ライプカメラの運用

9. UNIX MAGAZINE 2004年12月号

Contents 2004 / 12 Vo の基礎知識 秋葉俊夫、垣内啓之、木村嘉秋、 小高浩、田中一寿、森永有紀子 広帯域ネットワークの普及により、企業を中心として Vo 旧 ()P 電話 ) の導 入が進みつつある。音声符号化や圧縮、呼制御、帯域の優先制御などの基 本的な技術、 S 旧に代表される各種プロトコルについて解説。さらに、設計 および導入時に注意すべき点を説明する。 Open Cygwin Window Here 吉田昌英 PowerToys fo 「 Windows にヒントを得て、開いているフォルダから Cygwin の端末工ミュレータを開く仕組みを作る。 UN Ⅸユーザーのため の VBScript と C# の基礎 [ 特集 ] 28 83 連載 UNIX Communication Notes ・・・・・・山口英 ストレージの共有 国立天文台のネットワーク・・・・・・大江将史 衛星の引越し、ライブカメラの運用 ネットワークとセキュリティ・・・・・・白畑真 Snort のルール、ルール自動更新ツール ー P ルーティング・・・・・・小原泰弘 BGP の運用と拡張機能 プログラミング・テクニック・・・・・・多治見寿和 条件にマッチするかを調べる関数 FreeBSD のブートプロセスをみる・・・・・・白崎博生 vm forkp 「 0C0 と仮想アドレス空間の管理 文房具としての UN Ⅸ・・・・・・宮地利幸、森島直人 静かな NetBSD システムを作る COVER, CONTENTS DESIGN ・ MORIYA, KAZUO (AUDREY THE DESIGN) ILLUSTRATION KANOKO 7 2 5 3 8 4 6 0

10. UNIX MAGAZINE 2004年12月号

連載 / ネットワークとセキュリティ 図 1 Snort のルールびメ列 ノレールヘッダ 丿レールオプション alert tcp $EXTERNAL—NET any ー > $HOME—NET 53 (msg: "DNS zone transfer TCP" ・ low:to—server,established; CO Ⅱ tent と叫、 00 00 ー ~ FClti ; offset: 15 ; reference:arachnids , 212 ; eference: cve 1999 ー 0532 class ype : at e p 多 00 : 今 cp 丐下 ef 今 r Ⅱ C9 : nessus. , 10595 ・ sid : 255 ・て ev : 12 ・ 図 2 ルールヘッダの構造 alert tcp $EXTERNAL_NET 、 any ー > $HOME—NET 53 ルールアクション送信元旧アドレス 通信の方向宛先ポート番号 プロトコル 1. ルールアクション 送信元ポート番号宛先旧アドレス ルールにマッチしたバケットがみつかった場合のアクシ ョンを指定します。もっともよく使われるルールアクシ ョンは、、 alert" で、指定された方法でアラート ( 侵入検 知の内容 ) を出力するとともに、バケットを言泉します。 次によく使われるのは、、 pass" で、バケットを無視しま す。誤検知の多いルールなど、侵入検知の対象から除外 したいバケットを指定する際に利用されます。 2. プロトコル レイヤ 3 またはレイヤ 4 のプロトコルを指定します。現 在のところ、 tcp 、 udp 、 icmp 、 ip カ甘旨定できます。 3. 送信元 IP アドレス 検知対象とするバケットの送信元の IP アドレスです。 図の例では、 $EXTERNAL-NET 変数に指定された IP アドレスが検攵寸象となります。 デフォルトの snort. conf では、 47 行目付近で $ EX ー TERNAL-NET に any を指定しているため、すべて の IP アドレスが対象となります。単一の IP アドレス を対象とする場合はその IP アドレスを、ネットワーク 全体を指定する場合には / 27 のように CIDR 形式で記 述します。複数の IP アドレスを指定する際には、全体 を、、「と、 S]" で囲み、それぞれの IP アドレスを、、 , " ( カ ンマ ) で区切ってください。 以下は、 192.168.0.1 と 10.0.0.0 ~ 10.255.255.255 を 対象とする場合の例です。 [ 192.168.0.1 , 10 . 0 . 0 . 0 / 8 ] また、否定演算子 ! を利用することで特定の IP アド レスを除くすべての IP アドレスを指定できます。たと えば、 ! 10.0.0.1 とすれば、 10.0.0.1 以外の全 IP アド 66 レスを指定したことになります。さらに、 ! [ 192.168.0. 1 , 10.0.0.0 / 8 ] のように指定することもできます。 4. 週言元ポート番号 検知対象とする送信元ポート番号です。特定のポート 番号を指定するには、そのまま番号を記述します。す べてのポート番号を対象とする場合には、、 any " を指定 します。一定の範囲のポート番号を指定することもでき ます。たとえば、 100 番から 103 番までのポートを対 象とする場合には、、 100 : 103 " と指定します。 1023 番以 下の全ポートを対象とする場合には、、 : 1023 " 、 1024 番 以上 65535 番以下のポート番号を対象とする場合には 、、 1024 : " と指定します。さらに、否定演算子、、 ! " も使え ます。 53 番を除く全ポートを対象にするには、、、 ! 53 " を 指定します。 5. 通信の方向 検知対象とする通信の方向を指定します。片方向演算子 、、一 > " は、ルールが適用される方向を指定します。演算 子の左辺にある IP アドレスとポート番号をトラフィッ クの週言元、右辺にある IP アドレスとポート番号をト ラフィックの宛先として検知をおこないます。双方向演 算子、 k>" を指定すると、週言元や宛先を意薇ずに検 知をおこないます。この演算子は、 telnet セッションを すべて言求する場合などに役立つでしよう。 6. 宛先 IP アドレス 検知対象とするバケットの宛先の IP アドレスです。書 式は送信元 IP アドレスと同じです。 7. 宛先ポート番号 検知対象とするバケットの宛先ポート番号です。書式は 週言元ポート番号と同じです。 UN 工 X MAGAZ 工 NE 2004. 12