F5 XC WAAPで実現!ベーシックなクラウドWAF
目次[非表示]
はじめに
先日のブログ「WAAPとは?~包括的にWEBサイトを防御する次世代ソリューション~」では、F5社のWAAPサービスである「F5 XC WAAP」の概要をご紹介しました。
今回は、F5 XC WAAPの多様な機能の中でも、ベーシックなクラウドWAF防御を実現する「App Firewall」に焦点をあてて、設定内容や適用方法をご紹介したいと思います。
また、多くのクラウドWAFが対応していない検知ルールの追加に関して、F5 XC WAAPにてどのように設定を行うのかについても、あわせて紹介したいと思います。
※WAAPとは、Web Application and API Protectionの略で、Web Application Firewall (WAF)、APIセキュリティ、Bot対策、DDoS対策の4つの機能を有するセキュリティ対策の新しい概念です。
※F5 XC WAAPは、F5 Distributed CloudというF5のクラウド上で提供される、WAAPの4つの機能を有したSaaS型サービス(F5 Distributed Cloud Web Application and API Protection)の略称です。
F5 XC WAAPのWAF機能:App Firewallとは
F5 XC WAAPのWAF機能において、Signatureによる一般的なWAFの防御機能が「App Firewall」です。「App Firewall」という設定を作成し、HTTP Load Balancerに適用することでベーシックなクラウドWAF防御を簡単に利用することができます。
F5 XC WAAPのWeb Application Firewall (WAF)機能では、Signatureによる一般的なWAFの防御機能に加えて、Cross-Site Request Forgery(CSRF)に対する防御機能やGraphQL、Cookieに関する攻撃を軽減する機能が提供されています。
App Firewallの設定内容
「App Firewall」の設定内容について、簡単にご紹介します。
- Enforcement Mode
WAFの動作モードを選択する機能です。Monitoringモードでは攻撃を検知した際に、ブロックせずにセキュリティログ出力のみを行います。Blockingモードを選択すると検知した通信をブロックし、セキュリティログ出力を行います。
以前のブログ「F5 XC WAAPの導入方法 ~DNSを切り替えて簡単に導入~」でもご紹介しました通り、導入当初はMonitoringモードにて誤検知の有無を確認し、誤検知が発生しないようにチューニングを実施した後にBlockingモードへ変更することを推奨しております。
- Attack Signatures
Signatureを用いて、Webアプリケーションを攻撃から防御することができる機能です。Attack Signatureに関する設定項目について、以下でご紹介します。
- Signature Selection By Accuracy
Attack Signatureにて攻撃を検知する精度を指定する機能です。検知制度はHigh・Medium・Lowから指定可能です。Highの場合、検知精度の高いSignatureのみが設定され、誤検知が少なくなると見込まれます。Lowの場合、検知精度の低いSignatureも設定されます。誤検知が増える可能がありますが、検知できる攻撃のパターンも多くなります。
- Automatic Attack Signatures Tuning
誤検知のトリガーを自動学習することで誤検知を減らすことができる機能です。 AI/MLによりトラフィックの状況を見て特定のAttack Signatureをブロックしないように動作します。
- Attack Signatures Staging
F5により追加または更新されたAttack Signatureを一定期間、Monitoringモードで運用する機能です。Attack Signature はF5の日々の調査により、逐次追加や更新が自動で行われます。本機能により、Attack Signatureの追加または更新の影響による誤検知でのブロックの発生を抑えることが可能となります。
- Threat Campaigns
ハニーポットなどを用いたF5セキュリティチームの最新の脅威分析結果から、実際に発生している攻撃を解析し、最新の攻撃パターンに即したSignatureを提供する機能です。有効/無効の設定が可能です。
- Violations
HTTPリクエストがRFCに準拠しているかを判定する機能です。デフォルトでは、検知可能な非準拠のHTTPリクエストすべてが検知の対象となっています。
ご利用のアプリケーションに合わせて、非準拠のHTTPリクエストの種類ごとに検知を除外する設定が可能です。
- Signature-Based Bot Protection
Bot特化のSignatureを用いたBot対策機能です。 F5は「Malicious Bot」「Suspicious Bot」「Good Bot」の3つのBot種別を定義しており、Malicious Botが有害なBotである可能性が高く、Good Botは無害である可能性が高いことを表しています。各Bot種別に対して、Security Eventに出力しブロックする(Block)、Security Eventに出力しブロックしない(Report)、Security Eventに出力せずブロックしない(Ignore)から動作モードを選択し、Botトラフィックを制御します。
- Advanced configuration
許可するステータスコードの指定やF5 XC WAAPのログにおける機密データのマスキング機能、ブロック時に表示するページのカスタマイズが可能です。
- Allowed Response Status Codes
クライアントに渡すことを許可するHTTPレスポンスのステータスコードを指定する機能です。許可されていないステータスコードのHTTPレスポンスはF5 XC WAAPでブロックされます。
例えば、ステータスコード404をブロックし、ファイルやディレクトリの存在有無を確認する行為への防御や、ステータスコード500をブロックし、Internal Server Error情報の露出を防ぐことに、利用できます。
- Mask Sensitive Parameters in Logs
ログ情報内に現れる機密データをマスキングする機能です。デフォルトではクエリパラメータの「card」「pass」「pwd」「password」の値をマスキングするようになっています。アプリケーションに合わせてカスタマイズする場合は、HTTP Header、Query Parameter、Cookieを指定することで設定が可能です。
- Blocking Response Page
通信をブロックした際、クライアントに表示されるページとHTTPレスポンスのステータスコードをカスタマイズする機能です。
デフォルト設定の場合、以下のページが表示され、ステータスコード200が返されます。
HTTP Load BalancerへのApp Firewall適用方法
ここまでApp Firewall の設定内容について、ご紹介しました。次に、App Firewallを実際に利用する方法をご紹介します。
F5 XC WAAPのWAF機能を利用するにあたって必要な設定は以下の3つのみです。
- HTTP Load Balancer 作成
ここでは詳細を省きますが、トラフィックの受け口として定義が必要です。
App Firewall 作成
F5 XC WAAPのベーシックなWAF機能であるApp Firewallの設定を作成します。-
App FirewallをHTTP Load Balancer へ適用
HTTP Load BalancerにApp Firewallを適用することで、トラフィックに対し、攻撃検知を行うようになります。
App FirewallをHTTP Load Balancerへ適用する方法は主に次の2つのパターンに分けられます。
- App FirewallをHTTP Load BalancerのWeb Application Firewallで適用
単にHTTP Load BalancerにApp Firewallを適用する場合、HTTP Load Balancer設定のWeb Application Firewallにて設定します。この場合、HTTP Load Balancerに設定しているすべてのドメインに対して、App Firewallで設定した内容が適用されます。
「Web Application Firewall (WAF)」をEnable(デフォルトはDisable)とし、適用したいApp Firewallを指定します。
- App FirewallをHTTP Load BalancerのRoutesで適用
HTTP Load Balancerでは保護対象となるWEBアプリケーションのドメインと振り分け先を複数設定でき、その振り分けをRoutes設定で制御します。
Routes設定のデフォルトでは、HTTP Load Balancerに適用したApp Firewallを継承し適用する設定(Inherit App Firewall)となっています。特定のRoutesの通信に対してHTTP Load Balancerで適用したものとは異なるApp Firewallを適用したい場合は、それぞれのRoutes設定に個別のApp Firewallを適用する必要があります。
Routes設定にApp Firewallを適用する場合、HTTP Load BalancerのRoutes設定のAdvanced Options内のSecurityにて設定します。
「Web Application Firewall (WAF)」をApp Firewallとし、適用したいApp Firewallを指定します。
検知ルールの追加
App Firewallでの攻撃検知・ブロックに加えて、環境や要件に合わせた攻撃検知・ブロックを行う方法がありますので、いくつか紹介したいと思います。
- Client Blocking Rules
クライアントの条件を用いてブロックを行う場合には、「Client Blocking Rules」を利用します。
本設定では、送信元のIPアドレスやAS番号、HTTP Headerの条件、F5 XC WAAPが付与するユーザ識別子(User Identifier)を条件として、攻撃を検知・ブロックするルールを追加設定することができます。
本機能は管理画面の検知・ブロックしたSecurity Event一覧の「Add to Blocked Clients」からも設定可能です。
以下は「Add to Blocked Clients」を利用して、ルールを追加設定する場合のサンプル画面になります。
- Service Policy
検知ルールを新たに作成し、追加で検知するための設定を行うこともできます。この場合は「Service Policy」という機能を利用します。
送信元のIP Prefix、AS番号、Country情報やHTTPリクエストのDomain、 Method、Path、Query Parameter、Headerなど、多様な条件を組み合わせて、任意の検知ルールを追加することができます。
例えば、Malicious(悪性)と判定されているTLS Fingerprint情報を利用して、該当するクライアントを拒否するというようなルールを作成することができます。
また、リクエストに対して、サイズ制限を設けるルールを作成することも可能です。リクエストにおけるCookieやHeaderの個数や、CookieやHeaderのName、Valueの大きさ、URLやリクエストの大きさに関する制限を行うことが可能です。このようなルールを利用することで、アプリケーションの脆弱性を狙ったDoS攻撃などの軽減につながる可能性があります。
おわりに
F5 XC WAAPにて、ベーシックなクラウドWAFを利用する方法として、App Firewallの設定と適用方法をご紹介しました。また、環境や要件に合わせて、任意の検知ルールを追加する方法もご紹介しました。
今回紹介した各機能は、追加料金なし、ベースパッケージのみでのご利用が可能です。
WAF機能実装後に実施する誤検知のチューニング方法は、前回ブログ「F5 XC WAAPの導入方法 ~DNSを切り替えて簡単に導入~」でご紹介していますので、よろしければご覧ください。F5 XC WAAPにご興味ございましたら、以下サイトからお気軽に弊社までお問い合わせください。
「F5 Distributed Cloud Web Application and API Protection (F5 XC WAAP)」