■ハニーポットは,セキュリティ上問題があるサーバーを“おとり”としてインターネットに公開し,それを監視/調査することで攻撃者の侵入手口などを研究する手法である。システムのぜい弱性のテストにも利用できる。
■仮想マシン・ソフトを利用してハニーポットを構築すると,コストを抑えられるほか,データの解析が簡単になるなどのメリットがある。Virtual PCを使ってハニーポットを構築する方法を紹介する。
(2005年7月号「Windowsテクノロジ徹底解説」より)

(Joe Kinsella)

 


 「侵入の可能性を早期に警告する」「セキュリティ戦略の弱点を特定する」「セキュリティに対する組織全体の認識を高める」——こうした目的でハニーポットが頻繁に使われるようになっている。ハニーポットは,Webサーバー,メール・サーバー,データベース・サーバー,アプリケーション・サーバー,そしてファイアウオールさえもシミュレートできる。筆者はソフトウエア開発マネージャとして,チームが書いたソフトウエアとOSのぜい弱性を見極めるために,ハニーポットをよく利用している。

 ハニーポットの設定と運用には法的考慮に加え,ネットワーク・ツールとコンピュータ・フォレンジックの専門知識がある程度必要になる。この記事ではハニーポットの法的,倫理的な問題とネットワーク,コンピュータ・フォレンジックの知識があることを前提に,ハニーポットの設定方法を紹介していく。

 筆者はハニーポットの構築にマイクロソフトの仮想マシン・ソフト「Virtual PC 2004」を使うことが多い。人によっては米VMwareが開発した仮想マシン・ソフトVMware(日本ではNTTデータ関西,アイ・ティ・フロンティア,ネットワールド,ユニアデックスが販売)のほうが優れた機能を持つと考えているようだが,筆者はVirtual PCのほうがほぼ同等の機能をより低価格で提供していると思う(Virtual PCは129ドル,VMwareは199ドル)。

ハードウエアとOSを選択する

△ 図をクリックすると拡大されます
図1●複数の仮想セッションを同時に実行するハニーポット
 仮想ハニーポットのハードウエア要件は,同時に実行する仮想セッション(仮想マシン)の数に応じて決まる。組織の境界防御(Perimeter Defense)をテストしたり,攻撃の可能性に関する早期の警告となる情報を収集したりするには,1つの仮想セッションで構成されるスタンドアロンのハニーポットで十分である。しかし,社内ネットワーク全体のセキュリティをテストするといった,もっと凝ったことをする場合は,複数の仮想セッションが同時に動作するハニーポットが必要になる(図1)。

 1台のコンピュータで実行できる同時仮想セッションの数は,システムのCPUパワーとメモリー容量の制約を受ける。Virtual PC 2004は,1GHz以上のCPUとCD-ROMドライブを搭載したWindows XP ProfessionalまたはWindows 2000 Professionalで実行できる。これに加えて,1つの仮想セッションついて32Mバイトから256Mバイトのメモリーと,50Mバイトから4Gバイトのディスク容量が必要になる。例えば,動作周波数3GHz以上のPentium 4プロセッサ,1Gバイトのメモリー,40Gバイトのハードディスクを搭載したシステムであれば,4つか5つの仮想セッションを同時に実行できるだろう。

 ネットワーク・アダプタは,多くの場合2枚必要になるはずだ。仮想セッションは物理的なネットワーク・アダプタを持たないため,1つの物理ネットワーク・アダプタをホストと共有しなければならない。Virtual PCはこの共有を実現するために,仮想的なネットワーク・アダプタ用のデバイス・ドライバをインストールする。このドライバは,ハニーポット・ホストに出入りするパケットの内容を変更する可能性がある。加えてハニーポットを構築する際には,デスクトップ・ファイアウオールやネットワーク・モニターなどのネットワーク・レベルのデバイス・ドライバを実装したソフトウエアをインストールする必要がある。これらのドライバもまた,出入りするパケットを拒否したり変更を加えたりすることがある。

△ 図をクリックすると拡大されます
図2●2枚のネットワーク・アダプタを接続する方法
 こうしたドライバの影響を排除し,ハニーポットが送受信するパケットをそのままキャプチャするためには,別のネットワーク・アダプタでキャプチャするのが一番だ。この場合,2つのネットワーク・アダプタを図2のようにリピータ・ハブに接続し,1つ(以下プライマリ)をDMZ(非武装地帯)ネットワーク上の公開アドレスに,もう1つ(以下セカンダリ)をDMZネットワークにはない非公開のアドレスに設定する(理想的なアドレスはルーティングもできないようなものである)。次に,セカンダリ・ネットワーク・アダプタをプロミスキャス(無差別)モードに設定して,プライマリ・ネットワーク・アダプタからのトラフィックを傍受させるようにする。

 フォレンジック・データのアーカイブを取るためのメディアとしては,DVD-RWがお薦めだ。仮想ハニーポットを構築する前,筆者はフォレンジック解析に備えてハードディスクのイメージをコピーする作業にかなりの時間を費やしていた。仮想ハニーポットでは,ハードディスクとサスペンド時のメモリーの内容はホスト・コンピュータ上の単なるファイルでしかないため,この手間はずいぶん軽減される。とはいえ,Windowsの仮想セッション用に後述するダイナミック・ディスクを作成する場合,仮想ディスクの内容を保持するファイルのサイズは,平均して3Gバイトから4Gバイトにも及ぶ。従ってこのデータをメディアにアーカイブするつもりなら,DVD-RWドライブを用意するのが望ましい。

 そして最後に,ホストOSを選択する必要がある。Virtual PC 2004は,Windows XP ProfessionalとWindows 2000をサポートするほか,Service Pack 1を適用することでWindows Server 2003でも実行できる。OSを選択するに当たって最も重視すべきことは,いかにセキュリティを堅牢にできるかである。ハニーポットのホストが公共のネットワークに接続される以上,「要塞ホスト(bastion host)」としてセキュリティを強化することが不可欠になる。Windows 2000/XP Professional/Server 2003の3つのOSは,いずれも十分にセキュリティを強化できるが,筆者はWindows XPかWindows Server 2003をお薦めしたい。これらのOSのほうがWindows 2000よりも多くのセキュリティ機能を備えているからである。

要塞ホストに仕立て上げる
 どのようなハニーポットであっても,セキュリティを確保して要塞ホストに仕立てる必要がある。たとえ図1のようにファイアウオールやルーターでインターネットから保護されている場合であってもだ。収集したデータの信頼性に自信を持てるようにするためには,内外からのハニーポットへの侵入に対して安全性を確保しなくてはならない。少なくとも,以下の作業を実行する必要がある。

・すべてのセキュリティ・パッチを当てる
・ステートフル・ファイアウオールをインストールする
・セキュリティ・ポリシーを構成する
・監査を有効にする
・アカウント権限を制限する
・重要でないネットワーク・サービスを無効にする

 セキュリティの強化についてあまりご存知でない方は,NSA(米国国家安全保障局)によるセキュリティ構成ガイドを一読されることをお勧めする。

△ 図をクリックすると拡大されます
表1●ハニーポットの構築に利用するツールの入手方法
 重要なアドバイスを1つ。どんなセキュリティ強化プロセスも,侵入テストを実施しない限り完全ではない。Nmapなどのセキュリティ・ツールや,2つ以上のぜい弱性検査ツールを使い,発見した問題を修正してから,公共のネットワークにシステムを接続するようにしよう。Nmapや,記事中で紹介するそのほかのツールの入手方法については表1を参照してほしい。

 ハニーポットで収集した証拠を訴訟に使うつもりなら,ホストのセキュリティを計画する際に念頭に置いておくべきことがある。それは,すべてのセキュリティ対策を注意深く検証して文書化することで,裁判に堪え得る資料をそろえる必要があるということだ。特にホストと仮想セッションが相互に感染する可能性に細心の注意を払わなくてはならない。

 ホストのセキュリティを強化したら,システムを運用し,後でハニーポットのフォレンジック解析を実施するためのアプリケーションやユーティリティをインストールする。最低でも,(1)IDS(侵入検知システム),(2)ネットワーク・モニター,(3)侵入テスト・ツール,(4)フォレンジック・ツール——の4つが必要になるはずだ。

△ 図をクリックすると拡大されます
図3●Snortのルールを設定しているところ
 (1)のIDSは,仮想セッションへの侵入の可能性を事前に警告する。IDSにはいろいろな種類があるが,通常はSnortのようなネットワーク型のIDSで十分である。IDSはデフォルトのルールやシグニチャで実行してもよいが,誤報を防ぎ,ハニーポットの配置/運用方法に合わせるためにルールをカスタマイズしたいと考えることと思う(図3)。IDSが仮想セッションから出入りするすべてのネットワーク・トラフィックをキャプチャできるように,休止状態にあるセカンダリ・ネットワーク・アダプタにプライマリ・ネットワーク・アダプタのトラフィックを傍受させるようにする。

△ 図をクリックすると拡大されます
図4●Etherealの実行画面
 攻撃の可能性を識別したり,既知の攻撃を再現したりするためには,(2)のネットワーク・モニターが必要になる。筆者はいつも,ホストと仮想セッションのインバウンド,アウトバウンドすべてのトラフィックを,ハニーポットをライブ(外部に対してオン)にした時点からオフラインにするまでの間キャプチャし続ける。パケットの追跡に何時間も費やす羽目になることを考慮して,使いやすいモニター・ツールをインストールしよう。Windowsの多くのバージョンがネットワーク・モニター・ツールをオプションで提供しているが,機能が限られていて,トラフィック内のセッションの解析に利用するのは難しい。特に使い慣れたネットワーク・モニターがあるのでなければ,Ethereal(図4)を使うことを検討するとよい。

△ 図をクリックすると拡大されます
図5●Nmapをコマンド・プロンプト上で実行したところ
 (3)の侵入テスト・ツールとして,筆者はWindows Server 2003 Resource Kit Tools,Ben SmithとBrian Komarが著した書籍「Microsoft Windows Security Resource Kit」(英語版,米Microsoft Press発行)の付録CD-ROM,およびSysinternalsのサイト(http://www.sysinternals.com/)にあるユーティリティをいくつかインストールしている。ほかに,最低でも1つのぜい弱性検査ツールとNmap(図5)もインストールする。(4)のフォレンジック・ツールについては,16進エディタと上記のResource Kitのユーティリティを使っている。ハニーポットから証拠を収集して解析するためのユーティリティもいくつか作成してある。
(次のページへ続く)