サブドメインテイクオーバー

  1. Referer ヘッダーのプライバシーとセキュリティの考慮事項
  2. サブドメインテイクオーバー
  3. サブリソース完全性
  4. トランスポート層セキュリティ
  5. ユーザーによる有効化によって制御される機能
  6. 保護されたコンテキスト
    1. 保護されたコンテキストに制限されている機能
  7. 同一オリジンポリシー
  8. 安全でないパスワード
  9. 実践的なセキュリティ実装ガイド
    1. フォームの自動補完を無効にするには
  10. 攻撃
    1. Clickjacking
  11. 混在コンテンツ
  12. 無信頼の iframe Experimental
  13. 脆弱な署名アルゴリズム
  14. 証明書の透明性

サブドメインテイクオーバーは、攻撃者がターゲットドメインのサブドメインの制御権を獲得したときに発生します。一般的には、サブドメインがドメインネームシステム (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)がある場合、攻撃者がどこで仮想ホストの主張を主張してドメインを乗っ取ったのかを確認するために、各レイヤーを調べる必要があるかもしれません。

詳細はこちら