【入門編】 マイクロセグメンテーション(ホストベースファイアウォール)によるラテラルムーブメントのブロック – サイバーセキュリティとプライバシー保護実践ガイド

皆さん、こんにちは!ネットワークの裏側やセキュリティの最前線をぶっちゃけトークで紐解く、技術メディア主筆ライターの私です。

インフラやネットワークの世界へ一歩を踏み出したばかりの皆さん、日々の運用や勉強、本当にお疲れ様です!「VLANを切ってネットワークを分けたから安心!」……なーんて思っていませんか? 実は、その油断がオフィスやクラウド環境を一網打尽にする悪夢の始まりかもしれません。

今回は、現代のサイバーセキュリティにおける最強の盾の一つ「マイクロセグメンテーション(ホストベースファイアウォール)」を取り上げます。ランサムウェアが社内に侵入した瞬間、どうやってその「横移動(ラテラルムーブメント)」をピタッと止めるのか? 身近な例えを交えながら、一緒に分かりやすく紐解いていきましょう!

—

1. 「同一VLAN内なら通信し放題」という終わりの始まり

ネットワークの基礎を学ぶと、「VLAN(ブイラン)で部署ごとに部屋を分けましょう」と教わりますよね。総務部の部屋、開発部の部屋、そしてサーバーの部屋。これらはルーターという「関所」を通らないとお互いに会話ができません。

ここで、身の回りの現実に例えてみましょう。
会社の中に「総務フロア」という大きな一部屋があるとします。この部屋の中は、パーテーションはあるものの、ドアノブは全部ガチャッと開けられます。同じ部屋にいる同僚同士なら、誰とでも自由に書類を渡し合えますよね。

ネットワークの世界でも同じです。同じVLAN(同じ部屋)にいるパソコン同士は、ルーターという関所を通らず、まるで同じ机の上の出来事かのように直接通信できてしまいます。

もし、その部屋に「スパイ(ランサムウェア)」が紛れ込んだら…?

たった1台のパソコンが、フィッシングメールや脆弱性を突かれてランサムウェアに感染したとしましょう。
その瞬間、スパイは「同じ部屋(同一VLAN)にいる他の社員の机」を次々と物色し始めます。「お隣さん、こんにちは!あなたのパソコンのファイルを暗号化させてくださいね!」とばかりに、横方向へ猛スピードで感染を広げていくのです。これが、セキュリティの世界で恐れられている「ラテラルムーブメント(横方向の移動)」の正体です。

「せっかくVLANを分けたのに、同じVLANにいる端末同士が自由に話せるなんて危険すぎる!」
そう気づいたあなた、素晴らしい着眼点です。その同一VLAN内の「お隣さん同士の無防備な会話」をバシッと禁止する技術こそが、今回学ぶマイクロセグメンテーションなのです。

—

2. マイクロセグメンテーションとは? 端末ごとの「専属警備員」の配置

では、マイクロセグメンテーションとは一体どんな仕組みなのでしょうか?

先ほどの「同じ部屋」の例えに戻りましょう。
同一VLAN内の端末間通信を防ぐために、ルーターを何台も置くのはコストも手間もかかり現実的ではありません。そこでどうするか?
すべてのパソコン(ホスト)の周りに、「超優秀な専属警備員」を1人ずつ配置するのです。

この警備員の名前が「ホストベースファイアウォール」(WindowsならWindows Defender ファイアウォール、Linuxならiptablesやnftables、firewalldなど)です。

警備員(ファイアウォール)は、パソコンに出入りするすべての郵便物(パケット)を厳しくチェックします。

  • 「あ、隣の席のPCから『共有フォルダを見せて』っていう手紙が来ました!」
  • 「待て待て、うちの会社では業務上必要なサーバー以外との横方向の通信はすべて禁止されているぞ!この手紙は破り捨てよう!」

このように、ネットワーク全体の境界線だけでなく、端末一台一台の足元(ホスト)で通信を細かく切り刻んで(マイクロ)制御するのが、マイクロセグメンテーションの真髄です。

—

3. 実践!Windows環境でのホストベースファイアウォール設定

「理屈は分かったけれど、実際にどうやって設定するの?」
百聞は一見にしかず。ここでは、多くの企業で使われているWindows環境を想定して、同一VLAN内の他の端末からの不審なアクセス(例えば、不要なファイル共有やリモート接続)をガッチリブロックする手順を見ていきましょう。

Windows標準の「セキュリティが強化された Windows Defender ファイアウォール」を使用すると、PowerShellを使って一瞬で強力なルールを適用できます。

【実践コード】同一VLAN内からの不要なSMB(ファイル共有)アクセスをブロックする

ランサムウェアがPC間の移動によく使う手法の一つに、Windowsのファイル共有機能(ポート445など)を狙った攻撃があります。これを、自分以外のローカルネットワーク(同じVLAN)からのアクセスに限定して制限してみましょう。

管理者権限でPowerShellを開き、以下のスクリプトを実行します。

# =====================================================================
# スクリプト名: Block-LateralMovement.ps1
# 概要: 同一セグメント内からの不要なファイル共有(SMB:445)の流入を遮断するルール
# =====================================================================

# 1. 既存の同名ルールがあれば削除(クリーンアップ)
Remove-NetFirewallRule -DisplayName "Block-Lateral-SMB-In" -ErrorAction SilentlyContinue

# 2. 新しい受信規則の作成
New-NetFirewallRule `
    -DisplayName "Block-Lateral-SMB-In" `
    -Description "同一VLAN内や外部からの予期せぬSMB接続をブロックし、ラテラルムーブメントを防ぐ" `
    -Direction Inbound `
    -Action Block `
    -Protocol TCP `
    -LocalPort 445 `
    -RemoteAddress LocalSubnet `
    -Profile Domain, Private

Write-Host "ホストベースファイアウォールの設定が完了しました。同一サブネットからのSMB通信はブロックされます!" -ForegroundColor Green

コードの解説を少しだけ!

  • -Direction Inbound: パソコンに入ってくる通信(受信)を対象にしています。
  • -Action Block: 条件に合致した通信を「問答無用でブロック(破棄)」します。
  • -Protocol TCP と -LocalPort 445: Windowsのファイル共有で使われるお馴染みの扉(ポート番号445番)を指定しています。
  • -RemoteAddress LocalSubnet: ここがポイント!「自分と同じネットワーク(ローカルサブネット)にいる奴らからの通信」という意味になります。
  • -Profile Domain, Private: 社内ネットワークや信頼できるプライベートネットワークに接続している時にのみ、このルールを有効化します。

このように設定しておけば、万が一同じVLAN内の別のパソコンがランサムウェアに感染しても、あなたのパソコンの「445番の扉」はカギが固く閉ざされているため、侵入を許さずにすむのです!

—

4. Linuxサーバーを守る!firewalldを使った実例

サーバーサイド(Linux)の世界でも同様です。例えば、社内システム用の踏み台サーバーやWebサーバーが同じVLANに複数並んでいる場合、お互いに無駄な通信をさせる必要は基本的にありません。

CentOSやRHEL、Fedoraなどで標準的に使われるfirewalldを使って、特定の管理用ホスト以外からのSSH(ポート22)アクセスを完全にシャットアウトする設定を見てみましょう。

#!/bin/bash
# =====================================================================
# スクリプト名: restrict_ssh.sh
# 概要: 特定の管理用IP以外からのSSHアクセスを拒否し、横展開を防ぐ
# =====================================================================

# 1. デフォルトのゾーン動作を確認しつつ、余計な通信を絞る
# 信頼できる管理端末のIPアドレスを例として「192.168.10.50」とする

# リッチルールを用いて、指定IP以外からのポート22(SSH)へのアクセスを拒否
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.10.50" service name="ssh" accept'

# 上記以外のSSHアクセスを拒否するルールを追加する場合は、
# デフォルトポリシーやドロップ設定を組み合わせます。
# まずは基本設定として、特定のセグメント内からの全不要ポートを閉じる設定を適用:

sudo firewall-cmd --reload
echo "firewall-cmdのルールが正常に適用されました。"

このように、ネットワーク機器(スイッチやルーター)の設計だけに頼るのではなく、「端末自身が自分の身を自分で守る(ゼロトラストの思想)」を実装することが、モダンなインフラエンジニアの必須スキルとなっています。

—

5. 導入時の注意点と、現場でよくある「やっちまった!」

「よし、じゃあ会社のパソコン全部で今のブロック設定を有効にしよう!」
……ちょっと待ってください!ここで現場の先輩から、実務で絶対に気をつけるべき注意点をアドバイスさせてください。

1. 業務に必要な通信まで止めちゃう事故

  • セキュリティを厳しくしすぎて、プリンターへの印刷ができなくなったり、ファイルサーバーへのアクセスが一切できなくなったりするトラブルが本当によく起きます。「ブロックする前に、何が通信しているかをログ(監査ログ)で必ず確認する」これが鉄則です。

2. 一斉展開の難しさ

  • 数千台のPCがある環境で、手動でコマンドを叩くのは不可能です。Active Directoryのグループポリシー(GPO)や、各種EDR(Endpoint Detection and Response)製品のポリシー配信機能を組み合わせて、統合的に管理・展開する仕組みをセットで考えましょう。

—

まとめ:境界防御の「その先」へ進むために

今回は、マイクロセグメンテーション(ホストベースファイアウォール)を使って同一VLAN内のラテラルムーブメントをブロックする手法について、身近な例えと具体的なコードを交えて解説しました。

  • VLANを分けただけでは、同一室内の感染拡大(ラテラルムーブメント)は防げない!
  • ホストベースファイアウォール(警備員)を各端末に配置し、不要な横方向の通信を遮断する。
  • PowerShellやfirewalldなどのツールを使い、コードベースで再現性高く設定を行う。

「ネットワークの境界を守る時代」から、「すべての端末を疑い、内側すらも細かく区切る(ゼロトラスト)」時代へ。インフラやネットワークに触れる初学者の皆さんも、この「端末ごとのセグメンテーション」という視点をぜひ頭の片隅に置いておいてください。

日々のインフラ構築や運用が、より安全でワクワクするものになることを応援しています!それではまた次回の技術コラムでお会いしましょう!

コメント

タイトルとURLをコピーしました