システム管理者は,ネットワークやホストで発生した異常をいち早く検出して対応する必要がある。しかし,“異常”を監視するだけでは不十分である。例えば,侵入検知システム(IDS)を稼働させているホストがダウンしていたり,IDSのセンサーと管理端末間のネットワークが先日の「SQL Slammer」ワームなどにより飽和されたりした場合には,異常を検出できない恐れがある。異常を監視することはもちろん,ホストやネットワークが正常に稼働しているかどうかの監視,すなわち「稼働監視」もセキュリティにおいて重要なのである。そこで今回の記事では,稼働監視について解説したい。

SNMPで稼働状況をチェック

 稼働監視には2種類ある。ネットワーク越しに特定のホストや機器にアクセスしてネットワーク到達性(reachability)を調査する「ネットワーク監視」と,ホストや機器の情報を直接入手して調査する「ホスト監視」である。実際には,これらを同時に実施するケースがほとんどである。管理端末から,ネットワーク経由で各ホストの情報を収集して調査する場合が多い。これにより,各ホストの稼働状況を監視できるとともに,そのホストまでのネットワークの状態を監視できるのだ。

 ネットワーク経由での監視を可能にするために,ルーターをはじめとするほとんどのネットワーク機器や各種OSは,SNMP(Simple Network Management Protocol)機能を備えている。SNMPとは,ネットワーク経由でホストや機器の稼働状況を通知あるいは収集するプロトコルである。稼働状況に関する情報を通知するのが「SNMPエージェント」であり,情報を要求したり収集したりするのが「SNMPマネージャ」である。ルーターなどのネットワーク機器やOSは,SNMPエージェントの機能を備えているのである。なお,SNMPを使えば機器等の設定変更も可能である。

 SNMPエージェントからマネージャへ送られる情報は,例えば,CPUやディスクの使用率,送受信しているパケットの数などさまざまである。これらの情報はマネージャからの要求でクライアントが通知するが,異常が発生した場合などには,エージェントからマネージャへ自発的にその情報が通知される。これは「SNMPトラップ」と呼ばれる。

「MRTG」でトラフィックを視覚化

 SNMPを使用してホストやネットワーク機器を監視するソフトウエア,すなわちSNMPマネージャ・ソフトは複数存在するが,なかでも有名なソフトウエアの一つが「MRTG(Multi Router Trafiic Grapher)」である。MRTGの特徴は,ネットワーク・トラフィックの時間変化をグラフとして表示できることにある。

 MRTGは各機器からSNMPで収集した情報――通常はそれぞれの機器が処理しているトラフィックの量――を,一定時間ごとにグラフ化して表示する。単純ではあるが,大変効果的である。“情報視覚化”の見本ともいえる(参考記事「情報の“視覚化”技術をセキュリティ分野に」)。グラフを眺めるだけで,ネットワークの日々の利用状況を把握できる。さらに,何らかの異常――例えば,ワームの出現――によるトラフィック飽和なども即座につかめる。

 ネットワークやホストで発生する障害を事前に予測できる場合もある。というのも,障害が発生する前に,その前兆となる現象――例えば,急激なトラフィックの増大やCPUおよびメモリーの浪費――が見られる場合があるからだ。

 リアルタイムで障害を予測できなくても,事後に障害直前のグラフを分析することで,障害の原因を探ることもできる。

 MRTGには多数のプラグインが用意されている。それらを使用すれば,トラフィック量だけではなく,各ホストのCPUやプロセスの使用状況,(監視対象がメール・サーバーの場合には)キューにたまっているメールの量,DNSサーバへのクエリー数――など,さまざまな情報を監視できる。

稼働監視用ソフトは多数

 SNMP以外を利用した稼働監視もある。ICMPを利用する「Ping」コマンドによるホストの稼働監視が代表的だ。TCPやUDPを利用して特定のポートにアクセスして,あるサービスが稼働しているかどうかを調べる「ポート・ノック(Port Knock)」もよく用いられる。

 これらは,OSが備える標準的なコマンドでも実施できるが,専用の稼働監視ソフトウエアが多数存在する。特に「Nagios」, 「NetSaint」, 「BigBrother」などが有名である。いずれも,ICMP/TCP/UDP/SNMPを利用した監視ができる。加えて,「異常があればメールで警告する」といった“柔軟な”設定が可能である。

稼働監視の注意点

 以上のように,異常を確実に検出するためには,稼働監視は非常に有効である。そのために利用できるソフトウエアも多数ある。

 しかし,稼働監視を実施する際には注意が必要である。SNMPを利用する場合,必要なホスト(SNMPマネージャ)だけに情報を提供するようにしないと,監視対象の情報が漏えいしてしまう。情報の漏えいだけではない。機器によっては設定を操作される危険性もある。

 また,ポート・ノックで稼働監視を実施する場合も要注意である。それぞれのプロトコルに従わず,単純にTCPで特定のポートに接続してすぐに閉じるタイプのポート・ノックは,そのポートを使用するサービスの挙動を不安定にする場合がある。

◇     ◇     ◇     ◇     ◇     ◇

 ファイアウオールやIDSなどを利用して,異常を監視することはもちろん重要である。しかし,それらでは検出できない異常な事態も十分想定される。つまり,ファイアウオールやIDSなどでは検出できないものの,サービスを正常に提供できていない場合がありうるのだ。正常にサービスを提供できているかどうかを調べるには,稼働監視を実施する必要がある。

 とはいえ,いくら稼働監視のソフトウエアを導入しても,管理者がきちんとチェックしなければ“宝の持ち腐れ”である。特に,MRTGなどを利用したトラフィック監視は,日々チェックしてこそ意味がある。導入しただけで効果が上がるものではない。もちろんこのことは稼働監視のソフトウエアに限らない。IDSをはじめとする,ほとんどのセキュリティ・ソフトウエアにおいて言えることだ。


若居和直(WAKAI Kazunao)
株式会社ラック JSOC事業本部
wakai@lac.co.jp


 IT Proセキュリティ・サイトが提供する「今週のSecurity Check [一般編]」は,その週に起きたUNIX関連およびセキュリティ全般のニュースや動向をまとめた週刊コラムです。セキュリティ・ベンダーである「株式会社ラック」のスタッフの方を執筆陣に迎え,専門家の立場から解説していただきます。