7月20日、Herokuはセキュリティの改善策として、サブドメインの再利用を防止する変更を発表しました。
これにより、Herokuアプリの組み込みherokuapp.com
ドメインの形式が変更され、攻撃者によるサブドメインの乗っ取りからの保護が向上します。
2023年6月14日から、Herokuアプリの組み込みherokuapp.com
ドメインの形式を変更しました。
これにより、サブドメインの再利用を防ぐことで、プラットフォームのセキュリティを向上させています。
新しい形式は<app名>-<ランダム識別子>.herokuapp.com
です。以前の形式は<app名>.herokuapp.com
でした。新しい形式の組み込みherokuapp.com
ドメインは、デフォルトですべてのユーザーに適用されています。
攻撃手法の概要
アプリケーションを削除すると、そのグローバルに一意な名前は他のユーザーにすぐに利用可能になります。以前は、アプリ名とherokuapp.com
のサブドメインが同じであり、アプリケーションのデフォルトのホスト名として機能していました。
サブドメインの乗っ取りでは、攻撃者は使用されていないHerokuアプリケーション名をインターネットで検索することができます。彼らは解放された名前を使用して新しいアプリを作成し、まだトラフィックをアプリに誘導する人物がいることを望みます。攻撃者はそのURLでアプリを作成し、トラフィックを傍受し、独自のコンテンツを提供することもできます。
成功したサブドメインの乗っ取りは、さまざまな潜在的な攻撃手法につながる可能性があります。元の所有者をなりすます攻撃者は、以下の攻撃を試みることができます。
Stealing cookies: クッキーの盗み出し
サブドメインの乗っ取りによるセキュリティ上の脆弱性であるクッキーの盗み出しは、攻撃者がターゲットドメインの制御を取得することで発生します。
これにより、攻撃者は以前に登録されたウェブサイトをなりすまし、ユーザーからクッキーを収集することができます。
サブドメインの再利用を防ぐことで、クッキーの盗み出しを防止することができます。
Phishing: フィッシング
正当なサブドメイン名を使用することで、フィッシャーは以前のドメイン名を利用して被害者を誘導しやすくなります。サブドメインの再利用を防ぐことで、フィッシング攻撃からの保護を実現します。
OAuthの許可リスト
OAuthフローでは、受け入れるコールバックURIを指定する許可リスト(allowlisting)メカニズムがあります。
侵害されたサブドメインがまだ許可リストに含まれている場合、攻撃者はOAuthフロー中にユーザーをリダイレクトすることができます。このリダイレクトにより、OAuthトークンが漏洩する可能性があります。
サブドメインの再利用を防ぐことで、OAuthのallowlistingによる攻撃からの保護を提供します。
その他のポイントや変更点
カスタムドメインを使用することを常にお勧めしますが、デフォルトの
herokuapp.com
ドメイン名を使用している場合でも、この変更により安全に使用できます。Herokuでは、ドメインの乗っ取りや類似の攻撃を防ぐために、ドメイン管理の安全性を改善してきました。
herokuapp.comドメインの新しい形式は、サブドメインにランダムな識別子が追加されることで、サブドメインの乗っ取りのリスクを軽減します。
この変更により、攻撃者は簡単に元のアプリのURLをなりすまし、非推奨または削除されたアプリ向けのトラフィックを傍受することができなくなります。
詳しい内容は「Security Improvement: Subdomain Reuse Mitigation」を参照してください。
まとめ
Herokuはセキュリティの改善策として、サブドメインの再利用を防止する変更を発表しました。
これにより、Herokuアプリの組み込みherokuapp.com
ドメインの形式が変更され、攻撃者によるサブドメインの乗っ取りからの保護が向上します。
この変更により、クッキーの盗み出しやフィッシング攻撃、OAuthのallowlistingによる攻撃からの保護が提供されます。
Herokuアプリを使用しているユーザーにとって、この変更はセキュリティの向上とサブドメインの再利用による攻撃からの保護を提供します。