Domain IP Lookup

偽の回答で競争に勝つ

攻撃者

本物の応答と競争

偽の回答

先に到着

リゾルバーキャッシュ

共有する全員分が汚染される

セキュリティ

DNSスプーフィングとキャッシュポイズニングの概要

読了時間:3分

DNSはもともと、応答が本当に名乗ったネームサーバーから届いたものかを検証する手段を持たずに設計されました。この欠陥がスプーフィングを可能にします。DNSクエリを横取りしたり、正規の応答と先を争ったりできる位置にいる攻撃者は、被害者を自分が選んだアドレスに誘導する偽の応答を返せます。多くの場合、正規のサイトになりすました悪意のあるサーバーにトラフィックをそらすために使われます。

キャッシュポイズニング:同じ発想を大規模に

キャッシュポイズニングは、偽の応答という同じ発想を、1人の被害者ではなく、共有されたリゾルバーに向けたものです。広く使われている再帰リゾルバーのキャッシュに偽の回答を潜り込ませることができれば、期限が切れるまで、そのリゾルバーを使う以後のすべてのユーザーに汚染された回答が返されます。1回の偽造が成功するだけで、そのリゾルバーを共有する全員への攻撃になります。個々のクエリを1つずつ横取りする必要はありません。

現代のDNSによる防御

防御策防げるもの普遍的に導入されているか
送信元ポート/クエリIDのランダム化本物の応答が届く前に、偽の応答を推測で成立させることはい。2008年以降、標準になっています
DNSSEC権威サーバーになりすました偽の応答いいえ。インターネット全体での導入は部分的です
DNS-over-HTTPS/DNS-over-TLSクエリそのものに対する経路上での傍受増えているものの、あらゆる場所で既定ではありません

これらの防御策はいずれも、普遍的に導入されているわけではありません。特にDNSSECの導入は、インターネットを構成するドメイン全体を見ると、いまだに部分的です。運用がしっかりしていてセキュリティを重視する公開リゾルバーを使うこと、そして予期しない、あるいは疑わしい名前解決の結果が出たときは、独立した別のリゾルバーで再確認する価値があると考えることは、DNSSECが使われていない場合でも、現実的な予防策であり続けます。

この問題への見方を変えたバグ

キャッシュポイズニングが理論上の懸念ではなくなったのは、2008年にセキュリティ研究者のDan Kaminskyが、当時使われていたほぼすべてのDNSリゾルバーに影響する根本的な欠陥を公表したときです。攻撃者が推測しなければならないトランザクションIDと送信元ポートの組み合わせの空間が小さく、高速な回線を使えば数秒で総当たりできました。そのため、攻撃者は1つのレコードだけでなく、ドメイン全体についてリゾルバーのキャッシュを汚染できたのです。この公表を受けて、主要なDNSソフトウェアのベンダー全社が、異例の連携のもとで同時にパッチをリリースしました。送信元ポートのランダム化は、ほぼ一夜にして標準になりました。上の表に挙げた個々の防御策が現在の形で存在しているのは、これが大きな理由です。

対策から20年が経っても、DNSSECの普及が進まない理由

DNSSECは、ポート番号のランダム化だけの場合と比べて、根本にある信頼の問題をはるかに完全に解決します。単に推測を難しくするのではなく、暗号による証明を与えるからです。普及が遅いのは、その価値を疑っているからというより、運用が複雑だからです。ゾーンに正しく署名し、検証を壊さずに予定どおり鍵をローテーションし、ルートから特定のドメインまでの信頼の連鎖全体を保つのは、署名なしのAレコードを追加することに比べて、正しく行うのが格段に難しくなります。その過程でミスが1つでもあれば、本シリーズの別の記事で取り上げているSERVFAILの障害が起こります。専任のDNSの専門家を置けない小規模なドメインの運用者にとっては、それ自体が導入をためらう要因になります。「理論上は解決済み」と「実際にはあらゆる場所に導入済み」との間にあるこうした隔たりは、セキュリティ基盤に共通して見られるもので、DNSSECはその分かりやすい例です。

ドメインの公開DNSアドレスを調べたい場合は、Domain IP Lookupツールをお試しください。

関連記事

パブリックとプライベートのアドレス空間

パブリックIP

192.0.2.10

グローバルに一意、どこからでもルーティング可能

プライベート範囲

10.0.0.0/8172.16.0.0/12192.168.0.0/16

公開インターネットではルーティング不可

セキュリティ

プライベートIP範囲が公開DNSで解決されてはいけない理由

10.0.0.0/8や192.168.0.0/16などの範囲は、世界で一意にならないよう、あえて用意されています。それがDNSにとって重要な理由を解説します。

読了時間:3分

SSRFはサーバーを意図せぬプロキシに変える

攻撃者

リクエストURLを細工

脆弱なサーバー

SSRFにだまされて取得

169.254.169.254

メタデータエンドポイント

認証情報

攻撃者に返される

セキュリティ

クラウドメタデータエンドポイントの隠れた攻撃面

ルーティング不能に見える1つのIPアドレスが、クラウドインスタンスに認証情報や設定へのアクセスを与えます。SSRFの標的になりやすい点にも注意が必要です。

読了時間:3分

同じアドレスを書き表す4つの方法

127.0.0.1標準のドット付き10進表記
2130706433同じアドレスを単なる整数で表記
0x7f.0.0.1同じアドレスを16進数で表記
127.1同じアドレスの短縮形
セキュリティ

SSRF攻撃とは?DNSが悪用される仕組み

サーバーサイドリクエストフォージェリは、サーバーがだまされて名前解決とリクエストを行ってしまった、ただ1つのドメイン名から始まることがよくあります。

読了時間:3分