こんにちは!ネットワークの世界へようこそ。インフラアーキテクトの私です。
日頃、何気なく使っているインターネットや社内LANですが、スイッチングハブという機器が「誰にどのデータを届けたらいいか」を瞬時に判断してくれているおかげで、ネットワークはスムーズに保たれています。
でも、このスイッチの頭脳、実はちょっとした「うっかり屋さん」の一面があるんです。今回は、その弱点を突いた少し物騒なサイバー攻撃「MACフラッディング攻撃」と、スイッチの頭脳である「MACアドレステーブル(CAMテーブル)溢れ」のメカニズムについて、郵便配達の例えを交えながら、一緒に優しく紐解いていきましょう!
—
1. スイッチは超優秀な「宛先メモ帳」を持っている
まず、スイッチという機械が普段どうやって動いているかを知るために、身近な例えからスタートしましょう。
みなさんのオフィスに、大量の机(端末)が並んでいる大きな部屋があると想像してください。そこへ毎日、たくさんの手紙(データ)が届きます。
郵便配達員(スイッチ)は、手紙の宛先を見て「あ、これ田中さん宛てだね。3番の机にポイッ」と配るわけです。
でも、新入社員の田中さんが入ってきたばかりの頃、郵便配達員は「田中さんの机ってどこだっけ?」と分かりませんよね。
そんなとき、配達員はどうするでしょうか?
1. とりあえず全員に配ってみる(フラッディング):「この手紙、誰宛てですかー?」と部屋全体に大声で叫びます。
2. 覚える(学習):「あ、私宛てです!」と田中さんが手を挙げたら、「なるほど、田中さんは3番の机にいるんだな」と自分のメモ帳に書き留めます。
この「誰がどこにいるか」をメモしたノートが、ネットワークの世界でいう「MACアドレステーブル(CAMテーブル)」です。スイッチはこのメモ帳があるおかげで、2回目からは大声で叫ばずとも、田中さんの机へ一直線に手紙を届けられるのです。効率的ですよね!
—
2. メモ帳がパンクする!?MACフラッディングの恐怖
一見、万能に見えるこのメモ帳ですが、実は「ページ数に限りがある」という致命的な弱点があります。
一般的なスイッチのメモ帳には、数千件から数万件程度しか書くスペースがありません。
ここに目をつけたのが悪意ある攻撃者です。攻撃者は、次のようなずる賢い作戦を実行します。
1. 特殊なツールを使って、存在しないものを含めた「ウソの差出人名前(偽装MACアドレス)」が書かれた手紙を、一秒間に何万通もスイッチに送りつけます。
2. スイッチの郵便配達員は真面目なので、手紙が来るたびに「えっと、新しい人が来たぞ…メモメモ……」と、メモ帳に必死で書き込み続けます。
3. すぐにメモ帳のページが真っ黒になり、限界(オーバーフロー)を迎えてしまいます。
これが「MACアドレステーブル溢れ」です。
そして、メモ帳がパンクして新しい書き込みができなくなると、スイッチはパニックに陥ります。「もうどこに誰がいるか分からないよ!」と、最初の頃のように「誰宛てかわからないから、とりあえず全員の机に配っちゃえ!」と、すべての手紙を部屋中にバラ撒く(ハブ化)ようになってしまうのです。これが「MACフラッディング攻撃」の正体です。
本来なら特定の2人の間でやり取りされる機密データ(パスワードや重要なファイルなど)が、部屋中にペタペタと貼り出されてしまい、攻撃者に盗み見(スニッフィング)し放題になってしまうというわけですね。
—
3. 現場でどう防ぐ?Ciscoスイッチの鉄壁の対策
「じゃあ、スイッチの頭脳がパンクさせられたらおしまいじゃないか!」と不安になりますよね。安心してください、現場のネットワークエンジニアはちゃんと対策を持っています。
最も効果的で、今日の企業ネットワークの基本となっているのが「ポートセキュリティ(Port Security)」という機能です。
これは、「1つのポート(ジャック)から覚えていい顔ぶれ(MACアドレス)は、せいぜい2〜3個までね!」とスイッチにあらかじめお巡りさんを配置しておくような設定です。
例えば、CiscoのL2スイッチでこれを設定する場合、以下のようなコマンドを書き込みます。
! 1. 対象のインターフェース(ここでは FastEthernet 0/1)を選択します
Switch(config)# interface FastEthernet 0/1
! 2. ポートセキュリティ機能を有効化します
Switch(config-if)# switchport port-security
! 3. このポートに接続していいMACアドレスの最大数を「2個」に制限します
! (これで何万個もの偽装アドレスを送りつけられてもシャットアウトできます!)
Switch(config-if)# switchport port-security maximum 2
! 4. 万が一、制限を破って知らないMACアドレスから通信があった場合の動作を指定します
! (ここでは、セキュリティ違反としてポート自体を即座にシャットダウンさせます)
Switch(config-if)# switchport port-security violation shutdown
この設定を入れておけば、万が一誰かが偽装MACアドレスを大量に送り込んできても、スイッチは「おいおい、ルール違反だぞ!」と即座にそのポートをピシャリと閉ざし(shutdown)、ネットワーク全体の安全を守ってくれます。まさに現場の守護神ですね。
—
まとめ
いかがでしたでしょうか?
一見すると難解な「MACフラッディング」や「CAMテーブルの枯渇」も、郵便配達員とメモ帳の例えで見てみると、なぜそれが脅威になり、どうやって防げばいいのかがスッと頭に入ってきたのではないでしょうか。
ネットワークの基礎は、こうした「ルールの隙をつく攻撃」と「それをいなすエンジニアの知恵」の歴史の積み重ねです。ぜひ、実際の機器やシミュレータ(Cisco Packet Tracerなど)を触る機会があれば、ポートセキュリティの設定なども試してみてくださいね。
それでは、また次回の深淵なネットワークの世界でお会いしましょう!
コメント