Cloudflare Precursorは、訪問者を一度だけ判定するのではなく、session中の行動変化をclient-side JavaScriptで継続評価する。Challenge通過後でもclearanceを再評価し、bot scoreへsession contextを反映できる。防御力は上がる一方、API endpointやSPAのfetch設定を誤ると正規sessionが再challengeされる可能性がある。
何が変わったか
Precursorは全顧客へrolloutされ、行動signalの継続評価、challenge clearanceの再検証、session context付きbot score、client-side visibilityを提供する。既存のSecurity Rulesと統合し、dashboardでsecurityとfrictionのmodeを選択できる。
変更前後の差
JavaScript Detectionsは一回の実行結果を主に使っていた。Precursorはsession stateとdynamic runtime controlを持ち、時間経過後に現れるautomationも検出する。Cloudflare Docsは、Precursorを有効にする場合はJavaScript Detectionsを無効にするよう案内している。Challenge Pagesはpoint-in-time verification、Precursorはcontinuous verificationであり、置換関係ではない。
誰に影響するか
login、checkout、search、form、API callをbrowserから実行するWeb applicationが対象である。SPAやmobile webでXHR/fetchを多用する場合、credentials: includeやwithCredentialsがないrequestはMaximize Security下で期待どおりclearanceを送れない可能性がある。
期限
強制設定期限はない。rollout中のため、zone全体へ強いmodeを適用せず、観測期間を設ける。
必要な対応
最初はMinimize Frictionを全体へ適用し、account takeoverやpaymentなどsensitive pathだけruleでMaximize Securityへ上げる。API hostname、health check、machine-to-machine pathは適用対象を分ける。cf_clearance、challenge loop、bot score分布、conversionを同時に見る。
実装・移行手順
- 現在のJavaScript DetectionsとChallenge ruleをinventory化する
- stagingまたは低risk zoneでPrecursorを有効化する
- Minimize Frictionでbot analysisを観測する
- XHR/fetchがcookieを送ることを確認する
- sensitive pathへ限定ruleを追加する
- challenge率、false positive、conversion、latencyを比較する
- JavaScript Detectionsを無効化する
- incident時のmode切替手順を演習する
失敗しやすい点
PrecursorがChallengeを完全に置き換えると思う、JSDを同時運用する、全pathをMaximize Securityにする、API requestでcookieを送らない、bot scoreだけでblockする、といった問題が起きやすい。session判定はdevice共有やprivacy設定の影響も受ける。
リスク
正規利用者の再challenge、login loop、SPA API failure、conversion低下、monitoring botの遮断がある。強いmodeを広範囲に適用すると、security event増加が攻撃増加なのか設定変更なのか判別しにくくなる。
評価方法
- challenge solve率と再challenge率
- bot score分布の変化
- false positive問い合わせ件数
- login・checkout成功率
- API 401・403率
- conversion率
- automation detectionの増分
- page・API latency
ロールバック
問題が出たpathのruleをMinimize Frictionへ戻し、必要ならPrecursorを無効化する。JSDへ戻す場合は同時有効化を避け、切替順序を明示する。設定変更前後のSecurity Analyticsを保存し、rollback後にscoreとerror rateが戻ったか確認する。
編集部分析
session-based detectionは、攻撃者が最初だけ人間らしく振る舞う回避策へ対応する。運用の焦点はblock率ではなく、継続判定によって正規sessionの体験を壊していないかにある。securityとUXを同じdashboardで評価する体制が必要である。
実務チェックリスト
- [ ] JSDとPrecursorの同時運用を避けた
- [ ] Minimize Frictionから開始した
- [ ] sensitive pathだけ強化した
- [ ] XHR/fetchのcookie送信を確認した
- [ ] challenge loopを監視する
- [ ] conversionとsecurityを同時評価する
- [ ] mode切替手順を演習した