【入門編】 VLANホッピング攻撃の仕組み – ネットワーク基礎とWebセキュリティ実践ガイド

こんにちは!ネットワークエンジニアの皆さん、そして日々インフラの仕組みと格闘している学習者の皆さん、お疲れ様です。技術メディアの主筆ライターである私が、今回も現場のリアルな視点を交えながら、ネットワークの深淵へと皆さんを案内しますね。

さて、皆さんはオフィスや学校で、1台のスイッチ(ハブの親分のような機器)をみんなで共有しながら、部署ごとにネットワークが綺麗に分かれている光景を見たことはありませんか?「総務部のパソコンからは開発部のサーバーが見えないようになっている」あれです。あの魔法を実現しているのがVLAN(Virtual LAN)という技術ですね。

物理的なケーブルをわざわざ引き直さなくても、設定一つでネットワークを仮想的にスパッと切り分けられる。本当に便利で優秀な仕組みです。

……しかし!その便利な仕組みの「お約束」や「設定の隙」を悪意を持って突いてくる輩がいるのも、またネットワーク界の現実です。今回は、その代表格である「VLANホッピング攻撃」について、難しい英語のヘッダーやビット数の計算は一旦置いておいて、身近な例えを交えながら優しく、かつ深く紐解いていきましょう。

一歩ずつ、しっかりと理解していきましょうね!

—

1. そもそもVLANってどんな仕組み?(郵便配達にたとえてみよう)

VLANの仕組みを理解するために、ちょっとオフィスビルを想像してみてください。

このビルには、1階に「総務部」、2階に「開発部」が入っています。そして、ビル全体で共有する1本の大きな「ダクト(空気や荷物を送る管)」が通っているとしましょう。普通なら、総務部宛ての荷物も開発部宛ての荷物も、同じダクトを通るとごちゃ混ぜになってしまいますよね。

そこで登場するのがVLANタグです。
総務部から荷物を送るときには「【総務部行き】」という赤いシールを荷物にペタッと貼り、開発部なら「【開発部行き】」という青いシールを貼ります。ダクトの中を流れるときには荷物が一緒になっても、宛先のフロアに着いた瞬間、係員がそのシールを見て「お、これは総務部宛てだな」と仕分けをしてくれるのです。

これが、ネットワークの世界で言うところのIEEE 802.1Q(タグVLAN)という仕組みです。イーサネットフレームという「封筒」の中に、「この封筒はVLAN ID 10番のものです」という小さな付箋(タグ)を挟み込んで運んでいるわけですね。

通常、異なるVLANの間で通信をするには、ルーターという「関所」を通る必要があります。「おいおい、総務部の封筒を開けて開発部に渡すわけにはいかないから、一度ルーター様に見てもらって、セキュリティチェックをパスしたやつだけ通そうね」というルールになっているわけです。

—

2. セキュリティの壁を越える!「VLANホッピング」の恐ろしい手口

「ちゃんとルーターという関所を通るなら安心だね!」……そう思ったそこのあなた。実はここに、ネットワークの歴史が生んだ「二枚舌の罠」が潜んでいます。

VLANホッピング攻撃には、主に以下の2つの手口が存在します。

1. スイッチスプーフィング(Switch Spoofing)
2. ダブルタギング(Double Tagging)

一つずつ、分かりやすく見ていきましょう。

手口①:スイッチスプーフィング(私はスイッチの仲間です、と嘘をつく)

ネットワークの管理を楽にするために、スイッチとスイッチの間、あるいはスイッチとルーターの間では、すべてのVLANの荷物を通す特別なモード(トランクポート)が使われます。このトランクポートは、いわば「全部署の荷物が通る特急レーン」です。

本来、一般の社員が使うパソコン(エンドホスト)が繋がるポートは、一つの部署専用の「アクセスポート」として設定され、トランクとして動作することは絶対にありません。……設定が正しくされていれば、の話ですが。

もし、ネットワーク管理者がうっかり設定をミスして、パソコンを繋ぐポートを「自動でトランクになるモード(Dynamic Trunking Protocolなど)」のまま放置していたらどうなるでしょう?

攻撃者のパソコンは、スイッチに向かってこう話しかけます。
*「やあ、私もちょうどスイッチの仲間なんだ。だから、ここをトランクポート(特急レーン)にして、すべてのVLANの荷物を通しておくれよ」*

スイッチが「おっ、同じ仲間だね!じゃあ特急レーンにしてあげるよ」と勘違いしてしまうと、攻撃者のパソコンはすべてのVLANの通信を自由に見聞きできるようになってしまいます。これがスイッチスプーフィングです。まるで、一般の見学者が警備員バッチを偽造して、ビルの裏の管理室に入り込んでしまうようなものですね。

手口②:ダブルタギング(封筒の中に秘密の封筒を隠す)

もう一つの手口が、今回一番焦点を当てたいダブルタギングです。これはスイッチの設定不備というよりは、IEEE 802.1Qの仕様の隙を巧みに突いた、ちょっとずる賢い攻撃です。

先ほどの郵便配達の例えを思い出してください。
攻撃者のパソコンは、自分が所属するVLAN(例えばVLAN 10)の「赤いシール」が貼られた封筒を準備します。ここまでは普通です。

しかし、攻撃者はその封筒の中に、もう一枚別のVLAN(例えば、絶対にアクセスしてはいけない機密用のVLAN 20)のシールが貼られた「内側の封筒」をこっそり忍ばせました。

1. 最初のスイッチ(アクセスポート)に到着
スイッチは「お、VLAN 10のパソコンからだな。じゃあこの荷物には外側に『VLAN 10』のシールを貼って、トランクへ流そう」と、外側に一枚シールを貼り足します。この瞬間、荷物には「外側:VLAN 10」「内側:VLAN 20」という、二重のタグが貼られた状態になります(これがダブルタギングの名の由来です)。
2. 途中のトランクポートを通過
最初のスイッチを出た荷物は、トランクポートを通るときに「外側のシール(VLAN 10)」を見て、「あ、これはVLAN 10の荷物ね」と判断し、外側のシールをビリッと剥がして次のスイッチへ送り出します。
3. ターゲットのスイッチに到着
ここでマジックが起きます。外側のシールが剥がされたことで、その中から「内側のシール(VLAN 20)」が露わになります。次のスイッチは、届いた荷物に残された内側のシールを見て、「おや、これはVLAN 20宛ての荷物じゃないか。じゃあVLAN 20のエリアに届けよう!」と、本来アクセスできないはずのネットワークへ荷物を送り届けてしまうのです。

関所の警備員が「外側の荷札」しか確認せず、中の小包までチェックしなかった隙を突いた、鮮やかすぎる(そして悪質な)トリックだと言えますね。

—

3. 実務でどう防ぐ? ネットワークの「鉄則」設定

さて、ここまでVLANホッピングの恐ろしい仕組みを見てきましたが、私たちインフラエンジニアやセキュリティ担当者は、ただ怯えているわけにはいきません。現場でこの攻撃をピタリと阻止するための「鉄則」がちゃんと存在します。

実際の機器(Cisco Catalystスイッチなどを想定)での設定例を見てみましょう。実務でそのまま使えるように、丁寧なコメントを添えておきますね。

鉄則1:未使用のポートは「死に地(ネイティブVLAN等のダミー)」に落とし、アクセスポートに固定する

自動ネゴシエーション(DTP)を無効化し、ポートのモードを明示的に「アクセス」または「トランク」に固定するのが基本中の基本です。

# スイッチの特定のポート(例:FastEthernet 0/1)をエンドユーザー向けに設定する場合
configure terminal
 interface FastEthernet 0/1
  # 1. このポートを「アクセスポート(単一VLAN専用)」に強制的に固定する(スイッチスプーフィング対策)
  switchport mode access
  
   # 2. 所属させるVLANを明示的に指定する(例: VLAN 100)
  switchport access vlan 100
  
  # 3. 自動トランク交渉(DTP)を完全にオフにする
  switchport nonegotiate
  
  # 4. 万が一のポート不正利用を防ぐためにポートセキュリティを有効化
  switchport port-security
  
  description [SECURE] User Access Port for VLAN 100
exit

鉄則2:ネイティブVLANをデフォルト(VLAN 1)から変更する

IEEE 802.1Qの仕様上、タグを付けずに流れるパケット(ネイティブVLAN)が悪用されるのを防ぐため、使っていないダミーのVLAN番号(例えばVLAN 999など)をネイティブVLANとしてトランクポートに割り当て、エンドユーザーのアクセスポートでは絶対に使わないようにします。

# トランクポート(例:GigabitEthernet 0/1)の設定例
configure terminal
 interface GigabitEthernet 0/1
  # 1. ポートをトランクモードに固定
  switchport mode trunk
  
  # 2. 攻撃に悪用されやすいデフォルトのVLAN 1をネイティブVLANから外し、専用のダミーVLAN(例: 999)を指定する
  switchport trunk native vlan 999
  
  # 3. 必要最低限のVLANだけを通すように許可リストを絞る(VLANプリューニング)
  switchport trunk allowed vlan 10,20,30
  
  description [SECURE] Trunk Link to Core Switch
exit

こうした泥臭いまでの設定の積み重ねが、企業の機密情報を守る強固な「ゼロトラスト」の土台を作ります。「動けばいいや」ではなく、「意図しない動きはすべてシャットアウトする」という気構えが、インフラエンジニアには求められるのです。

—

まとめ

今回は、ネットワークの基礎でありながら、セキュリティの現場でも非常に重要な「VLANホッピング攻撃」について解説しました。

  • VLANは便利な仮想的グループ分けだが、設定の隙を突かれると危険。
  • スイッチスプーフィングは、ポートの自動ネゴシエーションの嘘を突く手口。
  • ダブルタギングは、二重のタグ構造を利用して関所をバイパスする手口。
  • 対策の基本は「自動化を信じず、モードやVLANを明示的・手動でガチガチに固めること」。

ネットワークの世界は、目に見えないパケットが飛び交う魔法のような場所ですが、その裏側にあるのは非常にロジカルで泥臭いルールです。仕組みの本質さえ掴んでしまえば、どんな攻撃手法も怖くありません。

これからも一歩ずつ、確実にお仕事や学習を進めていきましょうね。それではまた次回の技術解説でお会いしましょう!

コメント

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