VLANでネットワークを分離したのに、攻撃者が別のセグメントに侵入してしまった。そんな事態が「VLAN Hopping攻撃」によって起きえます。
VLAN(Virtual LAN)はネットワークを論理的に分割し、不要なトラフィックを遮断するセキュリティの基礎インフラです。ところが、スイッチ設定に一つでも穴があると、攻撃者はそのセグメント境界を乗り越えられます。
この記事では、VLAN Hoppingとはどんな攻撃か、攻撃者が使う2種類の手口、そして情シス担当者が今日から実施できる具体的な防御設定まで、現場目線で解説します。

VLAN Hopping攻撃とは?なぜ危険なのか
VLAN Hopping(VLANホッピング)とは、本来アクセスできないVLAN(ネットワークセグメント)に攻撃者が不正に侵入する攻撃手法です。
VLAN(Virtual LAN)は、物理的なネットワーク機器を論理的に分割する技術です。たとえば「総務部ネットワーク(VLAN 10)」「サーバーゾーン(VLAN 20)」「ゲストWi-Fi(VLAN 30)」のように分けることで、部門間の通信を制限したりセキュリティゾーンを確立したりできます。
VLAN分離が機能していれば、ゲストWi-Fiに接続した外部の人間は社内サーバーゾーンにアクセスできません。しかしVLAN Hopping攻撃が成立してしまうと、この境界は崩れます。
攻撃が危険な理由は2点あります。
・ラテラルムーブメントへの橋渡し: 一度セグメントを越えると、攻撃者は内部ネットワーク横断(ラテラルムーブメント)へと進みやすくなります。
・ファイアウォールをバイパスするリスク: VLANはL2(データリンク層)でのセグメント分離です。境界を越えられると、上位層のルーターやファイアウォールが想定していない経路でトラフィックが流れる場合があります。
攻撃の仕組みを知る
VLAN Hopping攻撃には代表的な2つの手法があります。どちらも防御のために知っておくべき内容です。
1. スイッチスプーフィング(Switch Spoofing)
スイッチ同士をつなぐ「トランクポート」は、複数のVLANのトラフィックをまとめて流せる特別なポートです。スイッチはDTP(Dynamic Trunking Protocol)というプロトコルを使い、接続相手が別のスイッチかどうかを自動的にネゴシエーションしてトランクリンクを確立しようとします。
攻撃者はこれを悪用します。DTPに対応したソフトウェアで自分のPCをスイッチのように見せかけ、スイッチとのトランクリンクを確立します。一度トランクが張られると、攻撃者のPCはすべてのVLANのトラフィックを受け取れるようになります。
# スイッチスプーフィングの流れ(概念) # 1. 攻撃者のPCがDTP Desirableパケットを送信 # 2. スイッチが「相手もスイッチ」と判断してトランクポートを形成 # 3. 攻撃者はVLAN 10, 20, 30... すべてのフレームを受信できる状態になる # デフォルト設定のスイッチではポートが「Dynamic Auto」モードになっており # 相手からのDTP Desirableに応答してしまう
2. ダブルタギング(Double Tagging)
ダブルタギングはVLANタグを2重に付けることで、目標のVLANにパケットを送り込む攻撃です。ネイティブVLANの仕様を突きます。
VLANのトランクポートには「ネイティブVLAN」という概念があります。ネイティブVLANのトラフィックはタグなしで転送される、という特性を持ちます。
攻撃者は、パケットの外側にネイティブVLANのタグを、内側に目標VLAN(例: サーバーゾーン VLAN 20)のタグを付けて送信します。
# ダブルタギングの流れ(概念) # パケット: [外側タグ: VLAN1(ネイティブ)] [内側タグ: VLAN20(サーバーゾーン)] [データ] # # 1. 最初のスイッチ: 外側タグ(VLAN1)を「ネイティブVLAN」と認識してタグを剥がして転送 # 2. 次のスイッチ: 内側タグ(VLAN20)を読んでサーバーゾーンへ転送 # → 攻撃者が本来アクセスできないVLAN20にパケットを送り込める # ただし一方向通信のみ(返答パケットは攻撃者に届かない) # → DoS攻撃や悪意あるデータの一方的な送り込みに使われる
具体的な防御手順
どちらの攻撃も、スイッチの設定変更で防ぐことができます。以下はCisco Catalyst系のコマンド例ですが、他ベンダーでも同様の考え方で設定できます。
1. ネイティブVLANを使用していないIDに変更する
ダブルタギング攻撃はデフォルトのネイティブVLAN(VLAN 1)を前提に成立します。ネイティブVLANを実際に使用していないVLAN ID(例: VLAN 999)に変更することで、攻撃を成立させにくくなります。
# トランクポートのネイティブVLANを変更(VLAN 999は実際には使用しない) Switch(config)# interface GigabitEthernet0/1 Switch(config-if)# switchport trunk native vlan 999
2. DTPを無効化してトランクを手動設定する
スイッチスプーフィングを防ぐには、DTPの自動ネゴシエーションを無効化し、トランクポートを手動で明示的に設定します。
# トランクポートはDTPを無効化して手動設定 Switch(config)# interface GigabitEthernet0/1 Switch(config-if)# switchport mode trunk Switch(config-if)# switchport nonegotiate # DTPを無効化 # トランクで許可するVLANを明示的に制限する(不要なVLANは通さない) Switch(config-if)# switchport trunk allowed vlan 10,20,30
3. エンドデバイス接続ポートをアクセスモードに固定する
PCやサーバーが接続されるポートは、アクセスモードに固定します。アクセスモードのポートはDTPネゴシエーションを行わないため、スイッチスプーフィングが成立しません。
# エンドデバイス接続ポートはアクセスモードに固定 Switch(config)# interface GigabitEthernet0/2 Switch(config-if)# switchport mode access Switch(config-if)# switchport access vlan 10 Switch(config-if)# switchport nonegotiate
4. 未使用ポートを無効化してブラックホールVLANへ移動する
使っていないポートは攻撃の入口になりえます。シャットダウンするとともに、実際には使用しないブラックホールVLAN(例: VLAN 999)に割り当てておきます。
# 未使用ポートの処理(例: GigabitEthernet0/10 から 0/24) Switch(config)# interface range GigabitEthernet0/10 - 24 Switch(config-if-range)# switchport mode access Switch(config-if-range)# switchport access vlan 999 # ブラックホールVLAN Switch(config-if-range)# shutdown
中小企業でも今日からできること
スイッチのCLI操作に慣れていない情シス担当者でも、次の手順から着手できます。
・ポートインベントリを作る: どのポートにどの機器がつながっているか棚卸しする。未使用ポートの把握が防御の第一歩です。
・マネージドスイッチを使う: アンマネージドスイッチではVLAN設定そのものができません。VLAN対応のマネージドスイッチへの移行を検討します。
・スイッチのWebUIかCLIで現状確認: 「show interfaces trunk」や「show running-config」でトランクポートとDTP状態を確認します。
・ベンダーのセキュリティガイドを参照: CiscoはCatalystセキュリティガイド、YAMAHAやNECは各製品マニュアルを参照して同様の設定を確認します。
Port Security・DHCP Snooping・DAIとの組み合わせで、L2スイッチのセキュリティは大幅に強化されます。また、STPセキュリティ(BPDUガード・ルートガード)も合わせて設定することで、スイッチング環境の多層防御が実現できます。
よくある誤解と注意点
【注意】「VLANがあるから安全」という思い込み
VLANはあくまでL2(データリンク層)での分離です。上位のファイアウォールやアクセス制御と組み合わせてはじめて実効的なセキュリティになります。「VLANさえあれば外部からの侵入を防げる」という思い込みは危険です。
より細かなセグメント分離が必要な場合(クラウド環境やゼロトラスト実装など)では、マイクロセグメンテーションの考え方も参考になります。
【注意】ARPスプーフィングとの組み合わせに備える
VLAN境界を突破した攻撃者は、続いてARPスプーフィングでさらなる盗聴を試みることもあります。動的ARPインスペクション(DAI)をスイッチに設定して多層的に防御することを推奨します。
【注意】VLAN 1の使用を避ける
VLAN 1はCisco製スイッチのデフォルトネイティブVLANであり、管理トラフィックも流れる特別なVLANです。VLAN 1に実際のデバイスを接続しないよう運用し、ネイティブVLANも別のIDに変更することが推奨されます。

本記事のまとめ
| 攻撃手法 | 悪用される仕様 | 主な防御策 |
|---|---|---|
| スイッチスプーフィング | DTPによる自動トランク形成 | DTP無効化・アクセスモード固定 |
| ダブルタギング | ネイティブVLANのタグ剥がし仕様 | ネイティブVLANを未使用IDへ変更 |
| 共通対策 | — | 未使用ポートのシャットダウン・ブラックホールVLAN設定・トランク許可VLANの明示指定 |
VLAN Hopping攻撃は、スイッチのデフォルト設定の「甘さ」を突いた攻撃です。ゼロデイ脆弱性を使うものではなく、設定を正しく行えば防ぐことができます。ネットワークのセキュリティを「ファイアウォールだけに頼らない設計」にしていく第一歩として、スイッチ設定の見直しを進めてください。
Linuxサーバー側のネットワーク設定(ファイアウォールやネットワークインタフェースの分離)については、姉妹サイトLinuxMaster.JPでも詳しく解説しています。
PR
実践 パケット解析 第3版(Chris Sanders/オライリー・ジャパン)
ネットワーク通信の内側をWiresharkで可視化する定番書。VLANタグの付いたトラフィックの解析方法も学べるため、スイッチング攻撃の理解と検知スキルを身につけたい方に役立ちます。
