Detalhes dos Logs de Firewall do Aplicativo Web

Registrando detalhes de Logs de Firewall de Aplicativo Web (Logs de WAF).

Recursos

  • Firewall de Aplicativo Web

Categoria de Log

Valor da API (ID): Console (Nome para Exibição) Descrição
all Todos os Logs Todos os Logs do Serviço WAF

Disponibilidade

Os logs do serviço WAF estão disponíveis em todas as regiões dos realms comerciais.

Conteúdo de um Log de Firewall de Aplicativo Web

Um registro de log do serviço WAF contém os seguintes campos:

Campo Descrição Exemplo
action A ação executada pelo WAF, que pode ser "permitir" se o processamento posterior da solicitação tiver sido permitido ou "bloquear" se não tiver sido. allow
clientAddr Endereço IP do cliente. Variável Nginx $remote_addr. 192.168.0.33:7870
countryCode Código do país ISO alpha-2 do cliente. "ca"
host Nesta ordem de precedência: o nome do host da linha de solicitação ou o nome do host do campo do cabeçalho de solicitação "Host" ou o nome do servidor correspondente a uma solicitação. Variável Nginx $host. 192.168.0.103
listenerPort Porta do servidor que aceitou uma solicitação. Variável Nginx $server_port. "80"
request.httpVersion Protocolo de solicitação, geralmente "HTTP/1.0", "HTTP/1.1" ou "HTTP/2.0". Variável Nginx $server_protocol. "HTTP/1.1"
id da solicitação Identificador de solicitação exclusivo gerado a partir de 16 bytes aleatórios, em hexadecimal. Variável Nginx $request_id. "f8860949459e94181e650d4049615a01"
request.método Método de solicitação, geralmente "GET" ou "POST". Variável Nginx $request_method. “GET”
caminho da solicitação URI de solicitação original completo (com argumentos). Variável Nginx $request_uri. "/console/css/%252e%252e%252fconsole.portal"
requestProtection.matchedData Dados que acionaram ações de regra quando a solicitação foi inspecionada. A string contém dados presentes no URI, separados por ponto e vírgula. 'Test_data_1;Test_data_2;Test_data_3'
requestProtection.matchedIds String contendo IDs e versões da regra de proteção correspondentes (para inspeção de solicitação). Ao gerar relatórios, os IDs são anexados por 3 símbolos de versão, portanto, ID=123 e versão=4 são reportados como 123004. As entradas são separadas por ponto e vírgula. "9301000_v001;9301100_v001;9301100_v001;9300000_v001"
requestProtection.matchedRules Nomes de regra das regras de proteção de solicitação que corresponderam quando a solicitação foi inspecionada. A string contém nomes de regras separados por ponto-e-vírgula. 'Rule_name_1;Rule_name_2;Rule_name_3'
responseProtection.matchedData Dados que acionaram ações de regra (na inspeção de resposta). A string contém dados presentes no URI, separados por ponto e vírgula. 'Test_data_1;Test_data_2;Test_data_3'
código de resposta Código de resposta final enviado ao cliente. Variável de $status Nginx. "401"
tamanho da resposta Tamanho completo da resposta (cabeçalhos + corpo) em bytes. Variável Nginx $bytes_sent. "139"
requestAccessControl.matchedRules Nomes de regra das regras de acesso à solicitação que corresponderam. As strings contêm nomes de regras separados por ponto-e-vírgula. 'Rule_name_1;Rule_name_2;Rule_name_3'
responseAccessControl.matchedRules Nomes de regra das regras de acesso de resposta correspondentes. As strings contêm nomes de regras separados por ponto-e-vírgula. 'Rule_name_1;Rule_name_2;Rule_name_3'
backendStatusCode Mantém um código de status da resposta obtida do servidor upstream. Os códigos de status de várias respostas são separados por vírgulas e dois pontos. Essa é uma variável $upstream_status do Nginx. "200"
responseProtection.matchedIds String contendo IDs e versões da regra de proteção correspondentes (para inspeção de solicitação). Ao gerar relatórios, os IDs são anexados por 3 símbolos de versão, portanto, ID=123 e versão=4 são reportados como 123004. As entradas são separadas por ponto e vírgula. '300_v004;25_v002;123_v001'
responseProtection.matchedRules Nomes de regras de proteção de resposta correspondentes. Strings que contêm nomes de regras separados por ponto-e-vírgula, por exemplo: 'Rule name 1;Rule name 2;Rule name 3'. "Recomended Rules"
requestRateLimiting.matchedRules Nomes de regra das regras do limitador de taxa correspondentes. String contendo nomes de regras separados por ponto-e-vírgula. 'Rule_name_1;Rule_name_2;Rule_name_3'.
responseProvider
Contém informações sobre onde a resposta se origina:
  • Do backend (origem).
  • Em alguns módulos do serviço WAF (nome do módulo e da regra).
  • Regra de acesso ao IP HTTP do LB.
  • Regra de acesso ao método HTTP LB.
  • Regra de redirecionamento LB - De.
"requestProtection/Recomended Rules"
timestamp Timestamp ES de quando a solicitação foi recebida, hora local no formato ISO 8601. "2021-12-02T08:39:05Z"

Exemplo de Log de Firewall de Aplicativo Web

{
  "datetime": 1638434349351,
  "logContent": {
    "data": {
      "clientAddr": "192.168.0.33",
      "countryCode": "ca",
      "host": "192.168.0.103",
      "listenerPort": "80",
      "request": {
        "httpVersion": "HTTP/1.1",
        "id": "f8860949459e94181e650d4049615a01",
        "method": "GET",
        "path": "/console/css/%252e%252e%252fconsole.portal"
      },
      "requestProtection": {
        "matchedData": "Matched Data: /%252e%252e%252f found within REQUEST_URI_RAW: /console/css/%252e%252e%252fconsole.portal;Matched Data: ../ found within REQUEST_URI: /console/css/../console.portal;Matched Data: ../ found within REQUEST_URI: /console/css/../console.portal",
        "matchedIds": "9301000_v001;9301100_v001;9301100_v001;9300000_v001",
        "matchedRules": "Recomended Rules"
      },
      "response": {
        "code": "401",
        "size": "139"
      },
      "responseProtection": {},
      "responseProvider": "requestProtection/Recomended Rules",
      "timestamp": "2021-12-02T08:39:05Z"
    },
    "id": "6ddc2351-d6a7-4a5e-b057-c04e50003f78-waf-388469",
    "oracle": {
      "compartmentid": "ocid1.compartment.oc1..<unique_ID>",
      "ingestedtime": "2021-12-02T08:39:15.367Z",
      "loggroupid": "ocid1.loggroup.oc1.iad.<unique_ID>",
      "logid": "ocid1.log.oc1.iad.<unique_ID>",
      "resourceid": "ocid1.webappfirewall.oc1.iad.<unique_ID>",
      "tenantid": "ocid1.tenancy.oc1..<unique_ID>"
    },
    "source": "lb_shapetest2-400",
    "specversion": "1.0",
    "subject": "",
    "time": "2021-12-02T08:39:09.351Z",
    "type": "com.oraclecloud.loadbalancer.waf"
  }
}