Subdomain takeoverの脆弱性と有名事例
Subdomain takeoverの脆弱性は、Webサイトが使用するサブドメインがDNSの設定ミスによって、意図しない第三者に紐づいてしまうことで発生します。この状態が続くと、攻撃者がそのサブドメインを取得し、Webサイトの管理者やユーザーを騙して、フィッシングサイトを作成され情報の盗取やマルウェア配布などの攻撃を行われる可能性があるという脆弱性です。
原因となる設定ミスはサブドメイン先のサービスを削除する際に、対応するDNSの設定を削除しない、サブドメインを別のサービスに移行する際に、DNSの設定を変更しないといったタイミングで発生します。
有名な被害事例としては以下の事例がよく知られています。
GitHub PagesのSubdomain takeover
2016年、ユーザーが所有していないGitHub Pagesサブドメインを利用してフィッシングサイトを作成する攻撃が発生しました。
被害者は、DNSの設定ミスにより、自分が所有していないサブドメインをGitHub Pagesに紐づけていたため、攻撃者がそのサブドメインを使ってフィッシングサイトを作成し、被害を受けました。
ShopifyのSubdomain takeover
2020年、Shopifyのサブドメインを不正に取得することで、多数のeコマースサイトが影響を受ける攻撃が発生しました。
被害者は、Shopifyが使用するサブドメインを取得していたが、その後解約したため、サブドメインは使用されていなかった。しかし、DNSの設定が残っていたため、攻撃者がそのサブドメインを取得し、被害を拡大させました。
SlackのSubdomain takeover
2021年、Slackのサブドメインを不正に取得することで、大規模なデータ漏洩が発生しました。
被害者は、Slackが使用するサブドメインを取得していたが、その後解約したため、サブドメインは使用されていなかった。しかし、DNSの設定が残っていたため、攻撃者がそのサブドメインを取得し、SlackのAPIトークンを取得することに成功し、大量のデータが漏洩する原因となりました。
AWS、GCP、AzureでSubdomain takeoverが発生する可能性があるサービスを知る
AWS、GCP、Azureの代表的なサービスでSubdomain takeoverが発生する可能性があるものを確認しましょう。
根本対策はCNAMEレコードを利用しないことですが、ポリシーを無視されたから知りませんでしたでは済まないのでDNS監視ツールを使用するなど検知する手段を講じる必要性はあります。
CNAMEの代わりとなる得るのはAliasレコードでありますが、ALIASレコードは、TLD直下のルートレコードに直接対応するため、サブドメインに対応することができません。さらに、CNAMEレコードは、レコードの値として別のDNS名を指定することができますが、ALIASレコードは、レコードの値として直接IPアドレスを指定する必要があります。
要件を満たさない場合はやはり管理策でもれなく対応するほかありません。
AWSならRoute 53、GCPではCloud DNS、AzureではAzure DNSでそれぞれ設定を見直しましょう。
AWS
・Elastic Beanstalk
・S3バケット
Google Cloud
Google App Engine
Google Cloud Storage
Azure
Azure App Service
Azure Storage
Subdomain takeoverが発生が発生したらどうすべきか
Subdomain takeoverは副次的な被害をもたらす脆弱性です。被害の追跡も大変なので対策の基本は対応するCNAMEのエントリーを見つけ即削除することです。
すぐにこのアクションをとるためには平時から利用状態が確認できること、オペレーション可能なカウンターパート、承認者を把握し続けていることが前提になります。
Subdomain takeoverの脆弱性を探す手段・ツール
手段としてはDigコマンドなど1つ1つに関してはDNSのレコードを引いて、CNAMEが出てきており対応するサービスがないにも関わらずエントリーが残っている場合は検知とします。
万が一、自組織のコンテンツでない者が紐づいていた場合はインシデントとして扱い即対応するべきです。
ツールとしては以下が有名です。
SubOver
GoベースのSubdomain takeoverを検出するためのツールで、CNAMEレコード、Nginxレスポンス、Microsoft Azure Blob Storageレスポンス、Amazon S3レスポンスなどをチェックします。
Subjack
Subdomain takeoverを検出するためのツールで、特定のDNSサーバー上のCNAMEレコードをチェックします。
冒頭の例で挙げた通り、AWS、GCP、Azureに限らずXaaSを連携した際にはSubdomain takeoverは発生します。Wordpress.com,GitHub Pages, Wix, Shopify, Zendesk, Tumblr枚挙に遑がありません。
以上です。参考になれば幸いです。