Coletar registros do WatchGuard Fireware
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
- Faça login no console do Google SecOps.
- Acesse Configurações do SIEM > Agentes de coleta.
- Baixe o arquivo de autenticação de ingestão.
Receber o ID do cliente do Google SecOps
- Faça login no console do Google SecOps.
- Acesse Configurações do SIEM > Perfil.
- Copie e salve o ID do cliente na seção Detalhes da organização.
Instalar o agente do BindPlane
- 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
. - 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
. - 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
- Acesse a máquina em que o Bindplane está instalado.
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
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
- Faça login na interface do Watchguard.
- Selecione Sistema > Logging.
- Clique na guia Servidor Syslog.
- Marque a caixa de seleção Enviar mensagens de registro para estes servidores syslog.
- Clique em Adicionar.
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.
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.