2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OCI Load Balancerに直接アタッチするタイプのWeb Application Firewallを構成する

Last updated at Posted at 2024-06-05

本記事で取り扱う内容

OCIでは2種類のWAFを提供しています。

  1. Global WAF
  2. Regional WAF

OCIのLoad Balancerを使用してVCN内に構築されているアプリケーションをOCIのWeb Application Firewallで保護する手順を紹介します。

1.前提知識の確認

1.1 Global WAFとは

OCI Load Balancerに直接デプロイするWAFです。
Global WAFは以下の通りです。

  • エッジポリシーによるアクセス制御
  • 世界中に点在するエッジノードをプロキシとしてWebトラフィックをフィルタ。
  • IP Anycastによって一番近いPOPを経由する。※POP(Point of presence)ネットワークのインターフェース・ポイント
  • -外部公開システムで利用するポリシー

image.png

1.2 Regional WAF

サービス概要:お客様のアプリケーションのドメインに構築するWAF

  • WAFポリシーによるアクセス制御
  • OCI VCN内部でOCIロードバランサーにアタッチすることで透過的に動作する。
  • 外部公開システムの他、プライベート通信でも利用可能

image.png

それでは、いよいよWAFをデプロイしていきます!

手順

1. IAMポリシーの作成

OCIコンソール>アイデンティティとセキュリティ>ポリシーに移動
こちらから操作を実行するユーザーに以下のポリシーが付与されているか確認し、されていなければ以下のポリシーを作成します。

image.png

ポリシーの作成

allow group <IAMグループ名> to manage waas-family in tenancy/compartment <コンパートメント名>
allow group <IAMグループ名> to manage web-app-firewall in tenancy/compartment <コンパートメント名>
allow group <IAMグループ名> to manage waf-policy in tenancy/compartment <コンパートメント名>
allow group <IAMグループ名> to manage waf-network-address-list in tenancy/compartment <コンパートメント名>

2.WAFポリシーの設定

OCIコンソール>アイデンティティとセキュリティ>Webアプリケーション・ファイアウォールに移動
次に、WAFポリシーの作成をクリックします。
image.png

2.1 基本情報の入力

  • 名前は任意(今回はTest_WAFとします)
    image.png

  • アクションについて

image.png

  • デフォルトで3種類のアクションが表示されます。

    • 1.Pre-configured Check Action - リクエストを許可するが、ログに記録する
    • 2.Pre-configured Allow Action - アクセスを許可する
    • 3.Pre-configured 401 Response Code Action - リクエストに対し401エラーを返す

    ※事前定義されたアクションのほか、ユーザーがカスタムでアクションを作成することも可能です。
    image.png

本記事では、そのままデフォルトのアクションを使用します。

2.2 アクセス制御

アクセス制御の画面にて、「アクセス制御の有効化」ボタンにチェックを入れます。

リクエスト制御と、レスポンス制御を設定可能です。
概要はこちら↓

  • 特定のURL、IPアドレス、国/地域、HTTPヘッダ(UserAgent含む)、HTTPメソッドに応じて、アクション定義することが可能
  • 対応するアクション:チェック、許可、401応答コード or 新しい制御ルール
  • カスタムアクションを設定して任意のWebレスポンス・ページを設定可能

image.png

アクセス制御では、日本からのアクセスを許可し、日本以外の国からのアクセスには401コードを返却するようにルールを作成します。

  • 名前 - 任意
    • 例)access-rule1
  • Condition type - Country/Region
  • Operator - Not in list
  • Countries - Japan
  • アクション名 - Pre-configured 401 Response Code Action

image.png

2.3 レート制御の作成

image.png
レート制限の画面にて、「レート制限ルールの構成の有効化」ボタンにチェックを入れます。

レート制限の概要はこちら。

  • アクセス制御にプラスして、所定期間(秒)あたりのリクエスト制限数を設定し、アクションの継続時間(秒)をオプション指定できる
  • 特定の条件 (オプション)に対して対応するアクションを設定することが可能

「レート制限ルールの追加」ボタンをクリックし、以下を入力します。

  • 名前 - 任意
    • 例)Rate-Rule1
  • Conditions(optional) - 空欄
  • リクエスト制限 - 100
  • 期間(秒) - 1
  • アクション期間 ‐ 空欄
  • アクション名 - Pre-configured 401 Response Code Action

image.png

2.4 保護ルールの有効化

保護ルールの概要はこちら↓

  • Open Web Application Security Project (OWASP)のルール・セットとカスタムルール・セットをサポート
  • SQLインジェクション、クロスサイト・スクリプティング、およびWAFルール・セットで検出およびブロックできるHTMLインジェクションなど様々な悪意のあるトラフィックからアプリケーションを保護
  • 条件はオプションで指定可能

その他色々ありますが、保護ルールではOWASP Top10に分類されるようなWebアプリケーションへの代表的な攻撃、脅威を検知するルールを設定できるようですね。

本チュートリアルでは、リモートコード実行を検知する保護ルールを有効化し、リモートコード実行が検知された場合に401コードを返却するように設定をします。

リクエスト保護ルールの追加」ボタンをクリックし、以下を入力します。
image.png

名前 - 任意 例)Protection-Rule1
Conditions(optional) - 空欄
アクション名 - Pre-configured 401 Response Code Action
image.png

2-5. 強制ポイントの選択

事前準備で予め作成、構成していたファイアウォールを選択し、「次」ボタンをクリックします。
image.png

2.6 確認

image.png

image.png

5分ほどでプロビジョニングが完了します。

image.png
作成したWAFが作成されました!

WAFの機能確認

試しにロードバランサのPublicIPアドレスにアクセスしてみます。
image.png
IPアドレスを検索欄に貼り付けると、401:Unauthorizedエラーと返ってきます。
WAFで設定したアクセス制御通りに実行されていることが確認できました!

image.png

image.png
ロードバランサ>メトリックからもログを確認できました。
image.png

まだまだWAFについては検証したいところですが、今回は一旦ここまで

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?