Lab 1 - Application Security (GUI)

このラボのゴールは、ポリシーが適用されたアプリケーションに関連するイベントやメトリクスを確認し、NGINX Controller Application Security Moduleを理解することです

Important

想定時間: 15分

Note

このラボの手順はラボを実施する方がWindows jumphost – jumphost-1 から操作する手順を示しています。 接続方法についてはこちらを参照ください。 F5 Labs - Index

Component の Security を有効にする

  1. Chromeを開きます

  2. BookmarkからNGINX Controller UIにアクセスしてください

    ../../_images/ControllerBookmark3.png
  3. NGINX Controllerの特権を持たないユーザである Natasha Romanoff でログインしてください

Username Password
natasha@acmefinancial.net Natasha123!@#
../../_images/ControllerLogin-Natasha1.png
  1. Services メニューを開きます

    ../../_images/Tile-Services2.png
  2. Apps を選択します

    ../../_images/Services-Apps2.png
  3. “Trading Application (CAS)” app を開いてください

    ../../_images/TradingMainCASApp.png
  4. Overview にはAppのすべてのコンポーネントから集約されたデータやグラフが表示されます

    ../../_images/TradingMainCASComponentOverview.png
  5. このラボでは、コンポーネントでWAFが有効になっていることを確認します。 Components セクションを選択し、Trading Main Component をクリックします

    ../../_images/TradingMainCASComponent.png
  6. Edit Component ボタンをクリックします

    ../../_images/TradingMainCASEditComponent.png
  7. Security リンクをクリックします。このコンポーネントですでにWAFが有効になっていることが確認できます。 トグルボタンにチェックマークが表示されています。アプリケーションを管理する DevOps / 開発者 がWAFの有効・無効を制御することができることを確認してください。

    (“Natasha”でログインしたことを思い出してください)

    Note

    NGINX Controllerは設定したappに対し、self-serviceでWAFの有効・無効機能を提供しています

    Note

    Retail Development environmentでWAFを有効にしたことにより、Acme Financial corporationにおけるリスクを最小化することができています。 これは、コンポーネントの Monitor Only がオフになっていることが示しています

    ../../_images/TradingMainCASComponentEnableWAF.png

Security Analytics を確認する

  1. “Trading Application (CAS)” appで、Components セクションを選択し、Trading Main Component をクリックしてください

    ../../_images/TradingMainCASComponent.png
  2. Security Analytics リンクをクリックします。ここで選択したコンポーネントに関するセキュリティに関する統計情報などが表示されます

    ../../_images/TradingMainCASSecurityAnalytics.png
  3. ドロップダウンリストから Last 30 minutes を選択します。WAF Suspicious vs Normal Traffic まで画面をスクロールします。 トラフィックジェネレータがこのコンポーネントに対し動作した事により、グラフが表示されていることが確認できます。 これはオペレータが指定した時間間隔の中で悪意あるトラフィックの急激な増加を直ちに知ることができます。以前の時間と比較しし、セキュリティイベントの急激な変化ないか確認してください(Prev Day がデフォルトで選択されています) 次のステップで利用するため、グラフの急激な増加が見られた地点にマウスを置き、その発生時間をメモしてください

    ../../_images/TradingMainCASSecurityAnalyticsLast30.png
  4. “Top URIs Targeted” list” まで画面をスクロールしてください。このリストは攻撃の対象となったURIを多いものから表示します。 右のドロップダウンに表示されるオプションからフィルタリング機能を利用することが可能です

    ../../_images/AnalyticsTopURIs.png
  5. “WAF Top Threats” リストを確認するため、画面をスクロールしてください。このリストは、Attack Types (default selection)や、Signatures を元にした脅威をリストにしたものです 右のドロップダウンに表示されるオプションからフィルタリング機能を利用することが可能です

    ../../_images/AnalyticsTopThreats.png

Note

イベントデータの量に依存して、”WAF Top Threats” リストの表示に時間がかかる場合があります

Note

WAFをMonitor Only Modeでデプロイした場合にも、Analytics や イベントのデータは潜在的な攻撃を判断するために有用です。また、これらのデータをSplunkやDatadogに送付することが可能です

Security Events を確認する

  1. Security Events をクリックしてください。ここはセキュリティイベントが記録されており、リクエストの詳細などが確認できます

    ../../_images/TradingMainCASComponentEvents.png
  2. 対象となる日時を選択し、グラフを確認します。Last 24 hours と現在表示されているドロップダウンリストをクリックし、Last 5 minutes を選択します

    ../../_images/TradingMainCASComponentEventsLast5.png
  3. より詳細なセキュリティの情報を確認するため、特定の行をクリックします。画面右側にイベントの詳細が表示されます

    ../../_images/TradingMainCASComponentEventsDetails.png
  4. THREAT ORIGIN セクションで詳細を確認するため画面をスクロールし、Remote Address のフィールドを確認してください。マウスカーソルをこの項目に合わせ、funnel アイコンをクリックしてください。この操作により、フィルタを作成します。この操作により、”Security Events” リストを “remote address” でフィルタしました

    ../../_images/TradingMainCASComponentEventsDetailsIP.png

    Note

    Notice that many “Event Details” data points can be used as filters. This powerful filtering feature allows for quick pattern detection.

  5. 現在特定のIPアドレスでフィルタされたセキュリティイベントリストが表示されています。 フィルタされたリストから、アクセスもととなるユーザは妥当なユーザであるかどうか確認してください

    ../../_images/TradingMainCASComponentEventsDetailsIPFiltered.png
  6. Security Analytics リンクをクリックしてください。イベントに関連する Signature ID を確認するため、WAF Tuning リンクをクリックしてください。

    ../../_images/TradingMainCASComponentTuning.png
  7. ID 200013018 のSignatureをクリックしてください。高いパーセンテージを示すViolationとして表示されています。 これはリクエストに対する意図しないブロックでしょうか?”False Positive(誤検知)”が発生している可能性もあります

  8. View Events ボタンをクリックし、このリクエストが誤検知であるかどうか確認するためリクエストの情報を確認します

    ../../_images/TradingMainCASComponentTuningSelect.png
  9. 前のステップで、Attack Signatureでフィルタされたセキュリティイベントのリストが表示されています。拒否されたリクエストの一つをクリックし、右に表示される詳細を確認してください

    ../../_images/TradingMainCASComponentEventsDetailsSigFiltered.png
  10. 拒否の詳細を確認するため THREAT TARGET セクションを確認してください。以下の Request Detail でハイライトされた部分を確認してください。これは実際にWAFが拒否したGETリクエストです:

    ../../_images/TradingMainCASComponentEventsRequest.png
  11. クロームで新しいタプを開き、開発者ツールを有効にした状態でアプリケーションにアクセスしてください URLは http://trading.acmefinancial.net/wp-admin/admin-post.php?do_reset_wordpress です。このリクエストでユーザにどの様に見えるか、動作を確認してください。 何が見えましたでしょうか? レスポンスに “Support ID” が確認できます。これはセキュリティログの詳細にも記録されるこのイベントを示すIDです

    ../../_images/TradingMainCASComponentBlocked.png
  12. このラボではリクエストが誤検知であると想定して確認を進めました。NGINX Controllerの管理画面で、次のセクションで利用するため、Signature IDをイベントの詳細からコピーしてください

../../_images/TradingMainCASComponentEventsCopy.png

WAF policy のチューニング

  1. コンポーネントのSecurity Configurationを変更するため、Edit Config をクリックしてください

    ../../_images/TradingMainCASComponentEventsQuickEdit.png
  2. Security をクリックし、signature ID 200013018 を “Disable Signatures” テキストボックスに貼り付けてください

    ../../_images/TradingMainCASComponentSignature.png
  3. コンポーネントのセキュリティポリシーを更新するため Submit をクリックしてください

    ../../_images/Submit1.png

Note

WAF コンポーネントの設定が完了すると、以下のように見えます:

  1. 少なくとも30秒間の間を開け、再度ブラウザでの接続を試してください。現在はリクエストが許可されることを確認してください(出力は 404エラー ですがWAFによる制御は行われない状態となっています).

    ../../_images/TradingMainCASComponentNotBlocked.png