WAFを使用したアプリケーションの保護

Web Application Firewall (WAF)を通じてアプリケーションをルーティングした後は、WAFで提供される様々なセキュリティ機能を使用してアプリケーションを保護します。

アプリケーションは、次の方法で保護できます。

  • 保護ルールの構成
  • ボット管理の使用
  • アクセス・ルールの追加

保護ルールの構成

ルールを使用してアプリケーションを保護し、クロスサイト・スクリプティング(XSS)およびSQLインジェクション(SQLi)攻撃をブロックできます。

保護ルールを構成するには:
  1. Oracle Cloud Infrastructureコンソールにサインインします。
  2. ナビゲーション・メニューを開きます。「ガバナンスと管理」で、「セキュリティ」に移動して「WAFポリシー」をクリックします。
  3. 保護ルール」をクリックします。
    表が、事前定義された保護ルールとともに表示されます。
  4. RULE IDフィルタを使用して、ルール941140および981300を選択します。
    ルールの詳細が右側に表示されます。
  5. 各ルールを選択し、「アクション」ドロップダウン・メニューから「ブロック」をクリックします。
  6. すべて公開」をクリックします。
    WAFポリシーでの変更の公開には数分かかる場合があります。

保護ルールの検証

保護ルールが機能しているかどうかを確認するには、次の手順を実行します。
  1. ブラウザの「開発者ツール」ページから「ネットワーク」タブを開きます。
  2. ブラウザからサンプルの従業員アプリケーション(http://employee.<example.com>/public/)にアクセスします。
  3. 新規従業員」をクリックし、サンプル情報をフォームに入力します。
  4. 」フィールドに次の「SQLインジェクション」を入力します。
    SomeUser; DROP TABLE users
  5. ブラウザの「ネットワーク」タブが開いた状態で、「新規従業員」フォームで「保存」をクリックします。
    POSTから/employeesは、403 Forbiddenでブロックされます。
  6. 次のcURLコマンドを実行します。
    curl -X POST http://${WAF_TARGET}/employees \ 
    -H 'host: employee.example.com' \ 
    -d '{"firstName":"Name; DROP TABLE users"}'
    このコマンドは403エラーを返します。
  7. ブラウザのアドレス・バーの問合せパラメータでクロス・サイト・スクリプティング(XSS)を試行して、GETリクエストを実行します。
    http://employee.<example.com>/employees/?id=%3Cscript%3Ealert(%27bad%27)%3C/script%3Ein

    ブラウザには次の情報が返されます。



    Waf-forbidden.pngの説明が続きます図waf-forbidden.pngの説明

前述のステップでは、WAF Blockアクションが複数回トリガーされます。Oracle Cloud InfrastructureコンソールでWAFポリシーの詳細に戻り、ログを調べます。
  1. 従業員デモ・ポリシーを開きます。
  2. ログ」をクリックします。
  3. SQLiおよびXSS攻撃を試みた時間の日付/時間範囲を選択します。
  4. Action: Blockでアイテムを識別し、ブロックされたリクエストの行の詳細を展開して、「JSONの表示」をクリックします。
  5. protectionRuleDetectionsとしてリストされたメッセージおよびその他のリクエスト詳細を表示します。

Bot Managementの使用

Oracle Cloud Infrastructure Web Application Firewall (WAF)サービスのもう1つの機能は、ボット管理機能です。

多くの場合、非ヒューマン・トラフィックは、サイトへのトラフィックの最大割合を構成します。特定の「良い」のボットは有効ですが、他の「悪い」ボットは、コンテンツ・スクレーピング、スパム送信、ブラート・フォース攻撃またはアプリケーション・レイヤーのDDoS攻撃をおうとします。

たとえば、検索エンジン最適化(SEO)およびコンテンツ・ランキング目的で特定の既知のボットをホワイトリストに記載し、特定の相互作用に対するヒューマン・ユーザーの検証を制限する場合があります。このようなシナリオは、WAFポリシーのBot管理設定により簡単に行うことができます。

CAPTCHAチャレンジの追加

ボット管理の特徴の1つはCAPTCHAです。CAPTCHAを使用すると、基礎となるアプリケーションを変更しなくても、ユーザー相互作用を確実に行うための簡単な方法が提供されます。

CAPTCHAチャレンジを追加するには、次の手順を実行します。
  1. Oracle Cloud Infrastructureコンソール。
  2. ナビゲーション・メニューを開きます。「ガバナンスと管理」で、「セキュリティ」に移動して「WAFポリシー」をクリックします。
  3. 従業員デモ・ポリシーを開き、Bot Managementをクリックします。
  4. CAPTCHAチャレンジ」タブをクリックし、次に「CAPTCHAチャレンジの追加」をクリックします。
  5. CAPTCHA URLパス・フィールドに値として/public/index.htmlを入力します。
  6. 残りのフィールドはデフォルトのままにします。
  7. 追加」をクリックし、「すべて公開」をクリックします。
  8. 変更が公開され、WAFポリシーがACTIVE状態で再開された後は、ページhttp://employee.<example.com>/public/index.htmlをブラウザからロードします。
    ブラウザには、次のCAPTCHAチャレンジが表示されます。

正しいコードを入力した後、チャレンジ構成のSession Duration値に対応する期間にチャレンジを受けることなく、Webサイトを入力します。

アクセス制御ルールの追加

WAFのアクセス制御では、アプリケーション内で使用可能なデータとサービスへのアクセスを制限またはブロックすることによって、セキュリティ層を追加します。

アクセス制御を使用すると、次のようなリクエスト条件に基づいてルールを定義できます。
  • HTTPヘッダー
  • URLパターン
  • IPアドレス
  • ジオロケーション

サンプルの従業員アプリケーションでは、データベースから従業員詳細を削除できます。Delete機能の使用をセキュリティ上の目的で制限する必要がある場合があります。アクセス・ルールを作成および適用して、削除要求をブロックできます。

アクセス制御ルールを追加するには、次のようにします。
  1. Oracle Cloud Infrastructureコンソール。
  2. ナビゲーション・メニューを開きます。「ガバナンスと管理」で、「セキュリティ」に移動して「WAFポリシー」をクリックします。
  3. 従業員デモ・ポリシーを開き、「アクセス制御」をクリックします。
  4. アクセス・ルールの追加」をクリックします。
  5. ルール名(Prevent Deleteなど)を入力します。
  6. 次のルール条件を追加します。
    • HTTPメソッド: DELETE
    • URLは/employeesで始まります。
  7. ブロック・ルール・アクションを選択し、「レスポンス・コードの設定」(ブロック・アクション)として「403 Forbidden」(デフォルト・オプション)を選択します。
  8. アクセス・ルールの追加」をクリックしてルールを作成し、「すべて公開」をクリックします。

変更が公開され、WAFポリシーがACTIVE状態で再開された後。

  1. ブラウザの「開発者ツール」ページから「ネットワーク」タブを開きます。
  2. ブラウザからサンプルの従業員アプリケーション(http://employee.<example.com>/public/)にアクセスします。
  3. 従業員レコードを選択し、「削除」ボタンをクリックします。

ブロンスイープ開発者ツール ・セクションの「ネットワーク」タブでは、WAFがこのリクエストをインターセプトし、403 Forbiddenレスポンスでブロックしたことに気付きます。

このソリューションで説明するOracle Cloud Infrastructure WAFの機能は、基本的なサンプル・アプリケーションの保護に焦点を当てています。使用シナリオは各アプリケーションに固有のものとなり、それに応じてWAFを構成できます。