セキュリティAWS S3サブドメインWeb 担当者
AWS S3 のサブドメインテイクオーバー対策|Web 担当者向け実践手順
ドメイン番人約 4 分で読めます
目次
この記事でわかること
- AWS S3 特有のテイクオーバーパターン
- バケット削除済 CNAME を検出する具体手順
- 是正の 3 ステップ
- CloudFront / Route 53 を使う際の注意
AWS S3 のテイクオーバーが成立する条件
危険な状態
static.example.co.jp CNAME static.example.co.jp.s3-website-ap-northeast-1.amazonaws.com
↑ S3 バケット削除済 = 攻撃者が同名で作成可能
S3 では バケット名がグローバルで一意で、削除されたバケット名は誰でも再作成可能です。同じバケット名で再作成して Static Website Hosting を有効化すれば、御社のドメイン経由で攻撃者のコンテンツが配信されます。
攻撃成立のパターン
- 御社が
static.example.co.jp名の S3 バケットで静的サイトを公開 - CloudFront 移行や CDN 変更で S3 バケットを削除
- しかし
static.example.co.jpの CNAME はそのまま残置 - 攻撃者が S3 で
static.example.co.jp名のバケットを新規作成 - Static Website Hosting を有効化、悪意あるコンテンツを配置
- 御社のドメインで攻撃者のコンテンツが配信される
自社で確認する手順
1. CNAME が S3 パターンに向いているか確認
dig +short CNAME static.example.co.jp
# → *.s3-website-*.amazonaws.com.
# → *.s3.amazonaws.com.
# → *.s3-*.amazonaws.com.
# のいずれかが返れば対象
2. バケットが存在するか確認
curl -sI https://static.example.co.jp/
以下のいずれかが返れば dangling 確定:
404 NoSuchBucketCode: NoSuchBucketを含む XML
3. バケット名解放状況の確認
AWS CLI で同名バケットを試しに作成しようとして「BucketAlreadyExists」が返れば誰かが占有済(要確認)、「成功」なら占有可能 = 危険。
aws s3 mb s3://static.example.co.jp --region ap-northeast-1 --dryrun
是正の 3 ステップ
ステップ 1: 即座に DNS から CNAME を削除
最優先。
ステップ 2: 自社でバケット名を占有
将来また使う可能性がある名前は、自社の AWS アカウントでバケットを作成して占有します。Static Website Hosting を有効化する必要はなく、空のプライベートバケットで OK。
aws s3 mb s3://static.example.co.jp --region ap-northeast-1
aws s3api put-public-access-block \
--bucket static.example.co.jp \
--public-access-block-configuration BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true
ステップ 3: CloudFront + Route 53 + OAC への移行(中長期)
将来的に S3 を直接 CNAME で公開する方式は廃止するのが安全です。代わりに:
- CloudFront を前段に置き、Origin Access Control(OAC)で S3 へのアクセスを CloudFront 経由のみに限定
- Route 53 で ALIAS レコードを CloudFront に向け、CNAME ではなく ALIAS に
- バケット名と DNS 名を一致させない設計にする
CloudFront / Route 53 を使う際の注意
| 観点 | 注意点 |
|---|---|
| Route 53 ALIAS | ALIAS の宛先 CloudFront ディストリビューションが削除済の場合も dangling になる |
| CloudFront 削除 | ディストリビューション削除前に Route 53 ALIAS 削除をセット |
| 旧設定の残骸 | S3 直 CNAME の設定が残っていないか定期点検 |
検出を自動化する
ドメイン番人の サブドメイン棚卸し 単発チェック では *.amazonaws.com 系の dangling CNAME を自動検出します。
まずは現状を把握しましょう
棚卸しと是正の支援は サブドメイン棚卸し+テイクオーバーリスク診断(5 万円〜)でご相談ください。
関連記事:
- サブドメインテイクオーバーとは?仕組みと EC・スタートアップ・制作会社への影響
- dangling CNAME のリスクと検出方法
- GitHub Pages のサブドメインテイクオーバー対策
- Heroku のサブドメインテイクオーバー対策
総合点検は 無料のドメイン診断、SSL 単独は SSL 単発チェック をご利用ください。