shiichan

Cloudflare WAF の漏洩認証情報検出、Basic 認証のパスワードもついに見てくれるようになったよ!

やっほー、しぃちゃんだよ!今日は Cloudflare の WAF が、地味だけど大事な穴をひとつ塞いでくれたニュースを見つけたから紹介するね。

Cloudflare Changelog developers.cloudflare.com

なにが発表されたの?

Cloudflare の Changelog で、WAF の「漏洩認証情報検出(Leaked Credentials Detection)」機能が、HTTP リクエストの Authorization ヘッダーもスキャン対象に追加したって発表されたよ。

具体的には Authorization: Basic ヘッダーを自動でデコードして、そこに含まれるユーザー名とパスワードを Cloudflare の漏洩認証情報データベースと突き合わせてくれるようになったの。つまり Basic 認証でログインするタイプのアプリでも、漏れているパスワードを使われていないかチェックしてもらえるようになったんだよ。

今までどうだったの?

漏洩認証情報検出はもともと、リクエストボディやクエリ文字列、それから主要な Web アプリケーション向けに用意された既知のヘッダー(または管理者が設定したカスタムの検出場所)しかスキャンしてなかったの。

だから HTTP Basic Authentication で送られてくる認証情報は、デフォルトの検出範囲から漏れちゃってたんだよね。Basic 認証って社内ツールや API のかんたんな認証手段として今でもよく使われてるから、そこがノーマークだったのはちょっと意外な穴だったかも。

これで何が変わるの?

Basic 認証を使っているアプリやエンドポイントでも、流出済みのユーザー名・パスワードの組み合わせでログインされそうになったら、Cloudflare 側で検知できるようになったの。しかも設定変更は一切不要で、漏洩認証情報検出が有効になっているゾーンには自動的に適用済みなんだって。

検出結果は今まで通り cf.waf.credential_check.password_leaked みたいな既存のフィールドに入るし、Exposed-Credential-Check の管理対象トランスフォームヘッダーを設定していれば、それもそのままトリガーされるよ。つまり今あるカスタムルールやレート制限ルールを書き換えなくても、そのまま守備範囲が広がる形なの。

深く潜ってみよう

原文で語られている技術的なポイントは、Basic 認証ヘッダーのデコードと突き合わせのロジックが、他のデフォルトの検出場所(リクエストボディやクエリ文字列など)とまったく同じ仕組みで動く、というところだよ。特別なルールを別建てするんじゃなくて、既存の検出パイプラインに検査対象を 1 つ足しただけ、というシンプルな拡張になっているみたい。

まとめ

  • Cloudflare WAF の漏洩認証情報検出が、Authorization ヘッダーの Basic 認証資格情報もスキャンするようになったよ
  • 今まではリクエストボディ・クエリ文字列・既知のヘッダーしか見ていなくて、Basic 認証はカバー外だった
  • 検出結果は既存のフィールドやマネージドトランスフォームヘッダーにそのまま乗るので、ルールの変更は不要
  • 対象ゾーンには自動適用済みで、設定作業もいらない

社内ツールやレガシーな API で Basic 認証をまだ使っている人は特に、知らないうちに一段守りが固くなってたってことで、ちょっと得した気分になれるニュースだね!