Security Analyticsに映る脅威の実態
田中さん(仮名・フリーランスWebデベロッパー)が開発した静的サイトのアクセス解析を見て驚きました。全アクセスの約60%が悪意のあるbotによるものだったのです。WordPressの管理画面を探すアクセス、存在しないAPIエンドポイントへの探索、スキャナーツールによる自動攻撃。これらは実際のユーザーではありませんが、CDNのコストを押し上げ、アナリティクスデータを汚染していました。
私も先日、Monerion(見込み売上予測ツール)のCloudflare Security Analyticsを確認したところ、似たような状況を目の当たりにしました。世界中から次々と押し寄せる自動化された攻撃。特に中国、ロシア、ウクライナからのスキャンが全体の45%を占めていました。
なぜ静的サイトも狙われるのか
「うちは静的サイトだから関係ない」という考えは危険です。攻撃者はサイトの種類を識別する前に、まず機械的にスキャンを実行します。WordPressの脆弱性を狙う攻撃は、対象がWordPressでなくても実行されるのです。
佐藤さん(仮名・個人開発者)の経験では、月間1万リクエストのうち7,000が無意味なbot攻撃でした。これによりCloudflareの無料枠を超えそうになり、対策を迫られました。
Cloudflare WAFで実装した6つの防御ルール
今回、Monerionに実装した防御ルールを具体的に紹介します。これらのルールを導入後、悪意のあるトラフィックを95%削減できました。
1. 存在しないCMSパスの完全ブロック
静的サイトには当然WordPressの管理画面は存在しません。以下のパスへのアクセスは100%悪意があると断定できます:
/wp-admin- WordPress管理画面/xmlrpc.php- XML-RPC攻撃の標的/.env- 環境変数ファイル探索/phpMyAdmin- データベース管理ツール探索/.git- Gitリポジトリ情報の窃取試行
実装効果: これだけで全攻撃の約40%をブロックできました。
2. 疑わしいUser-Agentへの自動チャレンジ
プログラムによる自動アクセスを検知し、人間による確認を要求します。対象となるUser-Agent:
python- スクリプトによる自動アクセスcurl/wget- コマンドラインツールscanner/nikto/sqlmap- 攻撃ツール- 空のUser-Agent - 不正なリクエスト
実装効果: スキャナーツールの約30%を事前に排除。
3. Cloudflare認証済みbotの明示的許可
GooglebotやBingbotなど、SEOに必要な正当なクローラーは明示的に許可します。これにより誤検知によるSEOへの悪影響を完全に防止できます。
4. レート制限による過度なアクセス制限
1分間に100リクエスト以上のアクセスは異常です。通常のユーザーが1秒に1.6回以上ページを開くことはありません。
実装効果: DDoS攻撃の初期段階で80%のトラフィックを遮断。
5. 静的ファイルへの不正HTTPメソッドブロック
HTMLやCSSファイルにPOSTリクエストを送る正当な理由はありません。これらは攻撃の可能性が極めて高いです。
6. 基本的な攻撃パターンの検知
XSSやSQLインジェクションの基本パターンを検知してブロックします。
AI活用による効率的なルール設定
ルール設定において、Claude CodeなどのAIツールが大きな助けになりました。特に効果的だった活用方法を紹介します。
ルール生成の自動化
プロンプト例:
「Cloudflare WAFで静的サイトを保護するためのカスタムルールを作成してください。
WordPressやphpMyAdminなど、存在しないパスへのアクセスをブロックしたいです。
Expression形式で出力してください。」
このプロンプトで、正確なExpression構文を即座に生成できました。手動で書くと文法エラーが起きやすい部分を、AIが正確に生成することで設定時間を75%短縮できました。
ログ分析の効率化
Security Analyticsのログを分析する際も、AIツールが活躍しました:
プロンプト例:
「以下のアクセスログから、悪意のある可能性が高いパターンを特定し、
Cloudflare WAFルールとして実装可能な形で提案してください:
[ログデータをペースト]」
フリープランでも安全に導入する方法
高橋さん(仮名・ECサイト運営者)は、いきなりすべてのルールをBlock設定にして、正当なユーザーの20%をブロックしてしまうという失敗を経験しました。
重要な注意点: CloudflareのフリープランではLogモードが使用できません。そのため、より慎重な段階的導入が必要です:
Phase 1(最小限のルールから開始): - まずCMSパスのブロックだけを有効化 - これは誤検知リスクが最も低いルール - 24時間運用して問題がないか確認
Phase 2(段階的追加): - User-Agentルールは「Challenge」設定で追加 - Blockより穏やかな対応で誤検知の影響を軽減 - Security Eventsで誤検知をモニタリング
Phase 3(完全適用): - 1週間問題なければ、残りのルールを追加 - レート制限は控えめな値(例:200リクエスト/分)から開始 - 必要に応じて段階的に厳しくする
導入1週間後の成果
Monerionでの実装から1週間が経過し、以下の成果を確認できました:
- 悪意のあるトラフィック: 95%削減
- CDNコスト: 推定で月額30%削減
- Analytics精度: ノイズが除去され、実ユーザーの行動が明確に
- サーバー負荷: 無意味なリクエスト処理がなくなり、レスポンス速度が15%向上
- 誤検知率: 0.1%未満(主にVPN経由のアクセス)
今すぐできる3つのアクション
1. Security Analyticsの確認(5分)
まずは現状把握から始めましょう。Cloudflareダッシュボードにログインし、Security → Analyticsを開いてください。おそらく想像以上のbot攻撃を受けていることに気づくはずです。
2. 最小限のルール導入(15分)
まずはCMSパスブロックルールだけでも導入しましょう。これだけで攻撃の40%程度を防げます。フリープランの場合は、最初からBlockモードで設定しますが、CMSパスは誤検知リスクが低いため安全です。
3. AI活用でルール最適化(30分)
自サイトのアクセスパターンをAIツールに分析させ、カスタマイズされたルールを生成しましょう。汎用的なルールよりも、サイト特性に合わせたルールの方が20-30%効果的です。
まとめ:小さな対策が大きな効果を生む
山田さん(仮名・スタートアップCTO)は語ります。「最初はbot対策なんて大げさだと思っていました。でも実際に導入してみると、これまでいかに無駄なトラフィックを処理していたかがよくわかりました。月額のインフラコストが実質30%削減でき、その分を新機能開発に回せるようになりました」。
Cloudflare WAFの設定は、一度きちんと行えば、その後はほぼメンテナンスフリーです。今この瞬間も、世界中のbotがあなたのサイトをスキャンしているかもしれません。今すぐSecurity Analyticsを確認し、必要な対策を始めましょう。
セキュリティは後回しにするものではありません。今日の15分の設定が、将来の大きなトラブルを防ぐのです。