VLANホッピングはコンピュータセキュリティの脆弱性を突く攻撃であり、仮想LAN (VLAN)上のネットワークリソースを攻撃する手法です。VLANホッピング攻撃の基本的な概念は、あるVLAN上の攻撃ホストが、通常はアクセスできない他のVLAN上のトラフィックにアクセスできるようにすることです。VLANホッピングには主にスイッチスプーフィングとダブルタギングの2つの手法があります。どちらの攻撃ベクトルも、スイッチポートを適切に設定することで軽減できます。
スイッチスプーフィング攻撃では、攻撃ホストはVLANの維持に使用されるタグ付けおよびトランキングプロトコル(例:Multiple VLAN Registration Protocol、IEEE 802.1Q、Dynamic Trunking Protocol )を装うことにより、トランキングスイッチ[ 1 ]を模倣します。これにより、攻撃ホストは複数のVLANのトラフィックにアクセスできるようになります。
スイッチスプーフィングは、インターフェースがトランクネゴシエーションを行うように設定されている場合にのみ悪用される可能性があります。Cisco IOSでこの攻撃を防ぐには、次のいずれかの方法を使用してください。[ 2 ]:163
1. DTPを無効にして、ポートがトランクを自動的にネゴシエートするように設定されていないことを確認します。
スイッチ (config-if)# switchport nonegotiate
2. トランクポートではないポートがアクセスポートとして明示的に設定されていることを確認する
スイッチ (config-if)# スイッチポートモードアクセス
二重タグ付け攻撃では、802.1Q対応ポートに接続された攻撃者が、送信するフレームの先頭に2つのVLANタグを付加します。フレーム(攻撃者のポートが実際に属するVLAN IDで外部タグ付けされている)は、トランクインターフェースのネイティブVLANであるため、最初のタグなしで転送されます。2つ目のタグは、フレームが通過する2番目のスイッチで認識されます。この2つ目のVLANタグは、フレームが2番目のスイッチ上のターゲットホスト宛てであることを示します。フレームは、ターゲットVLANから送信されたかのようにターゲットホストに送信され、VLANを互いに論理的に分離するネットワークメカニズムを効果的にバイパスします。[ 3 ] ただし、応答は攻撃ホストに転送されません(単方向フロー)。
二重タグ付けは、ネイティブVLANを使用するように設定されたスイッチポートでのみ悪用される可能性があります。[ 2 ] : ネイティブVLANが設定されたトランクポートは、これらのフレームを送信する際にVLANタグを適用しません。これにより、攻撃者が偽のVLANタグを次のスイッチで読み取ることができます。[ 4 ]
二重タグ付けは、次のいずれかのアクションによって軽減できます (IOS の例を含む)。
スイッチ (config-if)# スイッチポートアクセスVLAN 2
スイッチ (config-if)# スイッチポートトランクネイティブVLAN 999
スイッチ(config)# vlan dot1q tag native
二重タグ付け攻撃の例として、VLAN2と呼ばれるVLAN上のセキュアWebサーバーを考えてみます。VLAN2上のホストはWebサーバーへのアクセスが許可されますが、VLAN2外のホストはレイヤー3フィルターによってブロックされます。別のVLAN(VLAN1(ネイティブ))上の攻撃ホストは、Webサーバーを攻撃するために特別な形式のパケットを作成します。このパケットは、VLAN1に属するパケットのタグヘッダーの下に、VLAN2に属するパケットのタグヘッダーを配置します。パケットが送信されると、スイッチはデフォルトのVLAN1ヘッダーを確認し、それを削除してパケットを転送します。次のスイッチはVLAN2ヘッダーを確認し、パケットをVLAN2に配置します。こうして、パケットはVLAN2上の別のホストから送信されたかのように、レイヤー3フィルターが適用されているかどうかに関係なく、ターゲットサーバーに到達します。[ 5 ]