F5 BIG-IP Next WAF v20.0 簡単セットアップガイド

最終更新日: 2024年x月xx日

はじめに

このページでは、これらのオフィシャルなドキュメントの補足となる資料や、複数の機能を組合せてソリューションを実現する方法をご紹介いたします。 F5のオフィシャルなドキュメントはこちらにございます。

コンテンツ

こちらのページでは、以下の内容をご紹介しております。

  • 本セットアップガイドにて、F5 BIG-IP Next WAF(以下"Next WAF")のポリシーの設定方法についてご案内します。

  • Next WAFは、Webアプリケーションファイアウォールです。

  • Next WAF によって、Web アプリケーション特有の攻撃に対する防御が可能となります。

  • Bot対策機能、L7レベルのDoS攻撃に対する防御機能も兼ね備えています。

  • 本ガイドでは、Next WAFをご購入いただいてすぐにWAFを導入頂けるように、必要となる典型的なセットアップ手法を、豊富なスクリーンショットを交えて解説します。(実際は環境構成にあった設定値を設定して下さい。)

  • 本ガイドでは、F5 Japanにおけるハンズオントレーニングのコースでも利用しております。

注釈

本ドキュメントの手順は、F5 UDF (Universal Demonstration Framework)というラボ環境での実施を前提に書かれています。 UDF以外での環境で利用される場合は、IPアドレス等は環境に合わせて読み替えてください。

注釈

設定手順において、スクリーンショットを撮った環境や時期により、スクリーンショット内の値とガイド内で指示される値が異なる箇所があるかもしれませんが、ご容赦ください。

BIG-IP Next WAF ハンズオン概要

本章では、BIG-IP Next WAFとハンズオン環境の概要についてご紹介致します。

BIG IP Nextの概要を学習したい場合は、以下を参照ください。

https://f5j-easy-setup-next-ltm.readthedocs.io/ja/latest/content01/module02/module02.html

BIG-IP Next WAFとは

F5 BIG-IP Next WAFとは、OWASP TOP10の攻撃、ウェブアプリケーションの脆弱性、ゼロデイ攻撃、L7レイヤのDDoS攻撃などからWEBアプリケーションを守る高度なウェブアプリケーションファイアウォールです。

BIG-IP Next WAF は、堅牢なセキュリティ ポリシーを作成することによって、有効なアプリケーション トランザクションのみを許可し、バッファ オーバーフロー、SQL インジェクション、クロスサイト スクリプティング、パラメータ改ざん、Cookie ポイズニング、Web スクレイピングなどの対象となるアプリケーション層の脅威から Web アプリケーションを保護します。ポジティブセキュリティ モデルを使用して、検証されたユーザー セッションとユーザー入力、および有効なアプリケーションの応答の組み合わせに基づいてアプリケーションを保護します。また、セキュリティ ポリシーテンプレートにより、一般的なアプリケーションをシンプルかつ迅速に保護できる仕組みを提供しています。

_images/WAF.png

ハンズオン環境ネットワーク構成

BIG-IP Next WAFハンズオンのシナリオでは以下のネットワーク環境を構築します。

_images/NETWORK.png

WAFポリシーの作成とデプロイ

本章では、BIG-IP NEXTのCentral Manager (CM) からWAFポリシーを作成し、脆弱なアプリケーションにアサインすることによって脅威から保護します。

脆弱なウェブサーバーをデプロイ

UDF画面上部タブの"DEPLOYMENT"をクリックし、BIG-IP Next Central Managerインスタンスの"ACCESS" > "GUI" を選択します。

_images/Picture01.png

BIG-IP Next CM GUIへのログイン、ログインプロンプトが表示されたら、ユーザ名/パスワードを入力してログインします。
  • ユーザー名/パスワード:

  • admin/Welcome123!

_images/Picture2.png

ログインすると次のようなホーム画面から"Manage Applications"をクリックします。

_images/Picture3.png

“Add Application”をクリックして、新規アプリケーション作成します。

_images/Picture4.png

  • Application Service Name:
    • HTTP-DVWA (任意の名前)

  • What kind of Application:
    • Standard を選択

  • “Start Creating” を二回クリック

    _images/Picture5.png

“Pools”を選択し、“Create”をクリックしてpoolの名前とポート番号を入力します。

  • Pool Name:
    • dvwa_pool

  • Server Port:
    • 80

  • Load-Balancing Mode:
    • round-robin

  • Monitor Type:
    • http

    _images/Picture6.png

"Virtual Servers"のtabに戻り、以下内容を入力します。

  • Virtual Server Name:
    • DVWA-VS

  • Pool:
    • dvwa_pool (先ほど作成されましたpoolを選択)

  • “Review & Deploy” をクリック

    _images/Picture7.png

次の画面から"Start Adding"をクリック、“big01.f5lab.local” のチェックボックスをチェックしてから"Add to List"をクリックします。

_images/Picture8.png

次のDeploy画面で、Virtual ServerのIPとPool memberを設定します。

  • Virtual Address:
    • 10.1.10.100

  • Membersの下矢印を展開し、 “+Pool Members” をクリック

    _images/Picture9.png

“+Add Row” を2回クリックpool memberを作成します。

  • Name:
    • dvwa_server

  • IP Address:
    • 10.1.20.101

  • 入力後、 ”Save” をクリック

    _images/Picture10.png

設定内容に問題ないかを適用前に"Validate All"で検証し、エラーがなければ"Deploy Changes"をクリックして本番適用します。

_images/Picture11.png

_images/Picture12.png

デプロイ完了後、Dashboardから作成されたアプリケーション"HTTP-DVWA"を確認出来ます。

_images/Picture13.png

UDF環境からWindowsクライアントを起動します。
  • ユーザー名/パスワード:

  • user/user

_images/Picture14.png

Chromeブラウザを開き、http://10.1.10.100/DVWA/login.php にアクセスします。 Username: admin、Password: password でログインします。

_images/Picture16.png

DVWA Security にアクセスし、Security Level を Low に設定します。

_images/Picture17.png

SQL Injection にアクセスし、User ID に 'or 1=1 # と入力し、SQLインジェクション攻撃をします。(本ガイドからコマンドはコピーしないで下さい。シングルクォーテーションに注意してタイプして下さい。)

_images/Picture15.png

WAFポリシーを作成してアプリケーションへ適用

CM画面左上部のworkspaceから、”Security”を選択します。

_images/Picture1.png

画面左側で"WAF" > "Policies"を選択、"Create"をクリックしてポリシーを新規作成します。

_images/Picture21.png

  • Name:
    • dvwa_waf_policy (任意の名前)

  • Advanced Viewをenableします (テンプレート選択のため)

  • Template:
    • RAPID-Template

  • Enforcement Mode:
    • Blocking

  • “Save” をクリックします

    _images/Picture31.png

作成されたWAFポリシーを選択、”General Settings”から”Log Events”を”All”にし、”Save”をクリックします。

_images/Picture41.png

_images/Picture51.png

"Attack Signatures"のページを選択し、"Enforce" > "Enforce all Staged Signatures"でシグネチャのstagingを解除します。

_images/Picture61.png

_images/Picture71.png

CM画面左上部のworkspaceから、"Applications"へ戻ります。先ほど作成したアプリケーション(HTTP-DVWA)を選択し、"Edit"します。

_images/Picture81.png

_images/Picture91.png

“Security Policies”の編集マークをクリックします。

_images/Picture101.png

  • “Use a WAF Policy” をenableします

  • WAF Policy Name:
    • dvwa_waf_policy (先ほど作成したWAFポリシー)

  • “Save” をクリックします

  • “Review & Deploy” > “Validate All” > “Deploy Changes” でWAFポリシーをアプリケーションへ適用します

    _images/Picture111.png

    _images/Picture121.png

WindowsクライアントからDVWAのSQL Injectionページより、User ID に 'or 1=1 # と入力し、SQLインジェクション攻撃をします。攻撃がrejectされたことを確認します。

_images/Picture131.png

セキュリティイベントの確認とシグネチャのチューニング

誤検知などが発生した場合の対処例をご紹介します。 以下で実施する内容は、Webアプリケーションの各パラメータの役割が全て把握できている場合を除き、運用開始前から全てを設定するのは難しいかもしれません。その場合は、仮運用・本運用に入ってから、チューニングが簡単に実施可能です。

CM画面左上部のworkspaceから、”Security”を選択します。 “WAF Dashboards”からセキュリティモニタリング情報を確認します。 “Polices”からポリシーごとにセキュリティイベントに対してフィルターかけます。

_images/Picture18.png

“Signatures”から先ほどrejectされたsql injectionリクエストをクリックし、”View Log”から詳細logを確認可能です。 (クライアントPCのブラウザ上のリスポンスから表記されたSupportIDをlog中のSupportIDを比較することでイベントログを特定出来ます。)

_images/Picture22.png

_images/Picture32.png

“Actions”をクリックすると、シグネチャごとでenforcement settingを特定ポリシーに対してoverrideすることが出来ます。

_images/Picture42.png

“Save” > “Deploy” でシグネチャのoverrideを適用して、クライアントから再度SQLインジェクション攻撃をする際、リクエストはrejectされません。

_images/Picture52.png

また、Event Logsからはリクエストログを確認出来ます。

_images/Picture62.png

Blocking画面のカスタマイズ

攻撃をブロックした際、ユーザに返されるレスポンスページの内容をカスタマイズすることが可能です。

CM画面左上部のworkspaceから、"Security"を選択します。 WAF > WAF Policysより、適用したいWAFポリシーを選択して、"Response Pages"の設定ページを選択します。

Response Bodyでブロックページの内容をカスタマイズすることが出来ます。 "Preview"をクリックすることで、ブロックページのレビューが表示されます。クライアントから攻撃を行う際、カスタマイズされた内容がブラウザで表示されます。

_images/Picture19.png

_images/Picture23.png

また、必要に応じて、Response Headersをカスタマイズする(eg. response codeを200から403へ変更など)や、ブロックページを指定URLへRedirectすることも設定可能です。

_images/Picture33.png

_images/Picture43.png

Geolocationの設定

WAFポリシーに保護されているアプリケーションに対して、Geolocation Enforcementを使用して特定の国でのアプリケーションの使用を制限または許可できます。 デフォルトでは、すべての地理位置からのアクセスが許可されます。Geolocation の設定を行うことで、接続される予定のない国からの接続をブロックすることが可能です。

CM画面左上部のworkspaceから、"Security"を選択します。 WAF > WAF Policysより、適用したいWAFポリシーを選択して、"General Settings"の設定ページを選択します。 “Advanced View”をEnableします。

_images/Picture110.png

設定画面のAllowed Geolocations / Disallowed Geolocationsの指定により、ブロックしたい地理位置を設定して “Save & Deploy” します。

_images/Picture24.png

その他、ポリシーの詳細カスタマイズ方法は以下の記事をご確認下さい。

シグネチャのアップデート

F5 は、Attack Signature, Bot Signatureと Threat Campaigns更新を頻繁にリリースします。 これらの更新には、新しいエントリと既存のエントリの機能強化が含まれます。

本章は、Attack SignatureなどLive Upatesを適用する方法を紹介します。

Live Updatesの設定と適用

CM画面左上部のworkspaceから、"Security"を選択します。 WAF > Live Updates > Attack Signaturesを選択し、リフレッシュマークをクリックすることで、最新のアップデートをダウンロードします。

_images/Picture112.png

_images/Picture25.png

最新のファイルネームを選択し、”Install”をクリックしてアップデートを適用します。

_images/Picture34.png

インストール完了後、最新のファイルのStatusがActiveになります。

また、Settings で Install Latest Update Automaticallyの設定をEnabled (Real Time)へ変更すると、手動で最新のアップデートファイルを取得することが不要で、アップデートファイルが定期的にダウンロードされます。

_images/Picture44.png

_images/Picture53.png

以上AutomaticallyアップデートはAttack Signatures, Bot Defense, Threat Campaignsごとで設定されます。 必要に応じて該当tabを選択する上、設定してください。

_images/Picture63.png