AppSec連載2回目記事では、いくつかの主要なWAFソリューションの有効性を実環境でテストした方法について説明する。
市場に出回っている多くのWAFソリューションは、OWASPコアルールセットのシグネチャを使用するModSecurityベースのエンジンであるため、結果は似ているかもしれないと想定していたが、驚いたことに、ソリューション間で大きな違いがあった。
イントロダクション
ウェブアプリケーションファイアウォール(WAF)を選択する際に最も重要な2つのパラメータは、次の2つの関数であるバランス精度である。
- セキュリティ品質(True Positive Rate) - 悪意のあるリクエストを正しく識別してブロックするWAFの能力は、今日の脅威の状況において極めて重要である。ゼロデイ攻撃を先手を打ってブロックするだけでなく、ハッカーが利用する既知の攻撃手法にも効果的に取り組まなければならない。
- 検知品質(False Positive Rate) - 正当なリクエストを正しく許可するWAFの能力もまた重要である。なぜなら、これらの正当なリクエストに対する妨害があれば、重大なビジネスの中断と管理者の作業負荷の増加につながる可能性があるからである。
セキュリティを提供し、管理オーバーヘッドを最小限に抑えるために、最適なWAFソリューションは、セキュリティ品質と検知品質の両方で高いパフォーマンスを発揮し、バランスを取る必要がある。これは、バランス精度(True Positives RateとTrue Negatives Rateの算術平均)と呼ばれる測定値によって適切に表される。
waf-comparison-projectは、非常に包括的なデータセットを使用して、上記の要因をテストすることができるオープンソースツールである:
- 12カテゴリー、185の実在するウェブサイトからの973,964件の正当なHTTPリクエスト
- よく経験される幅広い攻撃ベクトルから73,924件の悪質なペイロード
オープンソースの精神に忠実に、このGitHubリポジトリで、このテストを検証し再現するために必要なテスト方法、テストデータセット、オープンソースツールのすべての詳細を提供する。
テスト結果
テストは2023年7月に実施され、下記よくあるWAFソリューションを比較した:
- Microsoft Azure WAFv2 - OWASP CRS 3.2 ルールセット
- AWS WAF - AWSマネージドルールセット
- AWS WAF - AWSマネージドルールセットとF5ルールセット
- CloudFlare WAF - マネージドルールセットとOWASPコアルールセット
- F5 NGINX App Protect WAF - Default プロファイル
- F5 NGINX App Protect WAF – Strict プロファイル
- NGINX ModSecurity - OWASP CRS 3.3.4
- open-appsec / CloudGuard AppSec - デフォルト設定(高信頼性)
- open-appsec / CloudGuard AppSec - クリティカル信頼性設定
以下の2つのグラフは、主な調査結果をまとめたものである。
セキュリティ製品は、セキュリティ品質と検知品質はトレードオフ関係の場合が多い。最初のグラフは、各カテゴリーにおける各製品のパフォーマンスを可視化的に示している。
製品の性能に大きな差があることが明らかになった。例えば、CloudFlare WAFはほぼ完璧な検出品質(99.945%)を提供するが、テストした全製品の中で最も低いセキュリティ品質(67.297%)を提供する。Azure WAFは非常に高いセキュリティ品質(98.547%)を提供するが、誤検知率も非常に高い(38.346%)。このような結果は、この製品を実際の環境で使用するには、重大なセキュリティリスクがあるか、初期および継続的に非常に重いチューニングが必要であることを示している。
テストした全製品のバランス精度の結果は、以下のグラフで見ることができる:
デフォルト構成を使用したopen-appsec / CloudGuard AppSecは、最高のバランス精度(97.28%)を提供し、次いでクリティカルプロファイル構成を使用した同製品(96.8%)、そしてストリクトプロファイルを使用したNGINX AppProtect(92.52%)と続く。
まとめ
WAF製品がWebアプリケーションやAPIを保護するという約束を果たすためには、セキュリティ品質と検知品質の両方において優れていなければならない。この記事では、主要なWAFソリューションが実世界でどのように動作するかを確認できる、ラボベースの貴重な比較を提供している。この記事によって、製品の性能に大きな違いがあることが明らかになり、一部の製品では重大なセキュリティ・リスクが生じたり、製品を実際の環境で使用するために初期段階から継続的に非常に重いチューニングが必要になったりすることがわかる。
私たちは、テストの結果だけでなく、方法論、データセット、ツールを共有することで、ユーザーが使用するソリューションをテストできるようにし、業界で切望されている透明性の確保に貢献したいと考えている。結果の一部について本当に驚いており、コミュニティがこのテストの結果を再現し、質問することを歓迎する。
open-appsecについて
open-appsec は、OWASP-Top-10やゼロデイ攻撃 に対する先制的なWebアプリ&API脅威保護を提供する機械学習を基盤としたオープンソースプロジェクトである。多くのWAFソリューションで一般的な脅威シグネチャの維持管理や例外処理が不要なため、メンテナンスが簡素化できる。
参考資料