スイッチの「知性」を奪うな:MACアドレステーブル飽和攻撃(CAMオーバーフロー)の深淵
ネットワークエンジニアにとって、スイッチの MACアドレステーブル(CAMテーブル) は、レイヤー2通信の心臓部だ。しかし、この高速なスイッチングという「知性」は、脆弱性と紙一重であることを忘れてはならない。今回は、古くて新しい脅威、MACアドレステーブル飽和攻撃(CAMオーバーフロー)について、そのパケットレベルの挙動から防御の勘所まで、現場の視点で切り込んでいこう。
1. なぜスイッチは「ハブ」に成り下がるのか
スイッチがL2フレームを転送する際、宛先MACアドレスを自身のCAMテーブルで引き、該当するポートへ転送する。これがスイッチングの基本だ。しかし、攻撃者がランダムなソースMACアドレスを持つフレームを秒間数万パケット送り込んできたらどうなるか。
CAMテーブルの容量は物理的なメモリ(ASIC上のSRAMなど)で制限されている。テーブルが溢れた瞬間、スイッチは「どこに送ればいいか分からない」という状態に陥る。この時、スイッチは受信したフレームを自身に接続されたすべてのポートへ転送(Unknown Unicast Flooding)し始める。
つまり、スイッチは一瞬にして「ただのバカハブ」へと退化する。攻撃者はこの挙動を利用して、本来スイッチで隔離されているはずのパケットを盗聴(スニフィング)する環境を強制的に作り出すのだ。
2. インフラの守護神:Port Securityの真髄
この攻撃を防ぐための最も直感的かつ強力な防御策は、Cisco等で実装されている Port Security だ。単に「MACアドレスを制限する」と考えると甘い。パケットレベルの制御を意識する必要がある。
ポートセキュリティの推奨設定(Cisco IOS例)
interface GigabitEthernet0/1
# セキュリティ違反時にポートを即座にシャットダウンし、ログを吐かせる
switchport port-security violation shutdown
# 静的MACアドレスの登録に加え、動的に学習可能な最大数を厳格に制限する
switchport port-security maximum 2
# 接続されたデバイスのMACアドレスをスティッキー学習させる(NVRAMに保存)
switchport port-security mac-address sticky
# 違反を検知した際のSNMPトラップを有効化し、NMSで即時検知する
snmp-server enable traps port-security
ここで重要なのは、violation shutdown の選択だ。restrict(パケット破棄+ログ)という選択肢もあるが、ログが埋もれてしまうような大規模攻撃環境では、物理ポートを物理的に閉じる shutdown が最も確実な「隔離」となる。
3. パフォーマンスの死角:トランスポート層への影響
CAMオーバーフローが発生し、ユニキャストフラッディングが始まると、ネットワーク全体のRTT(Round Trip Time)は劇的に悪化する。
- TCPバッファと再送の嵐: 不要なブロードキャストトラフィックが増大することで、帯域が飽和し、TCPのセグメントロスが多発する。これにより、TCPの
Congestion Window (CWND)が縮小し、スループットは崖を転げ落ちるように低下する。 - TLSハンドシェイクの遅延:
ClientHelloやServerHelloのパケットがフラッディングによって遅延・破棄されると、TCP再送待ちが発生し、Webサービスの初回ロード時間が数秒単位で増大する。
この状況下では、サーバー側のカーネルチューニングも無力だ。sysctl で net.ipv4.tcp_rmem をいかに最適化しても、L2層でパケットが迷子になっていては手も足も出ない。
4. 実践的防御:L2/L3の防壁を二重化する
単一の防御策に依存するのは危険だ。以下の階層的な防御を設計に組み込むことを強く推奨する。
1. DHCP Snoopingの併用:
不正なDHCPサーバーからの応答を防ぐためだけでなく、DHCP Snooping を有効にすると、送信元MACアドレスとポートの対応関係をスイッチが正しく追跡するようになる。これを Dynamic ARP Inspection (DAI) と組み合わせることで、ARP SpoofingとCAMオーバーフローの両面をケアできる。
2. VLANの細分化:
ブロードキャストドメインを小さく保つことは、依然としてセキュリティの基本だ。影響範囲を特定のVLAN内に封じ込め、被害を局所化せよ。
3. レートリミット(Storm Control):
# 物理インターフェースでのブロードキャスト・マルチキャストパケットの抑制
interface GigabitEthernet0/1
storm-control broadcast level bps 1000000 # 1Mbpsを超えたら制限
最後に:アーキテクトとしての矜持
CAMオーバーフローのような古典的な攻撃が、なぜ今もなお脅威なのか。それは、多くのエンジニアが「スイッチは魔法の箱であり、パケットは正しく届くものだ」という性善説に依存しているからだ。
ネットワークプロトコルは、パケットが信頼できない世界を渡り歩くことを前提に設計されている。MACアドレス というL2の識別子が、いかに脆い基盤の上で動いているかを理解すること。それこそが、堅牢なインフラを構築するアーキテクトの最初の一歩である。
パケットがNICを叩くその一瞬まで、我々には「防御の責任」がある。次は、802.1X を用いた認証済みデバイス以外を徹底排除する、よりセキュアなアクセスレイヤー設計について深く掘り下げてみたい。
コメント