· 

OCI WAFでJuiceサーバを保護!~Part2~

こんにちは!テリロジーのY.Tです。

今回はOCI WAFでJuiceサーバを保護!~Part1~の続きの作業をしていきたいと思います。

前回は以下の手順の1~3を実施し、OWASP Juice ShopのインストールとOWASP Tutorialsを実施したため、

ここでは、OCI WAFを利用し、OWASP Tutorialsにある攻撃がどれくらい防ぐことができるか

確認していきたいと思います!

今回の記事:

1.ドメインの取得

2.OCI上のVMにOWASP Juice Shopをインストール

3.OWASP Tutorialsの実施

4.OCI WAFの設定

5.サブネットとDNSの設定

6.OWASP Tutorialsの再実施

4.OCI WAFの設定

4-1.WAFの作成

OCI WAFは、OCIコンソール左メニューの「セキュリティ」>「Webアプリケーション・ファイアウォール」から

設定していきます。

Juice ShopをインストールしたVMマシンと同じコンパートメントを指定し、「WAFポリシーの作成」からWAF設定をしていきます。設定画面では以下の項目を入力し、下部の「WAFポリシーの作成」をクリックして作成します。

・名前(オプション):アプリケーション名などの任意のWAFの名前を入力

・プライマリドメイン:前回のOCI WAFでJuiceサーバを保護!~Part1~で取得したJuice ShopのFQDNを指定

・オリジン名:任意のアプリケーション名を入力

・URI:前回のOCI WAFでJuiceサーバを保護!~Part1~で取得したJuice ShopのIPv4アドレスまたはFQDN

4-2.WAFポリシーの適用

作成後、WAFのポリシーを有効化します。下部の「WAFポリシー」から「WAFの保護ルール」を選択すると、設定可能な保護ルールの一覧が表示されます。

サポートされている保護ルールはOracle Cloudのドキュメント「サポートされている保護ルール」から確認でき、

SQLインジェクションやXSS、ディレクトリトラバーサルなどを防ぐことができます。

また、「推奨事項」タブでは推奨設定が表示されるため、設定時に参考にすることができます。

 

ここではすべての保護ルールを有効化し、ブロックする設定にします。設定後は、左メニュー「WAFポリシー」>「公開されていない変更」へ推移し、「すべて公開」でルールを保存します。

また、今回は実施しませんが、Botを検出してブロックする機能も設定可能です。

管理画面上にはございませんが、CLI、もしくはAPIを利用して脅威インテリジェンスサービスを利用し、脅威のあるIPからの接続をブロックすることも可能です。どちらも、利用可能な脅威インテリジェンスサービスのキーリストを取得後、特定のキーを指定し、検出やブロックなどの設定が可能です。

 

Tips!

脅威インテリジェントサービスとは?

サイバー攻撃を分析している組織が提供している、脅威のある情報を利用できるサービスです。攻撃者が利用しているドメインやIPアドレス、サイトなどの情報が確認できます。OCI WAFで利用可能な情報は脅威のある
IPアドレスになります。

5.サブネットとDNSの設定

5-1.サブネットの設定

OCI WAFで利用するトラフィックをOWASP Juice Shopを構築したVMを構築したパブリックサブネットで許可します。

現在のVMの構成は以下のようになっており、パブリックサブネットに紐づけられているセキュリティリストでは、組織のグローバルアドレスからのみ接続可能となっています。

※セキュリティリストについてはOracle Cloudで作ってみた その1:仮想クラウド・ネットワーク編に説明がございます

Oracle Cloudのドキュメント「オリジン管理」に記載されているIPアドレスを、OWASP Juice ShopのVMに設定した

サブネットに追加し、通信を許可します。

サブネットは、左メニューの「ネットワーキング」>「仮想クラウド・ネットワーク」からOWASP Juice ShopのVMに設定したVCNを選択し、パブリックサブネットをクリックします。紐づけられているセキュリティリストが表示されるため、選択後、「イングレス・ルールの追加」から許可するIPアドレスを設定していきます。

5-2.DNSの設定

前回、Freenomで取得したドメインのDNS設定をしていきます。Freenom下部の「MyDomains」内の

「Manage Domain」を選択します。

 

「Manage Freenom DNS」のCNAMEでWAFのドメインを追加します。

6.OWASP Tutorialsの再実施

前回のOCI WAFでJuiceサーバを保護!~Part1~で実施したOWASP Tutorialsを再度実施し、

攻撃を防ぐことができるか検証していきます。

1.Score Board

結果:成功

これはブラウザからソースコードを確認して、クライアント側のJavaScriptからGUI上にないページを探すというチュートリアルです。JavaScriptの不備となりますが、本項目はWAFで防げる攻撃ではありません。そのため、結果としては成功しています。

2.DOM XSS

結果:成功

JavaScriptによる処理の不備が原因でXSSが行われています。このチュートリアルでのDOM XSSはブラウザ側の処理で完結するため、WAFによる防御ができないため、成功となっています。

3.Bonus Payload

結果:成功

こちらもDOM XSSを利用しています。外部サイトをiframeで表示させていますが、ブラウザ側の処理で完結するため、WAFによる防御ができず、こちらも結果は成功となっています。

4.Privacy Policy

結果:失敗

ログインすることができないため、「Privacy Policy」ページは確認できませんでした。

8.Forged Feedback

結果:失敗

通常、Authorは「annonymous」と自動的に入力され、下部の「Submit」ボタンを押すと「Thank you for your feedback!」と表示されるのですが、何も表示されませんでした。

5.Login Admin~7.View Basket、9.Login Jim、10.Login Bender

結果:失敗

ログインしようとすると、htmlのエラー画面のコードが表示されます。コードを画面に表示すると以下のようになります。

また、新規にアカウントを作成しようとしたところ、公式のデモサイトではRegisterボタンを押すとログイン画面へ推移しますが、推移せず、アカウントが作成できませんでした。

まとめ

今回は実際にOCI WAFを設定し、どこまで防げるのかJuice Shopを使って検証していきました。全てのポリシーを有効化しブロックしましたが、ポリシー検知時のアクションとして「検出」も選択可能です。また、「WAFポリシー」>「ログ」から検出やブロックされた通信が確認できるため、検出したことをログで確認しながらチューニングしていくこともできます。

最後までお読みいただき、ありがとうございました。🙇