ハニーポットを構成する技術

 では,ハニーポット構築に必要な技術やツールをまとめておこう。前述のHoneynet Projectでは,ハニーポットを構築するのに必要なツールを次のカテゴリに分けて定義している。これに沿って説明する。

(1)Data Control
 これは,ハニーネットのゲートウェイを構築するために必要な技術およびツール群である。例えば,OSとしてLinuxを利用する場合は,以下のようなツールがこれに該当する。

 フェーズIで必要なData Controlは,主にiptablesとSnortである。iptablesを使って,外向きのパケットのコネクション数を制限したり,外向きパケットのトラフィック量を一定以下に制限する。Snortは攻撃パターンの統計を取る用途で使う。

 フェーズIIでは,ブリッジ型のネットワークを構築するユーティリティを使ってゲートウェイを作る。トラフィックはiptablesとSnortを組み合わせて遮断する場合と,Snortルールをベースとしたレイヤー2レベルのIDSである「Hogwash」(http://hogwash.sourceforge.net/)を使う場合の2パターンが考案されている。

(2)Data Capture
 これは,主に攻撃のトラフィックやプロセスを追跡するための技術/ツール群である。トラフィック内の攻撃統計を取るツールや,攻撃を検知するためのIDSであるSnortなどがこの分野に当たる。単純に攻撃者のセッション情報だけをロギングしたい場合に使う「tcpflow」(http://www.circlemud.org/%7Ejelson/software/tcpflow/)などのセション情報追跡ツールもこの分野に含まれる。

 ネットワーク経由でデータを取得し,攻撃者の動きを観察するのには限界がある。このため,さらに攻撃者のキーストロークを保存できるような仕組みも求められる。これらの仕組みは,Linuxなら専用のカーネルパッチ(http://www.axehind.com/honeynet/)やシェルのパッチを当てることで実現できる。Windowsなら,コマンドプロンプトの動きを追う「ComLog」(http://securit.iquebec.com/)などのツールが使える。ただ,これらはハニーポット上で動く場合が多く,その場合はログもハニーポット内に記録される。このため,攻撃者にログを削除されてしまう危険をはらんでいる。syslogなどを使って監視用ログサーバーにログを転送可能だが,その場合は盗聴されないような仕組みを考えなければならない。

 トラフィック解析やセッション解析を集中的に行うのなら,トラフィックの流量がそれほどでもない場合に限られるが,「tcpdump」(http://www.tcpdump.org/)や「ethereal」(http://ethereal.netarc.jp/)ですべてキャプチャしてしまうのも手だ。上記二つのツールで収集したデータなら,いろいろな解析ツールに読み込ませることもできる。記録したログを定期的にローテーションするようにして,ファイル化していけば完璧だろう。

(3)Data Analysis
 主に攻撃者が攻撃を行った後のデータやトラフィック,プロセス,削除されたファイル,隠蔽されたファイルなどを発見・解析するためのツール群とテクニックである。これらを行うためには,機器の状態のスナップショットをあらかじめ取っておき,侵入後との差分をチェックする必要がある。いわゆるforensic(フォレンシック)テクニックだ。ハニーポットは,侵入されることを前提としたシステムのため,次のシステムの状態をあらかじめ取得しておき,さらに侵入後の差分をチェックできなければならない。

・起動しているプロセス
・外部に公開しているサービス
・全ファイルの状態など

 これらシステム状態のスナップショットを取ったり,その差分をチェックするツールやテクニックは,WindowsとLinuxそれぞれに多数ある。また,取得したトラフィック・データの解析ツールもこの分野に含まれる。

VMwareを使ったハニーポット構築

図5●Linux 上でVMware を起動したところ

 次に,VMwareを使ったハニーポットのシステムを簡単に紹介する。

 VMwareは実機のPCの中に,仮想的に別のOS環境を構築するツールである。図5[拡大表示]はX Window System上の一つのウインドウの中で,PCのBIOS起動画面が表示されている。初めて見ると不思議な光景だと感じると思うが,これがVMwareだ。このように,VMwareはハードウェア的にPCをエミュレートする。1台のPC上に,異なるOS環境を複数作成することができるのだ。

 このため,VMwereを使ってWindows 2000やLinuxをインストールし,そこで脆弱なアプリケーションを立ち上げれば,そのままで単純なハニーポットして利用することができる。ここで,VMwareをインストールしている実機上のOSを「ホストOS」,仮想的なOSを「ゲストOS」と呼ぶ。

 VMwareがハニーポットとして優れているのは,ゲストOSからホストOSへはネットワークを介さないと絶対に接続できないなど,仮想マシン内だけに危険をとどめておくことができ,ホストOSで安全に監視できるところにある。また,ゲストOSはホストOS上から単なる一つのファイルのように見える。単なるファイルのため,初期状態や侵入された状態のバックアップを,そのファイルをコピーするだけで実現できる。VMwareをハニーポットとして使えば,1台のマシンで複数OSのハニーポットを立ち上げることもでき,管理もその分だけ簡単だ。

ハニーポットの設計

 最後に,筆者がVMwareを使ったハニーポットを設計したときのキーポイントについてまとめておこう。

 まず,VMwareの設定において,ゲストOSの通信する場合,必ずホストOSを通るようにする「Host-only」オプションを選択した。これは,ホストOSをファイアウォール兼IDSゲートウェイとして機能させ,通信のアクセス制御をするための設定だ。

 VMwareのホストOSとしては,Linuxを選択した。Linuxを選択したのは,前述したHoneynet ProjectのフェーズIIを参考に,ブリッジ型IDSゲートウェイを構築したかったからだ。また,WindowsをホストOSに選択するのに比べて,メモリの使用量が少なく負荷も低い。

 ホストOSは,ブリッジ型IDSゲートウェイとして機能するように設定し,Etherealを使って全パケットをキャプチャする。加えて,tcpflowでセッション情報を取得し,トラフィック統計を取得できる「iplog」(http://ojnk.sourceforge.net/)とSnortを使って,攻撃統計情報取得を行う。

図6●今回構築したハニーポットのシステム構成。VMware を利用する
表2●ハニーポットの構築・運営に関する情報を掲載した主なサイト

 ハニーネットの内側には,1台のハニーポットPC「A」を設置し,インターネットに対して全サービスを公開する(図6[拡大表示])。ハニーポットPC「A」は,後でフォレンシック的な調査ができるように,あらかじめ正常時の情報を記録しておき,コマンドプロンプトやシェルのキーストロークが保存できるような仕組みを導入する。また,これらのログ情報はSyslogサーバーであるPC「B」に転送する。

 ハニーポットPC「A」で立ち上げるサービスは,脆弱な設定にするが,他のネットワークに迷惑をかけないように細心の注意を払う。特に,ワーム感染は避けなければならず,アンチウィルス対策も必要だろう。PC「B」はSyslogサービス以外を立ち上げないようにし,不正侵入でログを消されないように防御を固める。

 ただし,これらは実際にハニーポットを構築・運用する前に考えた構成のため,実運用に入った場合,さまざまな制約により仕様変更せざるを得ない事態に陥る場合も考えられる。なお,ハニーポット構築に関する情報は,表2[拡大表示]のサイトにも掲載されている。参考にしていただきたい。

濱本 常義 Hamamoto Tsuneyoshi
筆者は株式会社エネルギア・コミュニケーションズに勤務。ソリューション事業部で,セキュリティ対策関連事業に従事している。現在は,主にセキュリティ・ポリシー策定事業に携わっている。常時接続とセキュリティ関連のメーリング・リスト「connect24h」(http://cn24h.hawkeye.ac/)を運営している。