ネットワークのセキュリティ対策を考えるうえで、見落とされがちな脅威のひとつが「不正なDHCPサーバー」による攻撃です。
ネットワーク内に不正なDHCPサーバーが接続されると、クライアント端末が誤ったIPアドレスや偽のゲートウェイ情報を受け取り、通信内容が盗み見られるリスクが生じます。
この脅威を防ぐために有効な技術がDHCPスヌーピングです。
本記事では、DHCPスヌーピングの意味・仕組み・信頼ポートの設定方法・セキュリティ効果までをわかりやすく解説します。
ネットワークセキュリティを強化したい方や、スイッチの設定を担当する方にとって役立つ内容となっているでしょう。
DHCPスヌーピングとは不正なDHCPサーバーからの応答をブロックするセキュリティ機能のこと
それではまず、DHCPスヌーピングの基本的な意味と役割について解説していきます。
DHCPスヌーピングとは、スイッチ上でDHCPパケットを監視・フィルタリングすることで、不正なDHCPサーバーからの応答をブロックするセキュリティ機能のことです。
「スヌーピング(snooping)」は英語で「こっそり調べる・盗み見る」を意味し、スイッチがDHCPの通信内容を監視することに由来しています。
DHCPスヌーピングはスイッチのポートを「信頼ポート(Trusted Port)」と「非信頼ポート(Untrusted Port)」に分類し、信頼ポートからのDHCP応答のみを転送し、非信頼ポートからのDHCP応答はすべてブロックします。
この仕組みにより、不正なDHCPサーバーが接続されていても、その応答がクライアントに届かないようにできるのです。
DHCPスヌーピングのイメージ:
スイッチが「正規のDHCPサーバーが接続されているポートからの応答だけを通す門番」として機能します。
信頼できるポートからの応答は通過させ、信頼できないポートからのDHCP応答はすべて遮断することで、不正サーバーの脅威からネットワークを守ります。
DHCPスヌーピングが必要とされる背景
DHCPは、ネットワークに接続した端末が最初に応答したDHCPサーバーのOfferを受け入れる仕組みになっています。
この特性を悪用すると、攻撃者が不正なDHCPサーバーを接続し、正規サーバーより先にOfferを送信することで、クライアントに偽の設定情報を配布できてしまいます。
偽のデフォルトゲートウェイを設定されたクライアントは、すべての通信が攻撃者の機器を経由するため、通信内容が盗み見られる中間者攻撃(MITM攻撃)の被害を受けます。
こうした脅威に対抗するために、DHCPスヌーピングが重要なセキュリティ対策として位置づけられています。
DHCPスヌーピングが動作する仕組み
DHCPスヌーピングは、スイッチがDHCPパケットを受信するたびに以下の判断を行います。
| 受信ポートの種類 | DHCPメッセージの種類 | スヌーピングの動作 |
|---|---|---|
| 信頼ポート | すべてのDHCPメッセージ | 転送を許可 |
| 非信頼ポート | DHCP Discover・Request(クライアントからの要求) | 転送を許可 |
| 非信頼ポート | DHCP Offer・ACK(サーバーからの応答) | 転送をブロック |
クライアントからの要求メッセージ(Discover・Request)は非信頼ポートからでも転送されますが、サーバーからの応答メッセージ(Offer・ACK)は信頼ポートからのものしか転送されません。
この非対称なフィルタリングにより、不正サーバーからの応答を確実にブロックできるのです。
DHCPスヌーピングバインディングテーブルの役割
DHCPスヌーピングが有効なスイッチは、正規のDHCPサーバーから配布されたIPアドレスの割り当て情報を「バインディングテーブル」として記録します。
バインディングテーブルには「MACアドレス・IPアドレス・リース期間・VLANとポート情報」が記録され、この情報をもとに後述するIPソースガードやDAIなどのセキュリティ機能と連携できます。
バインディングテーブルはネットワークの信頼できる状態を記録した台帳として機能し、不正な通信の検出に活用されます。
信頼ポートと非信頼ポートの設定:DHCPスヌーピングの核心
続いては、DHCPスヌーピングの核心となる信頼ポートと非信頼ポートの概念と設定方法について確認していきます。
DHCPスヌーピングを正しく機能させるためには、スイッチの各ポートを信頼ポートと非信頼ポートに正確に分類することが最も重要です。
分類を誤ると、正規のDHCPサーバーの応答がブロックされたり、不正サーバーの応答が通過してしまったりするリスクがあります。
信頼ポート(Trusted Port)の概念
信頼ポートとは、正規のDHCPサーバーが接続されているポート、またはDHCPリレーエージェントが接続されているポートのことです。
信頼ポートに設定されたポートからは、DHCP Offer・ACKなどのサーバーからの応答メッセージが転送されます。
信頼ポートに設定すべき主な接続先は以下の通りです。
信頼ポートに設定すべき接続先:
・正規のDHCPサーバーが直接接続されているポート
・上位スイッチ(DHCPサーバーへの経路となるスイッチ)への接続ポート
・DHCPリレーエージェントが接続されているポート
・ルーターのインターフェースが接続されているポート
信頼ポートの設定は必要最小限のポートに留めることが、セキュリティ上の原則です。
非信頼ポート(Untrusted Port)の概念
非信頼ポートとは、クライアント端末が接続されているポートのことです。
DHCPスヌーピングを有効にした場合、デフォルトではすべてのポートが非信頼ポートとして扱われます。
非信頼ポートからはDHCPのクライアント側メッセージ(Discover・Request)の転送は許可されますが、サーバー側メッセージ(Offer・ACK)の転送はブロックされます。
クライアント端末が接続されているポートはすべて非信頼ポートとして設定することで、エンドユーザーの端末から不正なDHCPサーバーを動かしても応答が届かない状態になります。
信頼ポート・非信頼ポートの設定ミスが引き起こす問題
信頼ポートと非信頼ポートの設定を誤ると、深刻な問題が発生する可能性があります。
| 設定ミスの内容 | 発生する問題 |
|---|---|
| 正規DHCPサーバーのポートを非信頼に設定 | クライアントがIPアドレスを取得できなくなる |
| クライアントポートを信頼に設定 | 不正DHCPサーバーの応答がブロックされなくなる |
| 上位スイッチへのポートを非信頼に設定 | 別セグメントのDHCPサーバーから応答が届かなくなる |
設定前にネットワーク構成図を確認し、どのポートに何が接続されているかを正確に把握したうえで設定を行うことが重要です。
DHCPスヌーピングのセキュリティ効果と連携機能
続いては、DHCPスヌーピングが発揮するセキュリティ効果と、他のセキュリティ機能との連携について確認していきます。
DHCPスヌーピングは単独でも強力なセキュリティ効果を発揮しますが、他のセキュリティ機能と組み合わせることでさらに効果が高まります。
DHCPスヌーピングが防ぐ主な攻撃
DHCPスヌーピングによって防ぐことができる主な攻撃は以下の通りです。
| 攻撃の種類 | 内容 | スヌーピングの効果 |
|---|---|---|
| Rogue DHCPサーバー攻撃 | 不正DHCPサーバーによる偽設定情報の配布 | 非信頼ポートからのOfferをブロック |
| MITM攻撃(中間者攻撃) | 偽ゲートウェイ経由で通信を盗聴 | 偽ゲートウェイ情報の配布を防止 |
| DHCPスターベーション攻撃 | 大量の偽MACアドレスでIPアドレスを枯渇させる | バインディングテーブルと組み合わせて異常検出 |
特にMITM攻撃は気づかれにくく被害が大きいため、DHCPスヌーピングによる予防的な対策が非常に重要です。
IPソースガードとの連携
IPソースガード(IP Source Guard)は、DHCPスヌーピングのバインディングテーブルを活用して、正規のIPアドレスとMACアドレスの組み合わせからのパケットのみを転送する機能です。
バインディングテーブルに登録されていないIPアドレスからのパケットはドロップされるため、IPアドレスの偽装(なりすまし)を効果的に防げます。
DHCPスヌーピングとIPソースガードを組み合わせることで、IPアドレスとポートの組み合わせレベルで厳密な通信制御が実現します。
DAI(Dynamic ARP Inspection)との連携
DAI(Dynamic ARP Inspection)は、DHCPスヌーピングのバインディングテーブルをもとに、ARPパケットの正当性を検証するセキュリティ機能です。
ARPスプーフィング攻撃(偽のARP応答を使ってMACアドレスを偽装する攻撃)を防ぐことができます。
DHCPスヌーピングを中心としたセキュリティ連携の全体像:
・DHCPスヌーピング:不正DHCPサーバーの応答をブロックし、バインディングテーブルを構築
・IPソースガード:バインディングテーブルをもとにIPなりすましを防止
・DAI:バインディングテーブルをもとにARPスプーフィングを防止
3つの機能を組み合わせることで、レイヤー2ネットワークの包括的なセキュリティ対策が実現します。
DHCPスヌーピングの設定時の注意点とトラブルシューティング
続いては、DHCPスヌーピングを設定する際の注意点とよくあるトラブルの対処法について確認していきます。
DHCPスヌーピングは設定を誤ると、正規のDHCP通信がブロックされてネットワーク障害が発生する可能性があります。
設定前の準備と設定後の確認手順を把握しておくことが、安全な導入のポイントです。
DHCPスヌーピング設定前に確認すべきこと
DHCPスヌーピングを設定する前に、以下の点を必ず確認しておきましょう。
設定前の確認チェックリスト:
①ネットワーク構成図を確認し、正規DHCPサーバーの接続ポートを特定する
②DHCPリレーエージェントが使用されている場合は、そのポートも信頼ポートに設定が必要なことを確認する
③スタック構成や複数スイッチ環境では、スイッチ間接続ポートも信頼ポートに設定が必要なことを確認する
④設定変更前にコンフィグのバックアップを取得する
特にスイッチ間の接続ポート(アップリンクポート)を非信頼ポートのままにしてしまうミスが多いため、注意が必要です。
DHCPスヌーピング有効後にIPアドレスが取得できない場合
DHCPスヌーピングを有効化した後にクライアントがIPアドレスを取得できなくなった場合、まず信頼ポートの設定が正しいかを確認します。
正規DHCPサーバーへの経路となるすべてのポートが信頼ポートに設定されているかを確認し、漏れがあれば信頼ポートに追加することで解決するケースがほとんどです。
また、option82が有効な環境でリレーエージェントとDHCPサーバーの設定が合っていない場合も、IPアドレスの取得に失敗することがあります。
DHCPスヌーピング導入後の運用管理のポイント
DHCPスヌーピングを導入した後も、定期的な運用管理が重要です。
バインディングテーブルの内容を定期的に確認し、不審なエントリが追加されていないかを監視することがセキュリティ維持につながります。
スイッチの再起動時にバインディングテーブルが消失するケースがあるため、テーブルの永続化設定(フラッシュへの保存)を行っておくことも重要な運用上のポイントです。
まとめ
本記事では、DHCPスヌーピングの意味・仕組み・信頼ポートと非信頼ポートの設定・セキュリティ効果・運用上の注意点について解説しました。
DHCPスヌーピングとは、スイッチ上でDHCPパケットを監視し不正なDHCPサーバーからの応答をブロックするセキュリティ機能のことです。
信頼ポートと非信頼ポートを正確に設定することが、DHCPスヌーピングを正しく機能させるための最重要ポイントです。
IPソースガードやDAIと組み合わせることで、レイヤー2ネットワークの包括的なセキュリティ対策が実現できます。
ネットワークセキュリティを強化したい環境では、DHCPスヌーピングの導入を積極的に検討してみましょう。