DHCPスヌーピング

スヌーピー!?おかわわわわ!?と思って概要を調べた。

ネットワークを全く知らない人にどうやったらスヌーピーのことを伝えられるか、と思って歩きながら考えたポエム。

全編たとえ話なので、正しいかどうかは全く保証しません。

DHCPスヌーピングの立ち位置としては、「1.DHCPプロトコルの穴を突いて2.不正にネットワークに潜り込もうとする人に対する3.防御策」なので、順を追って説明することにします。(番号が対応します)

  1. DHCPプロトコル とは
  2. DHCPスプーフィング(なりすまし)
  3. DHCPスヌーピング

DHCP (Dynamic Host Configuration Protocol)

DHCPとは、ネットワーク内のIPアドレスの分配を簡便に管理するプロトコルである。 ネットワークに新しいデバイスが接続されると、DHCPサーバーが空いているIPアドレスを自動で割り振ってくれる。家庭内ではルータがこの役割を果たすことが多い。

ざっくり以下のような感じ。 あなた(新規デバイス)は新しい街に越してきて、各種手続きのために市役所(ネットワーク)に訪れたとする。

  1. 役所に来たら、まずあなたは「新しく越してきました!転入手続きをしたいですが窓口がわかりません!助けてください!」と叫ぶ (DHCP DISCOVER, ブロードキャスト)
  2. 受付の人がやってきて、「受付番号(貸出IP)を取ってきました。これでいいですか?」と話しかけてくれる (DHCP OFFER, ユニキャスト)
  3. あなたは、「この受付番号でOKです!」と叫ぶ(DHCP REQUEST, ブロードキャスト)
  4. 受付の人が、市役所のフロアマップ、窓口への行き方を教えてくれる (DHCP ACKNOWLEDGEMENT, ユニキャスト)

DHCP spoofing

DHCP spoofing (なりすまし)とは、ネットワーク内に存在する悪意のあるデバイスが、新規デバイスDHCP DISCOVERに対して偽の応答を返し、新規デバイスのIP通信のconfigを都合良く設定してしまう手法である。例えば新規デバイスデフォルトゲートウェイを悪意あるデバイスに設定することで、新規デバイスの通信は必ず悪意あるデバイスを一度経由することになり、通信が盗聴される、といったケースが考えられる。

上の例に倣うと、

  1. 役所に来たら、まずあなたは「助けてください!」と叫ぶ
  2. 正規の受付の人が来る前に不審者がやってきて、「君が行こうとしてる窓口はあっちだよ」と誘導する
  3. 誘導された窓口では市役所の人間ではない不審者が待ち構えている。

みたいな感じだろうか。

DHCP snooping

上記のDHCP spoofingを防ぐために、ルータには「DHCP通信を監視し、信頼できるポートからのDHCP応答のみルータの通過を許可する」機能がついている。これがDHCP snoopingと呼ばれる機能である。(snoopingは"嗅ぎまわる"という意味)

さらに上の例に倣うと、

  • 受付の近くでスヌーピーがうろうろしている
  • スヌーピーが認めた受付の人が新入りを案内することに対しては何も言わない
  • スヌーピーが認めていない人が新入りを案内しようとすると、案内をやめさせる

という感じ。

まとめ

無理に例えると余計わかりにくい。正しい説明はいつか書きます。