Coletar registros do antivírus Kaspersky
Este documento explica como ingerir registros do antivírus Kaspersky no Google Security Operations usando o Bindplane. O código do analisador tenta primeiro analisar a mensagem de registro bruta como JSON. Se isso não funcionar, ele usará expressões regulares (padrões grok) para extrair campos da mensagem com base em formatos comuns de registros do Kaspersky AV.
Antes de começar
Verifique se você atende aos seguintes pré-requisitos:
- Instância do Google SecOps
- Host Windows 2016 ou mais recente ou Linux com systemd
- Se estiver executando por trás de um proxy, as portas do firewall estarão abertas.
- Acesso privilegiado ao Kaspersky Antivirus
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 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
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 o 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: '/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 ingestion_labels: log_type: KASPERSKY_AV raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labelsSubstitua 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 a exportação de eventos no Kaspersky AV
- Faça login no console do Kaspersky Security Center.
- Selecione o servidor de administração que tem os eventos que você quer exportar.
- No espaço de trabalho Servidor de administração, clique na guia Eventos.
- Clique no link "Configurar notificações e exportação de eventos".
- Selecione Configurar exportação para o sistema SIEM na lista.
- Informe os seguintes detalhes de configuração:
- Sistema SIEM: selecione Arcsight (formato CEF).
- Endereço do servidor do sistema SIEM: insira o endereço IP do agente do Bindplane.
- Porta do servidor do sistema SIEM: insira o número da porta do agente Bindplane (por exemplo,
514para UDP). - Protocolo: selecione UDP.
- Clique em OK.
Tabela de mapeamento da UDM
| Campo de registro | Mapeamento da UDM | Lógica |
|---|---|---|
| Aplicativo | network.http.user_agent | Mapeado diretamente do campo Application no registro bruto. |
| Caminho do aplicativo | target.process.file.full_path | Usado com o campo Name para construir o caminho completo se Application path estiver presente no registro bruto. |
| Componente | target.resource.name | Mapeado diretamente do campo Component no registro bruto. |
| Categoria de conteúdo | security_result.category_details | Adicionado ao campo security_result.category_details se Content category estiver presente no registro bruto. |
| Origem da categoria de conteúdo | target.resource.type | Se o valor contiver databases, o campo UDM será definido como DATABASE. |
| Erreur | security_result.summary | Mapeado diretamente do campo Erreur no registro bruto se o campo summary estiver vazio. |
| et | metadata.product_event_type | Mapeado diretamente do campo et no registro bruto se o campo product_event_type estiver vazio. |
| et | security_result.category_details | Adicionado ao campo security_result.category_details. |
| etdn | extensions.vulns.vulnerabilities.description | Mapeado diretamente do campo etdn no registro bruto. |
| Hash SHA256 do arquivo | target.process.file.sha256 | Mapeado diretamente do campo File SHA256 hash no registro bruto. |
| gn | security_result.about.labels | O key é definido como GN, e o value é definido como o valor do campo gn. |
| hdn | principal.hostname | Mapeado diretamente do campo hdn no registro bruto. |
| quadril | principal.ip | Mapeado diretamente do campo hip no registro bruto. |
| host_name | principal.hostname | Mapeado diretamente do campo host_name no registro bruto. |
| intermediary_host | intermediary.hostname | Mapeado diretamente do campo intermediary_host no registro bruto. |
| intermediary_hostname | intermediary.hostname | Mapeado diretamente do campo intermediary_hostname no registro bruto. |
| kv_data1 | Esse campo é analisado, e os valores dele são mapeados para outros campos da UDM. | |
| kv_data2 | Esse campo é analisado, e os valores dele são mapeados para outros campos da UDM. | |
| o rótulo. | network.http.user_agent | Se o valor for User-Agent, o campo UDM será preenchido com o valor do campo description. |
| o rótulo. | principal.hostname | Se o valor for Host, o campo UDM será preenchido com o nome do host extraído do campo description. |
| o rótulo. | security_result.description | Para outros valores, o campo UDM é preenchido com uma string que contém os campos label e description. |
| MD5 | target.process.file.md5 | Mapeado diretamente do campo MD5 no registro bruto após a conversão para letras minúsculas. |
| Hash MD5 do arquivo | target.process.file.md5 | Mapeado diretamente do campo MD5 file hash no registro bruto. |
| mensagem | Esse campo é analisado, e os valores dele são mapeados para outros campos da UDM. | |
| método | network.http.method | Mapeado diretamente do campo method no registro bruto, se corresponder a uma lista de métodos HTTP. |
| nome | target.file.full_path | Mapeado diretamente do campo name no registro bruto. |
| Nom | target.process.file.full_path | Usado com o campo application_path para construir o caminho completo. |
| p1 | target.process.file.sha256 | Mapeado diretamente do campo p1 no registro bruto após a conversão para minúsculas se o campo SHA256 estiver vazio e o valor for uma string hexadecimal. |
| p2 | target.process.file.full_path | Mapeado diretamente do campo p2 no registro bruto. |
| p5 | security_result.rule_name | Mapeado diretamente do campo p5 no registro bruto. |
| p7 | principal.user.user_display_name | Mapeado diretamente do campo p7 no registro bruto se os campos User e user_name estiverem vazios. |
| ID do processo | principal.process.pid | Mapeado diretamente do campo Process ID no registro bruto. |
| process_id | target.process.pid | Mapeado diretamente do campo process_id no registro bruto. |
| protocolo | network.application_protocol | Se o valor contiver http (sem diferenciar maiúsculas de minúsculas), o campo UDM será definido como HTTP. |
| Motivo | security_result.summary | Mapeado diretamente do campo Reason no registro bruto. |
| Página da Web solicitada | target.url | Mapeado diretamente do campo Requested web page no registro bruto. |
| Resultado | Se o valor for Allowed, o campo sr_action será definido como ALLOW. |
|
| rtid | security_result.about.labels | O key é definido como rtid, e o value é definido como o valor do campo rtid. |
| Regra | security_result.description | Mapeado diretamente do campo Rule no registro bruto. |
| SHA256 | target.process.file.sha256 | Mapeado diretamente do campo SHA256 no registro bruto após a conversão para letras minúsculas. |
| sr_action | security_result.action | Unido ao campo security_result.action. |
| resumo | security_result.summary | Mapeado diretamente do campo summary no registro bruto. |
| task_name | security_result.about.labels | O key é definido como TaskName, e o value é definido como o valor do campo task_name. |
| threat_action_taken | Se o valor for blocked, o campo security_action será definido como BLOCK. Se o valor for allowed, o campo security_action será definido como ALLOW. |
|
| timestamp | metadata.event_timestamp | Usado para preencher o carimbo de data/hora do evento. |
| Tipo | security_result.threat_name | Mapeado diretamente do campo Type no registro bruto. |
| URL | network.http.referral_url | Mapeado diretamente do campo url no registro bruto. |
| Usuário | principal.user.user_display_name | O nome de usuário é extraído desse campo e mapeado para o campo da UDM. |
| Usuário | principal.administrative_domain | O domínio é extraído desse campo e mapeado para o campo do UDM. |
| user_name | principal.user.user_display_name | Mapeado diretamente do campo user_name no registro bruto se o campo User estiver vazio. |
| metadata.event_type | Definido como SCAN_VULN_NETWORK se Application path e Name estiverem presentes, STATUS_UNCATEGORIZED se hdn ou host_name estiverem presentes ou GENERIC_EVENT caso contrário. |
|
| metadata.vendor_name | Sempre defina como KASPERSKY. |
|
| metadata.product_name | Sempre defina como KASPERSKY_AV. |
|
| metadata.log_type | Sempre defina como KASPERSKY_AV. |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.