このコラムでも何度か取り上げているように,サーバーやファイアウオールなどのログを保存しておくことは重要である。しかし,保存するだけでは不十分なのだ。どのマシンで,どういった情報のログを記録しているのかなどをきちんと“管理”していないと,いざというときに活用できない。そこで今回のコラムでは,ログを管理することの重要性について考えたい。

“保存”と“管理”は別

 ログを記録する目的は,主に2つである。「システムに異常が発生していないかどうかを把握するため」,「不正アクセスなどのインシデント*が発生した際の証拠とするため」――である。ログを記録し保存しておくことの重要性については言うまでもないだろう。しかし,保存しておくだけで満足してはいけない。ログを活用するにはきちんと管理しなくてはならないのだ。

*インシデント:セキュリティ・インシデントのこと。セキュリティ・インシデントとは,コンピュータ・セキュリティに関係する人為的事象(incident)のことで,意図的および偶発的に発生する。具体的には,不正侵入に限らず,弱点探索(ポート・スキャン)やリソースの不正使用,サービス妨害(DoS:Denial of Service)などが含まれる。

 ログを保存することと,ログを管理することとは別である。いかに慎重に保存していても,インシデント発生時にそれらを活用できなければ意味は無い。ここで言う“活用”とは,それぞれのマシンに分散しているログをできるだけ短時間に集め,インシデントの詳細について解析するとともに,インシデントの証拠とすることである。

 ログを管理するためには,最低限以下の情報を管理者が把握しておく必要がある。

  • どのサーバーにどのようなログが存在するのか。どこまでの情報を記録しているのか
  • どのログが単独で解析可能で,どのログが他のログと組みあわせて解析する必要があるか
  • それぞれのログを収集するにはどうすればよいのか。集めるのにどの程度時間が必要か

 ある規模以上のネットワークになると,各マシンのログを自動的に一カ所に集めることは難しくなる。特に,異なるOSを搭載したサーバーや異なる種類のファイアウオールなどが混在している環境では,ほとんど不可能である。結果,それぞれのサーバーなどにログが分散することになる。

 加えて,それぞれのマシンのログが1つのファイルにまとまっているとは限らない。例えば,UNIXでよく利用されるログ出力機能「syslogd(8)」は,「ファシリティ(facility)」と「優先度(priority)」といった設定により,どういった情報をログに記録するか,その情報をどのファイルに記録するかなどを変更できる。設定によっては,1台のマシンのログが複数のファイルに記録されている場合があるのだ。

 さらに,記録されるログはシステム(OS)に関するものばかりではない。Apache HTTP Serverのように,システムで動作しているアプリケーションが独自のログを出力する場合も少なくない。

 それぞれのログに記録される情報も,システムやアプリケーションによって異なる。単独で意味が分かるログもあれば,他のログと組み合わせないと利用できないログもある。例えば,HTTPサーバーが記録するアクセス・ログは一見単独でも解析可能のようであるが,インシデント時に活用する場合にはファイアウオールのログと組み合わせることが不可欠である。「単独で利用できるログかどうか」,「どのログと組み合わせて解析する必要があるログなのか」――などを把握しておかなければならない。

ログ収集に必要な時間を把握する

 それぞれのログを収集するのに,どの程度時間が必要なのかも事前に把握していなければならない。インシデント発生時には,いかに早く状況を把握し,いかに早く証拠を保存するかが非常に重要となるからだ。時間との勝負なのだ。

 ネットワーク経由でログを集められる場合は問題はない。できれば暗号化した状態でネットワーク上を流したいが,平文でも構わないだろう。問題は,ネットワーク経由で入手できない場合である。例えば,IPアドレスを割り当てず,“ステルス”にした侵入検知システム(IDS)のログはネットワーク経由では取得できない。また,ネットワーク環境によっては,「tcpdump」のログのように容量が大きいログは,メディア(テープやCD-Rなど)経由でないと取得できないだろう。また,ネットワーク管理を外部に委託している場合には,委託先と交渉してログを入手しなければならない。さらに,どこまでログが保存してあるかというログの保存期間も重要である。

 以上のようにネットワーク経由で入手できない場合には,いざという時に慌てないように,入手に必要な時間をあらかじめ調べておく必要がある。可能ならば,実際にログを集める“セキュリティ・インシデント訓練”を実施しておきたい。過去のコラムでも述べたように,平常時に手を動かして備えておくことは重要なのだ。

◇     ◇     ◇     ◇     ◇     ◇

 ログの重要性については認識しているものの,システムやアプリケーションのログ出力機能を有効にしているだけで“よし”としている管理者は少なくないだろう。しかしそれでは,いざという時に慌てることは目に見えている。ログを管理することの重要性を,今回のコラムで認識してもらえれば幸いである。


若居和直(WAKAI Kazunao)
株式会社ラック セキュアネットサービス事業本部
wakai@lac.co.jp


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