Schema Profile は、想定するリクエストフィールドとその制約をモデル化します。トラフィックから学習するか、スキーマをアップロードして指定できます。
プロファイルが利用可能になると、Cloudflare は 常時オンの検出 を実行します。検出だけではリクエストを緩和しません。
オペレーション(operation)は、Cloudflare がエンドポイントを指す用語です。識別子は HTTP メソッド、ホスト名パターン、パスパターンの組み合わせです。
Web Assets は Web Assets > Operations でオペレーションを継続的に発見します。手動でオペレーションを追加することもできます。
どちらの方法も、オペレーションをインベントリに追加するだけです。プロファイリングを始めるには、オペレーションのオーバーフローメニューから Learn profile を選択します。
学習は週次で実行され、直近 7 日間の対象トラフィックを使います。2xx レスポンスを受け取ったリクエストだけが対象です。
フィールド学習のしきい値は、対象リクエスト 1,000 件です。境界学習のしきい値は、対象リクエスト 10,000 件です。
フィールド学習のしきい値を満たすと、Cloudflare はリクエストフィールドを学習できます。境界学習のしきい値を満たすと、数値範囲や文字列長などの制約を学習できます。
最初のプロファイルは、次の週次学習実行後に表示されます。該当するしきい値を満たしてから最大 7 日かかることがあります。
オペレーションのオーバーフローメニューから View details を選択します。学習したスキーマは Security overview に表示されます。
対応している場合、プロファイルは次のリクエスト要素を学習できます。
- パス変数
- クエリパラメーター
- ヘッダーと Cookie
- JSON リクエストボディ
- フォームエンコードされたリクエストボディ
プロファイルは整数、文字列、UUID(universally unique identifier)、配列を検証できます。対応する制約には、数値範囲、文字列長、文字クラス、最大 3 値までの列挙があります。
成功したトラフィックにも、ボット、スキャナー、悪意のあるリクエストが含まれることがあります。検出を適用する前に、学習したプロファイルを確認してください。
週次の実行ごとに、対象トラフィックの変化に応じてプロファイルが更新されます。固定スキーマにする場合は、学習したスキーマを OpenAPI として エクスポート し、検証用にアップロード します。
学習した Schema Profile には、次の制限があります。
- Multipart フォーム、GraphQL、XML は未対応です。
- 繰り返しパラメーターは、一意性を強制せず、各値を検証します。
- 必須パラメーターの存在は強制しません。
- 新しいパラメーターだけでは違反になりません。
- 制約は学習したフィールドに適用され、完全な許可リストではありません。
アップロードした OpenAPI スキーマは、観測したトラフィックではなく、想定する構造を提供します。検出は cf.schema_validation.uploaded.violated で生成されます。
API Shield には詳細な Schema validation リファレンス があります。対応バージョン、インポート手順、OpenAPI フィールド、ボディ上限、トラブルシューティングを扱います。