このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

サブドメイン乗っ取り

サブドメイン乗っ取り (subdomain takeover) は、攻撃者がターゲットドメインのサブドメインの制御権を獲得したときに発生します。一般的には、サブドメインがドメインネームシステム (DNS) に正規名 (CNAME) を持っているが、そのサブドメインにコンテンツを提供しているホストがいない場合に発生します。これは、仮想ホストがまだ公開されていないか、仮想ホストが削除されているために起こる可能性があります。攻撃者は、自分の仮想ホストを提供して、そのサブドメインのコンテンツをホストすることで、そのサブドメインを乗っ取ることができます。

攻撃者がこれを行うことができれば、メインドメインから設定されたクッキーを読み取ったり、クロスサイトスクリプティングを行ったり、コンテンツセキュリティポリシーを回避したりすることが可能となり、保護された情報(ログインを含む)を取得したり、不審なユーザーに悪意のあるコンテンツを送信したりすることが可能となります。

サブドメインはコンセントのようなものです。自分の電化製品(ホスト)をコンセントに差し込んでおけば、すべてが問題ありません。しかし、コンセントから自分の電化製品を取り外すと(またはまだコンセントを差し込んでいない場合)、誰かが別の電化製品を差し込んでしまう可能性があります。コンセントが他の人に使われるのを防ぐためには、ブレーカーやヒューズボックス (DNS) で電源を切る必要があります。

発生の仕組み

仮想ホストの公開や閉鎖(削除)のプロセスが適切に処理されていない場合、攻撃者がサブドメインを乗っ取る機会がある可能性があります。

公開時

攻撃者は、ホスティングプロバイダーで購入したサブドメイン名の仮想ホストを先に設定します。

ドメイン example.com を管理しているとします。blog.example.com にブログを追加したいと思っていて、ブログプラットフォームを管理しているホスティングプロバイダーを使用することにしました。(「ブログ」は、「電子商取引プラットフォーム」や「顧客サービスプラットフォーム」、あるいは他の「クラウドベース」の仮想ホスティングシナリオでも代用可能です)。通るプロセスは、次のように見えるかもしれません。

  1. ドメインレジストラーに "blog.example.com" という名前を登録します
  2. blog.example.com にアクセスしたいブラウザーを仮想ホストに誘導するために DNS レコードを設定します
  3. ホスティングプロバイダーで仮想ホストを作成します

ホスティングプロバイダーが、仮想ホストを設定した項目が実際にサブドメイン名の所有者であることを確認するように細心の注意を払わない限り、手が早い攻撃者が、このサブドメイン名を使って、同じホスティングプロバイダーで仮想ホストを作成することができます。このような場合、ステップ 2 で DNS を設定するとすぐに、攻撃者はそのサブドメイン上でコンテンツをホストすることができます。

閉鎖時

仮想ホストを削除したが、攻撃者は同じ名前とホスティングプロバイダーを使用して新しい仮想ホストをセットアップすることがあります。

あなた(またはあなたの会社)はもうブログを維持したくないと判断したので、ホスティングプロバイダーから仮想ホストを削除します。しかし、ホスティングプロバイダーを指す DNS 項目を削除しなければ、攻撃者はそのプロバイダーで独自の仮想ホストを作成し、あなたのサブドメインであることを主張し、そのサブドメインの下で独自のコンテンツをホストすることができるようになります。

サブドメイン乗っ取りからの防御

サブドメインの乗っ取りを防ぐには、仮想ホストと DNS のライフサイクル管理における手順の順序が重要となります。組織のサイズによっては、複数の部門間で連携や調整が要求される場合があり、その結果、設定ミスが発生するリスクが高まる可能性があります。

  • ホストの公開と閉鎖の標準プロセスを定義します。すべての手順を可能な限り密接に行います

    • 仮想ホストを主張して公開を開始し、最後に DNS レコードを作成します
    • 最初に DNS レコードを削除して閉鎖手続きを開始します
  • 組織が所有するすべてのドメインとそのホスティングプロバイダーの一覧を生成し、状況が変化するたびに見直して、管理が行き届いていないものが残らないように徹底してください。

  • ホスティング業者に対し、セキュリティ上の脆弱性を解消するよう働きかけましょう。また、仮想ホストを申請した人物が、そのドメイン名に対する正当な権利を実際に持っていることを、業者がどのように確認しているのかを依頼してください。組織内で連携し、これをベンダー選定プロセスの一環として組み込むようにしてください。

サブドメインが乗っ取られたら、どうすればよいか

自分のドメインのサブドメインが乗っ取られていることに気付いた場合、まずは可能であれば、そのサブドメインの DNS 項目を削除して「電源を切る」ようにしてください。サイトに仮想化の複数のレイヤー(例えば、仮想ホスティングに加えて CDN)がある場合、攻撃者がどこで仮想ホストの主張を主張してドメインを乗っ取ったのかを確認するために、各レイヤーを調べる必要があるかもしれません。

詳細はこちら