Proxmoxで鉄壁のマルウェア解析ラボを構築:隔離とスナップショットのガイド

HomeLab tutorial - IT technology blog
HomeLab tutorial - IT technology blog

「漏洩」するラボ環境の危険性

多くのリサーチャーは、まずNATやブリッジネットワークを使用した標準的な仮想マシン(VM)でマルウェアを実行することから始めます。しかし、これはギャンブルです。ゲストとホストOSを分離しているとはいえ、検体がローカルの 192.168.1.x サブネットをスキャンしたり、NASを標的にしたり、家庭用ルーターを介してボットネットに参加したりすることを防ぐことはできません。もしLockBitやEmotetの検体を実行(デトネーション)する場合、基本的なVM設定は盾ではなく、むしろ脆弱性になります。

あなたに必要なのは「ブラックホール」ネットワークです。これはマルウェアが実行され、インターネット接続を探し求め、本物のゲートウェイを一度も目にすることなく惨めに失敗する空間です。Proxmoxはこの用途に最適です。Linux BridgeやOpen vSwitchを細かく制御できるため、「獣」を閉じ込めておくための digital な檻を作成できます。私はこのセットアップを使用して、1つのパケットもローカルLANに漏らすことなく、数百もの検体を分析してきました。

核心となる柱:隔離と状態の保存

ProxmoxのUIを操作し始める前に、2つのコンセプトをマスターする必要があります。それは「ネットワーク隔離」と「状態の保存」です。

1. 隔離されたブリッジ(ホストオンリー)

標準的なProxmoxブリッジ(vmbr0)は、通常 eth0 のような物理ポートにマッピングされます。サンドボックス用には、物理ポートを一切接続しない vmbr1 などの新しいブリッジを作成します。このブリッジ上のVM同士は通信できますが、インターネットやホストに到達することは物理的に不可能です。トラフィックをシミュレートするために、本物のルーターではなく、INetSimのような制御された環境を経由してルーティングを行います。

2. 「ゴールデンイメージ」戦略

マルウェア解析は本質的に破壊を伴います。一度検体を実行すると、OSは「汚染」されます。単純に「元に戻す」ことはできません。ここでスナップショットが真価を発揮します。実際のワークフローでは、8GBのRAM、4つのvCPU、そしてフルセットのツールをインストールしたクリーンなWindows 10インスタンスで「ゴールデンイメージ」を作成し、スナップショットを撮ります。8GBのディスクイメージの復元は15秒もかからず、すべてのテストを初期状態から開始できることが保証されます。

ハンズオン:ラボの構築

ここでは、ネットワークと解析用マシンのステップバイステップの構成手順を説明します。

ステップ 1:エアギャップ・ネットワークの作成

ProxmoxのWebインターフェースを開き、System > Network に移動します。どこにも繋がらない仮想スイッチを構築します。

  1. Create > Linux Bridge をクリックします。
  2. 名前を vmbr1 に設定します。
  3. Bridge ports フィールドを完全に空の状態にします。これが「エアギャップ」です。物理ポートがなければ、ブリッジは孤島となります。
  4. IP設定はスキップします。内部のアドレッシングはラボ用ゲートウェイに任せます。

コマンドラインの方が好みですか? SSH経由で /etc/network/interfaces を編集します。

auto vmbr1
iface vmbr1 inet manual
        bridge-ports none
        bridge-stp off
        bridge-fd 0
# マルウェア解析ラボの隔離設定

ifup vmbr1 で変更を適用します。

ステップ 2:Flare-VMの構成

MandiantのFlare-VMは、Windows解析のゴールドスタンダードです。検知を避けるため、VMを作成する際は以下の設定を使用してください。

  • Bios: OVMF (UEFI)
  • Machine: q35(最新のドライバーとPCIeパススルーをサポート)
  • Network: ブリッジを vmbr1 に設定
  • Guest Agent: QEMU Guest Agentを無効化します。高度なマルウェアはしばしば qemu-ga プロセスの存在をチェックします。もしそれを見つけると、解析を避けるために動作を停止します。

ステップ 3:インターネットのシミュレーション(REMnux)

マルウェアは「外部への連絡」ができないと、休眠状態のままになることがよくあります。そこで、同じ vmbr1 ブリッジ上で REMnux を使用してマルウェアを欺きます。INetSim を実行することで、REMnuxはDNS、HTTP、SMTPサービスを偽装(スプーフィング)します。マルウェアが evil-domain.com のC2サーバーに到達しようとすると、REMnuxが介入して「私がそのサーバーだ」と答え、偽の 200 OK レスポンスを返します。これにより、マルウェアをアクティブな状態に保ち、その挙動を観察できるようにします。

ステップ 4:スナップショットのワークフロー

Windows VMにツールを読み込み終えたら、一度シャットダウンしてください。これがベースラインとなります。

  1. Snapshots タブに移動します。
  2. Take Snapshot をクリックし、名前を CLEAN_BASELINE にします。
  3. RAMを含めることで、フルブートシーケンスなしで瞬時にレジュームできるようになります。

実行準備はいいですか?スナップショットから起動し、マルウェアをドラッグして実行させます。ログやメモリダンプを取得したら、あとは Rollback をクリックするだけです。感染は瞬時に消え去ります。

ラボを自動化したい場合は、CLIを使用してください。

# 既存のスナップショットを一覧表示
qm listsnapshot 101

# クリーンな状態にロールバック
qm rollback 101 CLEAN_BASELINE

結論

優れたマルウェア解析ラボを定義するのは、ツールだけでなくそのアーキテクチャです。接続されていないProxmoxブリッジを使用することで、ソフトウェアでは突破できない物理的な障壁を構築できます。これを徹底したスナップショットの運用と組み合わせることで、Web上で最も危険なコードを解剖しながらも、自宅のネットワークを安全に保つことができます。まずは1つのWindows VMと1つのREMnuxインスタンスから始めてみてください。トラフィックを監視しましょう。隔離をマスターすれば、複雑なActive Directoryサンドボックスや自動処理パイプラインへとスケールアップさせることができます。

Share: