Pular para conteúdo

Logs de segurança

Política de atualização

Quando uma nova informação for adicionada, ela será incluída no final do log. Essa mudança será indicada pelo campo vendor, com um incremento na versão (Ex. v3.0 -> v3.1). Podemos adicionar novos campos a qualquer momento, portanto, não espere que a linha termine no último campo (por exemplo, tratar logs com regex utilizando caractere $ no fim da linha).

Informações disponíveis

Os logs de segurança são os logs gerados pelas nossas ferramentas de segurança, que quando bem configuradas, reforçam políticas de acesso, bloqueiam intrusões de sistemas, bots maliciosos e tentativas de abuso na sua aplicação. Cada evento de segurança tem relação a uma requisição que foi simulada, desafiada ou bloqueada. Segue a lista de todas informações disponíveis nesses logs:

Quanto citamos "requisição", nos referimos a requisição que gerou o evento de segurança.

Identificador Descrição Tipo do dado em JSON
$date Unix timestamp de quanto o evento foi gerado Number
$vendor Indicação que o log é da GoCache, junto da versão do log String
$request_id ID da requisição String
$status Status code retornado na resposta da requisição Number
$type Ferramenta que gerou o evento String
$scheme Esquema HTTP usado na requisição String
$method Método HTTP da requisição String
$uri URI da requisição (a partir da /, incluindo-a) String
$query_sring Query string da requisição (a partir do ?, sem incluir a interrogação) String
$protocol Versão HTTP usada na requisição String
$host Cabeçalho Host da requisição String
$realhost Domínio da requisição cadastrado na GoCache String
$rule_id IDs das regras que geraram o evento String[]
$rule_msg Mensagens com os motivos para o evento ter sido gerado String[]
$useragent Cabeçalho User-Agent da requisição String
$referer Cabeçalho Referer da requisição String
$ip Endereço IP que originou a requisição String
$action Ação tomada pela ferramenta de segurança na requisição String
$geoip2_data_city_name Nome da cidade de onde se originou a requisição String
$geoip2_data_state_name Nome do estado/província de onde se originou a requisição String
$geoip2_data_country_code Código do país de onde se originou a requisição no formato ISO 3166 Alfa 2 String
$geoip2_data_continent_code Código do continente de onde se originou a requisição String
$as Sistema autônomo do IP que originou a requisição String
$match Trechos da requisição que o WAF identificou como maliciosos String[]
$location Indicação de onde estão os trechos identificados como maliciosos pelo WAF String[]

Versões do log

Observação

Cada log é enviado em somente uma linha. Esta documentação adiciona quebras de linhas para facilitar a leitura das informações.

V3 (JSON)

Nesta versão, as informações são enviadas em formato JSON. Uma requisição pode gerar mais de um evento de segurança, então o JSON é sempre um array de eventos. Segue o formato do log:

[
  {
    "date": $date,
    "request_id": "$request_id",
    "status": $staus,
    "type": "$type",
    "scheme": "$scheme",
    "method": "$method",
    "uri": "$uri",
    "query_string": "$query_string",
    "protocol": "$protocol",
    "host": "$host",
    "realhost": "$realhost",
    "rule_id": [$rule_id],
    "rule_msg": [$rule_msg],
    "useragent": "$useragent",
    "referer": "$referer",
    "ip": "$ip",
    "action": "$action",
    "geoip2_data_city_name": "$geoip2_data_city_name",
    "geoip2_data_state_name": "$geoip2_data_state_name",
    "geoip2_data_country_code": "$geoip2_data_country_code",
    "geoip2_data_continent_code": "$geoip2_data_continent_code",
    "as": "$as",
    "match": [$match],
    "location": [$location],
    "vendor": "$vendor"
  }
]

V4 (CSV)

Nesta versão, as informações são enviadas em formato de CSV, separadas por vírgulas e aspas. Segue o formato do log:

"$date","$vendor","$request_id","$status","$type","$scheme","$method","$uri",
"$query_string","$protocol","$host","$realhost","$rule_id","$rule_msg","$useragent",
"$referer","$ip","$action","$geoip2_data_city_name","$geoip2_data_state_name",
"$geoip2_data_country_code","$geoip2_data_continent_code","$as","$match","$location"