更新日 2026-10-25
セキュリティツールや攻撃手法の検証は、外部ネットワークとつながらない閉じた環境で行います。この記事では、mamoruhacker の運営者が実際に運用している Hyper-V 上の検証環境(lab)をモデルケースとして、安全な隔離環境の設計思想、構築コマンド、運用規則、および関係法令を解説します。
- 用途別に仮想スイッチを分離する理由と通信制御の仕組み
- Hyper-V 上での仮想スイッチ作成、NAT 構成、および VM 作成の PowerShell 手順
- 解析用 OS(FLARE-VM、REMnux)の公式入手先とインポート手順
- 検体実行時の汚染を防ぐ運用ルールとチェックポイント設計
- 日本の法規(不正アクセス禁止法・刑法)が定める禁止事項
なぜ閉じた環境が要るのか
攻撃の検証ツールやマルウェア検体を普段利用の PC や組織内ネットワークで実行した場合、意図しない外部ホストへのパケット送信や、LAN 内の端末への不正通信・感染拡大を招く重大なリスクが生じます。
隔離された検証環境を用意すると、次のことができます。
- 影響範囲を絞る:通信の宛先を、自分で管理する仮想マシンだけに限ります。
- 元に戻す:チェックポイント(スナップショット)で、検体を実行する前の状態に戻せます。
- 通信を観察する:閉じたネットワークの中の通信を、Wireshark などで手元から観察できます。
運営者の lab の全体像
ホスト OS には Windows 11 Pro(メモリ 64GB)を採用し、ハイパーバイザーとして Hyper-V を稼働させています。ツールの実行、検体の保管、およびログ解析を集約する作業台として、ホスト上に WSL2(Kali Linux)を構成しています。
仮想ネットワークは、用途に応じて 3 つの仮想スイッチに分けています。
| 用途 | スイッチの種類 | 収容する仮想マシン | ホストからの可視性 | インターネット接続 |
|---|---|---|---|---|
| 検体の隔離 | Private | FlareVM(Windows 11 + FLARE-VM)、REMnux(INetSim 偽装サーバー)、スキャン専用 VM | 不可視 | なし(デフォルトゲートウェイ・DNS なし) |
| ファイル受け渡し | Internal | 検体投入・ログ回収時のみ一時接続する VM | 可視 | なし |
| Web 攻撃演習 | Internal + NAT | 標的 VM(Ubuntu 24.04 + Docker、OWASP Juice Shop 等の演習環境) | 可視 | NAT 経由で接続可 |
この構成は運営者の環境での一例で、安全を保証するものではありません。スイッチのつなぎ間違いや設定の漏れがあれば、通信は外に出ます。後述の「手順 7」の確認を、構成を変えるたびに行ってください。
仮想マシンの基本スペック
運営者の lab における主要 VM の構成パラメータは次のとおりです。
| 仮想マシン | Hyper-V 世代 | vCPU | メモリ | ディスク | 備考 |
|---|---|---|---|---|---|
| FlareVM | 第 2 世代 | 4 | 6 GB | 100 GB | vTPM・セキュアブート有効。検体を実行する唯一の環境 |
| REMnux | 第 1 世代 | 2 | 3 GB | 100 GB | 変換後の BIOS 起動 VHDX。偽装インターネットを提供 |
| 標的 VM | 第 1 世代 | 2 | 4 GB | 40 GB | 秘密情報を置かない使い捨て演習用環境 |
準備するもの
構築を始める前に、ホスト環境の要件確認と必要なソフトウェアの公式イメージを準備します。
ホストのハードウェアおよび OS 要件
Microsoft Learn の仕様に基づき、Hyper-V を有効化するには以下の環境が必要です。
- OS:Windows 11 Pro または Enterprise(64 ビット)。Windows Home エディションは Hyper-V 機能をサポートしていません。
- CPU:SLAT(Second Level Address Translation / 第 2 レベル アドレス変換)対応の 64 ビット プロセッサ。
- メモリ:最低 4 GB。運営者の構成(FlareVM 6 GB と REMnux 3 GB を同時に動かす)では、VM だけで 9 GB を使います。
- 仮想化支援機能:BIOS/UEFI で Intel VT-x または AMD-V が有効になっていること。
入手するソフトウェア・イメージ
すべてのコンポーネントは改ざん防止のため、必ず公式ソースから入手します。
| ソフトウェア | 概要 | 公式入手先 |
|---|---|---|
| Windows 11 Enterprise 評価版 | 解析環境のベース OS(90 日間評価可能、プロダクトキー不要) | Microsoft Evaluation Center |
| FLARE-VM | Mandiant が公開する Windows 向けマルウェア解析環境自動構築スクリプト(Apache 2.0) | GitHub: mandiant/flare-vm |
| REMnux | ネットワーク偽装・解析ツールを収録した Linux ディストリビューション | REMnux ドキュメント |
| Kali Linux | ペネトレーションテスト・調査ツール群(WSL2 版または VM 版) | Kali Linux 公式サイト |
構築の手順
管理者権限で起動した PowerShell を用いて、各コンポーネントを段階的に構築します。
手順 1:Hyper-V 機能を有効化する
PowerShell で以下のコマンドを実行し、Hyper-V のハイパーバイザーおよび管理ツールを有効化します。
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
処理完了後、プロンプトの指示に従って PC を再起動します。
- 確かめ方:再起動後、PowerShell で
Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-Vを実行し、State : Enabledと表示されることを確認します。
手順 2:仮想スイッチを作成する
Hyper-V には 3 種類の仮想スイッチがあります。用途に応じたスイッチの選択が lab の安全性を担保します。
検体隔離用の Private スイッチを作成します。
New-VMSwitch -Name "LabPriv" -SwitchType Private
Web 攻撃演習用(標的 VM がパッケージ取得等で外部通信を必要とする場合)には、Internal スイッチと NAT ネットワークを構成します。
# 1. 内部スイッチを作成
New-VMSwitch -Name "LabNat" -SwitchType Internal
# 2. スイッチにバインドされた仮想アダプターの ifIndex を取得し、ゲートウェイ IP を割り当て
Get-NetAdapter "vEthernet (LabNat)" | Select-Object ifIndex, Name
New-NetIPAddress -IPAddress 192.168.100.1 -PrefixLength 24 -InterfaceIndex <ifIndex>
# 3. NAT ネットワークを構成 (ホスト 1 台につき 1 つまで)
New-NetNat -Name "LabNatNetwork" -InternalIPInterfaceAddressPrefix 192.168.100.0/24
- 確かめ方:
Get-VMSwitchを実行し、LabPriv(Private)およびLabNat(Internal)が正しく一覧に表示されることを確認します。
手順 3:解析用仮想マシンを作成する
ダウンロードした Windows 11 Enterprise 評価版 ISO を元に、第 2 世代の仮想マシンを Private スイッチ配下に作成します。
New-VM -Name "FlareVM" -Generation 2 -MemoryStartupBytes 6GB -NewVHDPath "D:\Hyper-V\Virtual Hard Disks\FlareVM.vhdx" -NewVHDSizeBytes 100GB -SwitchName "LabPriv"
第 2 世代 VM では、インストーラ起動用に DVD ドライブの追加とファームウェアのブート順序設定を行います。
Add-VMDvdDrive -VMName "FlareVM" -Path "D:\ISOs\Win11_Enterprise_Eval.iso"
Set-VMFirmware -VMName "FlareVM" -FirstBootDevice (Get-VMDvdDrive -VMName "FlareVM")
- 確かめ方:
Get-VM -Name "FlareVM"で構成を確認し、メモリやスイッチ割り当てが指定どおりであることを確認します。
手順 4:Windows をインストールし初期チェックポイントを取得する
VM を起動し、Windows 11 をセットアップします。
-
VM を起動し、画面の指示に従って Windows 11 Enterprise 評価版をインストールします。
-
初回セットアップ(OOBE)では、Microsoft アカウントではなくローカルアカウントを作成します。ネットワーク未接続状態のインストーラでローカルアカウント作成画面に進みます。
-
デスクトップ起動後、自動チェックポイントを無効化し、メモリを含めて保存できる標準チェックポイントに切り替えます。
# 自動チェックポイントを無効化 Set-VM -Name "FlareVM" -AutomaticCheckpointsEnabled $false # チェックポイント種別を標準に設定 Set-VM -Name "FlareVM" -CheckpointType Standard # 初期状態のチェックポイントを取得 Checkpoint-VM -Name "FlareVM" -SnapshotName "win-clean"
- 確かめ方:
Get-VMSnapshot -VMName "FlareVM"を実行し、win-cleanが作成されていることを確認します。
手順 5:一時 NIC を追加して FLARE-VM を導入する
FLARE-VM のインストーラは多数の解析ツールをインターネット経由でダウンロードするため、インストール作業中のみ一時的にインターネット接続可能なスイッチ(LabNat)へ接続します。
-
一時ネットワークアダプターを追加して接続します。
Add-VMNetworkAdapter -VMName "FlareVM" -SwitchName "LabNat" -Name "TempInstallNIC" -
ゲスト OS(FlareVM)の Windows Defender、リアルタイム保護、および改ざん防止機能をグループポリシーまたは Windows セキュリティ設定で無効化します(FLARE-VM 公式 README の手順に準拠)。
-
管理者権限の PowerShell で FLARE-VM の公式インストーラを実行します。
(New-Object net.webclient).DownloadFile('https://raw.githubusercontent.com/mandiant/flare-vm/main/install.ps1', "$env:temp\install.ps1") Unblock-File "$env:temp\install.ps1" Set-ExecutionPolicy Unrestricted -Force & "$env:temp\install.ps1" -
インストール完了・再起動後、直ちに一時 NIC を削除して外部通信経路を完全に遮断します。
Remove-VMNetworkAdapter -VMName "FlareVM" -Name "TempInstallNIC" -
ゲスト OS(FlareVM)の管理者 PowerShell で、Private スイッチ側の NIC に固定 IP を設定し、DNS を REMnux に向けます。ゲートウェイは設定しません。IP アドレスは例です。
New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress 10.10.10.20 -PrefixLength 24 Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses 10.10.10.1 -
解析の起点となる基準チェックポイントを取得します。
Checkpoint-VM -Name "FlareVM" -SnapshotName "flare-clean"
- 確かめ方:ゲスト OS 内で
Get-NetAdapterを実行し、TempInstallNICが存在せず、IP アドレスが Private スイッチ配下の固定 IP のみになっていることを確認します。
手順 6:REMnux を取り込み INetSim を構成する
REMnux は公式配布の OVA(VMware / VirtualBox 用)を展開・変換して Hyper-V にインポートします。
-
ホスト上で OVA を tar コマンドで展開し、
.vmdk.gzを gunzip で解凍します。 -
QEMU ディスクイメージ変換ツール(または StarWind V2V Converter)を用いて VHDX に変換します。
qemu-img convert -p -O vhdx -o subformat=dynamic remnux-vmdk.vmdk remnux.vhdx -
変換後の VHDX は BIOS 起動ディスクのため、Hyper-V 上で第 1 世代 VMとして登録し、スイッチを
LabPrivに割り当てます。 -
REMnux を起動後、公式公開の初期アカウントのパスワードを直ちに変更します。Private スイッチには DHCP がないので、netplan で固定 IP(例:
10.10.10.1/24)を設定します。 -
/etc/inetsim/inetsim.confを編集し、待受アドレスをループバック(127.0.0.1)からイーサネット インターフェイスの IP に変更します。service_bind_address 10.10.10.1 dns_default_ip 10.10.10.1 -
INetSim サービスを起動します。
sudo inetsim
- 確かめ方:FlareVM から
nslookup example.com 10.10.10.1を実行し、INetSim から偽装 IP(10.10.10.1)が解決結果として返ることを確認します。
手順 7:隔離状態の健全性を検証する
検体を投入する前に、隔離が完全であるかを多角的にテストします。
-
外部遮断テスト:FlareVM から外部パブリック IP(例:
8.8.8.8)や公知のドメイン(例:google.com)への通信を試みます。Test-NetConnection -ComputerName 8.8.8.8 -InformationLevel Detailed Invoke-WebRequest -Uri "https://www.google.com" -TimeoutSec 5Test-NetConnectionの結果がPingSucceeded : Falseになり、Invoke-WebRequestがエラーで終わることを確認します。どちらかが成功した場合は、外へ出る経路が残っています。検体を入れる前に配線を見直してください。 -
内部通信テスト:FlareVM から REMnux(
10.10.10.1)への HTTP 要求が INetSim のダミーページを受信することを確認します。
外とつながない設定と運用ルール
物理的・論理的なスイッチ分離に加えて、厳格な運用手順を守ることで人的ミスによる情報漏洩や感染事故を防止します。
運営者が遵守する 10 の鉄則
- 検体実行は FlareVM の 1 台に限定する:他の VM(REMnux や作業台)では検体を直接実行しません。
- インターネット NIC を常設しない:検体実行 VM に外部接続 NIC を接続したままにしません。ツール更新時にのみ一時 NIC を接続し、終了後直ちに削除します。
- 受け渡しスイッチは実行前に必ず遮断する:ファイル投入・回収用の一時スイッチは、検体実行前に必ず切断状態にします。
- 拡張セッション(Enhanced Session Mode)を禁止する:Hyper-V の拡張セッションは RDP を利用しており、ホストとの間でクリップボードやローカルドライブが共有されます。検体からの脱出経路を塞ぐため、基本セッションまたは PowerShell Direct を利用します。ホスト全体で拡張セッションを無効化するコマンドは以下のとおりです。
Set-VMHost -EnableEnhancedSessionMode $false - 検体を扱う VM では IPv6 と IP 転送を止める:IPv6 の自動構成による想定外の通信を防ぐため、運営者は検体関連の VM で IPv6 のバインドを解除し、REMnux では IP 転送も止めています。ただし Microsoft は、一般的な Windows で IPv6 のバインドを解除することを推奨していません(代わりにレジストリの
DisabledComponents = 0x20で IPv4 を優先する方法を案内しています)。外部とつながらない検体用 VM に限った運営者の判断です。 - 配線検査の自動化:VM 起動前および検体実行前に、各 VM が想定外のスイッチ(External や NAT)につながっていないかをスクリプトで事前検証します。
- 検体をホストの NTFS 上に保管しない:ホスト側のセキュリティ機能(Microsoft Defender)が検体を自動検知・駆除すると解析環境の一貫性が崩れるため、検体ファイルの保管は WSL2 の Linux ファイルシステム内に限定します。
- 復元前の証跡回収の徹底:チェックポイントを巻き戻すと VM 内のログや画像はすべて消失します。ロールバックを行う前に、PowerShell Direct 等で必要なキャプチャやイベントログを安全に回収します。
- ホスト・ゲスト間の共有フォルダ機能を使用しない:マルウェアによる共有領域経由のホスト侵入リスクを排除します。
- ローカルアカウント運用の徹底:解析用 VM 内に個人や組織のクラウド資格情報(Microsoft アカウント)を一切持ち込みません。
Hyper-V が使えない人へ
Windows Home エディションや macOS、Linux を利用している場合、以下のデスクトップ向けハイパーバイザーで同様の隔離環境を構築できます。
| ソフトウェア | 対応ホスト OS | ライセンス・料金 | 閉鎖ネットワーク設定 |
|---|---|---|---|
| Oracle VirtualBox | Windows、macOS(Intel / Apple Silicon)、Linux | 本体は GPL v3(無償)。Extension Pack は個人・教育利用で無償(PUEL) | 「内部ネットワーク(Internal Network)」または「ホストオンリー(Host-Only)」 |
| VMware Workstation Pro / Fusion Pro | Workstation: Windows / Linux Fusion: macOS |
2024 年 11 月 11 日より商用・非商用を問わず無償化 | 「ホストオンリー(Host-only: VMnet1 等)」 |
VirtualBox では「内部ネットワーク」を選択することで、VM 相互間のみの通信となり、ホスト OS からも隔離された閉塞環境を構築できます。「ブリッジ(Bridged)」はホストの物理 LAN に直接接続されるため、検証用 VM には絶対に使用しないでください。
やってはいけないこと
セキュリティ検証を実施するにあたり、遵守すべき日本の主要法規をまとめます。関係条文は e-Gov 法令検索に基づいて記載しています。
不正アクセス行為の禁止等に関する法律(不正アクセス禁止法)
平成 11 年法律第 128 号に定められた不正アクセス禁止法では、アクセス制御機能を有するシステムへの無許可の侵入と、それを助ける行為が処罰の対象になります。
| 条文 | 規定内容(要約) | 罰則規定 |
|---|---|---|
| 第 2 条第 4 項 | 不正アクセス行為の定義。ネットワーク経由で他人の識別符号(ID・パスワード)を入力、または制限を回避する指令を入力して権限外の機能を利用可能にすること | — |
| 第 3 条 | 不正アクセス行為の禁止 | 第 11 条:3 年以下の拘禁刑または 100 万円以下の罰金 |
| 第 4 条 | 不正アクセス目的での他人の識別符号取得の禁止 | 第 12 条:1 年以下の拘禁刑または 50 万円以下の罰金 |
| 第 5 条 | 正当な理由のない他人の識別符号の第三者提供の禁止 | 第 13 条:30 万円以下の罰金(相手の意図を知っていた場合は第 12 条) |
| 第 6 条 | 不正アクセス目的での不正取得識別符号の保管の禁止 | 第 12 条:1 年以下の拘禁刑または 50 万円以下の罰金 |
| 第 7 条 | 管理者になりすまして識別符号の入力を要求する行為(フィッシング)の禁止 | 第 12 条:1 年以下の拘禁刑または 50 万円以下の罰金 |
刑法(不正指令電磁的記録に関する罪等)
マルウェア(ウイルス・不正プログラム)を取り扱う際は、刑法の以下の条項に留意する必要があります。
- 第 168 条の 2(不正指令電磁的記録作成等):正当な理由がないのに、人のコンピュータで意図しない不正な動作をさせる指令を作成、提供、または実行させた場合、3 年以下の拘禁刑または 50 万円以下の罰金が科されます。
- 第 168 条の 3(不正指令電磁的記録取得等):正当な理由がないのに、前条の不正な指令を取得または保管した場合、2 年以下の拘禁刑または 30 万円以下の罰金が科されます。
- 第 234 条の 2(電子計算機損壊等業務妨害):人の業務に使用するコンピュータを損壊し、または虚偽の情報・不正な指令を与えて業務を妨害した場合、5 年以下の拘禁刑または 100 万円以下の罰金が科されます。
検証が許容される範囲
- 自身が完全に管理・所有する閉鎖 lab 内の仮想マシン
- 所有者・管理者から事前の書面同意を得た検証対象環境(対象範囲・実施期間・検証手法が明記された合意書が必要です)
公開されている第三者の Web サイトや、許可を得ていない組織のネットワークに対して攻撃ツールを実行することは、相手に実害が発生しなくても犯罪を構成する可能性があります。また、lab 内で作成・抽出した検体を外部へ流出させたり再配布したりすることは絶対に避けてください。
出典と確認日
本記事の記載内容は 2026 年 10 月 25 日時点の一次資料に基づいて確認しています。
- Install Hyper-V on Windows(Microsoft Learn)
- New-VMSwitch(Microsoft Learn PowerShell Module)
- Set up a Hyper-V NAT network(Microsoft Learn)
- New-VM(Microsoft Learn PowerShell Module)
- Using checkpoints to revert virtual machines to a previous state(Microsoft Learn)
- Share devices with your Hyper-V virtual machine(Microsoft Learn)
- Manage Windows virtual machines with PowerShell Direct(Microsoft Learn)
- Guidance for configuring IPv6 in Windows for advanced users(Microsoft Learn)
- Windows 11 Enterprise 評価版(Microsoft Evaluation Center)
- mandiant/flare-vm(GitHub)
- Get the REMnux Virtual Appliance(REMnux 公式ドキュメント)
- INetSim Official Documentation
- VMware Desktop Hypervisor Pro Apps now Free for All Users(VMware Official Blog, 2024-11-11)
- Oracle VM VirtualBox User Manual: Virtual Networking
- 不正アクセス行為の禁止等に関する法律(e-Gov 法令検索)
- 刑法(e-Gov 法令検索)