概要
DNS(Domain Name System)はドメイン名をIPアドレスに変換する仕組みで、すべてのインターネット通信の基盤です。設計当初はセキュリティが考慮されておらず、攻撃者に悪用されるケースが多くあります。SC試験では「DNSの脆弱性と攻撃手法」「DNSSEC による対策」「通信の暗号化(DoH・DoT)」が問われます。
仕組みと動作原理
DNS の基本動作
クライアント → フルサービスリゾルバ(キャッシュDNSサーバ)
→ ルートDNSサーバ → TLDサーバ → 権威DNSサーバ
← IPアドレスを返す(TTLとともにキャッシュ)
DNS を悪用した主な攻撃
| 攻撃 | 仕組み | 影響 |
|---|---|---|
| DNSキャッシュポイズニング | 偽のDNS応答でキャッシュに不正レコードを注入 | ユーザをフィッシングサイト等に誘導 |
| DNSハイジャック | DNSサーバ自体を改ざん・乗っ取り | 広範囲なリダイレクト |
| DNS増幅攻撃(Amplification) | 小さなDNSクエリで大きな応答を引き出してDDoS | DDoS攻撃の増幅に利用 |
| DNSトンネリング | DNSクエリにデータを隠してファイアウォールを迂回 | C2通信・データ窃取 |
| NXDOMAIN攻撃 | 存在しないドメインへの大量クエリでリゾルバを過負荷 | サービス妨害 |
DNSキャッシュポイズニングの仕組み(Kaminsky攻撃)
1. 攻撃者が大量のDNSクエリをリゾルバに送信(存在しないランダムサブドメイン)
2. リゾルバが権威サーバに問い合わせを行う間に…
3. 攻撃者が偽の応答を大量送信(トランザクションIDを総当たり)
4. 正規の応答より先に偽の応答が受け入れられるとキャッシュが汚染
5. そのドメインを引いたすべてのユーザが攻撃者の指定したIPに誘導
根本原因: 従来のDNSはUDP(ポート53)を使い、トランザクションID(16ビット)だけで応答を識別するため推測・偽造が容易。
DNSSEC(DNS Security Extensions)
DNSの応答に電子署名を付与して、応答の真正性と完全性を保証する拡張仕様です。
| DNSレコード種別 | DNSSEC での役割 |
|---|---|
| RRSIG | RRセットへのデジタル署名 |
| DNSKEY | ゾーン署名鍵(ZSK)と鍵署名鍵(KSK)の公開鍵 |
| DS | 親ゾーンが子ゾーンのKSKのハッシュを保持(信頼チェーン) |
| NSEC/NSEC3 | 存在しないドメインの証明(否定応答の認証) |
DNSSEC の信頼チェーン:
ルートゾーン(Root)の公開鍵(IANA が管理・信頼のアンカー)
└── .jp ゾーン(親のDS レコードで子の公開鍵を保証)
└── example.jp ゾーン
└── www.example.jp の A レコード(署名付き)
DNSSEC の限界:
- 応答の機密性は保証しない(通信はUDPで平文のまま)
- 実装率が低い(特に日本国内のサイト)
- 設定ミスでゾーン全体が解決不能になるリスク
DNS over HTTPS(DoH)と DNS over TLS(DoT)
従来のDNSは平文で通信するため、ISPや悪意のある中間者に「どのドメインを調べたか」を盗聴・改ざんされます。
| DoH(DNS over HTTPS) | DoT(DNS over TLS) | |
|---|---|---|
| プロトコル | HTTPS(ポート443) | TLS(ポート853) |
| 見分けやすさ | 通常の HTTPS に混在(フィルタリング困難) | 専用ポートで識別しやすい |
| 主な用途 | ブラウザ(Firefox・Chrome で標準サポート) | OS レベル・企業ネットワーク |
| 機能 | 盗聴防止・改ざん防止 | 盗聴防止・改ざん防止 |
SPF・DKIM・DMARC(メール送信ドメイン認証)
DNSを使ったメール送信ドメイン認証もSC試験で頻出です。
| 技術 | DNSレコード | 目的 |
|---|---|---|
| SPF | TXTレコード | 送信元IPアドレスの許可リストを公開 |
| DKIM | TXTレコード | メール本文・ヘッダへの電子署名 |
| DMARC | TXTレコード | SPF/DKIMの結果に基づくポリシー(拒否・隔離・なし)とレポート |
SC試験での頻出ポイント
- DNSキャッシュポイズニングの対策:DNSSECの導入・クエリにランダムなポートを使用(DNSSEC前の緩和策)
- DNSSECが保証するもの・しないもの:完全性・真正性を保証するが、機密性は保証しない
- DoHとDoTの違い:使用ポートと見分けやすさの違い
- DNS増幅攻撃の仕組み:「ANY」クエリで大きな応答を引き出し、送信元IPを偽造してDDoS
- SPF・DKIM・DMARCの役割の違い:なりすましメール対策として組み合わせて使う
よくある誤問・ひっかけパターン
誤り① 「DNSSEC を導入すれば DNS 通信の盗聴を防げる」→ 誤。DNSSEC は完全性・真正性の保証であり、通信の暗号化(盗聴防止)には DoH/DoT が必要です。
誤り② 「DoH はセキュリティ上すべての組織で推奨される」→ 状況次第。企業環境では DoH がエンドポイントで有効になると DNS フィルタリングが機能しなくなるリスクがあります。
誤り③ 「SPF の設定があればメールなりすましを完全に防止できる」→ 誤。SPFは送信IPアドレスのみを検証します。本文・ヘッダの完全性確認にはDKIM、ポリシー適用にはDMARCが必要です。
関連用語
- TLS(Transport Layer Security) — DoH・DoTはTLSで通信を保護する
- ファイアウォールとDMZ — DNSトンネリングの検知・遮断
- 公開鍵暗号(RSA)とデジタル署名 — DNSSEC・DKIMのデジタル署名の基盤
重要キーワード
| 用語 | 説明 |
|---|---|
| DNSキャッシュポイズニング | 偽のDNS応答をキャッシュに注入してユーザを不正サイトに誘導する攻撃 |
| DNSSEC | DNS応答に電子署名を付与して真正性・完全性を保証する拡張 |
| DoH | DNS クエリを HTTPS(ポート443)で暗号化して送受信する技術 |
| DoT | DNS クエリを TLS(ポート853)で暗号化して送受信する技術 |
| SPF | 許可された送信元IPアドレスをDNSに公開するメール認証技術 |
| DMARC | SPF/DKIMの結果に基づくメール処理ポリシーを定義する技術 |