DHCPスヌーピングとは ― 不正DHCPサーバ対策
DHCP
DHCPスヌーピングとは、不正なDHCPサーバの応答をポートの時点で破棄する機能
DHCPスヌーピングは、スイッチの各ポートを信頼ポートと非信頼ポートに分け、不正なDHCPサーバの応答を止める機能です。DHCPサーバからの応答は、信頼ポートからだけ通します。非信頼ポートから来た同じ応答は、ポートの時点で破棄します。
偽のDHCPサーバがLANにいると、端末は攻撃者の決めたゲートウェイへ通信を送ってしまいます。スヌーピングで集めた情報は、ARPスプーフィングを防ぐ機能にも使います。
DHCPスヌーピングは何を防ぐ機能か
DHCPの記事で説明したDORAのやり取りには、応答してきた相手が正規のDHCPサーバかどうかを確かめる仕組みがありません。端末は、届いたOFFERの送り主が正規のサーバかどうかを区別できません。
攻撃者が用意した不正なDHCPサーバを同じLANにつなぐと、端末がそちらのOFFERを選んでしまうことがあります。攻撃者は、デフォルトゲートウェイやDNSサーバのIPアドレスを、自分の用意した値に書き換えて配れます。端末の通信は、知らないうちに攻撃者を経由するようになります。
もう1つの攻撃がDHCP枯渇攻撃です。攻撃者は、偽のMACアドレスを次々に変えながら、大量のDISCOVERを送り続けます。正規のDHCPサーバは、それぞれに応じてIPアドレスを割り当てようとします。やがてアドレスプールを使い果たし、正規の端末に配るIPアドレスが無くなります。
信頼ポートと非信頼ポート
DHCPスヌーピングを有効にすると、すべてのポートは既定で非信頼(untrusted)になります。管理者は、正規のDHCPサーバを接続したポートだけを、信頼ポート(trusted)に設定します。
非信頼ポートが転送できるのは、端末からサーバへ向かうDISCOVER・REQUESTなどの問い合わせだけです。サーバから端末へ向かうOFFER・ACK・NAKなどの応答が非信頼ポートに届くと、スイッチはその場で破棄します。
結果として、応答を返せるのは信頼ポートの先にある正規のDHCPサーバだけになります。攻撃者が非信頼ポートに不正なDHCPサーバをつないでも、その応答は端末に届きません。
DHCP枯渇攻撃への対策では、非信頼ポートごとにDHCPパケットの速度を制限します。Cisco公式ドキュメントは、非信頼ポートの速度制限を100パケット/秒以下にすることを推奨しています。制限を超えたポートは、エラーによる無効化状態(err-disabled)になります。ただし、制限より遅い速さで送り続ける攻撃は、速度制限だけでは止まりません。
バインディングテーブルとは
スイッチは、信頼ポートの先にある正規のDHCPサーバからDHCPACKを受け取るたびに、1件の記録を作ります。この記録の集まりをバインディングテーブルと呼びます。DHCPスヌーピングのバインディングデータベースとも呼びます。
記録されるのは、非信頼ポート側にいる端末の情報だけです。信頼ポートの先にいる端末は、記録の対象になりません。
| 項目 | 内容の |
|---|---|
| MACアドレス | ac:de:48:aa:bb:cc |
| IPアドレス(リース済み) | 192.168.10.25 |
| リース時間 | 8時間 |
| バインディングの種類 | DHCPのやり取りから学習したもの |
| VLAN番号・ポート | VLAN10 / Gi0/1 |
このテーブルは、DHCPスヌーピングだけのために使われるわけではありません。次に見るDynamic ARP InspectionとIP Source Guardは、このテーブルを参照して、別の種類の偽装を見つけます。
Dynamic ARP Inspection・IP Source Guardとの関係
ARPの記事で説明したとおり、ARPには応答の送り主が本物かどうかを確認する仕組みがありません。これを悪用する攻撃がARPスプーフィングです。
Dynamic ARP Inspection(DAI)は、非信頼ポートで受け取ったARP要求・応答を、バインディングテーブルと照合します。テーブルに記録されたIPアドレスとMACアドレスの組み合わせと一致しなければ、そのARPパケットを破棄します。信頼ポートで受け取ったARPパケットは、検査せずそのまま転送します。
Dynamic ARP Inspectionは、ダイナミックARPインスペクションとも呼びます。
バインディングテーブルを作るのはDHCPスヌーピングで、それを読み取って使うのがDAIです。DHCPスヌーピングが止めるのはDHCPの偽応答、DAIが止めるのはARPの偽応答という違いがあります。
IP Source Guardは、同じバインディングテーブルを別の目的で使います。ポートとVLANの組み合わせごとに、アクセス制御リストを作ります。このリストは、バインディングテーブルに記録されたIPアドレスだけを送信元として許可します。記録されていないIPアドレスを送信元にしたパケットは、フィルタで遮断されます。ARPではなく、IPパケットそのものの送信元を偽装する攻撃に効きます。
| 機能 | 見ている | 止める |
|---|---|---|
| DHCPスヌーピング | DHCPサーバの応答が来たポート | 不正なDHCPサーバによるなりすまし。速度制限でDHCP枯渇攻撃を抑える |
| Dynamic ARP Inspection | ARP要求・応答の送信元IP・MAC | ARPスプーフィング(ARPポイズニング) |
| IP Source Guard | IPパケットの送信元IPアドレス | 他人のIPアドレスを名乗るなりすまし |
ポートセキュリティとの役割分担
スイッチには、ポートセキュリティという別の機能もあります。ポートセキュリティが制限するのは、そのポートに接続してよいMACアドレスです。
DHCPスヌーピングが見ているのは、DHCPサーバの応答がどのポートから来たかです。このように、2つの機能は見ている対象が違います。一方の機能だけを設定しても、もう一方が防ぐ攻撃は防げません。
練習問題(全5問)
正解:すべての
すべての
正解:DHCPACK
信頼できない
正解:端末の
バインディングテーブルの
正解:DHCPスヌーピングの
DAIは、
正解:非信頼ポートで
この
選んでから「採点する」を押すと、解説つきで答え合わせができます。
関連記事
おすすめの本 PR
ネットワークを初めて学ぶ人向けの入門書です。
![『[改訂新版]3分間ネットワーク基礎講座』の表紙](https://m.media-amazon.com/images/P/4774143731.09.MZZZZZZZ.jpg)
