Detalles de logs de firewall de aplicación web

Detalles de registro de los logs de Web Application Firewall (logs de WAF).

Recursos

  • Firewall de aplicaciones web

Categorías de log

Valor de API (ID): Consola (nombre mostrado) Descripción
all Todos los Logs Todos los logs de WAF

Disponibilidad

Los logs de WAF están disponibles en todas las regiones de los dominios comerciales.

Contenido de un log de firewall de aplicación web

Un registro de log de WAF contiene los siguientes campos:

Campo Descripción Ejemplo
action Acción realizada por el WAF, que puede ser "permitir" si se permite un procesamiento posterior de la solicitud, o "bloquear" si no lo es. allow
clientAddr Dirección IP del cliente. Variable $remote_addr de Nginx. 192.168.0.33:7870
countryCode Código de país ISO alpha-2 del cliente. "ca"
host En este orden de prioridad: nombre de host de la línea de solicitud, nombre de host del campo de cabecera de solicitud "Host" o nombre de servidor que coincide con una solicitud. Variable $host de Nginx. 192.168.0.103
listenerPort Puerto del servidor que aceptó una solicitud. Variable Nginx$server_port. "80"
request.httpVersion Protocolo de solicitud, normalmente "HTTP/1.0", "HTTP/1.1" o "HTTP/2.0". Variable $server_protocol de Nginx. "HTTP/1.1"
request.id Identificador de solicitud único generado a partir de 16 bytes aleatorios, en hexadecimal. Variable Nginx$request_id. "f8860949459e94181e650d4049615a01"
Método de solicitud Método de solicitud, normalmente "GET" o "POST". Variable $request_method de Nginx. “GET”
request.path URI de solicitud original completa (con argumentos). Variable $request_uri de Nginx. "/console/css/%252e%252e%252fconsole.portal"
requestProtection.matchedData Datos que dispararon acciones de regla cuando se inspeccionó la solicitud. La cadena contiene nombres de reglas separados por un punto y coma. 'Test_data_1;Test_data_2;Test_data_3'
requestProtection.matchedIds Cadena que contiene versiones e ID de regla de protección coincidentes (para inspección de solicitud). Al generar informes, los ID se agregan con 3 símbolos de versión, de modo que ID=123 y versión=4 se informa como 123004. Las entradas están separadas por un punto y coma. "9301000_v001;9301100_v001;9301100_v001;9300000_v001"
requestProtection.matchedRules Nombres de reglas de reglas de protección de solicitudes que coinciden cuando se inspeccionó la solicitud. La cadena contiene nombres de reglas separados por un punto y coma. 'Rule_name_1;Rule_name_2;Rule_name_3'
responseProtection.matchedData Datos que dispararon acciones de regla (en la inspección de respuesta). Cadena que contiene nombres de reglas separados por punto y coma. 'Test_data_1;Test_data_2;Test_data_3'
response.code Código de respuesta final enviado al cliente. Variable $status de Nginx. "401"
response.size Tamaño de respuesta completo (cabeceras + cuerpo) en bytes. Variable $bytes_sent de Nginx. "139"
requestAccessControl.matchedRules Nombres de reglas de reglas de acceso a solicitudes que coinciden. Las cadenas contienen nombres de reglas separados por un punto y coma. 'Rule_name_1;Rule_name_2;Rule_name_3'
responseAccessControl.matchedRules Nombres de regla de reglas de acceso de respuesta que coinciden. Las cadenas contienen nombres de reglas separados por un punto y coma. 'Rule_name_1;Rule_name_2;Rule_name_3'
backendStatusCode Mantiene un código de estado de la respuesta obtenida del servidor ascendente. Los códigos de estado de varias respuestas están separados por comas y dos puntos. Se trata de una variable Nginx$upstream_status. "200"
responseProtection.matchedIds Cadena que contiene versiones e ID de regla de protección coincidentes (para inspección de solicitud). Al generar informes, los ID se agregan con 3 símbolos de versión, de modo que ID=123 y versión=4 se informa como 123004. Las entradas están separadas por un punto y coma. '300_v004;25_v002;123_v001'
responseProtection.matchedRules Nombres de regla de reglas de protección de respuesta que coinciden. Cadenas que contienen nombres de reglas separados por un punto y coma, por ejemplo: 'Rule name 1;Rule name 2;Rule name 3'. "Recomended Rules"
requestRateLimiting.matchedRules Nombres de regla de reglas de limitador de tipo que coinciden. Cadena que contiene nombres de reglas separados por punto y coma. 'Rule_name_1;Rule_name_2;Rule_name_3'.
responseProvider
Contiene información sobre dónde se origina la respuesta:
  • Desde el backend (origen).
  • Desde algún módulo de WAF (módulo y nombre de regla).
  • De la regla de acceso IP HTTP de LB.
  • Regla de acceso al método HTTP de LB.
  • De regla de redirección de LB.
"requestProtection/Recomended Rules"
timestamp Registro de hora de ES de cuándo se recibió la solicitud, hora local en formato ISO 8601. "2021-12-02T08:39:05Z"

Log de firewall de aplicación web de ejemplo

{
  "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"
  }
}