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