本サイトは、快適にご利用いただくためにクッキー(Cookie)を使用しております。
Cookieの使用に同意いただける場合は「同意する」ボタンを押してください。
なお本サイトのCookie使用については、「個人情報保護方針」をご覧ください。
MBSD-SOCのMSS(マネージドセキュリティサービス)のサービスラインナップのひとつであるCloudflare WAFについて、今回は2021年にリリースされた新しいバージョンのWAFについて紹介します。本記事では便宜的に新しいバージョンのWAFを新WAF、以前のバージョンのWAFを旧WAFとして記載します。
なお、CloudflareにおけるWAFの構成や考え方の基本的な部分は旧WAFと変わりませんので、以前の記事(第1回 第2回 第3回)も合わせてご参照ください。
新WAFを利用する上での主な変更点は大きく2点です。
- ルールセットというの考え方の登場
- アカウントレベル/ゾーンレベルというの考え方の登場
ルールセット
ルールセットの構成
新WAFではWAFを構成するルールの集合を「ルールセット」として定義しています。クラウドフレア独自のルールであるCloudflareマネージドルールセット、Mod Securityバージョン3.3をベースとしたCloudflare OWASPコアルールセットの2つのルールセットが中心となっています。マネージドルール・OWASPルールの2つが中心となっている点は旧WAFと同様ですが、新WAFでは内部エンジンの実装が更新され、安定性・速度向上が図られたとのことです。
参考:The Cloudflare Blog: A new Cloudflare Web Application Firewall
また、記事掲載時点(2022年3月)では、Cloudflare Leaked Credentials Checkというルールセットも利用可能です。これは漏洩した認証情報にマッチしたログイン試行を検知するためのルールセットとして提供されています。ルールにマッチしたリクエストを「検知・ブロックする」というよりかは、リクエストヘッダに情報を追記してアプリケーション側で追加のアクション(例えば多要素認証やパスワード変更)を求めるなどといった使い方を想定しているようです。
図1 WAFにルールセットを適用するイメージ
各ルールセットの中にはルールセットを構成するルールが登録されており、保護対象サイトの特性や通信傾向に応じて各ルールの設定(検知時の動作やルールの有効/無効)を変えることができます。新WAFでは、各ルールのデフォルトの設定状態からの設定変更は「オーバーライド」という考え方になっています。
図2 各ルールの設定画面:各ルールはタグ付けされていて、タグを使って関連するルールをリストアップできる
検知除外設定の強化
新WAFでは検知除外条件をWAFの機能の中に定義できるようになりました。旧WAFではファイアウォールルールの中でWAFをバイパスするための設定をする必要がありましたが、新WAFではWAFの中に定義ができるようになったことで、検知除外の条件としてWAFのルールIDを指定することができるようになりました。
例えば、攻撃検知精度の高いルールにおいて、アプリケーションの仕様のため、ある特定のパスやパラメータにおいて誤検知が発生してしまっているといったケースを考えてみます。誤検知しているルール自体を無効化してしまうのではなく、誤検知の生じている条件(パスやパラメータ + ルールID)を指定して検知除外をすることで、誤検知を軽減しつつも、このルールによる全体の防御効果を維持するといった使い方ができます。
図3 検知除外設定画面例:ホストとパスに特定のルールを指定して除外設定するイメージ
ゾーンレベル・アカウントレベル
新WAFでは「ゾーンレベル」と「アカウントレベル」の概念が登場しました。ゾーンはドメイン単位(CloudflareのGUIではウェブサイトと表現されています)、アカウントは契約単位と考えていただくと分かりやすいかと思います。
図4 「アカウント」と「ゾーン(ウェブサイト)」のイメージ
アカウントレベルでのWAF構成
旧WAFではWAFをゾーンレベルでのみ構成可能でしたが、新WAFではアカウントレベルでもWAFを構成できます。アカウントレベルでWAFを構成すると、そのアカウント内にある複数のゾーン(≒ドメイン)でルールセットを共用することが可能です。例えば、似た構成のシステムを複数ドメインで運用しているケースなどにおいて、ドメインを跨いでルールセットを共用することで、WAFの設定や運用を簡単にすることができます。
図5 構成イメージ
また、ルールセットには評価順の考え方があります。(1)アカウントレベル → (2)ゾーンレベルの順で評価されますので、WAFを構成する際には注意が必要です。
図6 ルールセットの評価順序イメージ
引用:About Ruleset Engine · Cloudflare Ruleset Engine docs
アカウントレベルでのルールセット活用方法
ここで、アカウントレベルでのルールセットの少し裏技的な活用方法をご紹介します。
OWASPルールセットはアノマリスコア値の閾値と閾値超過時の動作をひとつのみ設定できます。アカウントレベルではルールセットを複数構成できることを利用し、疑似的にOWASPルールセットに複数の閾値・閾値超過時動作を適用することができます。
例えば、閾値を高く設定し攻撃をブロックするためのOWASPルールセット(1)と、閾値を下げて広く攻撃を検知するためのOWASPルールセット(2)を同時に適用することで、攻撃をブロックしつつも攻撃の検知範囲を広げるといった構成をすることが可能です。
MBSD-SOCではOWASPルールセットでも多くの攻撃を検知できることを確認していますので、このような活用方法もWAFでの防御効果を高める方法のひとつではないかと考えています。(※レイテンシの考慮などが必要と思われますので、十分に検証のうえ利用することをおすすめします)
図7 OWASPルールを多段構成したイメージ
図8 アカウントレベルでのルールセット構成画面:GUIはベータ版であり、画面構成や機能が変わる可能性があります
おわりに
新WAFのリリースにより、WAF専用アプライアンスで実装されているような機能が追加されるなど、Cloudflare WAFの柔軟性や利便性がさらに向上しました。本記事では触れていない部分においても、様々なセキュリティ機能がバージョンアップ・リリースされていますし、今後もCloudflareの機能向上に期待しています。
また、少し前の話になりますが、Cloudflare Japanさんより「Partner Tech Awards特別賞」を頂きました。MBSD-SOCでは引き続き、Cloudflareを活用したお客様のセキュリティ向上に貢献して参ります。
MBSD-SOC
おすすめ記事