多くの開発チームは、自社 API の把握に苦労しています。Cloudflare API Discovery は、攻撃対象になり得るエンドポイントの全体像(攻撃対象領域)を把握するのに役立ちます。
Cloudflare は、似たリクエストパスをグループ化(パス正規化)して API エンドポイント のマップを作成します。
たとえば、数千の API があっても、次のように似た呼び出しが多数ある場合があります。
api.example.com/profile/238api.example.com/profile/392
どちらのパスも、ユーザープロファイルを取得するという似た目的ですが、同一ではありません。エンドポイントを簡潔にするため、これらの例はどちらも api.example.com/profile/* に対応付けられます。
API Discovery はこの処理をすべてのトラフィックに対して実行し、次のようなシンプルなエンドポイントマップを生成します。
/api/login/{customer_identifier}
/api/auth
/api/account/{customer_identifier}
/api/password_reset
/api/logout同様に、同じエンドポイント群を共有する複数のサブドメインがある場合、Cloudflare はサブドメインをまとめます。
us-api.example.com/api/v1/users/{var1}
de-api.example.com/api/v1/users/{var1}
fr-api.example.com/api/v1/users/{var1}
jp-api.example.com/api/v1/users/{var1}Cloudflare はこれらを {hostVar1}.example.com/api/v1/users/{var1} にまとめます。
技術的な詳細は、ブログ記事 ↗ を参照してください。
Web Assets は、検出した API エンドポイントを候補オペレーションとしてオペレーションインベントリに追加します。候補オペレーションは、手動で確認する前に、マッチング、ログ、検出、ルールのコンテキストになります。
検出されたオペレーションをすべて昇格する必要はありません。オペレーションを昇格すると full 状態に移り、プロファイル学習が始まります。full 状態のオペレーションは、永続化された API プロファイル、リスクの検出結果、既知の API エンドポイントを必要とする保護に対応します。
検出されたオペレーションを昇格するには、次の手順を実行します。
-
Cloudflare ダッシュボードで、Web Assets ページを開きます。
Web assets を開く ↗ -
Operations タブに移動します。
-
候補オペレーションまたはシャドウオペレーションの行アクションを開きます。
-
Learn profile を選択します。
Cloudflare はオペレーションを full 状態に移します。行アクションは Profile learned に変わります。詳細は、オペレーションを昇格する を参照してください。
API エンドポイントは、セッション識別子ベースの検出と機械学習ベースの検出の両方で見つかります。
機械学習ベースの検出にアクセスするには、次の手順を実行します。
-
Cloudflare ダッシュボードで、Web Assets ページを開きます。
Web assets を開く ↗ -
Discovery タブに移動します。
-
ソースの結果を
Session IdentifierまたはMachine Learningで絞り込み、各検出方法の結果を確認します。
ゾーンの API トラフィックすべてに、設定した セッション識別子 が含まれる場合、基盤となる手法が似ているため、両方のソースが同じ結果になることがあります。機械学習ベースの検出は、API がセッション識別子を使うかどうかに関係なく、API トラフィックを識別できます。
API Discovery の結果についてのフィードバックは、アカウントチームまでお寄せください。
API Discovery には、アカウントとゾーンの両方で有効な API Shield サブスクリプションが必要です。アカウントレベルでは有効でもゾーンに割り当てられていない場合、そのゾーンでは Discovery は実行されません。
エンドポイントが Discovery の結果に表示されるには、すべてのリクエストが次の条件を満たす必要があります。
- リクエストは、Cloudflare エッジから
2xxレスポンスコードを返す必要があります。 - リクエストは、Cloudflare Worker から直接発信されたものであってはなりません。Cloudflare のトラフィックシミュレーターや、その他の Worker ベースのテストハーネス経由のトラフィックは、Discovery のしきい値にはカウントされません。
- エンドポイントは、連続する 10 日間で少なくとも 500 件のリクエストを受け取る必要があります。
詳細は、Discovery の要件 を参照してください。
API Discovery は Enterprise のお客様のみ利用できます。この製品にご興味のある Enterprise のお客様は、アカウントチームまでお問い合わせください。