ログ

「ログ」には、指定した時間枠におけるログ・アクティビティおよび記録された各イベントの詳細が表示されます。ログを使用すると、リクエストによってどのルールおよび対応策がトリガーされるかを理解できます。また、リクエスト処理をブロック・モードに移行するための基盤として使用できます。ログは、アクセス制御、保護ルールまたはボット・イベントから生成されます。

ノート

一般データ保護規則(GDPR)の要件について懸念がある場合は、WAFサービスのログを無効にできます。My Oracle Supportを使用して、ログを無効化するためのサービス・リクエストを申請できます。

WAFサービスを操作する場合は、次の情報を考慮してください:

  • WAFサービスのログ保持ポリシーは7日間ですが、S3バケットを設定し、それにさらにログを配信するようにリクエストできます。バケット内のログは、必要な期間保持できます。
  • 標準のOCIバケットのみがサポートされています。アーカイブ層はサポートされていません。
  • ELKスタックへのログ配信は、OCIおよびS3バケットに対してのみサポートされます。RAWログはバケットに送信されます。バケットから、エラスティック・サーチに実装できます。

ログの表示

エッジ・ポリシーのログを表示する様々な方法を説明します。

次のログ・タイプでログをフィルタできます:

  • アクセス・ルール

  • CAPTCHAチャレンジ

  • JavaScriptチャレンジ

  • 保護ルール

  • ヒューマン・インタラクション・チャレンジ

  • デバイスのフィンガープリント・チャレンジ

  • 脅威インテリジェンス・フィード

  • アドレス・レート制限

  • アクセス

次のいずれかの方法で、エッジ・ポリシーのログを表示します。

    1. ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」をクリックします。「Web Application Firewall」で、「ポリシー」をクリックします。

      または、「Webアプリケーション・ファイアウォール」ページを開き、「リソース」の下の「ポリシー」をクリックします。

      「WAFポリシー」ページが表示されます。

    2. リストからコンパートメントを選択します。

      そのコンパートメント内のすべてのWAFポリシーが表形式でリストされます。

    3. (オプション)次のフィルタの1つ以上を適用して、表示されるWAFポリシーを制限します:
      • 名前

      • ポリシー・タイプ

      • ステータス

    4. ログを表示するエッジ・ポリシーを選択します。
      「エッジ・ポリシーの詳細」ダイアログ・ボックスが表示されます。
    5. 「リソース」の下の「ログ」をクリックします。

      ログのリストが表示されます。

    6. (オプション)次のフィルタの1つ以上を使用し、入力する値にログ情報を制限します:
      • 開始日

      • 開始時間

      • 終了日

      • 終了時間

      • 要求URL

      • クライアントIPアドレス

      • 国名

    7. (オプション)次のアクション・フィルタの1つ以上を選択し、選んだオプションにログ情報を制限します:
      • 検出

      • ブロック

      • バイパス

      • ログ

      • リダイレクト

    8. (オプション)次のログ・タイプ・フィルタの1つ以上を選択し、選んだオプションにログ情報を制限します:
      • アクセス・ルール

      • CAPTCHAチャレンジ

      • JavaScriptチャレンジ

      • 保護ルール

      • 人事対応の課題

      • デバイス・フィンガープリント・チャレンジ

      • 脅威インテリジェンス・フィード

      • アドレス・レート制限

      • アクセス

      選択したアクションが含まれるログ情報のみが表示されます。

    9. 表示する「アラート・タイプ」の横のプラス記号をクリックします。
    ログ・エントリは、選択したオプションに基づいて表示されます。
  • このタスクはCLIを使用して実行できません。

  • ListWafLogs操作を実行して、ログ・アクティビティを表示します。

    次のlogTypeオプションでログをフィルタできます:

    • ACCESS_RULES

    • CAPTCHA_CHALLENGE

    • JAVASCRIPT_CHALLENGE

    • PROTECTION_RULES

    • HUMAN_INTERACTION_CHALLENGE

    • DEVICE_FINGERPRINT_CHALLENGE

    • THREAT_INTELLIGENCE_FEEDS

    • ADDRESS_RATE_LIMITING

    • ACCESS

    次のリクエストを行って、ログをlogTypeでフィルタできます:

    GET /20181116/waasPolicies/unique_ID/wafLogs?logType=logType&timeObservedGreaterThanOrEqualTo=timestamp&timeObservedLessThan=timestamp&compartmentId=unique_ID

    例:

    GET /20181116/waasPolicies/ocid1.waaspolicy.oc1../wafLogs?logType=PROTECTION_RULES&timeObservedGreaterThanOrEqualTo=2019-10-24T13:00:00+00:00&timeObservedLessThan=2019-10-24T13:47:00+00:00&compartmentId=ocid1.compartment.oc1..

    フィルタされたログに対する次のレスポンス出力が返されます:

    [
        {
            "action": "BLOCK",
            "clientAddress": "192.0.2.0",
            "countryCode": "US",
            "countryName": "United States",
            "domain": "example.com",
            "httpHeaders": {
                "Accept": "*/*",
                "Host": "example.com",
                "Referer": "",
                "Request-Id": "2019-10-24T13:46:25Z|fa68cab479|192.0.2.0|uwDPcqR0Qt",
                "User-Agent": "curl/7.54.0",
                "X-Client-Ip": "192.0.2.0",
                "X-Country-Code": "US",
                "X-Forwarded-For": "192.0.2.0, 192.0.2.0"
            },
            "httpMethod": "GET",
            "httpVersion": "HTTP/1.1",
            "incidentKey": "2019-10-24T13:46:25Z|fa68cab479|192.0.2.0|uwDPcqR0Qt",
            "logType": "PROTECTION_RULES",
            "protectionRuleDetections": {
                "950002": {
                    "Message": "System Command Access. Matched Data: cmd.exe found within ARGS:abc: cmd.exe",
                    "Message details": "Access denied with code 403 (phase 2). Pattern match \"\\\\b(?:(?:n(?:map|et|c)|w(?:guest|sh)|telnet|rcmd|ftp)\\\\.exe\\\\b|cmd(?:(?:32)?\\\\.exe\\\\b|\\\\b\\\\W*?\\\\/c))\" at ARGS:abc."
                }
            },
            "requestUrl": "/?abc=cmd.exe",
            "timestamp": "Thu, 24 Oct 2019 13:46:25 GMT",
            "userAgent": "curl/7.54.0"
        },
        {
            "action": "BLOCK",
            "clientAddress": "192.0.2.0",
            "countryCode": "US",
            "countryName": "United States",
            "domain": "example.com",
            "httpHeaders": {
                "Accept": "*/*",
                "Host": "example.com",
                "Referer": "",
                "Request-Id": "2019-10-24T13:46:25Z|43bd96b710|192.0.2.0|E04WECJbcY",
                "User-Agent": "curl/7.54.0",
                "X-Client-Ip": "192.0.2.0",
                "X-Country-Code": "US",
                "X-Forwarded-For": "192.0.2.0, 192.0.2.0"
            },
            "httpMethod": "GET",
            "httpVersion": "HTTP/1.1",
            "incidentKey": "2019-10-24T13:46:25Z|43bd96b710|192.0.2.0|E04WECJbcY",
            "logType": "PROTECTION_RULES",
            "protectionRuleDetections": {
                "950002": {
                    "Message": "System Command Access. Matched Data: cmd.exe found within ARGS:abc: cmd.exe",
                    "Message details": "Access denied with code 403 (phase 2). Pattern match \"\\\\b(?:(?:n(?:map|et|c)|w(?:guest|sh)|telnet|rcmd|ftp)\\\\.exe\\\\b|cmd(?:(?:32)?\\\\.exe\\\\b|\\\\b\\\\W*?\\\\/c))\" at ARGS:abc."
                }
            },
            "requestUrl": "/?abc=cmd.exe",
            "timestamp": "Thu, 24 Oct 2019 13:46:25 GMT",
            "userAgent": "curl/7.54.0"
        }
    ]
    

オブジェクト・ストレージへのWAFログの配信

長期保管とアクセスを目的として、WAFログをオブジェクト・ストレージ・バケットに配信する方法を説明します。

このタスクでは、オブジェクト・ストレージ・バケットを作成するか、既存のバケットを使用する必要があります。WAFログ・データの配信を行う前に、オブジェクト・ストレージ・バケットと、その作成および管理方法について知識を深めてください。オブジェクト・ストレージ・バケットを参照してください。

WAFログの保有率には制限があります。WAFログ・データをテナンシ内のオブジェクト・ストレージ・バケットに配信すると、制限なく保存できます。まず、オブジェクト・ストレージ・バケットを作成および構成してから、WAFログをバケットに配信するために必要な情報を入力して、オラクル社にサポート・リクエストを送信します。

  1. オブジェクト・ストレージ・サービスにアクセスし、manage-object-family権限を使用してバケットを作成します。

    サポートされているのは、標準のオブジェクト・ストレージ・バケットのみです。アーカイブ・ストレージ層はサポートされていません。Oracleまたはユーザー管理キーを決定します。ユーザー管理キーはKMSに存在する必要があります。詳細は、オブジェクト・ストレージ・バケットを参照してください。

  2. バケットの「可視性」を「パブリック」に設定します。
  3. 顧客秘密キーを使用してユーザーを作成または構成します。

    WAFでは、書込みでOCIバケットに対して認証する際に、キーとシークレットが必要です。このキーはユーザーにアタッチされています。このユーザーには、WAFログ用のバケットに対する書込み権限が必要です。ユーザーのアクセス・キーとシークレットを記録し、保存場所に格納します。

  4. ユーザーをグループに追加し、そのグループがバケットへの書込みを行えるよう、権限を付与するアイデンティティ・ポリシーを作成します。

    たとえば、バケットがコンパートメントMSSpocにあり、グループ名がwafBucketLogGroupの場合、アイデンティティ文は次のようになります:

    allow group wafBucketLogGroup to manage object-family in compartment MSSpoc

    ポリシーは、コンパートメントMSSpocに作成されます。

  5. 次の資格証明が含まれるバケットにファイルを作成します:
    • Webアプリケーション(WAFポリシーのドメイン名):

    • SecretKey:

    • AccessKey:

    • オブジェクト・ストレージbucket_region:

    • オブジェクト・ストレージbucket_name:

    • ネームスペース:

    • エンドポイントURL: https://namespace.compat.objectstorage.region.oraclecloud.com

    • アップロード接頭辞(ログのファイル形式。デフォルトは%{[webapp_domain]}_/%{+YYYY}/%{+MM}/%{+dd}):

    ノート

    Webアプリケーションのすべてのログ(他のドメインを含む)は、メイン・ドメインに基づいて名前が付けられた1つのフォルダに格納されます。ログ配信を、メイン・ドメインのみ、またはその他のドメインのみを対象として設定することはできません。

  6. 次のようにして、特定のオブジェクトの事前認証済リクエストを作成します:
    1. ナビゲーション・メニューを開き、「ストレージ」をクリックします。「オブジェクト・ストレージおよびアーカイブ・ストレージ」で、「バケット」をクリックします
    2. バケットがあるコンパートメントを選択します。
    3. バケット名をクリックします。
    4. 「リソース」の下の「オブジェクト」をクリックして、オブジェクトのリストを表示します。
    5. バケット資格証明を含むファイルを選択し、「リソース」の下の「事前認証済リクエスト」をクリックします。
    6. 「事前認証済リクエストの作成」をクリックします
  7. WAFログがオブジェクト・ストレージ・バケットに配信されるよう、Oracleサポート・リクエスト(My Oracle Support)を作成します。サポート・リクエストには、作成したファイル(バケット資格証明が含まれる)とともに、事前認証済リクエストURLが含まれている必要があります。

    標準のOCIバケットのみがサポートされています。アーカイブ・ストレージ層はサポートされていません。