Coletar registros do Vectra Detect
Este documento explica como ingerir registros do Vectra Detect no Google Security Operations usando o Bindplane. O analisador transforma os registros dos formatos SYSLOG, JSON e CEF em um modelo de dados unificado (UDM). Primeiro, ele normaliza os dados removendo caracteres e campos desnecessários. Depois, usa padrões grok para extrair informações de diferentes formatos de registro e, por fim, mapeia os campos extraídos para os atributos correspondentes da UDM.
Antes de começar
Verifique se você tem os pré-requisitos a seguir:
- Uma instância do Google SecOps
- Um host Windows 2016 ou mais recente ou Linux com
systemd - Se estiver executando por trás de um proxy, verifique se as portas do firewall estão abertas de acordo com os requisitos do agente BindPlane.
- Acesso privilegiado à interface do Vectra
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. Salve o arquivo de forma segura no sistema em que o Bindplane será instalado.
Receber o ID de 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
Instale o agente do Bindplane no seu sistema operacional Windows ou Linux de acordo com as instruções a seguir.
Instalação do Windows
- Abra o Prompt de Comando ou o PowerShell como administrador.
Execute este comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Instalação do Linux
- Abra um terminal com privilégios de root ou sudo.
Execute este comando:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
Outros recursos de instalação
- Para mais opções de instalação, consulte este guia de instalação.
Configurar o agente do Bindplane para ingerir o Syslog e enviar ao Google SecOps
Acesse o arquivo de configuração:
- Localize o arquivo
config.yaml. Normalmente, ele fica no diretório/etc/bindplane-agent/no Linux ou no diretório de instalação no Windows. - Abra o arquivo usando um editor de texto (por exemplo,
nano,viou Bloco de Notas).
- Localize o arquivo
Edite o arquivo
config.yamlda seguinte forma:receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <CUSTOMER_ID> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization log_type: 'VECTRA_DETECT' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels- Substitua a porta e o endereço IP conforme necessário na sua infraestrutura.
- Substitua
<CUSTOMER_ID>pelo ID do cliente real. - Atualize
/path/to/ingestion-authentication-file.jsonpara o caminho em que o arquivo de autenticação foi salvo na seção Receber arquivo de autenticação de ingestão do Google SecOps.
Reinicie o agente do Bindplane para aplicar as mudanças
Para reiniciar o agente do Bindplane no Linux, execute o seguinte comando:
sudo systemctl restart bindplane-agentPara reiniciar o agente do Bindplane no Windows, use o console Serviços ou insira o seguinte comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configurar o Vectra Detect para enviar Syslog
- Faça login na interface do Vectra Detect.
- Acesse Configurações > Notificação.
- Acesse a seção Syslog.
- Clique em Editar para adicionar ou editar a configuração do Syslog.
- Destino: insira o endereço IP do agente do Bindplane.
- Porta: digite o número da porta do agente do Bindplane.
- Protocolo: selecione UDP ou TCP com base na configuração real do agente do Bindplane.
- Formato: selecione JSON.
- Tipos de registro: selecione os registros que você quer enviar para o Google SecOps.
- Marque a caixa de seleção Incluir detalhes avançados.
- No lado direito, você encontra três botões de alternância para configuração adicional:
- Incluir detecções triadas: quando desativada, as mensagens do syslog não são enviadas quando detecções triadas são criadas ou atualizadas.
- Incluir detecções na categoria "Informações": quando desativada, as mensagens do syslog não são enviadas quando detecções na categoria "Informações" são criadas ou atualizadas.
- Incluir diminuições na pontuação do host/da conta: quando desativada, as mensagens do syslog não são enviadas quando as pontuações de ameaça e certeza estão diminuindo e/ou permanecem as mesmas.
- Clique em Salvar.
- Clique em Testar para testar a configuração.
Tabela de mapeamento do UDM
| Campo de registro | Mapeamento do UDM | Lógica |
|---|---|---|
| ação | read_only_udm.security_result.action | Valor extraído do campo "action" se [result] for "true" ou "failure" em eventos de auditoria. |
| categoria | read_only_udm.security_result.category_details | Valor extraído do campo "category". |
| certeza | read_only_udm.security_result.confidence | Se [certainty] estiver entre 0 e 35, defina como "LOW_CONFIDENCE". Se [certeza] estiver entre 35 e 70, defina como "MEDIUM_CONFIDENCE". Se [certainty] estiver entre 70 e 100, defina como "HIGH_CONFIDENCE". |
| dd_bytes_rcvd | read_only_udm.network.received_bytes | Valor extraído do campo "dd_bytes_rcvd". |
| dd_bytes_sent | read_only_udm.network.sent_bytes | Valor extraído do campo "dd_bytes_sent". |
| dd_dst_dns | read_only_udm.target.hostname | Valor extraído do campo "dd_dst_dns". |
| dd_dst_dns | read_only_udm.target.asset.hostname | Valor extraído do campo "dd_dst_dns". |
| dd_dst_ip | read_only_udm.target.asset.ip | Valor extraído do campo "dd_dst_ip". |
| dd_dst_ip | read_only_udm.target.ip | Valor extraído do campo "dd_dst_ip". |
| dd_dst_port | read_only_udm.target.port | Valor extraído do campo "dd_dst_port". |
| detection_id | read_only_udm.metadata.product_log_id | Valor extraído do campo "detection_id". |
| detection_profile.name | read_only_udm.security_result.detection_fields | A chave é "detection_profile name", e o valor é extraído do campo "detection_profile.name". |
| detection_profile.scoringDetections | read_only_udm.security_result.detection_fields | A chave é "detectionprofile scoringDetections{index}", e o valor é extraído de cada elemento na matriz "detection_profile.scoringDetections". |
| detection_profile.vname | read_only_udm.security_result.detection_fields | A chave é "detection_profile vname", e o valor é extraído do campo "detection_profile.vname". |
| dest_ip | read_only_udm.target.asset.ip | Valor extraído do campo "dest_ip" em "Eventos de campanha". |
| dest_ip | read_only_udm.target.ip | Valor extraído do campo "dest_ip" em "Eventos de campanha". |
| dest_name | read_only_udm.target.asset.hostname | Valor extraído do campo "dest_name" em "Eventos de campanha". |
| dest_name | read_only_udm.target.hostname | Valor extraído do campo "dest_name" em "Eventos de campanha". |
| d_type | read_only_udm.additional.fields | A chave é "d_type", e o valor é extraído do campo "d_type". |
| d_type_vname | read_only_udm.additional.fields | A chave é "d_type_vname", e o valor é extraído do campo "d_type_vname". |
| dvchost | read_only_udm.observer.hostname | Valor extraído do campo "dvchost". |
| dvchost | read_only_udm.principal.asset.hostname | Valor extraído do campo "dvchost" se [host_name] estiver vazio nos eventos HOST. |
| dvchost | read_only_udm.principal.hostname | Valor extraído do campo "dvchost" se [host_name] estiver vazio nos eventos HOST. |
| headend_addr | read_only_udm.observer.ip | Valor extraído do campo "headend_addr". |
| headend_addr | read_only_udm.principal.asset.ip | Valor extraído do campo "headend_addr" se [host_ip] estiver vazio nos eventos de detecção. |
| headend_addr | read_only_udm.principal.ip | Valor extraído do campo "headend_addr" se [host_ip] estiver vazio nos eventos de detecção. |
| href | read_only_udm.target.url | Valor extraído do campo "href". |
| host_id | read_only_udm.target.asset_id | O valor é "VectraAI.DETECT:{host_id}" em eventos de HOST. |
| host_ip | read_only_udm.principal.asset.ip | Valor extraído do campo "host_ip" nos eventos HOST e Detections. |
| host_ip | read_only_udm.principal.ip | Valor extraído do campo "host_ip" nos eventos HOST e Detections. |
| host_name | read_only_udm.principal.asset.hostname | Valor extraído do campo "host_name". |
| host_name | read_only_udm.principal.hostname | Valor extraído do campo "host_name". |
| msg_data | read_only_udm.security_result.summary | Valor extraído do campo "msg_data" em "Eventos de auditoria e integridade". |
| quadrante | read_only_udm.security_result.priority_details | Valor extraído do campo "quadrant". |
| result | read_only_udm.security_result.action | Se [result] for "true", defina como "ALLOW". Se [result] for "failure", defina como "BLOCK" em "Audit Events". |
| result | read_only_udm.security_result.detection_fields | A chave é "result", e o valor é extraído do campo "result" em "Eventos de auditoria e integridade". |
| papel | read_only_udm.target.user.attribute.roles.name | Valor extraído do campo "role" nos eventos de auditoria. |
| gravidade, | read_only_udm.security_result.severity | Se [threat] estiver entre 0 e 20, defina como "INFORMATIONAL". Se [threat] estiver entre 20 e 40, defina como "LOW". Se [threat] estiver entre 40 e 60, defina como "MEDIUM". Se [threat] estiver entre 60 e 80, defina como "ALTO". Se [threat] estiver entre 80 e 100, defina como "CRITICAL". |
| gravidade, | read_only_udm.security_result.severity_details | Valor extraído do campo "gravidade". |
| source_ip | read_only_udm.principal.asset.ip | Valor extraído do campo "source_ip" em "Eventos de auditoria e integridade". |
| source_ip | read_only_udm.principal.ip | Valor extraído do campo "source_ip" em "Eventos de auditoria e integridade". |
| src | read_only_udm.principal.asset.ip | Valor extraído do campo "src" nos eventos CEF. |
| src | read_only_udm.principal.ip | Valor extraído do campo "src" nos eventos CEF. |
| src_ip | read_only_udm.principal.asset.ip | Valor extraído do campo "src_ip" em "Eventos de campanhas". |
| src_ip | read_only_udm.principal.ip | Valor extraído do campo "src_ip" em "Eventos de campanhas". |
| src_name | read_only_udm.principal.asset.hostname | Valor extraído do campo "src_name" se [host_name] e [dvchost] estiverem vazios. |
| src_name | read_only_udm.principal.hostname | Valor extraído do campo "src_name" se [host_name] e [dvchost] estiverem vazios. |
| ameaça | read_only_udm.security_result.severity | Se [threat] estiver entre 0 e 20, defina como "INFORMATIONAL". Se [threat] estiver entre 20 e 40, defina como "LOW". Se [threat] estiver entre 40 e 60, defina como "MEDIUM". Se [threat] estiver entre 60 e 80, defina como "ALTO". Se [threat] estiver entre 80 e 100, defina como "CRITICAL". |
| triagem realizada | read_only_udm.additional.fields | A chave é "triaged" e o valor é extraído do campo "triaged". |
| tipo | read_only_udm.metadata.product_event_type | Valor extraído do campo "type" em "Eventos de saúde". |
| usuário | read_only_udm.target.user.userid | Valor extraído do campo "user" em "Eventos de auditoria". |
| vectra_timestamp | read_only_udm.metadata.event_timestamp | Valor extraído do campo "vectra_timestamp". |
| version | read_only_udm.metadata.product_version | Valor extraído do campo "version". |
| read_only_udm.metadata.event_type | Definido como "USER_LOGIN" se [msg_data] contiver "log in" e [user] não estiver vazio em Audit Events. | |
| read_only_udm.metadata.event_type | Definido como "SCAN_HOST" em eventos HOST. | |
| read_only_udm.metadata.event_type | Definido como "NETWORK_HTTP" se [host_ip] não estiver vazio, [principal_present] for verdadeiro e [target_present] for verdadeiro em eventos de detecção. | |
| read_only_udm.metadata.event_type | Definido como "STATUS_UPDATE" se [principal_present] for verdadeiro em eventos de detecção. | |
| read_only_udm.metadata.event_type | Definido como "NETWORK_CONNECTION" se [principal_present] for verdadeiro e [target_present] for verdadeiro em eventos de detecção. | |
| read_only_udm.metadata.event_type | Definido como "NETWORK_CONNECTION" se [event_type] for "GENERIC_EVENT", [principal_present] for verdadeiro e [target_present] for verdadeiro. | |
| read_only_udm.metadata.event_type | Definido como "STATUS_UPDATE" se [event_type] for "GENERIC_EVENT" e [principal_present] for verdadeiro. | |
| read_only_udm.metadata.log_type | Defina como "VECTRA_DETECT". | |
| read_only_udm.metadata.vendor_name | Defina como "Vectra.AI". | |
| read_only_udm.metadata.product_name | Defina como "DETECT". | |
| read_only_udm.network.application_protocol | Defina como "HTTP" se [dd_dst_port] for 80. | |
| read_only_udm.network.application_protocol | Definido como "HTTPS" se [dd_dst_port] for 443. | |
| read_only_udm.network.application_protocol | Definido como "UNKNOWN_APPLICATION_PROTOCOL" se [principal_present] for verdadeiro e [target_present] for verdadeiro em eventos de detecção. | |
| read_only_udm.network.http.method | Defina como "METHOD_OTHER". | |
| read_only_udm.extensions.auth.type | Definido como "AUTHTYPE_UNSPECIFIED" se [msg_data] contiver "log in" em "Audit Events". | |
| is_alert | Definido como "true" se [triaged] for verdadeiro. |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.