侵入を検知する

Traffic ServerはsFlow®を利用することにより、既存のファイアウォール機能を補強する侵入検知機能を提供しています。

図1 ファイアウォールとsFlowを用いるネットワーク

図1は、典型的なサイト ネットワークの一部のエレメントを示しています。インターネットからのトラフィックはファイアウォールを通ってサイトに入ります。それからトラフィックはディストリビューション スイッチに送られ、サイト上のコンピュータへの接続を提供します。

残念ながら、完全なセキュリティを実現できるファイアウォールはありません。

  • ファイアウォール ルールを更新しないうちに、ホストが新しい攻撃に脅かされてしまう可能性があります。
  • ノート型パソコンは、オフサイトでウイルスに感染してしまってからネットワークに接続することにより、ファイアウォールの内側のコンピュータに感染させてしまう場合があります。
  • 無線アクセス ポイントから侵入者がサイトに侵入できる場合があります。たとえ認可された無線アクセス ポイントが安全でも、ユーザーが安全対策の施されていないアクセス ポイントから不用意にネットワークに接続してしまう可能性があります。
  • Eメール、ウェブおよびプラグインなど多くの感染媒介手段があるので、考えられる全ての脅威をファイアウォールで識別するのは非常に困難です。

ファイアウォールの内側のセキュリティ問題は、検知し特定するのが非常に困難になる可能性があります。幸い、sFlowの広範囲にわたるモニタリング機能により、内部ネットワーク全体のトラフィックに対して侵入検知テクニックを費用効率的に適用することができます。

Welchia、SlammerおよびMSBlasterなどのインターネット ワームは、大きな脅威の1つです。このチュートリアルでは、インターネット ワームを検知する例を用いて、Traffic Serverの侵入検知機能について説明します。

パケット シグネチャ分析

侵入検知テクニックの1つとしては、ネットワーク パケットを調べてそれらを既知のウイルスやワームのシグネチャと比較するという方法があります。Snort™ は、オープンソースの侵入検知ツールです。パケット シグネチャを定義するためのSnortフォーマットは、今やシグネチャ発行のためのデファクト スタンダードになっています。Traffic Serverのシグネチャ エンジンはSnortルールを、sFlowデータに適用できるフォーマットに自動変換します。

ルールの設定(Configuring rules)

まず、ある特定のサイトに適用可能な一連のルールを集めてルール ファイルを作成します。定義された何千ものSnortルールをただ集めて1つのファイルにまとめるのでは、よい方法とはいえません。多くのルールは擬陽性のケースを生み出してしまい、モニタリング システムの価値を低下させてしまいます。さらに、Snortアプリケーションは外界からの無許可のアクセスを防ぐためにファイアウォールの位置で稼働してサイトに出入りする全てのトラフィックを調べるように設計されています。この例では、ファイアウォールがきちんと配置されているサイトについて、ローカル ホストを脅威にさらすようなセキュリティ上の障害を明らかにしなければならない状況を想定しています。

ファイルwormrules.txtには、インターネット ワームに感染した内部ホストを識別するために選択された6つのルールが定義されています。これらのルールは皆、元のフォーマットから変更されています。$EXTERNAL_NETから$HOME_NETへのパケットについてトリガしていた代わりに、$HOME_NETからのアクティビティを調べようとしています。しかも、シグネチャ パターンがパケットをあまりに深くまで調べようとしすぎている場合には、それらも修正した方がよいでしょう。sFlowによりエクスポートされるパケット ヘッダのサイズは、デバイスにより異なりますが、一般的には100~128バイトです。ルールを作動させるためには、パターンはヘッダ内でマッチできるものでなければなりません。

図2 セキュリティ ルールの設定

図2は、Server->Securityページを示しています。このページは、ルールを調べ、新しいルール ファイルをインストールするために使用されます。新しいルール ファイルのインストールは、ファイル名を入力してSubmitボタンをクリックすることによりファイルをアップロードするだけで行うことができます。

イベント(Events)

ルールをインストールすると、マッチは全てTraffic Serverイベントとして報告されるようになります。

view larger
図3 Eventログ

図3は、セキュリティ ルール違反に関する数々のイベントを示しています。たとえば、最初のイベントは、ホスト10.0.0.1がルール番号1286に違反したことを示しています。ステータス ボックスは、追加情報(この場合には安全性の損なわれたホストの一覧)を表示するリンクになっています。

安全性の損なわれたホスト(Compromised hosts)

Traffic Serverは、セキュリティ ルールに反するパケットを生成するホストの一覧を保守管理しています。

図4 安全性の損なわれたホスト

図4は、ルール1286に反するホストの一覧を示しています。任意のIPアドレスをクリックすると、そのホストの最近のアクティビティについての分、時、および週単位の概要が表示されます。ホスト上のログ ファイルはホストの安全が脅かされたときに削除されている可能性があるので、この概要情報は有用な監査証跡となります。ホスト トラフィック レポートにより、安全性が損なわれている可能性のある他の全てのサービスや、他のホストとの全ての通信が明らかになります。

スイッチ アイコンをクリックすると、スイッチに接続し、訂正アクションを実行したり、ポートをディセーブルにしたり、アクセス コントロールを適用したりできます。

最後に、Packet Traceリンクをクリックすると、調査が必要なパケット情報を詳しく見ることができます。

パケット トレース(Packet trace)

パケット トレース情報は、攻撃についてのドキュメントを作成する際に非常に役立ちます。パケット トレースを調べることにより、擬陽性として判定されるケースがなくなるようにルールを改良し、新しい攻撃が検知されたときに新しいルールを作成するために必要な情報を得ることができます。

図5 パケット キャプチャ

図5は、ルール1286用に存在する2つのパケット キャプチャ ファイルを示しています。ファイル名をクリックすると、そのファイルをダウンロードし任意のプロトコル分析アプリケーションを使用して調べることができます。Tcpdumpオプションの1つをクリックすると、パケット デコードが表示されます。

デコード表示(View decode)

Tcpdumpは、パケット トレースをデコードして表示するための有名なユーティリティです。

図6 詳細tcpdump

図6は、ルールにより疑わしいと識別されたパケットについての詳細情報を示しています。このようなパケットは明らかにURL内に_mem_bin文字列が含まれているhttpリクエストです。

トラフィック パターン分析(Traffic pattern analysis)

トラフィック パターン分析は、パケット シグネチャ検知を十分に補う手段です。個々のトランザクションがパケット シグネチャ ルールをトリガしなくても、ホストの全体的な動作が問題を示す場合があります。トラフィック パターン分析は、新しい脅威を識別する強力なテクニックです。たとえば、インターネット ワームはネットワークをスキャンすることにより、次に攻撃対象とするホストを特定します。新しいワームはどのパケット シグネチャもトリガしなくても、スキャニング動作を示す可能性があります。

レポート(Reports)

Traffic Serverは、スキャニング動作を識別するためのクエリに容易になりうる詳細エンドツーエンド トラフィック データベースを作成します。

図7 ポート スキャン クエリ

図7は、スキャニング動作を識別するためのReports->Interactive フォームを示しています。この場合、TCPポート135を用いて内部ホストによるスキャニング動作を探しています。この種のスキャニングは、MicrosoftのRPCプロトコルの脆弱性を利用しようとするワームに特徴的なものです。

スキャニング レポート(Scanning report)

スキャニング レポートは、接続しようとする一意のアドレスの数の順にホストをランキングします。ほとんどの正常なマシンはかなり少数のサーバーとしか通信しません。しかし、ワームに感染しているホストは、1日中、何百万ものアドレスと通信しようとする場合があります。

view larger
図8 ポート スキャン レポート

図8は、MicrosoftのRPCプロトコルの脆弱性をスキャニングしているように見える、ワームに感染している可能性のあるホストを識別するポート スキャン レポートを示しています。

関連トピック