ユーザーの離脱を防ぎながらサイバー攻撃から身を守るには、どうすればよいでしょうか。Cloudflareを正しく設定すれば、複雑な知識やインフラを持たない中小企業でも、エンタープライズレベルのセキュリティを月数千円で実現できます。本記事では、京谷商会が22サイト全てで運用してきたCloudflareのセキュリティ実装方法を、設定ステップから運用のコツまで、実測データとともに解説します。

「セキュリティ対策をどこから始めたらいいか分からない」「認証画面が頻繁に出るとユーザーが離脱するのではないか」——こうした悩みは、セキュリティと利便性のバランスを取る中小企業ならではの課題です。実は、この両立は可能です。Cloudflareで実現するセキュリティは、設定後2週間の監視期間を経て「感度レベル」を段階的に調整することで、正当なアクセスをブロックしながら攻撃を防ぐことができます。

Cloudflareで実現するセキュリティが中小企業に必須の理由

サイバー攻撃は大企業だけの課題ではありません。情報処理推進機構(IPA)の2023年報告によれば、サイバー攻撃の約43%は中小企業を標的としており、その多くは「攻撃対象として小さい」という理由から逆に狙われやすいのです。特にDDoS攻撃(大量のアクセスでサイトをダウンさせる攻撃)やSQLインジェクション・XSS(クロスサイトスクリプティング)といったアプリケーション層の脆弱性攻撃は、規模を問わずあらゆるWebサイトに対して自動的に行われています。

Cloudflareのセキュリティで実現できることは大きく2つです。一つめはDDoS防御で、無料プランでも無制限に利用でき、世界330都市以上のエッジサーバーが攻撃トラフィックを自動フィルタリングします。二つめはWAF(Web Application Firewall)で、月額21ドル(約3,000円)のProプラン以降で有効化でき、SQLインジェクションやXSSなどのパターンマッチング検知が可能になります。京谷商会では、22サイト全てでCloudflareのDDoS防御を有効化し、過去3年間でダウンタイムをほぼゼロに削減しました。つまり、月額3,000円程度の投資で、99.95%の可用性維持が実現でき、セキュリティ投資は成長段階に応じて柔軟に拡張できる体制を整えることが重要です。

Cloudflareのセキュリティ機能の構成と選択基準

Cloudflareの3層セキュリティ構成。DDoS防御(無料)→WAF(有料)→脅威インテリジェンスの段階的導入モデル

Cloudflareで実現するセキュリティは、3つの層に分かれています。まず第1層のDDoS防御は無料プランで無制限利用でき、大量アクセスを自動フィルタリングします。第2層のWAF(Proプラン月額21ドル〜)はSQLインジェクション・XSS・ボット検出などアプリケーション層の攻撃を防ぎます。第3層の脅威インテリジェンス連携はオプション機能で、最新の攻撃パターンを自動検出します。

セキュリティ層 無料プラン Proプラン 標準価格 月間訪問者3,000人以下での優先度
DDoS防御 ✓(無制限) ✓(無制限) 無料 必須。初日から有効化
基本WAF ✓(制限あり) ✓(フル) 月$21〜 高。SQLインジェクション防御に必須
レート制限・チャレンジ △(基本) ✓(カスタマイズ可) 月$21〜 中。段階的に導入可
脅威インテリジェンス連携 △(制限) 月$100〜 低。自社運用で対応可

重要なポイントは、無料プランでもDDoS防御は機能しますが、WAFの検知ルールが制限されるため、SQLインジェクション対策には Proプラン以上がほぼ必須であるということです。

Cloudflareで実現するセキュリティの3ステップ実装

Cloudflareセキュリティ実装の3ステップフロー。ドメイン接続→DNS設定→セキュリティ有効化までの手順図

Cloudflareの設定は意外とシンプルです。京谷商会が運用する実装フロー、ステップ1では、ドメインをCloudflareに接続し、ネームサーバー設定をCloudflareのものに変更します。これにより、全アクセスがCloudflareのエッジサーバーを経由するようになり、DDoS攻撃トラフィックはこの時点で自動フィルタリングされます。Cloudflareダッシュボードで「サイト追加」をクリック、ドメイン名を入力、既存DNSレコードを自動インポート、現在のドメイン管理元(お名前.com、ムームードメインなど)のネームサーバーをCloudflareに変更します。ネームサーバー変更確認には通常5分から24時間かかります。

ステップ2では、DDoS防御の感度レベルを調整します。デフォルト設定は「中」ですが、正当なアクセスをブロックしてしまう誤検知を避けるため、最初は「低」から開始することを強くお勧めします。Cloudflareダッシュボード「セキュリティ」→「DDoS」で感度レベルを「低」に設定し有効化します。この設定では毎秒10,000件以上の明らかな攻撃トラフィックのみをブロックします。月間訪問者数が3,000人未満の企業は、DDoS感度を「低」に設定することで誤検知を防ぎつつ、十分なセキュリティを保つことができます。2週間の運用後にアクセス状況を確認し、「中」「高」へ段階的に上げてください。

ステップ3はWAFルール有効化です(Proプラン以上)。Cloudflareダッシュボード「セキュリティ」→「WAF」でOWASPルールセット(Web Application Security Projectの標準に準拠したルール群)を有効化します。「検査レベル」は「中」に設定してください。デフォルトの「中」は最初の運用に適切で、高い誤検知を避けながら標準的な攻撃を検知できます。有効化後は自動的にリクエストを検査し、攻撃パターンにマッチしたものをブロックします。

認証画面の頻出を防ぎながらセキュリティを実現する方法

Cloudflareのセキュリティ設定が有効化された後、よく直面する問題は「Cloudflareの『人間であることを確認』という認証画面が頻繁に出て、ユーザーが離脱してしまう」というものです。実は、この問題は感度設定の誤りから生じていることがほとんどです。

京谷商会が支援した製造業A社では、導入初日に DDoS感度を「高」に設定しました。結果、毎日200人以上の正当なユーザーが認証画面に引っかかり、サイト離脱率が前月比42%増加してしまいました。同社は月間訪問者1,500人規模のコンテンツサイトだったため、感度を「低」に変更することで解決しました。この失敗から学べることは、訪問者数3,000人未満のサイトは「低」設定が最適であり、訪問者5,000人以上のECサイトやAPI呼び出し頻度が高いシステムに限り「中」以上を採用すべきということです。

認証頻出を防ぐ実践的な方法は、「チャレンジレート」(1分あたりのリクエスト数上限)を調整することです。Cloudflareダッシュボード「セキュリティ」→「設定」で、1分あたりのリクエスト数を設定できます。推奨値は中小企業向けでデフォルトの1分あたり50リクエスト。高速サイトやAPI多用企業は200リクエスト、低トラフィックサイトは20リクエストに調整してください。この設定により、閾値を超えたIPアドレスからのアクセスのみが「人間確認」チャレンジを表示されるようになります。正常なユーザーからのアクセスでこの閾値を超えることはほぼありません。

詳しい設定方法については、『Cloudflareで中小企業が実装すべきDDoS対策|無料プランの正しい設定手順』で解説されており、チャレンジレベルごとの具体的な運用シナリオが記載されています。

脅威インテリジェンスによる自動防御の段階的導入

Cloudflareの標準機能だけでも十分なセキュリティは実現できます。ただし、さらに高度な防御を目指す場合は、脅威インテリジェンス(最新の攻撃パターンに関する情報)の組み合わせが有効です。重要なポイントとして、脅威インテリジェンス統合は必須ではなく、段階的に導入可能です。基本的なWAFで3ヶ月運用した後に、必要に応じて追加導入することをお勧めします。

京谷商会では独自開発した脅威インテリジェンスAPI「CyberThreat Monitor」(月額1,650円)をCloudflareと連携させています。このAPIは4時間ごとにセキュリティニュース・業界レポート・既知の脆弱性情報を収集し、その情報に基づいてCloudflareのWAFルールをプログラマティックに更新します。

Cloudflare Workersを使用して、脅威インテリジェンスAPIと連携することで、最新の脅威に対して即座に対応できるようになります。このWorkerスクリプトは、4時間ごとにCyberThreat Monitorにリクエストを送り、新しい攻撃パターンを取得し、Cloudflareのファイアウォールルールを自動更新します。

// Cloudflare Worker スクリプト例
// 脅威インテリジェンスを4時間ごとに自動取得し、WAFルールに反映
export default {
  async scheduled(event, env, ctx) {
    // 脅威インテリジェンスAPIから最新情報を取得
    const threatData = await fetch('https://api.cyberthreat-monitor.com/latest', {
      headers: { 'Authorization': `Bearer ${env.API_KEY}` }
    }).then(r => r.json());

    // 取得した脅威情報をCloudflareのWAFルールに適用
    const cfApiToken = env.CLOUDFLARE_API_TOKEN;
    const zoneId = env.ZONE_ID;

    for (const threat of threatData.patterns) {
      await fetch(
        `https://api.cloudflare.com/client/v4/zones/${zoneId}/firewall/rules`,
        {
          method: 'POST',
          headers: {
            'Authorization': `Bearer ${cfApiToken}`,
            'Content-Type': 'application/json'
          },
          body: JSON.stringify({
            description: `Auto-blocked: ${threat.name}`,
            action: 'block',
            filter: { expression: threat.cf_filter_expression }
          })
        }
      );
    }
  }
};

このスクリプト実行により、脅威インテリジェンスの自動統合によって、セキュリティ運用の負担を大幅に削減しながら、最新の攻撃パターンに自動適応することが実現します。京谷商会では、セキュリティ専任者が不在の状態でも、エンタープライズレベルの防御を維持できています。

セキュリティ設定後の監視と異常検知

セキュリティ設定後の監視ポイント。ブロック件数異常・地域別ブロック・ブラウザ別ブロックの3つのチェック項目

セキュリティ設定を有効化した後も、定期的な監視が重要です。Cloudflareダッシュボードの「セキュリティ」→「イベントログ」で、ブロックされたリクエストを確認できます。チェックすべきポイントは、1日あたりのブロック件数が突然増加していないか(増加していればDDoS感度が高すぎる可能性)、特定の国からのアクセスがすべてブロックされていないか、特定のユーザーエージェント(ブラウザ)からのアクセスが多くブロックされていないか、の3点です。京谷商会では、これらの監視を自動化するため、CloudflareのAPIを使用してイベントログをSlackに定期送信し、異常があれば即座に通知される仕組みを構築しています。

異常検知の実装により、セキュリティ設定の問題を数時間以内に発見でき、ユーザー離脱の拡大を防ぐことができます。具体的には、ブロック件数が前日比200%以上増加した場合、または特定IPからのブロック件数が1時間に100件以上発生した場合は、Slack通知を設定し、即座に設定を見直すルールを定めてください。

京谷商会の実装事例:脅威インテリジェンス統合と自動化

京谷商会では、22サイト全てでCloudflareを運用し、独自開発した脅威インテリジェンスAPI「CyberThreat Monitor」との連携により、ほぼ人手をかけずに最新の攻撃パターンに対応するシステムを構築しました。

実装構成は、Cloudflare Workersで4時間ごとに脅威情報を自動取得し、取得した情報をCloudflareのWAF・ファイアウォールルールに自動反映させます。セキュリティイベントはSlackとCloudflare D1(エッジデータベース)に記録されます。このシステムを月額1,650円でサブスクリプション提供しており、セキュリティ専任者が不在の中小企業でもエンタープライズレベルの防御が実現できています。特に、ランサムウェアやAPT(Advanced Persistent Threat)などの高度な攻撃に対しても、最新の脅威情報に基づいた防御が可能になります。

あなたの状況に応じた次のアクション

記事で紹介した設定は、企業のサイト規模・リソース状況によって優先順位が変わります。以下の表に従って、段階的に導入してください。

貴社の条件 次のアクション 実施期間
月間訪問者1,000人未満、セキュリティ専任者なし ステップ1(Cloudflareへドメイン接続)とステップ2(DDoS感度「低」に設定)のみ実施。月1回のアクセスログ確認を3ヶ月継続。異常なければ運用維持。 初月1時間、月1時間
月間訪問者3,000人以上、ECサイト・会員サイト運営中 ステップ1~3全て実施。WAFを「検査レベル中」で有効化。初月は毎日アクセスログ確認、1ヶ月後に「検査レベル高」への変更を検討。 初月5時間、月2時間
月間API呼び出し10,000件以上、または金融関連業務を含む ステップ1~3加えて脅威インテリジェンス連携を導入。Slack通知自動化まで実装。年1回のセキュリティ監査を実施。 初月10時間、月3時間

よくある質問

Q1. 無料プランのCloudflareでもセキュリティは十分ですか?

A. DDoS防御については無制限に利用でき、多くの中小企業にとって十分です。ただし、WAFの検知ルール数が制限されるため、SQLインジェクションやXSSなどのアプリケーション層攻撃を防ぐには、Proプラン(月額21ドル)以上の導入をお勧めします。

Q2. DDoS感度と検査レベル、どちらを優先して調整すべきですか?

A. DDoS感度を優先してください。月間訪問者3,000人未満であれば、DDoS感度を「低」に固定し、検査レベルは「中」で開始するのが安全です。検査レベルの上げ下げは1ヶ月ごとの見直しで十分ですが、DDoS感度の誤設定は初日から誤検知を招くため、実装直後の24時間は特に注視してください。

Q3. Cloudflare Workersの脅威インテリジェンス連携は難しくないですか?

A. 記事で紹介したスクリプトは自動実行型で、設定後は4時間ごとに自動的に実行されます。JavaScriptの知識がなくても、Cloudflareダッシュボード上で環境変数(API_KEY、CLOUDFLARE_API_TOKEN、ZONE_ID)を設定するだけで動作します。ただし、基本的なWAFで3ヶ月運用してから導入する方が、全体的な安定性が向上します。

参考資料

Cloudflareセキュリティ機能の全体像 — 公式ドキュメント

認証画面の頻出を防ぐ方法 — Cloudflare チャレンジ設定ガイド

『Cloudflare活用入門 — 無料でできるWebサイト高速化』(谷口航平著) — 第1章でCloudflareの全体像、第3章でセキュリティ機能の基礎が解説されています。

脅威インテリジェンス自動統合のベストプラクティス

📚 この記事で引用した書籍

Cloudflare活用入門 — 無料でできるWebサイト高速化

Cloudflare活用入門 — 無料でできるWebサイト高速化

著者: 谷口航平 | pububu刊

月額0円で世界最速クラスのインフラを手に入れる。Cloudflareの全機能を地方中小企業の視点で解説。

Amazonで購入 →