この記事のポイント
- 危険なのは、DNS レコードが残り、参照先が消え、第三者が同種サービスを再取得できる条件が重なるときです
- まず見るべきなのは、用途不明の CNAME、無効化済みサービス参照、所有確認 TXT の欠落、ワイルドカード DNS の扱いです
- 対策は削除漏れ防止、所有確認、廃止フロー整備、継続監視をセットで回すことです
まず無料で確認する
無料でASM診断を開始
ダングリングDNSで触れている論点は、自社ドメインを実際に診断すると優先順位が掴みやすくなります。まずは外部公開資産を無料で可視化してください。
ダングリングDNSとは何か

危ないのは『古いレコードがある』ことではなく、『第三者が再取得できる状態で公開面が残る』ことです。
30秒で言うと、ダングリングDNSは「サービスや環境を削除したのに DNS レコードだけが残る状態」です。まず確認すべきなのは、不要な CNAME、解約済み SaaS や削除済み環境への参照、カスタムドメインの所有確認です。
Microsoft Learn は、削除済みクラウドリソースや無効化済みサービスを参照したまま DNS レコードが残る状態を dangling DNS として扱い、 典型的には CNAME の取り残しが問題になると説明しています。Azure の subdomain takeover 対策ガイドとAzure App Service の防止策の両方で、DNS の削除漏れと所有確認不足が takeover の起点になることが明記されています。
重要なのは、サーバー侵害やアプリ脆弱性がなくても、公開面の所有権がずれるだけで事故になることです。ダングリングDNSは 設定ミスというより、資産台帳、廃止フロー、所有確認のズレで起きやすい運用事故です。だからこそ、脆弱性診断の前段として外部公開資産を 棚卸しする価値があります。
ダングリングDNSが危険になる条件
DNS レコードが残っているだけで、すべて即座に乗っ取られるわけではありません。実務では、次の条件が重なったときに危険度が上がります。
CNAME の参照先が解放済み
クラウドサービスや SaaS のリソースを削除したのに、CNAME レコードだけが残り続けている状態です。
第三者がリソースを再取得可能
対象プロバイダ側で、同じ名前や同種サービスを第三者が再取得でき、公開面を再び生やせる状態です。
Aレコードが未使用 IP を指している
サーバー廃止後も A レコードが残り、返却済み IP が別の利用者へ再割当てされる余地があります。
所有確認が弱い
TXT verification やカスタムドメイン検証がなく、削除済みサービスの再バインドを止めにくい状態です。
CNAME が残っている = 必ず即乗っ取りではありません。危険なのは、再取得可能なサービスを参照し続け、所有確認も弱い条件が重なっているときです。GitHub Pages も、検証済みドメインでもワイルドカード DNS は takeover リスクがあると公式に注意しています。
よくある発生シーン
現場で多いのは、高度な攻撃よりも「廃止したつもりの公開面」が残るケースです。とくにカスタムドメインを外部サービスへ向けていた環境は、 サービス削除と DNS 更新の責任が分かれると取り残されやすくなります。
| 発生シーン | 残りやすいもの | 危険になる理由 | 優先して確認したいこと |
|---|---|---|---|
| キャンペーンLPや採用サイトの終了 | CNAME、カスタムドメイン設定 | 運営終了後に DNS だけ残り、第三者が同種サービスを再利用しやすい | 現在の担当者、LP 停止日、宛先サービスの存続状況 |
| GitHub Pages の repo 削除や site 無効化 | カスタムドメイン、ワイルドカード DNS | GitHub Docs は、DNS を残したまま site が無効だと takeover リスクがあると明記している | repo / Pages site の状態、検証 TXT、ワイルドカードの有無 |
| Azure App Service や外部SaaSの削除 | 旧 ホスト 名、CNAME、検証設定の残骸 | Azure は site 削除前に DNS 更新を推奨しており、削除後の取り残しを危険視している | 削除済みリソースの有無、App Service 側のドメイン検証 ID、alias record 利用可否 |
| 外注先・委託先管理の microsite 撤去漏れ | 用途不明サブドメイン、証明書、広告導線 | DNS と実体サービスの管理責任が社内台帳に戻らず、止める判断が遅れる | 管理責任者、契約終了日、誰が DNS を消す責任か |
放置すると何が起きるか
Microsoft Learn は、subdomain takeover の影響として、偽コンテンツの公開、フィッシング、cookie harvesting、XSS、CSRF、CORS bypass、 さらには SSL 証明書取得までを挙げています。つまり「空ページが出るだけ」の問題ではなく、信用されたサブドメインが第三者の配下に入ること自体が実害です。
とくに危ないのは、過去にメールや広告で配布した URL、ログイン導線に近いサブドメイン、ブランド名を強く含むサブドメインです。使っていない名前でも、 ユーザーや取引先から見ると「まだ正規だろう」と判断されやすく、事故が長引きます。
放置した場合
ブランド付きサブドメインが第三者の公開面へ変わる
DNS の削除漏れと所有確認不足が重なると、使っていない名前でも『正規に見える入口』として残り続けます。
- フィッシングや偽サポート導線に転用される
- Secure Cookie やブランド信頼を悪用される
- 検索結果、広告 URL、ブックマーク経由で被害が継続しやすい
- 管理責任者不明のまま封じ込め判断が遅れ、攻撃者が証明書を取れる余地も残る
対策済みの場合
DNS・所有確認・廃止フローがそろい、不要な公開面を残さない
レコード削除だけでなく、TXT verification と管理責任者情報まで整えると、再取得や再発を起こしにくい運用へ寄せられます。
- サービス削除前に DNS 更新まで完了し、dangling 状態を残さない
- TXT verification とカスタムドメイン検証で再バインドを難しくする
- 用途不明の CNAME や wildcard DNS を台帳と継続監視で早めに検知する
自社で確認したいポイント
検索流入で最も知りたいのは「自社が今危ないかどうか」のはずです。判断は、DNS だけでなく、参照先サービスの状態と所有確認を突合して行います。
1. 用途不明の CNAME やサブドメインが残っていないか
まずは DNS 台帳と公開中サブドメインを突合し、管理責任者が空欄の名前、用途不明の CNAME、数か月以上更新のないホスト名を洗います。サブドメイン棚卸し とDNS 棚卸しの両方を見ないと、「存在」と「設定」が分離したままになります。
2. 削除済み・無効化済みサービスを参照していないか
GitHub Pages なら repo / Pages site の有効状態、Azure App Service なら対象 site や custom domain の残存状態を確認します。DNS 応答だけ見て 「生きている・死んでいる」を判断するのではなく、参照先サービスがまだ自社管理下にあるか を確認することが重要です。
3. カスタムドメインの所有確認が入っているか
GitHub Pages の custom domain verification や Azure App Service の domain verification ID(「asuid」)のように、プロバイダが用意する 所有確認を省略していないかを見ます。所有確認は Verified 運用の延長ではなく、カスタムドメインの再取得を難しくする安全装置です。
4. ワイルドカード DNS を安易に残していないか
GitHub Docs は、verification 済みドメインでもワイルドカード DNS は immediate risk of domain takeovers だと警告しています。利便性のために 「*.example.com」を使っている場合は、実際に必要なホストだけへ絞れるかを見直してください。
確認作業の入口
まずは自社ドメインの放置サブドメイン候補を確認する
台帳より先に、外から見える公開面を洗うと、用途不明の CNAME や管理責任者不明サブドメインを見つけやすくなります。
すぐできる対策
1. 削除前に DNS を更新する
Azure App Service の公式ドキュメントは、site を削除する前に DNS レコードを更新するよう明示しています。現場では「サービス削除完了」を先に 閉じてしまいがちですが、DNS 更新まで終えて初めて廃止完了と定義した方が事故を減らせます。
2. 所有確認 TXT を必ず使う
GitHub Pages の custom domain verification、Azure の「asuid」のような TXT ベースの所有確認は、見た目の追加手順ではなく takeover 抑止策です。 自社でもTXT 認証を日常運用へ組み込むと、誰が何を所有しているかを残しやすくなります。
3. 廃止フローに DNS と外部導線を入れる
削除時チェックには、DNS、証明書、広告URL、メールテンプレート、ブックマーク誘導の停止まで含めてください。ダングリングDNSは技術的に難しい攻撃より、引き継ぎ漏れで起きることが多いため、廃止チェックリストの質がそのまま防御になります。
4. 単発棚卸しで終わらせず継続監視する
Microsoft Learn の Azure ガイドは、Azure 管理の DNS とリソースなら alias record の利用や「Get-DanglingDnsRecords」の活用を勧めています。 重要なのは、1回洗って終わりではなく、新規露出と再発を継続的に見つけることです。外部公開資産は人事異動、キャンペーン、SaaS導入で すぐ増えるためです。
Azure 中心の環境では、Azure DNS alias records や「Get-DanglingDnsRecords」のような公式推奨の仕組みを使うと、削除済みリソース参照の洗い出しを始めやすくなります。
ASM診断 PRO での見つけ方
ASM診断 PRO は、ドメイン、サブドメイン、DNS、HTTP、TLS を横断して外部観点の棚卸しを行うため、用途不明の公開面や放置サブドメインを洗う入口に向いています。 ダングリングDNSは「DNS だけで断定できる問題」ではないため、公開面の発見 →管理責任者確認 → 所有確認 → 継続監視 の流れで扱うのが現実的です。
まず Public 診断で外部公開面の一覧を取り、次に Verified 管理で所有確認済みドメインへ寄せると、「正規の公開面」と「見直すべき公開面」を分けやすくなります。 そのうえで、サブドメイン棚卸し や外部公開資産台帳とつなぎ、削除判断と継続監視へ落とすのが最も無駄の少ない流れです。
よくある質問
必ずではありません。危険度を分けるのは、参照先サービスがまだ自社管理下にあるか、第三者が同じ宛先を再取得できるか、所有確認が働くかです。 ただし、これを毎回人手で正確に判断するのは難しいため、用途不明の CNAME は「放置せず要確認」と扱う方が安全です。
TXT verification は、「そのドメインを使ってよい所有者か」を DNS 側で証明する仕組みです。第三者が同じサービス名を取り直しても、検証 TXT を持たなければ カスタムドメインを再バインドしにくくなるため、takeover 抑止に効きます。
危険になりえます。GitHub Docs は、custom domain の DNS を残したまま site が無効な状態を takeover risk として扱っています。SaaS も同様で、 利用終了後に DNS だけ残すと「まだ正規であるように見える名前」が外部へ残り続けます。
まずは公開中サブドメインの一覧化、その次に用途不明の CNAME と削除済みサービス参照の洗い出し、その後に所有確認 TXT と廃止フローの整備です。 いきなり個別サービスの深掘りから始めるより、公開面全体を外部観点で把握した方が漏れを減らせます。
まとめ

ダングリングDNS対策は『CNAME が残っていないか』だけでは不十分で、TXT verification と owner 情報まで一緒に見る必要があります。
ダングリングDNSは「DNS の小さな残骸」ではなく、公開面の管理責任がずれた状態です。危険なのは、DNS が残り、参照先が消え、第三者が再取得でき、 所有確認も弱い条件が重なるときです。
- まずは用途不明の CNAME と外部サービス参照を洗う
- 所有確認 TXT とワイルドカード DNS の扱いを見直す
- サービス削除前に DNS 更新まで終える運用へ変える
- 単発確認で終わらせず、継続監視に載せる
自社で本当に危ない状態かを見分けたいなら、内部台帳だけでは足りません。まず外から見える公開面を確認し、そこからサブドメイン棚卸し、DNS 棚卸し、TXT 認証へつないでください。
次のアクション
読み終えたら、無料でASM診断を開始
外部公開資産の現状を無料で確認し、管理漏れや優先して見るべきリスクを洗い出してください。記事で読んだ内容を、そのまま自社の判断へつなげやすくなります。
参考にした一次ソース
重要論点の根拠として参照した一次ソースだけを掲載しています。
dangling DNS の定義、主な実害、Azure DNS alias records、Get-DanglingDnsRecords の考え方を参照しました。
site 削除前に DNS を更新すること、domain verification ID (「asuid」) による所有確認を参照しました。
custom domain verification が takeover 抑止に効くことと、ワイルドカード DNS のリスクを参照しました。
custom domain を付けたまま site が無効な状態は takeover risk だとする公式注意を参照しました。