F5 XC WAAPのアドバンストなWAF機能紹介(Part.2 Cross-Site Request Forgery Protection)
目次[非表示]
はじめに
以前のブログ「F5 XC WAAPで実現!ベーシックなクラウドWAF」では、F5社のWAAPサービス「F5 XC WAAP」のベーシックなWAF機能「App Firewall」をご紹介しました。
F5 XC WAAPには他にもアドバンストなWAFの機能として以下が提供されています。
・Data Guard Rules
・Cross-Site Request Forgery Protection
・GraphQL Inspection
・Cookie Protection
上記機能の中で、今回は「Cross-Site Request Forgery Protection 」をご紹介します。
以下機能については前回のブログで紹介しているのでご覧ください。
・Data Guard Rules
「F5 XC WAAPのアドバンストなWAF機能紹介(Part.1 Data Guard)」
「Cross-Site Request Forgery」とは
Cross-Site Request Forgery(CSRF)攻撃は、攻撃者が正規のユーザになりすまして不正なリクエストを送信し、WEBアプリケーションに対して不正な操作を行う攻撃手法です。
CSRFの脆弱性があるWEBサイトにログインしたユーザが、攻撃者が用意した罠により、予期しない操作を実行させられてしまう可能性があります。正規のユーザになりすますことで、ユーザの権限を悪用し、ログイン後のユーザのみが利用可能な操作を実施することが目的の攻撃手法です。
「Cross-Site Request Forgery Protection」とは
F5 XC WAAPには、CSRF攻撃に対する対策として、Cross-Site Request Forgery Protectionという機能があります。Cross-Site Request Forgery Protectionとは、CSRF攻撃で用いられるPOST、PUTなどの状態を変更するHTTPメソッドを持つHTTPリクエストに対して、Originヘッダ、またはRefererヘッダを検査する機能です。
HTTPリクエストが以下の条件に合致する場合、そのリクエストを検知、ブロックします。
- Originヘッダ、Refererヘッダがどちらも存在しない場合
- Originヘッダが許可しているDomainでない場合
- Refererヘッダが許可しているDomainでない場合
「Cross-Site Request Forgery Protection」の設定方法
Cross-Site Request Forgery Protectionを利用するにあたって必要な設定は以下の2つのみです。
① HTTP Load BalancerでWAFを有効化
② Cross-Site Request Forgery Protectionを設定
それぞれの設定の詳細を以下でご紹介します。すべてHTTP Load Balancerの設定画面内でおこないます。
① HTTP Load BalancerでWAFを有効化
HTTP Load BalancerでWAF(App Firewall)を有効化します。
WAFの有効化手順は、以前のブログ「F5 XC WAAPで実現!ベーシックなクラウドWAF」でご紹介しています。こちらのブログにてご確認ください。
② Cross-Site Request Forgery Protectionを設定
Cross-Site Request Forgery Protectionの「Configure」からCross-Site Request Forgery Protection設定画面に遷移し、「Allowed Domains (Source Origin)」のプルダウンメニューから選択します。
選択できる設定は以下の通りです。
設定項目 |
設定内容 |
All HTTP Loadbalancer Domains |
HTTP Load Balancerに設定したDomainを許可する |
Specified domains |
指定したDomainを許可する |
以下は、設定画面のサンプルとなります。
下記設定では、状態変更メソッドを持つHTTPリクエストのOriginヘッダまたはReferer ヘッダが「test1.domain」または、「test2.domain」である場合は許可し、それ以外はブロックします。
実際に攻撃を検知した場合、「Overview > Security > 該当のLB > Security Analytics」より、該当のSecurity Eventを確認することができます。
以下は、Cross-Site Request Forgery Protectionによりリクエストをブロックした際のSecurity Eventのサンプルとなります。
上記の様に、Cross-Site Request Forgery Protection で検知すると、Event TypeはService Policy、sec_event_nameは"CSRF Policy Violation"と表示されます。
また、HTTPメソッドはPOSTであり、req_headersの情報を確認することで、許可していないOriginヘッダであるためブロックされたことが分かります。
おわりに
今回は、F5 XC WAAPで利用できるアドバンストなWAF機能のうち、Cross-Site Request Forgery Protectionをご紹介しました。アプリケーションに合わせてCross-Site Request Forgery Protection設定をすることで、Cross-Site Request Forgeryによる被害を軽減できると考えております。
次回は、「GraphQL Inspection機能 」についてご紹介いたします。前回ブログ「F5 XC WAAPで実現!ベーシックなクラウドWAF」でベーシックなWAF機能(App Firewall)についてもご紹介しておりますので、こちらも是非ご確認ください。
F5 XC WAAPにご興味ございましたら、以下サイトからお気軽に弊社までお問い合わせください。
「F5 Distributed Cloud Web Application and API Protection (F5 XC WAAP)」