はじめに
ランサムウェアの本当の恐怖は、単体PCの暗号化ではありません。真の脅威は、1台の端末を足掛かりにネットワーク内を縦横無尽に移動する 「横展開(Lateral Movement)」 にあります。
2023年、ある中堅製造業で起きた事例では、1台の営業PCがマルウェアに感染した30分後、同じネットワーク内の共有フォルダが次々と暗号化され、最終的に250台のPCと3つのサーバーが被害を受けました。もしネットワークが適切に分離されていれば、被害は最初の1セグメント(約20台)で食い止められたはずです。
本記事では、この「防火壁」の役割を果たす ネットワーク分離 の設計と実装を、中小企業でも実現可能な形で解説します。
1. なぜ「フラットなネットワーク」は危険なのか
典型的な危険パターン
多くの中小企業のネットワークは、以下のような構成になっています:
インターネット
|
ルーター
|
L2スイッチ ━━━ 全端末が同一ネットワーク
| (192.168.1.0/24など)
├─ 社長PC
├─ 営業部PC (10台)
├─ 総務部PC (5台)
├─ ファイルサーバー
├─ バックアップサーバー
├─ 複合機
└─ ゲストWi-Fi
この構成の問題点:
| 問題 | 具体的なリスク | 実際の攻撃例 |
|---|---|---|
| 水平移動が容易 | 1台感染すると全端末が危険 | SMBワーム(WannaCry)の社内拡散 |
| 重要資産が無防備 | 営業PCからバックアップサーバーへ直接アクセス可能 | Emotetによるバックアップ破壊 |
| ゲストの混在 | 来客のPCが社内リソースにアクセス可能 | 協力会社経由の情報漏洩 |
| IoT機器の脆弱性 | 古い複合機から侵入→本丸へ | プリンター脆弱性を起点とした侵害 |
攻撃者の視点で見る「フラットネットワーク」
攻撃者が最初の1台に侵入した後の行動:
# 1. ネットワークスキャン(同一セグメント内の端末を発見)
nmap -sn 192.168.1.0/24
# 2. 共有フォルダの探索
net view /all
crackmapexec smb 192.168.1.0/24
# 3. ドメインコントローラーの特定
nltest /dclist:
# 4. 横展開(他のPCへの侵入)
psexec \\192.168.1.50 -u Administrator -p [stolen_password] cmd.exe
フラットネットワークでは、これらがすべて成功します。
2. セグメンテーションの3つの階層
効果的な分離には、用途とコストに応じた「深さ」があります。
階層1: VLAN分離(必須レベル)
対象: 全ての企業
コスト: 中(既存スイッチがVLAN対応なら追加費用ほぼゼロ)
効果: ★★★★☆
推奨VLAN設計例
VLAN 10: 管理セグメント (192.168.10.0/24)
└─ ドメインコントローラー、運用管理サーバー
VLAN 20: サーバーセグメント (192.168.20.0/24)
└─ ファイルサーバー、バックアップサーバー
VLAN 30: 業務PCセグメント (192.168.30.0/24)
└─ 一般社員のPC
VLAN 40: 重要PCセグメント (192.168.40.0/24)
└─ 経営層PC、経理専用PC
VLAN 50: IoT/OTセグメント (192.168.50.0/24)
└─ 複合機、監視カメラ、入退室管理
VLAN 99: ゲストセグメント (192.168.99.0/24)
└─ 来客用Wi-Fi(インターネットのみ許可)
L3スイッチでの基本設定例(Cisco IOS)
! VLAN作成
vlan 10
name MGMT
vlan 20
name SERVERS
vlan 30
name USER_PC
! トランクポート設定(スイッチ間接続)
interface GigabitEthernet0/1
switchport mode trunk
switchport trunk allowed vlan 10,20,30
! アクセスポート設定(PC接続)
interface GigabitEthernet0/10
switchport mode access
switchport access vlan 30
spanning-tree portfast
! VLAN間ルーティング
interface Vlan10
ip address 192.168.10.1 255.255.255.0
interface Vlan20
ip address 192.168.20.1 255.255.255.0
interface Vlan30
ip address 192.168.30.1 255.255.255.0
! デフォルトゲートウェイとしてファイアウォールを指定
ip route 0.0.0.0 0.0.0.0 192.168.1.254
階層2: ファイアウォールによる通信制御(推奨レベル)
対象: 従業員30名以上、または重要データを扱う企業
コスト: 中〜高(NGFW: 30万円〜/年)
効果: ★★★★★
ランサムウェア対策のための通信制御ルール
基本方針: デフォルト拒否、必要最小限の通信のみ許可
【許可ルール】
1. 業務PC → ファイルサーバー
- プロトコル: SMB (TCP 445)
- 送信元: VLAN 30, 40
- 宛先: VLAN 20 (ファイルサーバーのIPのみ)
- 時間制限: 平日 8:00-20:00
2. 管理者PC → サーバー管理
- プロトコル: RDP (TCP 3389)
- 送信元: VLAN 40 (管理者PCのIPのみ)
- 宛先: VLAN 10, 20
- 多要素認証必須
3. 全PC → インターネット
- プロトコル: HTTPS (443), DNS (53)
- プロキシ経由を強制
【明示的拒否ルール】
1. PC → バックアップサーバー (直接通信を禁止)
2. PC間の横方向通信 (同一VLANでも禁止)
3. IoTセグメント → 内部セグメント
4. ゲストセグメント → 内部全て
pfSense/OPNsenseでの設定例(無料UTM)
# VLANインターフェース作成
Interfaces → Assignments → VLANs
Parent Interface: em0
VLAN Tag: 30
Description: USER_PC
# ファイアウォールルール設定
Firewall → Rules → USER_PC
# ルール1: ファイルサーバーへのアクセス許可
Action: Pass
Protocol: TCP
Source: USER_PC net
Destination: Single host (192.168.20.10)
Destination Port: 445 (Microsoft-DS)
Schedule: BusinessHours
# ルール2: PC間通信の拒否
Action: Block
Protocol: Any
Source: USER_PC net
Destination: USER_PC net
Log: Yes
# ルール3: インターネットはプロキシ経由のみ
Action: Pass
Protocol: TCP
Source: USER_PC net
Destination: Any
Destination Port: 443, 80
階層3: マイクロセグメンテーション(高度レベル)
対象: 100名以上、または高度なセキュリティが必要な企業
コスト: 高(EDRソリューション: 100万円〜/年)
効果: ★★★★★
同一セグメント内であっても、PC間の通信を制御します。
実装方法の比較
| 方式 | 製品例 | メリット | デメリット |
|---|---|---|---|
| ホストベースFW | Windows Defender Firewall | 無料、即座に展開可能 | 管理が分散、無効化リスク |
| プライベートVLAN | Cisco/HP/Aruba スイッチ | 追加コスト不要 | L2レベルのみ、柔軟性低い |
| EDR/XDR | CrowdStrike/SentinelOne | AIによる脅威検知も可能 | 高コスト、導入負荷大 |
| SD-WAN | VMware NSX/Cisco ACI | 動的、属性ベース制御 | 複雑、大企業向け |
Windows Defender Firewallでの実装例(GPO)
# グループポリシーで全PCに展開
# Computer Configuration → Policies → Windows Settings
# → Security Settings → Windows Defender Firewall
# ドメインプロファイル
State: On
Inbound connections: Block
Outbound connections: Allow
# 許可ルール例
New-NetFirewallRule -DisplayName "Allow File Server SMB" `
-Direction Inbound `
-Protocol TCP `
-LocalPort 445 `
-RemoteAddress 192.168.20.10 `
-Action Allow `
-Profile Domain
# PC間通信の拒否
New-NetFirewallRule -DisplayName "Block Lateral Movement" `
-Direction Inbound `
-Protocol Any `
-RemoteAddress 192.168.30.0/24 `
-Action Block `
-Profile Domain
3. ランサムウェアを止める「通信制御」の具体例
重点的にブロックすべきプロトコル
| プロトコル | ポート | 用途 | ブロック方法 | 攻撃での悪用例 |
|---|---|---|---|---|
| SMB | 445/TCP | ファイル共有 | ファイルサーバー以外への通信を拒否 | WannaCry, Ryuk, Conti |
| RDP | 3389/TCP | リモートデスクトップ | 管理者PCからのみ許可 | RDP総当たり攻撃 |
| WMI/RPC | 135/TCP | リモート管理 | 運用ツールのみ許可 | PsExec, WMIを使った横展開 |
| PowerShell Remoting | 5985,5986/TCP | リモートPS実行 | 原則拒否 | Living off the Land攻撃 |
| SSH | 22/TCP | Linuxリモート管理 | 公開鍵認証必須 | 認証情報窃取後の侵入 |
ファイアウォールログで検知すべきパターン
# 危険な通信パターンの例
[ALERT] 192.168.30.55 → 192.168.30.0/24:445 (PC間のSMB)
→ ランサムウェアの横展開の可能性
[ALERT] 192.168.30.55 → 192.168.20.15:3389 (PC→サーバーのRDP)
→ 非管理者PCからのサーバー接続
[ALERT] 192.168.30.55 → 192.168.30.1-254:445 (連続スキャン)
→ ネットワーク偵察行動
[ALERT] 192.168.50.100 → 192.168.20.10:445 (IoT→ファイルサーバー)
→ 不正なアクセス(IoT機器からのファイルサーバー接続)
4. ゼロトラスト時代のネットワーク分離
従来のVLANベース分離の限界:
- IPアドレスベースでは、在宅勤務やBYODに対応できない
- 設定が複雑化し、ミスによる穴が発生しやすい
- 動的な環境変化に追従できない
ソフトウェア定義境界(SDP)の考え方
【従来のVLAN】
IPアドレス: 192.168.30.50
→ VLAN 30 (業務PC)
→ ファイルサーバーへアクセス可能
【SDPベース】
デバイス属性:
- ユーザー: 山田太郎(営業部)
- デバイス: Windows 11 Pro
- セキュリティ状態: パッチ最新、EDR稼働中
- 場所: 社外(VPN接続)
→ 営業部の共有フォルダのみアクセス可能
→ パッチが古い場合は検疫ネットワークへ自動移動
実装例: Cloudflare Zero Trust(中小企業向け)
# ポリシー例
policies:
- name: "営業部ファイルサーバーアクセス"
decision: allow
conditions:
- user.department == "Sales"
- device.os_version >= "Windows 10"
- device.antivirus == "running"
- time.hour >= 8 && time.hour <= 20
destination: "file-server.company.local"
- name: "パッチ未適用端末の隔離"
decision: isolate
conditions:
- device.patch_level < 30days
destination: "quarantine-network"
5. 【実践】既存ネットワークを段階的に分離する
フェーズ1: 可視化(Week 1-2)
目的: 現状のネットワーク通信を把握する
# 1. ネットワークフローの収集
# pfSenseの場合
System → Advanced → Miscellaneous
→ Network Address Translation
→ Enable pfflow (NetFlow)
# 2. フローログの分析
# 無料ツール: ntopng, ElasticFlow
# 確認すべきポイント
- どのPCが、どのサーバーに、どのポートで通信しているか
- 業務時間外の不審な通信はないか
- 予想外の通信経路はないか
実際の分析例:
発見事項:
✓ 総務PCが開発サーバー(Linux)にSSH接続している
→ 本来不要な通信。開発者の個人利用か、マルウェアか調査必要
✓ 複合機が外部DNSサーバー(8.8.8.8)に直接通信
→ 内部DNS(AD)を使うべき。設定ミスまたは侵害の可能性
✓ バックアップサーバーへ、全PCから445番ポートでアクセス可能
→ ランサムウェアの標的になる。即座に制限必要
フェーズ2: 重要資産の孤立化(Week 3-4)
優先順位:
- バックアップサーバー(最優先)
- ドメインコントローラー
- ファイルサーバー
バックアップサーバー保護の実装例
【Before】
全PC(192.168.1.0/24) → バックアップサーバー(192.168.1.200)
✗ 直接アクセス可能(445, 3389)
【After】
バックアップサーバー専用VLAN (VLAN 25: 192.168.25.0/24)
ファイアウォールルール:
- ファイルサーバー → バックアップサーバー(445) ✓許可
(スケジュールバックアップ用)
- 管理者PC(192.168.40.5のみ) → バックアップサーバー(3389) ✓許可
(管理作業用、多要素認証必須)
- その他全て → バックアップサーバー ✗拒否
(ログを有効化し、アクセス試行を記録)
フェーズ3: ゲスト・IoTの分離(Week 5-6)
【設定例: ゲストWi-Fi】
# UniFiアクセスポイントの場合
1. 新しいSSID作成: "Guest-WiFi"
2. VLAN設定: VLAN 99
3. Isolation: Enable (ゲスト間の通信も禁止)
4. Bandwidth limit: 10Mbps
# ファイアウォールルール
Source: VLAN 99
Destination: ANY (Internet)
Ports: 80, 443
Action: Allow
Source: VLAN 99
Destination: RFC1918 (Private IP)
Action: Block
フェーズ4: PC間通信の禁止(Week 7-8)
方法1: プライベートVLAN(スイッチレベル)
# Cisco Catalystの例
vlan 30
private-vlan isolated
interface range GigabitEthernet0/10-20
switchport mode private-vlan host
switchport private-vlan host-association 30 30
方法2: Windows Firewall(GPOレベル)
# Active Directory GPO設定
# Computer Configuration → Policies → Administrative Templates
# → Network → Network Connections → Windows Defender Firewall
# 同一サブネット内の通信をブロック
New-NetFirewallRule -DisplayName "Block Same Subnet" `
-Direction Inbound `
-RemoteAddress 192.168.30.0/24 `
-Action Block `
-Enabled True
# 例外: ドメインコントローラーとの通信は許可
New-NetFirewallRule -DisplayName "Allow DC Communication" `
-Direction Inbound `
-RemoteAddress 192.168.10.10 `
-Action Allow `
-Enabled True
6. トラブルシューティング:分離後によくある問題
問題1: プリンターが使えなくなった
症状:
PC(VLAN 30) からプリンター(VLAN 50) への印刷ができない
解決策:
ファイアウォールで以下のポートを許可:
- TCP 9100 (RAWプリント)
- TCP 515 (LPR)
- UDP 161 (SNMP)
pfSenseの設定例:
Source: VLAN 30
Destination: VLAN 50 (Printers)
Ports: 9100, 515, 161
Action: Allow
問題2: 共有フォルダへのアクセスが遅い
症状:
VLAN分離後、ファイルサーバーへの接続が遅延
原因と対策:
原因: VLAN間ルーティングのMTU不一致
確認方法:
ping 192.168.20.10 -f -l 1472
解決策:
interface Vlan30
mtu 1500
interface Vlan20
mtu 1500
問題3: VPN接続後にファイルサーバーにアクセスできない
症状:
在宅勤務者がVPN接続後、社内リソースに接続できない
解決策:
VPNクライアントに適切なVLANを割り当て
OpenVPN設定例:
client-config-dir ccd
# ccd/yamada-taro
ifconfig-push 192.168.30.100 255.255.255.0
push "route 192.168.20.0 255.255.255.0" # サーバーセグメントへのルート
7. コスト別実装プラン
プラン1: 最小コスト(〜10万円)
対象: 従業員10名以下
機器構成:
- VLAN対応L2スイッチ: TP-Link TL-SG108PE (約8,000円)
- UTM: Raspberry Pi 4 + pfSense (約15,000円)
実装内容:
- VLAN 2つのみ(業務用 / ゲスト)
- 基本的なファイアウォールルール
限界:
- パフォーマンス低め
- ハードウェア冗長性なし
プラン2: 標準プラン(30〜50万円)
対象: 従業員30-100名
機器構成:
- L3スイッチ: HPE OfficeConnect 1920S (約10万円)
- UTM: Fortinet FortiGate 60F (約30万円/年)
実装内容:
- VLAN 4-6個(部門別 / サーバー / IoT / ゲスト)
- アプリケーション制御
- IPS/IDS
- VPN
メリット:
- エンタープライズレベルの保護
- 管理画面が直感的
- サポートあり
プラン3: エンタープライズ(100万円〜)
対象: 従業員100名以上
機器構成:
- Cisco Catalyst 9300シリーズ
- Palo Alto Networks PA-3220
- EDR: CrowdStrike Falcon
実装内容:
- マイクロセグメンテーション
- ゼロトラスト アーキテクチャ
- AI脅威検知
- SIEM連携
8. 効果測定:分離の成功を確認する
テスト方法
# 1. 横展開のシミュレーション
# PC A(VLAN 30)からPC B(VLAN 30)への通信を試みる
# PC Aで実行
ping 192.168.30.51 # PC Bのアドレス
→ 期待結果: タイムアウト(PC間通信がブロックされている)
# 2. 不正なSMBアクセスのテスト
net use \\192.168.20.15\C$ # バックアップサーバーのCドライブ
→ 期待結果: アクセス拒否
# 3. ファイアウォールログの確認
tail -f /var/log/pfSense/filter.log | grep BLOCK
→ 期待結果: ブロックされた通信が記録されている
定量的な効果測定
【KPI例】
1. セグメント間の不正通信試行
Before: 0回(検知不可)
After: 週20回検知してブロック
2. ランサムウェア感染シミュレーション時の拡散範囲
Before: 全250台が理論上危険
After: 最大30台(1セグメント内)に限定
3. バックアップサーバーへの不正アクセス試行
Before: ログなし
After: 月5回検知(内部偵察の兆候)
9. まとめ:ネットワークは「疑うこと」から設計する
セグメンテーションの本質
ネットワーク分離の本質は、**「ネットワークの境界を、オフィスの外壁から、すべてのデバイス・サーバーの周りまで引き込むこと」**にあります。
実装の優先順位
【Week 1-2】可視化
└→ 通信フローの把握
【Week 3-4】バックアップサーバーの隔離
└→ 最後の砦を守る
【Week 5-6】ゲスト・IoTの分離
└→ 信頼境界の明確化
【Week 7-8】PC間通信の制限
└→ 横展開の防止
【Week 9-】継続的な改善
└→ ログ分析とルール最適化
忘れてはいけない原則
- デフォルト拒否: 明示的に許可したもの以外は全て拒否
- 最小特権: 必要最小限の通信のみ許可
- 多層防御: VLAN + FW + エンドポイント保護
- 継続的監視: 分離しただけでは不十分、ログ監視が必須
「社内だから安全」という過信を捨て、すべての通信を疑うことで、たとえランサムウェアが侵入しても「小さな火事」で済ませることができます。
参考リソース
設定テンプレート集
ネットワーク可視化ツール
- ntopng (無料): フロー分析、リアルタイム監視
- Wireshark: パケット詳細解析
- Nagios/Zabbix: ネットワーク監視・アラート
セキュリティ検証ツール
- Nmap: ポートスキャン、脆弱性診断
- Metasploit: ペネトレーションテスト(許可された環境のみ)