Coletar registros do WatchGuard Fireware

Compatível com:

Visão geral

Esse analisador extrai registros do WatchGuard Fireware no formato JSON ou chave-valor (KV), transformando-os em UDM. Ele processa registros de "Tráfego" e "Evento" de maneira diferente, usando filtros grok e kv para extrair campos e mapeá-los para a UDM, com uma lógica específica para vários valores de msg_id e nomes de eventos, processando protocolos de rede, ações do usuário, resultados de segurança e outros detalhes relevantes. Ele também processa um segundo grupo de entradas de syslog, extraindo informações semelhantes e mapeando-as para o formato UDM.

Antes de começar

  • Verifique se você tem uma instância do Google SecOps.
  • Verifique se você tem acesso privilegiado ao Watchguard.
  • Verifique se você tem um host Windows 2012 SP2 ou mais recente ou Linux com systemd.
  • Se você estiver executando por trás de um proxy, verifique se as portas do firewall estão abertas.

Receber o arquivo de autenticação de ingestão do Google SecOps

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Agentes de coleta.
  3. Baixe o arquivo de autenticação de ingestão.

Receber o ID do cliente do Google SecOps

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Perfil.
  3. Copie e salve o ID do cliente na seção Detalhes da organização.

Instalar o agente do BindPlane

  1. Para instalação no Windows, execute o seguinte script: msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet.
  2. Para instalação no Linux, execute o seguinte script: sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh.
  3. Outras opções de instalação estão disponíveis neste guia de instalação.

Configurar o agente do Bindplane para ingerir Syslog e enviar ao Google SecOps

  1. Acesse a máquina em que o Bindplane está instalado.
  2. Edite o arquivo config.yaml da seguinte forma:

    receivers:
      tcplog:
        # Replace the below port <54525> and IP (0.0.0.0) with your specific values
        listen_address: "0.0.0.0:54525" 
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the creds location below according the placement of the credentials file you downloaded
            creds: '{ json file for creds }'
            # Replace <customer_id> below with your actual ID that you copied
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # You can apply ingestion labels below as preferred
            ingestion_labels:
            log_type: SYSLOG
            namespace: testNamespace
            raw_log_field: body
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Reinicie o agente do Bindplane para aplicar as mudanças usando o seguinte comando: sudo systemctl bindplane restart

Adicionar a configuração do servidor Syslog ao Watchguard

  1. Faça login na interface do Watchguard.
  2. Selecione Sistema > Logging.
  3. Clique na guia Servidor Syslog.
  4. Marque a caixa de seleção Enviar mensagens de registro para estes servidores syslog.
  5. Clique em Adicionar.
  6. Especifique valores para os parâmetros de entrada na caixa de diálogo Servidor Syslog:

    • Endereço IP: digite o endereço IP do servidor.
    • Porta: mude a porta padrão do servidor syslog (514) e digite uma porta diferente para seu servidor.
    • Formato do registro: selecione Syslog no menu suspenso.
    • Opcional: Descrição: digite uma descrição para o servidor (por exemplo, Exportação do Google SecOps).
    • Opcional: O carimbo de data/hora: marque a caixa de seleção para incluir a data e a hora em que o evento ocorre no seu Firebox nos detalhes da mensagem de registro.
    • Opcional: O número de série do dispositivo marque a caixa de seleção para incluir o número de série do Firebox nos detalhes da mensagem de registro.
    • Facilidade do Syslog: para cada tipo de mensagem de registro, selecione uma prioridade no menu suspenso. Por exemplo, para mensagens de alta prioridade, como alarmes, selecione Local0.
    • Opcional: Restaurar padrões: para restaurar as configurações padrão.
  7. Clique em Salvar.

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
action security_result.action_details O valor de action do registro bruto é atribuído a security_result.action_details.
action target.labels.value O valor de action do registro bruto é atribuído a target.labels.value, e target.labels.key é "Ação no recurso".
arg target.file.full_path O valor de arg do registro bruto é atribuído a target.file.full_path.
app_cat_id about.labels.value O valor de app_cat_id do registro bruto é atribuído a about.labels.value, e about.labels.key é "app_cat_id".
app_cat_name target.application Usado em combinação com app_name para formar o valor de target.application (por exemplo, "Google: serviços da Web").
app_id about.labels.value O valor de app_id do registro bruto é atribuído a about.labels.value, com about.labels.key sendo "app_id".
app_name target.application Usado em combinação com app_cat_name para formar o valor de target.application (por exemplo, "Google: serviços da Web").
cats security_result.category_details O valor de cats do registro bruto é atribuído a security_result.category_details.
cert_issuer network.tls.server.certificate.issuer O valor de cert_issuer do registro bruto é atribuído a network.tls.server.certificate.issuer.
cert_subject network.tls.server.certificate.subject O valor de cert_subject do registro bruto é atribuído a network.tls.server.certificate.subject.
cn network.tls.server.certificate.subject O valor de cn do registro bruto é atribuído a network.tls.server.certificate.subject.
conn_action security_result.action_details O valor de conn_action do registro bruto é atribuído a security_result.action_details.
content_type Não mapeado Não mapeado para o objeto IDM nos exemplos de UDM fornecidos.
description metadata.description O valor de description derivado do registro bruto é atribuído a metadata.description.
dhcp_type network.dhcp.type O valor de dhcp_type do registro bruto é mapeado para o tipo de DHCP correspondente em network.dhcp.type (por exemplo, "REQUEST", "ACK").
dst_host target.hostname O valor de dst_host do registro bruto é atribuído a target.hostname.
dst_ip target.ip O valor de dst_ip do registro bruto é atribuído a target.ip.
dst_mac target.mac O valor de dst_mac do registro bruto é atribuído a target.mac.
dst_port target.port O valor de dst_port do registro bruto é atribuído a target.port.
dst_user target.user.user_display_name O valor de dst_user do registro bruto é atribuído a target.user.user_display_name.
dstname target.administrative_domain O valor de dstname do registro bruto é atribuído a target.administrative_domain.
duration Não mapeado Não mapeado para o objeto IDM nos exemplos de UDM fornecidos.
elapsed_time Não mapeado Não mapeado para o objeto IDM nos exemplos de UDM fornecidos.
endpoint intermediary.labels.value O valor de endpoint do registro bruto é atribuído a intermediary.labels.value, e intermediary.labels.key é "Gateway-Endpoint".
event_name principal.application O valor de event_name do registro bruto é atribuído a principal.application.
firewall_id intermediary.asset_id O valor de firewall_id do registro bruto é precedido por "ID do firewall : " e atribuído a intermediary.asset_id.
firewall_name principal.asset_id O valor de firewall_name do registro bruto é precedido por "Firewall: " e atribuído a principal.asset_id.
firewallname intermediary.hostname O valor de firewallname do registro bruto é atribuído a intermediary.hostname.
firewallname principal.hostname O valor de firewallname do registro bruto é atribuído a principal.hostname.
fqdn_dst_match Não mapeado Não mapeado para o objeto IDM nos exemplos de UDM fornecidos.
geo Não mapeado Não mapeado para o objeto IDM nos exemplos de UDM fornecidos.
geo_dst target.location.country_or_region O valor de geo_dst do registro bruto é atribuído a target.location.country_or_region.
geo_src principal.location.country_or_region O valor de geo_src do registro bruto é atribuído a principal.location.country_or_region.
host Não mapeado Não mapeado para o objeto IDM nos exemplos de UDM fornecidos.
ike_policy security_result.rule_id O valor de ike_policy do registro bruto é atribuído a security_result.rule_id.
ike_policy_version security_result.rule_version O valor de ike_policy_version do registro bruto é atribuído a security_result.rule_version.
intermediary_host intermediary.hostname O valor de intermediary_host do registro bruto é atribuído a intermediary.hostname.
ipaddress Não mapeado Não mapeado para o objeto IDM nos exemplos de UDM fornecidos.
ipsec_policy Não mapeado Não mapeado para o objeto IDM nos exemplos de UDM fornecidos.
ipsec_policy_version Não mapeado Não mapeado para o objeto IDM nos exemplos de UDM fornecidos.
keyword Não mapeado Não mapeado para o objeto IDM nos exemplos de UDM fornecidos.
line Não mapeado Não mapeado para o objeto IDM nos exemplos de UDM fornecidos.
log_message metadata.description O valor de log_message do registro bruto é atribuído a metadata.description quando outras descrições mais específicas não estão disponíveis.
log_reason security_result.summary O valor de log_reason do registro bruto é atribuído a security_result.summary.
log_type metadata.log_type O valor de log_type do registro bruto é atribuído a metadata.log_type. Sempre definido como "WATCHGUARD".
msg security_result.summary O valor de msg do registro bruto é atribuído a security_result.summary.
msg_id metadata.product_event_type O valor de msg_id do registro bruto é atribuído a metadata.product_event_type.
new_action security_result.action_details Usado com conn_action para formar o valor de security_result.action_details (por exemplo, "ProxyReplace: IP protocol - HTTPS-Client.DPI-Off").
op network.http.method O valor de op do registro bruto é atribuído a network.http.method.
path target.url O valor de path do registro bruto é atribuído a target.url.
pid Não mapeado Não mapeado para o objeto IDM nos exemplos de UDM fornecidos.
policy_name intermediary.resource.name O valor de policy_name do registro bruto é atribuído a intermediary.resource.name.
policy_name security_result.rule_name O valor de policy_name do registro bruto é atribuído a security_result.rule_name.
policyname_label.value security_result.rule_labels.value O valor de policy_name do registro bruto é atribuído a security_result.rule_labels.value, com security_result.rule_labels.key sendo "PolicyName".
prin_host principal.hostname O valor de prin_host do registro bruto é atribuído a principal.hostname.
proc_id Não mapeado Não mapeado para o objeto IDM nos exemplos de UDM fornecidos.
protocol network.ip_protocol O valor de protocol do registro bruto, convertido para maiúsculas, é atribuído a network.ip_protocol. Tratamento especial para "EXTERNAL ICMP", que é mapeado para "ICMP".
proxy_act security_result.rule_id O valor de proxy_act do registro bruto é atribuído a security_result.rule_id.
proxy_act security_result.rule_name O valor de proxy_act do registro bruto é atribuído a security_result.rule_name.
query_name network.dns.questions.name O valor de query_name do registro bruto é atribuído a network.dns.questions.name.
query_type network.dns.questions.type O valor de query_type do registro bruto é atribuído a network.dns.questions.type. Processamento especial para tipos de consulta numérica e mapeamento para tipos de consulta DNS padrão.
rc Não mapeado Não mapeado para o objeto IDM nos exemplos de UDM fornecidos.
reason security_result.summary O valor de reason do registro bruto é atribuído a security_result.summary.
record_type network.dns.answers.type O valor de record_type do registro bruto é mapeado para o tipo de registro DNS correspondente em network.dns.answers.type.
redirect_action Não mapeado Não mapeado para o objeto IDM nos exemplos de UDM fornecidos.
reputation additional.fields.value.string_value O valor de reputation do registro bruto é atribuído a additional.fields.value.string_value, sendo additional.fields.key "reputation".
response Não mapeado Não mapeado para o objeto IDM nos exemplos de UDM fornecidos.
response_code network.dns.response_code O valor de response_code do registro bruto é mapeado para o código de resposta de DNS correspondente em network.dns.response_code.
route_type Não mapeado Não mapeado para o objeto IDM nos exemplos de UDM fornecidos.
rule_name security_result.rule_name O valor de rule_name do registro bruto é atribuído a security_result.rule_name.
rcvd_bytes network.received_bytes O valor de rcvd_bytes do registro bruto é atribuído a network.received_bytes.
sent_bytes network.sent_bytes O valor de sent_bytes do registro bruto é atribuído a network.sent_bytes.
server_ssl Não mapeado Não mapeado para o objeto IDM nos exemplos de UDM fornecidos.
severity Não mapeado Não mapeado para o objeto IDM nos exemplos de UDM fornecidos.
sig_vers network.tls.server.certificate.version O valor de sig_vers do registro bruto é atribuído a network.tls.server.certificate.version.
signature_cat additional.fields.value.string_value O valor de signature_cat do registro bruto é atribuído a additional.fields.value.string_value, com additional.fields.key sendo "signature_cat".
signature_id additional.fields.value.string_value O valor de signature_id do registro bruto é atribuído a additional.fields.value.string_value, e additional.fields.key é "signature_id".
signature_name additional.fields.value.string_value O valor de signature_name do registro bruto é atribuído a additional.fields.value.string_value, e additional.fields.key é "signature_name".
sni network.tls.client.server_name O valor de sni do registro bruto é atribuído a network.tls.client.server_name.
src_ctid Não mapeado Não mapeado para o objeto IDM nos exemplos de UDM fornecidos.
src_host principal.hostname O valor de src_host do registro bruto é atribuído a principal.hostname.
src_ip principal.ip O valor de src_ip do registro bruto é atribuído a principal.ip.
src_ip_nat Não mapeado Não mapeado para o objeto IDM nos exemplos de UDM fornecidos.
src_mac principal.mac O valor de src_mac do registro bruto é atribuído a principal.mac.
src_port principal.port O valor de src_port do registro bruto é atribuído a principal.port.
src_user principal.user.user_display_name O valor de src_user do registro bruto é atribuído a principal.user.user_display_name.
src_user_name principal.user.user_display_name O valor de src_user_name do registro bruto é atribuído a principal.user.user_display_name.
src_vpn_ip principal.ip O valor de src_vpn_ip do registro bruto é atribuído a principal.ip.
srv_ip Não mapeado Não mapeado para o objeto IDM nos exemplos de UDM fornecidos.
srv_port Não mapeado Não mapeado para o objeto IDM nos exemplos de UDM fornecidos.
ssl_offload Não mapeado Não mapeado para o objeto IDM nos exemplos de UDM fornecidos.
tcp_info Não mapeado Não mapeado para o objeto IDM nos exemplos de UDM fornecidos.
time metadata.event_timestamp.seconds, timestamp.seconds O valor de time do registro bruto é analisado e usado para preencher metadata.event_timestamp.seconds e timestamp.seconds.
time1 metadata.event_timestamp.seconds, timestamp.seconds O valor de time1 do registro bruto é analisado e usado para preencher metadata.event_timestamp.seconds e timestamp.seconds.
tls_profile about.labels.value O valor de tls_profile do registro bruto é atribuído a about.labels.value, e about.labels.key é "tls_profile".
tls_version Não mapeado Não mapeado para o objeto IDM nos exemplos de UDM fornecidos.
user_name principal.user.userid, principal.user.user_display_name O valor de user_name do registro bruto é atribuído a principal.user.userid ou principal.user.user_display_name, dependendo do contexto.
user_type Não mapeado Não mapeado para o objeto IDM nos exemplos de UDM fornecidos.
(N/A) intermediary.resource.type Sempre definido como "ACCESS_POLICY".
(N/A) metadata.event_type Determinado pela lógica do analisador com base em msg_id, log_type, event_name e outros campos. Pode ser NETWORK_CONNECTION, SERVICE_MODIFICATION, NETWORK_SMTP, NETWORK_DNS, NETWORK_HTTP, USER_LOGIN, USER_LOGOUT, USER_RESOURCE_UPDATE_CONTENT, RESOURCE_PERMISSIONS_CHANGE, RESOURCE_CREATION, GENERIC_EVENT, STATUS_UPDATE ou USER_UNCATEGORIZED.
(N/A) metadata.product_name Sempre definido como "Fireware".
(N/A) metadata.vendor_name Sempre definido como "Watchguard".
(N/A) security_result.action Determinado pela lógica do analisador com base em disposition. Pode ser "ALLOW" ou "BLOCK".
(N/A) extensions.auth.type Definido como "AUTHTYPE_UNSPECIFIED" para eventos de login/logout do usuário e "VPN" para eventos de rede relacionados a VPNs.
(N/A) network.application_protocol Determinado pela lógica do analisador com base em msg_id e event_name. Pode ser "DNS", "DHCP", "HTTP" ou "HTTPS".
(N/A) network.dns.questions.type Defina como 1 para consultas de registros "A".
(N/A) target.labels.key Definido como "Ação no recurso" quando action é mapeado para target.labels.value.
(N/A) intermediary.labels.key Defina como "Nome do membro do firewall" quando prin_host for mapeado para intermediary.labels.value.
(N/A) intermediary.labels.key Definido como "Gateway-Endpoint" quando endpoint é mapeado para intermediary.labels.value.
(N/A) principal.labels.key Definido como "Gateway" quando gateway é mapeado para principal.labels.value.
(N/A) target.labels.key Definido como "Gateway" quando gateway é mapeado para target.labels.value.
(N/A) principal.labels.key Defina como "state" quando status for mapeado para principal.labels.value.
(N/A) target.labels.key Definido como "Status do gateway" quando status é mapeado para target.labels.value.
(N/A) additional.fields.key Definido como "signature_name", "signature_cat", "signature_id" ou "reputation" quando os valores correspondentes são mapeados do registro bruto.

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