サブドメイン乗っ取り(Dangling CNAME)- あなたのドメインが悪用される日
これは何?
サブドメイン乗っ取り(Subdomain Takeover)は、企業が管理するDNSレコードの設定ミスを悪用した攻撃手法です。特に「Dangling CNAME」と呼ばれる、参照先が存在しないCNAMEレコードが標的になります。
CNAMEレコードは、ドメインのエイリアス(別名)を設定するDNSレコードです。例えば、blog.example.comを外部のブログサービスmyblog.platform.comに向ける場合、以下のように設定します:
blog.example.com. IN CNAME myblog.platform.com.
この設定により、ユーザーがblog.example.comにアクセスすると、実際にはmyblog.platform.comのコンテンツが表示されます。
なぜ重要なのか
問題は、外部サービスの利用を停止した後です。多くの企業が以下のような状況に陥っています:
- GitHub Pages、Heroku、AWS S3などで一時的にサイトを公開
- プロジェクト終了後、外部サービスのアカウントは削除
- しかしDNSのCNAMEレコードは削除し忘れる
この「宙ぶらりん」状態のCNAMEレコードが、攻撃者にとって格好の標的となります。放置されたCNAMEレコードは、組織の信頼を悪用した詐欺、フィッシング、マルウェア配布の踏み台になり得ます。
攻撃の仕組み
攻撃者は以下の手順でサブドメインを乗っ取ります:
- 偵察: 企業のDNSレコードをスキャンし、CNAMEレコードを列挙
- 検証: CNAME参照先のサービスで、そのアカウントが存在するか確認
- 乗っ取り: アカウントが削除済みなら、同じ名前で新規登録
- 悪用: 正規のサブドメインで、フィッシングサイトやマルウェアを配布
例えば、あなたの会社がpromo.example.comをHerokuアプリexample-promo.herokuapp.comに向けていたとします。プロモーション終了後、Herokuアプリは削除したがDNSレコードは残ったまま。攻撃者がexample-promoという名前で新規Herokuアプリを作成すれば、promo.example.comの内容を完全にコントロールできてしまいます。
実際の被害事例
Microsoft Subdomain Takeover (2020年)
セキュリティ研究者が、Microsoftの40以上のサブドメインが乗っ取り可能な状態であることを発見しました。これらはAzure、GitHub、その他のクラウドサービスを指す放置されたCNAMEレコードでした。攻撃者がこれを悪用すれば、Microsoftの正規ドメインでフィッシングメールを送信したり、マルウェアを配布したりできた可能性があります。
Ubberの事例(2017年)
ライドシェア大手のUberも、複数のサブドメインが乗っ取り可能な状態にあることが指摘されました。riders.uber.comやpartners.uber.comといった重要なサブドメインが、削除済みのAWSインスタンスを指していました。
日本企業の事例
国内でも、大手ECサイトのキャンペーンドメインや、金融機関のプロモーションサイトなど、多数のDangling CNAMEが発見されています。攻撃者がこれを悪用すれば、「公式サイト」を装った詐欺が可能になります。
Nyambushでの検出内容
Nyambushは、以下の方法でサブドメイン乗っ取りのリスクを検出します:
- CNAMEレコードの列挙: ドメインのすべてのサブドメインを収集し、CNAMEレコードを抽出
- 参照先の検証: CNAME先のホストが実際に応答するか確認
- 脆弱性パターン検出: 以下のような危険な兆候をチェック
NXDOMAIN(ドメイン不存在)エラーNoSuchBucket(AWS S3)404 Not Foundでホスティングサービス特有のエラーページ- GitHub Pages、Heroku、Azure、Fastlyなどの既知パターン
スキャン結果では、リスクレベルと推奨される対策が表示されます。
対策方法
1. DNSレコードの定期的な棚卸し
利用していない外部サービスを指すCNAMEレコードは即座に削除してください:
# 削除例(お使いのDNSプロバイダのCLIやコンソールで実施)
# Route 53の場合
aws route53 change-resource-record-sets --hosted-zone-id Z123456 \
--change-batch file://delete-cname.json
2. DNSレコード管理のライフサイクル化
- 外部サービス契約時:DNSレコード作成を記録
- プロジェクト終了時:サービス削除前にDNSレコードを削除
- 四半期ごと:全CNAMEレコードの棚卸しを実施
3. 自動検出の導入
Nyambushのような継続監視ツールを導入し、新たなDangling CNAMEが発生したら即座にアラートを受け取る体制を構築してください。
4. CAA レコードの設定
Certificate Authority Authorization(CAA)レコードを設定し、不正な証明書発行を防止します:
example.com. IN CAA 0 issue "letsencrypt.org"
example.com. IN CAA 0 issuewild "letsencrypt.org"
まとめ
サブドメイン乗っ取りは、DNSレコードの「ゴミ掃除」を怠ることで発生する、意外と身近なセキュリティリスクです。Microsoft、Uber、国内大手企業でも発生している以上、どの組織も無関係ではありません。
重要なのは、外部サービスを利用停止する際、必ずDNSレコードも同時に削除するプロセスを確立することです。Nyambushの無料スキャンで、今すぐあなたのドメインの健全性をチェックしてみてください。