DHCPスプーフィングとは

DHCPスプーフィングとは、攻撃者がDHCPサーバを偽装して、DHCPクライアントが送信するパケットを不正に取得する攻撃です。DHCPクライアントから何かデータを送信すると、本来の宛先との間に攻撃者が介在してしまう中間者攻撃(man-in-the-middle-attack)の一種です。

スプーフィングは「だます」「なりすます」という意味の「spoofing」という英単語をカタカナ表記しているものです。

DHCPスプーフィングの仕組み

DHCPスプーフィングによって、攻撃者がDHCPクライアントのデータを不正に取得する仕組みを解説します。

  1. 攻撃者は不正なDHCPサーバをネットワークに接続する
  2. DHCPクライアントからのDHCPDISCOVERに応答してDHCPOFFERを返す
  3. DHCPクライアントからのデータを取得し、正規のデフォルトゲートウェイへ転送する

攻撃者は不正なDHCPサーバをネットワークに接続する

DHCPスプーフィング攻撃を成功させるために、攻撃者はまず不正なDHCPサーバをネットワークに接続します。不正なDHCPサーバのDHCPプールには、割り当てるIPアドレスやサブネットマスクは、本来のあるべきものを設定しておきます。ただ、デフォルトゲートウェイを自身のIPアドレスとします。

図 DHCPスプーフィング 不正なDHCPサーバの接続
図 DHCPスプーフィング 不正なDHCPサーバの接続

DHCPクライアントからのDHCPDISCOVERに応答してDHCPOFFERを返す

DHCPクライアントからDHCPDISCOVERを受信すると、DHCPOFFERを返します。IPアドレス/サブネットマスクは正しいものですが、デフォルトゲートウェイを不正なDHCPサーバとしています。

DHCPクライアントは、不正なDHCPサーバからのDHCPOFFERと正規のDHCPサーバからのDHCPOFFERの両方を受信する可能性があります。ほとんどのDHCPクライアントは、先に受信したDHCPOFFERを採用します。

不正なDHCPサーバからのDHCPOFFERに基づいて、DHCPクライアントのTCP/IP設定が行われると中間者攻撃が成立してしまうことになります。

図 DHCPスプーフィング 不正なDHCPサーバがデフォルトゲートウェイになる
図 DHCPスプーフィング 不正なDHCPサーバがデフォルトゲートウェイになる

DHCPクライアントからのデータを取得し正規のデフォルトゲートウェイへ転送する

DHCPクライアントは、他のネットワークへデータを送信するときには、デフォルトゲートウェイに転送します。不正なDHCPサーバから配布されたDHCPクライアントのデフォルトゲートウェイは、不正なDHCPサーバになってしまっています。そのため、データは不正なDHCPサーバへ転送されてしまいます。このとき、DHCPクライアントからのデータを取得できます。

そして、不正なDHCPサーバは、DHCPクライアントからのデータを正規のデフォルトゲートウェイへ転送します。DHCPクライアントのデータは正規のデフォルトゲートウェイから目的の宛先まで転送されるので、DHCPクライアントは間に不正なDCHPサーバが介在してしまっていることに気が付きにくくなってしまいます。

図 DHCPスプーフィング 攻撃者に不正にデータを取得される
図 DHCPスプーフィング 攻撃者に不正にデータを取得される
通信は双方向なので、攻撃者はDHCPクライアントに戻ってくるデータも不正なDHCPサーバ経由にしないといけません。不正なDHCPサーバはIPスプーフィング、ARPスプーフィングも行います。

DHCPスプーフィングの対策

DHCPスプーフィングの対策として、以下が挙げられます。

  • ネットワークに接続する際の認証
  • DHCPスヌーピング

そもそも攻撃者が不正なDHCPサーバをネットワークに接続できなければ、DHCPスプーフィングは成立しません。ネットワークに接続するときに認証を行うことが重要です。レイヤ2スイッチでポートセキュリティやIEEE802.1Xの認証を行います。

認証をしっかりと行えば、DHCPスプーフィングは対策できます。もし、認証が突破されてしまって不正なDHCPサーバが接続されてしまった場合でも、DHCPスヌーピングによって不正なDHCPサーバからのDHCPOFFERをブロックして防止できます。


DHCPスヌーピングについて、以下の記事をご覧ください。


セキュリティの基礎