S3+CloudFront+WAFで1,655件の攻撃を100%ブロックした話
はじめに
2026年1月4日〜6日のたった3日間で、弊社サイトに1,655件の攻撃が来ました。
結果は100%ブロック。誤検知ゼロ。コストは約60円。
実際のログを元に、何が起きて、どう防いだかを共有します。
結論から
| 項目 | 数値 |
|---|---|
| 攻撃数 | 1,655件 |
| ブロック率 | 100% |
| 誤検知 | 0件 |
| コスト | 約60円/3日 |
| 攻撃元IP | 101種類 |
月換算で約600円。これで企業レベルの防御ができます。
システム構成
攻撃者 → CloudFront → WAF → S3(静的サイト)
↓
403 Forbidden
シンプルな静的サイト構成。ポイントはWAFをCloudFrontの前段に配置していること。
攻撃の実態
日別の攻撃状況
| 日付 | リクエスト | ブロック | ブロック率 |
|---|---|---|---|
| 1/4 | 1,555 | 653 | 42.0% |
| 1/5 | 2,077 | 776 | 37.4% |
| 1/6 | 663 | 226 | 34.1% |
驚くべき事実: 全リクエストの約40%が攻撃でした。
攻撃元IPトップ5
| IP | 攻撃回数 | 特徴 |
|---|---|---|
| 4.230.44.177 | 293回 | 115種類のパスを総当たり |
| 52.147.68.81 | 208回 | 1日で集中攻撃 |
| 20.42.220.101 | 144回 | 132種類のパス |
| 52.141.42.203 | 128回 | 2日間継続 |
| 4.190.203.84 | 124回 | 3日間継続 |
ほぼMicrosoftクラウド経由。攻撃者はクラウドを踏み台にしています。
狙われたパス
/admin.php - 20回 - 管理画面
/adminfuns.php - 19回 - 管理機能
/aa.php - 19回 - Webshell
/wp-admin/... - 19回 - WordPress
/info.php - 18回 - phpinfo()
PHPファイルばかり狙われている。
実際はS3静的サイトなのでPHPは動きません。攻撃は全て無意味。
User-Agent偽装
| 種類 | 割合 |
|---|---|
| ブラウザ偽装 | 95.3% |
| Bot/Crawler | 1.2% |
| Python | 0.4% |
攻撃者の95%が正規ブラウザを装っている。
単純なBot検知では防げません。WAFによるL7検知が必須です。
なぜ100%防げたか
1. 静的サイトの強み
| 攻撃 | 効果 |
|---|---|
| PHPコード実行 | 無効(PHPがない) |
| SQLインジェクション | 無効(DBがない) |
| ファイルアップロード | 無効(機能がない) |
S3静的サイトは攻撃対象が存在しない。
2. WAFのマネージドルール
有効にしたルール:
AWSManagedRulesCommonRuleSetAWSManagedRulesKnownBadInputsRuleSetAWSManagedRulesSQLiRuleSet
これだけで既知の攻撃パターンを自動検知。
3. 多層防御
CloudFront: DDoS保護、レート制限
↓
WAF: パターンマッチング
↓
S3: 静的コンテンツのみ
どの層でも攻撃を止められる構成。
コスト内訳
| サービス | 3日間 | 月換算 |
|---|---|---|
| CloudFront | 15円 | 150円 |
| WAF | 30円 | 300円 |
| S3 | 5円 | 50円 |
| Athena | 10円 | 100円 |
| 合計 | 60円 | 600円 |
月600円で1,655件レベルの攻撃を完全防御。
WAF設定のポイント
# マネージドルールを3つ有効化
resource "aws_wafv2_web_acl" "main" {
rule {
name = "AWSManagedRulesCommonRuleSet"
priority = 1
# ...
}
rule {
name = "AWSManagedRulesKnownBadInputsRuleSet"
priority = 2
# ...
}
rule {
name = "AWSManagedRulesSQLiRuleSet"
priority = 3
# ...
}
}
デフォルトのマネージドルールだけでこの効果。カスタムルールなしでも十分強力です。
学んだこと
1. 「うちは狙われない」は幻想
3日で1,655件。自動スキャンは無差別です。
2. 静的サイト + WAFは最強
動的機能がなければ攻撃対象がない。WAFで念押し。
3. ログ分析は必須
攻撃を受けていることすら見なければわからない。
Athenaで数円で分析できます。
4. 月600円で企業レベル
中小企業でも大企業と同じ防御が可能。AWSの民主化。
もし手動で対応していたら?
1,655件の攻撃を人力で対応した場合の試算:
| 作業 | 工数 |
|---|---|
| ログ確認(1件30秒) | 約14時間 |
| IPブロック(101件 × 5分) | 約8時間 |
| ルール作成(パターン別) | 約5時間 |
| 継続監視(3日間) | 約6時間 |
| 合計 | 約33時間 |
時給3,000円換算で約10万円。
効率よくやって半分だとしても5万円。WAFの月600円とは比較にならない。
比較
| 項目 | WAF | 手動 |
|---|---|---|
| コスト | 600円/月 | 10万円/3日 |
| 対応時間 | 0時間 | 33時間 |
| 夜間対応 | 自動 | 寝てる間に侵入 |
| 漏れ | 0件 | 見逃しリスク |
月600円で10万円分の作業が自動化される。
まとめ
Before: 何が起きてるかわからない
After: 1,655件の攻撃を100%ブロック、全て可視化
S3 + CloudFront + WAF。この構成、おすすめです。
関連記事
- 月170円で24時間AI監視 - AWSサーバーレスで作る中小企業・フリーランス向けセキュリティ監視
- クリスマスに13,340件の攻撃が来てAI監視で自動検知した話
- AI監視で自動検知した実例に学ぶクリスマスに13,340件の攻撃パターンTOP5
- 【実録】AI監視から届いた今朝のアラート:攻撃46%ブロック、正規エラー0%
この分析は CloudLogAI で自動検知しました。
👉 仕組みの詳細はこちら:月170円で24時間AI監視
月170円で動くAI監視システムで、攻撃もパフォーマンス低下も早期に検知できます。
「うちのサイト、今どうなってるんだろう?」と思ったら、お気軽にどうぞ。
Discussion