Recolha registos do WAF FortiWeb

Compatível com:

Este documento descreve como pode recolher os registos da firewall de aplicações Web (WAF) do FortiWeb através de um encaminhador do Google Security Operations.

Para mais informações, consulte o artigo Vista geral da ingestão de dados no Google Security Operations.

Uma etiqueta de carregamento identifica o analisador que normaliza os dados de registo não processados para o formato UDM estruturado. As informações neste documento aplicam-se ao analisador com a etiqueta de carregamento FORTINET_FORTIWEB.

Configure os registos do WAF do FortiWeb

Para configurar o WAF do FortiWeb para enviar registos para um encaminhador do Google Security Operations, faça o seguinte:

Crie uma política de syslog

  1. Inicie sessão na consola do Fortinet FortiWeb.
  2. Na consola Fortinet FortiWeb, selecione Registo e relatório > Política de registo > Política de Syslog.
  3. Clique em Criar novo.
  4. Na janela Nova política de syslog apresentada, faça o seguinte:

    • No campo Nome da política, especifique um nome para a política que quer usar na configuração.
    • No campo Endereço IP, especifique o endereço IP ou o nome de anfitrião do servidor syslog remoto.
    • No campo Porta, especifique a porta do servidor syslog.
    • Desmarque a caixa de verificação Ativar formato CSV, se estiver selecionada.
  5. Clique em OK.

Ative os tipos de syslog e o nível de registo

  1. Na consola do Fortinet FortiWeb, selecione Registo e relatório > Configuração do registo > Definições de registo global.
  2. Na janela Definições de registo globais apresentada, selecione a caixa de verificação Syslog e faça o seguinte:

    • Na lista Política de Syslog, selecione a política de Syslog que criou anteriormente.
    • Na lista Nível de registo, escolha o nível de gravidade mínimo para os registos a recolher.
    • Na lista Instalação, selecione a instalação de registo.
  3. Clique em Aplicar.

Crie um acionador

  1. Na consola do Fortinet FortiWeb, selecione Registo e relatório > Política de registo > Política de acionamento.
  2. Clique em Criar novo.
  3. Na janela Nova política de acionadores apresentada, faça o seguinte:

    • No campo Nome da política, especifique um nome para a política que quer usar na configuração.
    • Na lista Política de Syslog, selecione a política de Syslog que criou anteriormente.
  4. Clique em OK.

    Atualize a sua política de syslog com o acionador recém-criado para garantir que todos os eventos necessários são registados no encaminhador de syslog do Google Security Operations.

Configure o encaminhador do Google Security Operations para carregar registos do WAF do FortiWeb

  1. Aceda a Definições do SIEM > Encaminhadores.
  2. Clique em Adicionar novo encaminhador.
  3. No campo Nome do encaminhador, introduza um nome exclusivo para o encaminhador.
  4. Clique em Enviar. O encaminhador é adicionado e é apresentada a janela Adicionar configuração do coletor.
  5. No campo Nome do coletor, introduza um nome.
  6. Selecione Fortinet Web Application Firewall como o Tipo de registo.
  7. Selecione Syslog como o tipo de coletor.
  8. Configure os seguintes parâmetros de entrada obrigatórios:
    • Protocolo: especifique o protocolo de ligação que o coletor usa para ouvir dados de syslog.
    • Endereço: especifique o endereço IP ou o nome de anfitrião de destino onde o coletor reside e escuta os dados syslog.
    • Porta: especifique a porta de destino onde o coletor reside e ouve dados syslog.
  9. Clique em Enviar.

Para mais informações acerca dos encaminhadores do Google Security Operations, consulte o artigo Faça a gestão das configurações de encaminhadores através da IU do Google Security Operations.

Se tiver problemas ao criar encaminhadores, contacte o apoio técnico das Operações de segurança da Google.

Referência de mapeamento de campos

Este analisador processa registos do FORTINET FORTIWEB no formato de chave-valor (KV), transformando-os em UDM. Processa registos formatados em CEF e não CEF, extraindo campos, normalizando valores e mapeando-os para os campos UDM adequados com base no formato de registo.

Tabela de mapeamento da UDM

Campo de registo Mapeamento de UDM Lógica
action additional.fields[].value.string_value O valor é mapeado diretamente.
action security_result.action_details Se action for "Permitir" ou "Aceitar", security_result.action_details é definido como "ALLOW". Se action for "Denied", "deny", "block" ou "Block", security_result.action_details é definido como "BLOCK".
app network.application_protocol O valor é mapeado diretamente após a conversão para maiúsculas. Apenas se o valor for um dos seguintes: HTTPS, HTTP, DNS, DHCP ou SMB.
app_name additional.fields[].key A chave está definida como "appName".
app_name additional.fields[].value.string_value O valor é mapeado diretamente.
backend_service additional.fields[].key A chave está definida como "backend_service".
backend_service additional.fields[].value.string_value O valor é mapeado diretamente.
cat security_result.category_details O valor é mapeado diretamente.
client_level security_result.category Se client_level for "Malicious", security_result.category é definido como "NETWORK_MALICIOUS".
cn1 additional.fields[].value.string_value Mapeado com o campo threatWeight.
cn1Label additional.fields[].key A chave está definida como o valor de cn1Label.
cn2 additional.fields[].value.string_value Mapeado com o campo de comprimento.
cn2Label additional.fields[].key A chave está definida como o valor de cn2Label.
cn3 additional.fields[].value.string_value Mapeado com o campo signatureID.
cn3Label additional.fields[].key A chave está definida como o valor de cn3Label.
cs1 additional.fields[].value.string_value O valor é mapeado diretamente.
cs1Label additional.fields[].key A chave está definida para o valor cs1Label.
cs1 principal.user.product_object_id O valor é mapeado diretamente quando cs1Label corresponde a "userID" (não sensível a maiúsculas e minúsculas).
cs2 additional.fields[].value.string_value O valor é mapeado diretamente.
cs2Label additional.fields[].key A chave está definida como o valor de cs2Label.
cs2 principal.user.userid O valor é mapeado diretamente quando cs2Label corresponde a "userName" (não sensível a maiúsculas e minúsculas) e suid está vazio.
cs3 additional.fields[].value.string_value O valor é mapeado diretamente.
cs3Label additional.fields[].key A chave está definida como o valor de cs3Label.
cs3 metadata.severity O valor é mapeado diretamente quando cs3Label é "level" e cs3 não está vazio.
cs4 additional.fields[].value.string_value Mapeado com o campo subType.
cs4Label additional.fields[].key A chave está definida como o valor cs4Label.
cs5 additional.fields[].value.string_value Mapeado com o campo threatLevel.
cs5Label additional.fields[].key A chave está definida como o valor de cs5Label.
cs6 additional.fields[].value.string_value Mapeado com o campo owaspTop10.
cs6Label additional.fields[].key A chave está definida como o valor cs6Label.
date metadata.event_timestamp.seconds Combinado com time e analisado para gerar segundos de época.
dev_id principal.resource.id O valor é mapeado diretamente.
devname principal.resource.name O valor é mapeado diretamente.
device_event_class_id metadata.product_event_type Usado na análise CEF.
device_product metadata.product_name Usado na análise CEF.
device_vendor metadata.vendor_name Usado na análise CEF.
device_version metadata.product_version Usado na análise CEF.
dhost target.hostname O valor é mapeado diretamente.
dpt target.port O valor é mapeado diretamente e convertido em número inteiro.
dst target.ip O valor é mapeado diretamente.
dst_port target.port O valor é mapeado diretamente e convertido em número inteiro.
dstepid target.process.pid O valor é mapeado diretamente.
dsteuid target.user.userid O valor é mapeado diretamente.
event_name metadata.product_event_type Usado na análise CEF.
http_agent network.http.parsed_user_agent O valor é analisado como uma string de agente do utilizador.
http_method network.http.method O valor é mapeado diretamente.
http_refer network.http.referral_url O valor é mapeado diretamente.
http_session_id network.session_id O valor é mapeado diretamente.
http_url target.url O valor é mapeado diretamente.
http_version metadata.product_version O valor é mapeado diretamente.
length additional.fields[].key A chave está definida como "length".
length additional.fields[].value.string_value O valor é mapeado diretamente.
log_type metadata.log_type Codificado de forma rígida para "FORTINET_FORTIWEB".
main_type additional.fields[].key A chave está definida como "mainType".
main_type additional.fields[].value.string_value O valor é mapeado diretamente.
message Vários campos Analisado através de filtros grok e kv para extrair diferentes campos.
ml_allow_method additional.fields[].key A chave está definida como "ml_allow_method".
ml_allow_method additional.fields[].value.string_value O valor é mapeado diretamente.
ml_arg_dbid additional.fields[].key A chave está definida como "ml_arg_dbid".
ml_arg_dbid additional.fields[].value.string_value O valor é mapeado diretamente.
ml_domain_index additional.fields[].key A chave está definida como "ml_domain_index".
ml_domain_index additional.fields[].value.string_value O valor é mapeado diretamente.
ml_log_arglen additional.fields[].key A chave está definida como "ml_log_arglen".
ml_log_arglen additional.fields[].value.string_value O valor é mapeado diretamente.
ml_log_hmm_probability additional.fields[].key A chave está definida como "ml_log_hmm_probability".
ml_log_hmm_probability additional.fields[].value.string_value O valor é mapeado diretamente.
ml_log_sample_arglen_mean additional.fields[].key A chave está definida como "ml_log_sample_arglen_mean".
ml_log_sample_arglen_mean additional.fields[].value.string_value O valor é mapeado diretamente.
ml_log_sample_prob_mean additional.fields[].key A chave está definida como "ml_log_sample_prob_mean".
ml_log_sample_prob_mean additional.fields[].value.string_value O valor é mapeado diretamente.
ml_svm_accuracy additional.fields[].key A chave está definida como "ml_svm_accuracy".
ml_svm_accuracy additional.fields[].value.string_value O valor é mapeado diretamente.
ml_svm_log_main_types additional.fields[].key A chave está definida como "ml_svm_log_main_types".
ml_svm_log_main_types additional.fields[].value.string_value O valor é mapeado diretamente.
ml_svm_log_match_types additional.fields[].key A chave está definida como "ml_svm_log_match_types".
ml_svm_log_match_types additional.fields[].value.string_value O valor é mapeado diretamente.
ml_url_dbid additional.fields[].key A chave está definida como "ml_url_dbid".
ml_url_dbid additional.fields[].value.string_value O valor é mapeado diretamente.
monitor_status additional.fields[].key A chave está definida como "monitor_status".
monitor_status additional.fields[].value.string_value O valor é mapeado diretamente.
msg metadata.description O valor é mapeado diretamente.
owasp_top10 additional.fields[].key A chave está definida como "owaspTop10".
owasp_top10 additional.fields[].value.string_value O valor é mapeado diretamente.
principal_app principal.application O valor é mapeado diretamente.
principal_host principal.hostname O valor é mapeado diretamente.
proto network.ip_protocol O valor é mapeado diretamente após a conversão para maiúsculas.
request target.url O valor é mapeado diretamente.
requestMethod network.http.method O valor é mapeado diretamente.
rt metadata.event_timestamp.seconds Analisado como milissegundos desde epoch e convertido em segundos.
security_result.severity security_result.severity Derivado de severity_level. Mapeado para diferentes valores de gravidade da UDM com base no valor do registo não processado. A predefinição é UNKNOWN_SEVERITY se não for encontrada nenhuma correspondência.
server_pool_name additional.fields[].key A chave está definida como "server_pool_name".
server_pool_name additional.fields[].value.string_value O valor é mapeado diretamente.
service network.application_protocol O valor é mapeado diretamente após a conversão para maiúsculas.
service target.application O valor é mapeado diretamente após ser convertido em maiúsculas, se não for um de HTTPS, HTTP, DNS, DHCP ou SMB.
severity security_result.severity Se severity estiver vazio e cs3Label for "level", é usado o valor de cs3. Em seguida, mapeado para um valor de gravidade da UDM (BAIXO, ALTO, etc.).
signature_id security_result.rule_id O valor é mapeado diretamente.
signature_subclass security_result.detection_fields[].key A chave está definida como "signature_subclass".
signature_subclass security_result.detection_fields[].value O valor é mapeado diretamente.
src principal.ip O valor é mapeado diretamente.
src_country principal.location.country_or_region O valor é mapeado diretamente.
src_ip principal.ip O valor é mapeado diretamente.
src_port principal.port O valor é mapeado diretamente e convertido em número inteiro.
srccountry principal.location.country_or_region O valor é mapeado diretamente.
sub_type additional.fields[].key A chave está definida como "subType".
sub_type additional.fields[].value.string_value O valor é mapeado diretamente.
subtype target.resource.resource_subtype O valor é mapeado diretamente.
suid principal.user.userid O valor é mapeado diretamente.
threat_level additional.fields[].key A chave está definida como "threatLevel".
threat_level additional.fields[].value.string_value O valor é mapeado diretamente.
threat_weight security_result.detection_fields[].key A chave está definida como "threat_weight".
threat_weight security_result.detection_fields[].value O valor é mapeado diretamente.
time metadata.event_timestamp.seconds Combinado com date e analisado para gerar segundos de época.
user_id principal.user.product_object_id O valor é mapeado diretamente.
user_name additional.fields[].key A chave está definida como "userName".
user_name additional.fields[].value.string_value O valor é mapeado diretamente.
user_name principal.user.userid O valor é mapeado diretamente.
N/A metadata.event_type Definido como "NETWORK_CONNECTION" se principal.ip e target.ip estiverem presentes. Definido como "USER_UNCATEGORIZED" se principal.ip e principal.user estiverem presentes. Definido como "STATUS_UPDATE" se apenas principal.ip estiver presente. Caso contrário, defina como "GENERIC_EVENT".
N/A metadata.log_type Codificado de forma rígida para "FORTINET_FORTIWEB".
N/A metadata.product_name Codificado de forma rígida como "FORTINET FORTIWEB" ou "FortiWEB Cloud" com base no formato do registo.
N/A metadata.vendor_name Codificado de forma rígida como "FORTINET" ou "Fortinet" com base no formato do registo.
N/A principal.resource.resource_type Codificado como "DEVICE" se dev_id estiver presente.

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.