ブログ

catch-img

F5 XC WAAPのアドバンストなWAF機能紹介(Part.2 Cross-Site Request Forgery Protection)


目次[非表示]

  1. 1.はじめに
  2. 2.「Cross-Site Request Forgery」とは
  3. 3.「Cross-Site Request Forgery Protection」とは
  4. 4.「Cross-Site Request Forgery Protection」の設定方法
    1. 4.1.① HTTP Load BalancerでWAFを有効化
    2. 4.2.② Cross-Site Request Forgery Protectionを設定
  5. 5.おわりに

はじめに

以前のブログ「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)

CONTACT

ITインフラに関してお悩みの方は
お気軽にご相談ください

ご不明な点はお気軽に
お問い合わせください。
ITインフラに関するお役立ち資料は
こちらよりダウンロードできます。

人気記事ランキング

タグ一覧