IPスプーフィング
IPパケットの送信元IPアドレスを偽る行為。実際の送信者を隠したり、応答を別の相手へ向けたりする。入口では、パケットが到着した経路と名乗っているアドレスの整合性を確認する。
イマシルちゃんの解説
手紙の差出人の欄は、書いた人が自由に埋められるよね。
そこに知っている名前が書いてあっても、本当にその人が出したとは限らないんだ。
外の郵便受けから来たのに「この部屋の中で渡した」と名乗る手紙なら、不自然だと気づける。
ただし、不自然でない住所を書かれた場合まで、その確認だけで見抜けるわけではないよ。
この解説はわかりやすかったですか?
より深い解説
アドレスは本人確認の証拠ではない
IPヘッダーの値は、それだけで送信者の身元を保証しない。攻撃側が別のアドレスを指定すると、通常の応答は偽られたアドレスの側へ送られる。値を書き換えたからといって、攻撃側がその応答を自動的に受信できるわけではない。
TCPの接続確立には相手からの応答を受けて次の手順へ進む必要がある。そのため、応答が見えない位置からの詐称と、通常の双方向通信の成立を同じものと考えてはいけない。一方、応答を待たない大量送信や、UDPなどを利用した反射攻撃では、この性質が悪用される。
境界で確認する内容
内部のネットワークが10.42.0.0/16で、外部から到着する通常の通信を調べる独自の例を考える。
| パケットの状態 | 判断の観点 |
|---|---|
| 外部側から来たが、差出人が10.42.5.8 | 本来は内部にある範囲を外から名乗っており、遮断対象となる |
| 内部から外へ出るが、割当て外のアドレスを名乗る | 自組織を詐称パケットの発信元にしないよう制限する |
| 外部から来て、差出人も外部の範囲 | 不自然な範囲ではないだけで、安全や本人性は保証されない |
VPNやトンネルの終端など、内部のアドレスを正当に運ぶ例外は、構成に応じて明確に分ける。判定する対象は宛先だけではなく、どこから来たかと、何を名乗っているかである。
対策の種類
| 方法 | 役割・制約 |
|---|---|
| 送信元アドレス検証 | 接続元に割り当てた範囲などと照らして転送を制限する |
| uRPF | 経路情報を使って、送信元への到達性と受信経路の整合性を調べる |
| 暗号技術による認証 | アドレスだけに頼らず、鍵などを用いて相手やデータを検証する |
RFC 2827(BCP 38)は、接続元の正当な範囲に基づくフィルタリングを扱う。RFC 3704は、複数の経路を持つネットワークでの適用を説明している。
厳密な逆方向経路の検査では、戻りの最適経路と受信したインタフェースの一致を求める。そのため、行きと帰りが異なる非対称経路では正当な通信を遮断し得る。方式の選択と例外の設計が必要である。
関連する攻撃との違い
| 攻撃 | 偽るもの・狙うもの |
|---|---|
| IPスプーフィング | パケットの差出人のアドレス |
| ARPスプーフィング | 同じリンク内のIPアドレスとMACアドレスの対応 |
| メール送信者の詐称 | メールの送信ドメインや表示上の送信者など |
| DRDoS | 応答先を被害者に向け、多数の応答を集中させる |
通信を通すかを決めるパケットフィルタリングと、利用者の認証は別の機能である。特定のポートだけを許可しても、そこへ来るパケットの名乗りまで保証されるわけではない。