こんにちは!ネットワークエンジニアの皆さん、そして日々インフラの仕組みと格闘している学習者の皆さん、お疲れ様です。技術メディアの主筆ライターである私が、今回も現場のリアルな視点を交えながら、ネットワークの深淵へと皆さんを案内しますね。
さて、皆さんはオフィスや学校で、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を明示的・手動でガチガチに固めること」。
ネットワークの世界は、目に見えないパケットが飛び交う魔法のような場所ですが、その裏側にあるのは非常にロジカルで泥臭いルールです。仕組みの本質さえ掴んでしまえば、どんな攻撃手法も怖くありません。
これからも一歩ずつ、確実にお仕事や学習を進めていきましょうね。それではまた次回の技術解説でお会いしましょう!
コメント