
仮想セッションを作成する
Virtual PCは,4種類の仮想ハードディスクをサポートする。「ダイナミック・ディスク」「固定サイズ・ディスク」「差分ディスク」「物理ディスクへのリンク」である。いずれの場合も,結果として1つのファイルが物理ディスク上に作成される。 ダイナミック・ディスクは,必要に応じてホストOSによって拡張される。固定サイズ・ディスクは事前に定義した容量を使用するが,この容量は作成後に変更できる。差分ディスクでは,ディスクのベースとなるイメージからの差分だけを別の場所に保存する。物理ディスクへのリンクでは,マウントされていない物理ディスクに仮想ディスクを配置できる。 これら4種類の仮想ディスクには,それぞれハニーポットを構成する上でメリット,デメリットがある。物理ディスクへのリンクは,証拠の保全を目的にリムーバブル・ドライブを使うには最適だが,ホストとの相互感染の危険が高いのが難点だ。差分ディスクは,ベース・イメージに異なる変更を組み合わせたりできる半面,フォレンジック解析が多少複雑になる。 ダイナミック・ディスクには,ホスト上での物理的なディスク使用量を最小限に抑えられるというメリットがある。ディスク容量は,仮想セッションの要求に応じて動的に拡張される。ただし,仮想セッションから見える容量を制御することはできない。 固定サイズ・ディスクでは,ホストの物理ディスクの容量を事前に割り当てる必要がある。割り当てが少なすぎると攻撃者に怪しまれるし,多すぎると無駄になる。その代わり,仮想セッションから見たディスクの容量をコントロールできる。 いずれのディスク・オプションも,ディスクへの変更に対するトランザクション制御を行うアンドゥ操作(復元ディスク)をサポートしている。変更は別ファイルに保存されるため,仮想セッションの終了時に変更を反映させることもロールバックすることもできる。どの種類のディスクを選択すればよいか分からないときは,ダイナミック・ディスクを選択して,アンドゥ操作を避けるようにしたほうがよい。そのほうが,フォレンジック解析が複雑にならずに済むからだ。
Virtual PCは3種類のネットワーク接続をサポートする。「NAT(ネットワーク・アドレス変換)を介した共有ネットワーク」「物理ネットワーク・アダプタの共有」「ループバック・アダプタの仮想ネットワーク・アダプタとしての利用」——である。ただしハニーポットの場合は,ホストの外から仮想セッションに接続できる必要があるため,物理ネットワーク・アダプタの共有だけが有効である。
仮想セッションは,デフォルトでホストのCD-ROMドライブとフロッピ・ドライブを共有する。このため,ホストのドライブにCD-ROM/フロッピ・ディスクを挿入すると,仮想セッションからでもアクセスできるようになる。物理CD-ROMが仮想セッションから見えないようにするには,仮想CD-ROMドライブにISOイメージをロードしたままにすればよい(図8)。
ハニーポットを構築する
(1)各仮想システムにホストOSをインストールする これらの手順は,外部から感染する可能性を排除するために隔離された非公開のネットワーク環境で実施しなければならない。また,各仮想セッションの設定は念入りに十分なメモをとりながら実施することを強くお勧めする。そうすることで,ハニーポットに関する正確な記録を残すことができ,侵入された仮想システムのフォレンジック解析に役立てることが可能になる。 (2)の仮想システムのプロファイルは,OSおよびサード・パーティ製ソフトウエアの設定や特定のサービスの公開などの,システム固有の構成のことである。例えば,Webサーバーのぜい弱性をテストするには,Windows 2000 Server上で実行されるIIS 5.0をミラーリングして,IIS LockdownツールでIISを保護し,パケット・フィルタでTCPのポート80とポート443以外をブロックする,といった具合だ。このような仮想セッションの設定をベース・プロファイルとして保存した上で,その一部を変更したプロファイルをいくつか作成することもできる。既知のぜい弱性を追加したり削除したりしてハニーポットをより詳細にテストする際には便利だ。
次に各仮想セッションのプロファイルを構成していく。この作業には,OSの設定,必要なコンポーネントのインストール,システム・セキュリティの構成,必要なサービス・パックとパッチの適用,サード・パーティ・ソフトウエアのインストール——などがある。Webサーバーのように外部からアクセスできるサービスを公開する予定なら,そのサービスがハニーポットであることを識別できないように「マスキング」(masking)しなければならない。例えば,Webサーバーのコンテンツがその組織にそぐわないものだったり古かったりすると,攻撃者が疑惑を抱いたり興味を失ったりする可能性があるからだ。 システムをマスキングするに当たっては,“誘惑(enticement)”と“おとり捜査(entrapment)”の意味を認識しておく必要がある。誘惑は倫理的な問題として取り上げられることがあるが合法である。対して,おとり捜査は違法である。匿名ハニーポットWebサーバーを組織の境界内で実行することは内部の攻撃者を誘惑しているに過ぎない。しかし,潜在的な攻撃者に対して,Webサーバーの存在や,そのサーバーにあるかもしれないコンテンツを知らせる電子メールを送信することは,おとり捜査に相当する可能性がある。
各仮想セッションを構成する際は,必要な証拠が残せるような設定にする必要がある。ネットワーク・トラフィックなどのように仮想セッションの外側で収集できる証拠も多少あるものの,最良の証拠のいくつかは侵入された仮想セッションからしか得られない。筆者はいつもすべてのログオン/ログアウト,プロセス,アカウント管理,ポリシー・イベントのログを取るようにし,イベント・ログの容量を増やすようにしている。
仮想セッションを設定するに当たっての最後の手順は,各仮想セッションをバックアップすることである。バックアップをとる理由は3つある。第1に,セッションのインストールと構成にはかなりの労力を要するので,クリーンなバックアップを取っておくことで作業を無駄にせずに済む。第2に,システムへ侵入されたときに,侵入前のシステムの状態と比較して解析できる。第3の理由は,追加の証拠を収集するために特定の仮想セッションに小さな変更を加えたくなることが頻繁にあることだ。バックアップがあれば,手間をかけずにベースとなる構成に戻って特定の変更を加えることができる。
ハニーポットをライブにする 構成をレビューする際には,仮想セッションを起動して,各セッションがきちんと設定されているかどうかを確認するために,手動によるウォークスルーを実施する。ハニーネット(haneynet)として運用する場合はネットワークの設定も確認する。セッションごとに各デバイスの内外のプロファイルを確認するとともに,“抜き取り検査”を実施して各仮想セッションが必要となる証拠を収集するように設定されているかどうかも確認する。 筆者はライブにする前にいつも各仮想セッションの構成のスナップショットを保存するようにしている。その目的は,システムへ侵入された際に変更内容を識別できるようにすることである。スナップショットをとるための良いユーティリティはUNIX用にはいくつもあるが,Windows用のものはほとんどない。スナップショットをとるためのツールを持っていない場合は,手動でとることから始めるのをお勧めする。特に,ファイルのチェックサムと,プロセス(現在ロードされているモジュールも含む),サービス,デバイス・ドライバ,レジストリ・エントリ,開いているポート,イベント・ログ,そのほか実行するアプリケーション特有の証拠となる様々な事項——のスナップショットをとるようにする。 ファイルのチェックサムやOSの設定のスナップショットをとるためのユーティリティは,シェアウエアのWebサイトやSysinternalsのサイトで入手できるほか,Microsoft Windows Security Resource Kit CD-ROMにも収録されている。慣れてくれば,このプロセスを自分でスクリプトを記述することで自動化できるようになる。筆者は,実行中のシステムの膨大な情報をアーカイブできることに加え,2つのスナップショット(システムに侵入される前と後)の違いも識別できる,Snapshotというコマンド・ライン・ユーティリティを作成した。 ライブにする前に行う最後の作業は,ホスト上の証拠収集機能を起動することである。少なくともネットワーク・モニターとIDSは起動する必要がある。筆者はハニーポットに関する証拠のレビューや整理が簡単になるように,いつもモニター・パケット・トレースとIDSのログをクリアしてからライブにするようにしている。 ここまでの作業が済んだら,ホストをDMZに接続してハニーポットをライブにできる。ハニーポットがライブになっている間の監視方法と,ハニーポットを終了する前と後の証拠収集の方法については,Windows IT ProのWebサイト(http://www.windowsitpro.com/)に掲載した続編(英語,InstantDoc IDは44711)で紹介している。
|