IPスプーフィング

IPスプーフィング（アイピースプーフィング）とは、IP通信において、送信者のIPアドレスを詐称して別のIPアドレスに「なりすまし」（英：spoofing）を行う攻撃手法を指す。ハッキング、サイバーテロ（サイバー攻撃）の一つ。より原義に近い形としてIPアドレススプーフィングと呼ぶこともある。

 概要 
IP通信において、不正アクセスを防止する観点からポリシーに基づくフィルタリングを行うケースは多く、「特定のIPアドレスからの接続のみ可能」といったアクセス制限が施されている場合がある。このようなアクセス制限が施されている状況下にあっても、送信元IPアドレスを詐称することができればアクセス制限を迂回できてしまうため、攻略対象システムへの不正アクセスを成功させる可能性が高まる。また、攻略対象システムに残されるログにも詐称されたIPアドレスが記録されるため、攻撃者が攻略対象システムの管理者による追跡を逃れられる可能性が高まる。このような観点から、不正侵入等を目的とした不正アクセスにおいてはIPスプーフィングが有用とされている。

DoS攻撃（SYN flood、Smurf attack、ping of death、ping floodなど）では、攻撃対象のサービス提供を妨害することが主目的である。このような攻撃がごく少数のIPアドレスから行なわれている場合、それらのIPアドレスからのアクセス制限を施すことが攻撃への有効な対策となる。しかし、IPスプーフィングを用いて攻撃元を詐称すると、このような対策は無効となる。また、攻撃元を詐称することで本当の攻撃元の特定が困難となり、攻略対象システムの管理者からの追跡を逃れられる可能性が高まる。

 原理 
原理上、インターネットプロトコル（IP）のパケット（IPパケット）のヘッダ部分には、送信元IPアドレスが含まれている。本来ならば（「設計上」とも言い換えできる）、このIPパケットのヘッダ部分の送信元IPアドレスには、パケット送信者自身のIPアドレスがセットされねばならない。それにより、パケットを受けた受信者は送信者IPアドレスを正しく把握することができ、そのIPアドレスに対するサービス提供の決定およびサービス提供開始を行うことができる。また、送信元IPアドレスが、サービス提供が許されていないIPアドレスやDoS攻撃を行なってくるIPアドレスであれば、アクセスを拒否することが可能となる。しかし、インターネットプロトコルの仕様上の理由から、ヘッダ部分の送信元IPアドレスは詐称が不可能ではなく、これらの事情は必ずしも絶対ではない。

インターネットに接続された環境では「WANは危険だがLAN内は比較的安全」という考えで、送信元IPアドレスがLAN内のIPアドレスであればさほど強くアクセス制限を施していないケースが見られる。このようなケースで、本来であればWANからのアクセスであるにもかかわらず、パケットのヘッダ部分の送信元IPアドレスにLAN内のIPアドレスを指定したパケットを送り込むことに成功すれば、攻略対象は接続が許可されているLANからのアクセスであると誤解し、サービスを提供してしまう可能性がある。もっとも、不正侵入等を目的とした不正アクセスでは、単純にパケットを一つ送り込むだけでは不充分である。特にTCPによる通信の場合、3ウェイ・ハンドシェイクでコネクションを確立する必要があり、TCPシーケンス番号予測攻撃などを併用してTCPセッションの確立を装う必要がある。（UDPはコネクションレス型の通信なのでコネクションの確立は不要である。）

DoS攻撃においてはセッション確立といった困難な事情はないため、単純に攻撃元を詐称したパケットを用いるだけで、アクセス元を特定することやアクセス制限の対象となるアクセス元を決定することは困難となる。

 対策 
不正侵入等を目的とした不正アクセスにおいてはTCPセッションの確立がほぼ必須となるため、TCPシーケンス番号予測攻撃への対策を施すという手がある。昨今のシステムであればRFC1948RFC1948 - シーケンス番号予測攻撃からの防御（原題はDefending Against Sequence Number Attacks）で示された対策はほぼ施されていると考えられる。古いシステムであれば、IPSec等の暗号化されたプロトコルを使用するという方法がある。このような事情から、最近の対策は不正侵入等を目的とした不正アクセスよりも、DoS攻撃に主眼が置かれている。

途中経路上での対策として、IPスプーフィングが疑われるパケットを破棄する対策が有効となる。例えば、WANとLANの境界線上にあるルータ上のフィルタリングルールに、「IPアドレスのみを用いたルール」を使用するのではなく、「通過するネットワークアダプタを考慮した上での、IPアドレスを併用したルール」を使用するといった対策である。例を挙げると、WANからLAN行きのパケットが送信元も送信先もLAN内のIPアドレスを示しているなら、IPスプーフィングが疑われる。また、ループバックデバイス以外のデバイスにlocalhostの送信元IPアドレスを持つパケットが到達すれば、そのケースもIPスプーフィングが非常に強く疑われる。後者についていえば、IPv6では、localhostの送信先IPアドレスを持つIPv6パケットをルータは配送してはならないと、RFC3513で明確に規定されているRFC3513 - Internet Protocol Version 6 (IPv6) Addressing Architecture。なお、この手法は不正侵入等を目的とした不正アクセスに有効な対策である上に、攻撃者が所属するプロバイダの出口部分のルータに施されている場合は、DoS攻撃に対しても有効な対策となり得る。

DoS攻撃発生時に攻撃者IPアドレスを特定する手法として、「IPパケットに経由ルータの情報を断片化して盛り込む（マーキング）手法」や「各経由ルータが通過パケットのハッシュ値を蓄えておき、DoS攻撃が発生した場合に近隣のルータに通知することで同一ハッシュ値の通過ルートを特定する手法（uRPF、RFC3704）」などが検討されている。但し、パケット配送時のオーバーヘッドなどの問題から現実的なものとはなっていない。

アドバタイズされていないIPアドレス 
IPアドレスがBGPにおいてそもそもアドバタイズされていない場合、それらのIPアドレス帯は攻撃者にとっては悪用しやすいIPアドレス帯域となるため、IPアドレスの管理者には適切な設定が要求される。RIPE labs - Navigating the Complexities of BGP: Enhancing Security, Visibility, and Operability

 関連項目 
 TCPシーケンス番号予測攻撃 - 不正侵入等におけるセッション確立を装う際に、本項と対となる攻撃手法である
 ソース・ルーティング - ルータ超えでのセッションハイジャックや偽のセッション確立を行う際には、IPスプーフィングと併用することがある
 ルーター
 NAT
 uRPF

 脚注 

 参考文献 
  - 1.3.5「IP（アドレス）スプーフィング」

 外部リンク 
 RFC1948 - Defending Against Sequence Number Attacks
 RFC3704 - Ingress Filtering for Multihomed Networks

Category:詐称
Category:エクスプロイト
Category:コンピュータ・ネットワーク・セキュリティ
Category:通信工学
Category:IPアドレス