セキュリティHerokuサブドメインWeb 担当者
Heroku のサブドメインテイクオーバー対策|Web 担当者向け実践手順
ドメイン番人約 3 分で読めます
目次
この記事でわかること
- Heroku 特有のテイクオーバーパターン
- 検出する具体手順
- 是正の 3 ステップ
- 予防のための運用ルール
Heroku のテイクオーバーが成立する条件
危険な状態
app.example.co.jp CNAME myapp.herokuapp.com
↑ Heroku アプリが削除済
Heroku では 同じアプリ名で誰でも新規作成可能な仕様上、過去のアプリ名が解放されると 攻撃者が再取得できます。
攻撃成立のパターン
- 御社が
myapp.herokuapp.comで社内ツールを試運用 - 別ホスティングへ移行して Heroku アプリを削除
- しかし
app.example.co.jpの CNAME はそのまま残置 - 攻撃者が
myapp名のアプリを Heroku で新規作成 - カスタムドメイン
app.example.co.jpを設定 - 御社のドメインで攻撃者のアプリが配信される
自社で確認する手順
1. CNAME が *.herokuapp.com に向いているか確認
dig +short CNAME app.example.co.jp
# → myapp.herokuapp.com. が返れば対象
2. アプリが存在するか確認
ブラウザで https://myapp.herokuapp.com/ を開いて、以下のメッセージが表示されたら dangling 確定:
There's nothing here, yet.
No such app
または heroku-not-found の Heroku エラーページ。
是正の 3 ステップ
ステップ 1: 即座に DNS から CNAME を削除
最優先。利用予定がない CNAME はすぐ消します。
ステップ 2: 自社で同名アプリを再取得(攻撃者より先に)
将来また使う可能性がある名前は、自社の Heroku アカウントで heroku apps:create myapp で空アプリを作って占有します。Free / Eco プランでもアプリ名予約は可能。
heroku apps:create myapp --no-remote
ステップ 3: カスタムドメインの所有確認 ACM 設定
Heroku の Automated Certificate Management(ACM)+ カスタムドメイン設定で、そのドメインを設定できるアカウントを限定できます。
heroku domains:add app.example.co.jp --app myapp
heroku certs:auto:enable --app myapp
ACM が有効化されていると、別アカウントで同じカスタムドメインを設定しようとした際にエラーになります(DNS challenge 失敗)。
予防のための運用ルール
| ルール | 内容 |
|---|---|
| 解約フローの整備 | Heroku アプリ削除 = DNS 整理 = カスタムドメイン削除をセットで実施 |
| 検証用アプリの命名規則 | 検証用は <会社名>-test-<日付> で識別しやすく |
| 終了期限の DNS メモ | 期間限定のアプリは TTL を短くして自動失効させる |
| 棚卸し頻度 | 半年〜1 年に 1 回、CT log + DoH で全 herokuapp.com への CNAME を点検 |
検出を自動化する
ドメイン番人の サブドメイン棚卸し 単発チェック では *.herokuapp.com パターンの dangling CNAME を自動検出します。
まずは現状を把握しましょう
棚卸しと是正の支援は サブドメイン棚卸し+テイクオーバーリスク診断(5 万円〜)でご相談ください。
関連記事:
- サブドメインテイクオーバーとは?仕組みと EC・スタートアップ・制作会社への影響
- dangling CNAME のリスクと検出方法
- GitHub Pages のサブドメインテイクオーバー対策
- AWS S3 のサブドメインテイクオーバー対策
総合点検は 無料のドメイン診断、SSL 単独は SSL 単発チェック をご利用ください。