【入門編】 MACアドレスフラッディング攻撃(MAC Table Overflow Attack)のメカニズムとスイッチの挙動 – インフラ・物理&L2/L3ネットワーク基礎実践ガイド

こんにちは!インフラエンジニアの皆さん、そして日々のネットワークの仕組みにワクワクしている学習者の皆さん。

今回は、スイッチングハブの心臓部である「MACアドステーブル」をねじ伏せる、ちょっと物騒だけどネットワークの基礎を知る上で絶対に避けて通れないテーマ「MACアドレスフラッディング攻撃(MAC Table Overflow Attack)」について、現場の生々しい挙動を交えながら、とことん分かりやすく紐解いていきたいと思います。

教科書の文字面を追うだけでは見えてこない、パケットたちのドラマを一緒に覗いてみましょう!

—

1. スイッチは、どうやって賢く手紙を届けているの?

まず、私たちが普段何気なく使っているL2スイッチ(レイヤー2スイッチ)が、どうやって通信をさばいているのかをおさらいしておきましょう。

ネットワークの世界を「郵便配達」に例えてみます。
L2スイッチは、優秀な郵便局の仕分け人だと思ってください。彼の手元には「MACアドステーブル」という名の「住所録(名簿)」があります。

  • 「あ、ポート1から『A』くんの顔が見えたから、住所録の『ポート1=Aくん』とメモしておこう」
  • 「今度はポート3から『B』くん宛ての手紙が来たぞ。宛先は『C』くんだな。住所録を見ると…『Cくんはポート5だ!』。じゃあ、ポート5だけに手紙をスッと渡そう」

このように、スイッチは通信のたびに相手のMACアドレス(個別の識別番号)を学習し、宛先の端末がつながっているポートだけにピンポイントでデータを転送します。これをユニキャスト転送と呼び、無駄な通信がネットワーク全体に流れなくて済む、非常にスマートな仕組みです。

—

2. MACアドレスフラッディング攻撃とは何か?

一見、隙のないこの優秀な仕組みですが、ここに一つだけ「物理的な弱点(限界)」が存在します。

そう、人間の記憶力と同じように、スイッチの住所録(MACアドステーブル)にも「記憶できる最大数(キャパシティ)」があるのです。一般的な企業向けスイッチでも、数千から数万件程度のエントリしか保存できません。

攻撃者はこの弱点を突いてきます。
専用のツール(例えば macof など)を悪用し、「存在しないランダムなMACアドレス」を持った偽物のパケットを、1秒間に何千、何万という猛スピードでスイッチに送りつけるのです。

これが、MACアドレスフラッディング攻撃です。

郵便局がパニックに陥る瞬間

これを郵便局の例えに戻してみましょう。
悪意ある人物が、毎日何万通もの「宛先がデタラメな偽名の手紙」を窓口に山のように持ち込んだとします。

1. 窓口の仕分け人(スイッチ)は、ルール通り「おっ、新しい名前だ! 住所録に書かなきゃ!」とメモを始めます。
2. しかし、次から次へと無限に知らない名前がやってきます。
3. ついに住所録のメモ用紙がパンク(容量オーバー)してしまいました!

パンクした瞬間、スイッチはどうなるでしょうか?
「もう新しい住所をメモするスペースがない……! 誰がどこにいるか分からない!」と、脳がフリーズしてしまいます。

—

3. スイッチが「ハブ」に堕ちる瞬間(フェイルオープン挙動)

住所録が満杯になって新しいMACアドレスを覚えられなくなったスイッチは、セキュリティ上の安全装置(あるいは仕様上の限界)として、フェイルオープン(Fail-Open)という動作モードに切り替わります。

これはどういうことかと言うと、
「宛先がどこにいるか分からないなら、とりあえず繋がっている全部のポートに同じ手紙をばら撒いちゃえ!」
という挙動です。これぞまさに、昔懐かしい「リピータハブ」と同じ動作(フラッディング)への強制劣化です。

スイッチがハブと同じ状態になってしまうと、何が起きるでしょうか?
本来ならAさんとBさんのプライベートな会話(通信)は、他のCさんには見えないはずです。しかし、スイッチが全ポートにデータをばら撒くようになった結果、ネットワーク上に流れるすべての通信が、攻撃者のパソコンから丸見えになってしまいます。

攻撃者はこの隙を突き、流れてくるパケットからパスワードや機密データを盗み見たり(盗聴)、通信を改ざんする中間者攻撃(MiTM攻撃)へとステップアップしていくのです。これがこの攻撃の恐ろしい目的なのですね。

—

4. 現場でどう守る? 鉄壁の防御策(ポートセキュリティ)

「じゃあ、スイッチがハブに格下げされるのを指をくすばって見ているしかないの?」
いいえ、もちろんそんなことはありません!ネットワークエンジニアには、しっかりとした対抗手段が用意されています。

その代表格が、Ciscoなどのスイッチで一般的に使われる「ポートセキュリティ(Port Security)」機能です。

実務で使える! Ciscoスイッチの設定サンプル

それでは、不正なMACアドレスの氾濫からスイッチを守るための具体的なコンフィグを見てみましょう。実務でそのまま参考にできるように、日本語で丁寧にコメントを添えておきます。

! 1. 対象のアクセスポート(端末が接続するインターフェース)コンフィグモードに入ります
Switch(config)# interface FastEthernet 0/1

! 2. ポートセキュリティ機能を有効化します
Switch(config-if)# switchport port-security

! 3. このポートに学習させるMACアドレスの最大数を「2個」に制限します
!    (通常は自端末の物理MACと、仮想環境などの予備用として少し持たせる程度にします)
Switch(config-if)# switchport port-security maximum 2

! 4. MACアドレスの学習方法を「Sticky(スタティック学習)」にします
!    最初に接続された機器のMACアドレスを自動的に記憶し、設定ファイルに書き込みます
Switch(config-if)# switchport port-security mac-address sticky

! 5. 違反(最大数を超えるMACアドレスの検知)があった場合の動作を「shutdown」にします
!    攻撃や不正な機器の接続を検知した瞬間、このポート自体を自動的に遮断(ダウン)させます
Switch(config-if)# switchport port-security violation shutdown

この設定のポイント

  • maximum 2 と制限をかけることで、攻撃ツールがいくら何万もの偽装MACアドレスを送り込んできても、「おいおい、このポートはもう2個までしか覚えられないよ!」とスイッチが涼しい顔で弾き返してくれます。
  • さらに violation shutdown を設定しておけば、不正な攻撃を検知した瞬間にそのポートを自動でシャットダウンし、ネットワーク全体への被害の拡大を未然に食い止めることができます。まさに網にかかった害虫を隔離するような、非常に頼もしい機能ですね。

—

まとめ

今回は、MACアドレスフラッディング攻撃のメカニズムと、スイッチの裏側の挙動について解説しました。

  • スイッチの住所録(MACアドステーブル)には容量の限界がある。
  • 攻撃者は偽装MACを大量に送りつけてテーブルをパンクさせる。
  • パンクしたスイッチはハブ同然になり、通信が全ポートにばら撒かれて盗聴の危険が生じる。
  • 対策として「ポートセキュリティ」を有効化し、学習数制限と違反時のポート遮断を設定する。

ネットワークの基礎を学ぶことは、こうした「目に見えない脅威」に対して、どのように盾を構えるべきかを知る旅でもあります。ぜひ、実際の機器やシミュレータ(Cisco Packet Tracerなど)でも挙動を試してみてくださいね。

それでは、次回のインフラ解説もお楽しみに!

コメント

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