Recolha registos do antivírus Kaspersky
Este documento explica como carregar registos do Kaspersky Antivirus para o Google Security Operations através do Bindplane. O código do analisador tenta primeiro analisar a mensagem de registo não processada como JSON. Se falhar, usa expressões regulares (padrões grok) para extrair campos da mensagem com base em formatos de registo comuns do AV da Kaspersky.
Antes de começar
Certifique-se de que tem os seguintes pré-requisitos:
- Instância do Google SecOps
- Windows 2016 ou posterior, ou anfitrião Linux com systemd
- Se estiver a ser executado através de um proxy, as portas da firewall estão abertas
- Acesso privilegiado ao Kaspersky Antivirus
Obtenha o ficheiro de autenticação de carregamento do Google SecOps
- Inicie sessão na consola Google SecOps.
- Aceda a Definições do SIEM > Agentes de recolha.
- Transfira o ficheiro de autenticação de carregamento. Guarde o ficheiro de forma segura no sistema onde o Bindplane vai ser instalado.
Obtenha o ID de cliente do Google SecOps
- Inicie sessão na consola Google SecOps.
- Aceda a Definições do SIEM > Perfil.
- Copie e guarde o ID do cliente da secção Detalhes da organização.
Instale o agente do Bindplane
Instalação do Windows
- Abra a Linha de comandos ou o PowerShell como administrador.
Execute o seguinte 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 raiz ou sudo.
Execute o seguinte comando:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
Recursos de instalação adicionais
Para ver opções de instalação adicionais, consulte o guia de instalação.
Configure o agente Bindplane para carregar o Syslog e enviá-lo para o Google SecOps
Aceda ao ficheiro de configuração:
- Localize o ficheiro
config.yaml. Normalmente, encontra-se no diretório/etc/bindplane-agent/no Linux ou no diretório de instalação no Windows. - Abra o ficheiro com um editor de texto (por exemplo,
nano,viou Bloco de notas).
- Localize o ficheiro
Edite o ficheiro
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 de cliente real.Atualize
/path/to/ingestion-authentication-file.jsonpara o caminho onde o ficheiro de autenticação foi guardado na secção Obtenha o ficheiro de autenticação de carregamento do Google SecOps.
Reinicie o agente do Bindplane para aplicar as alterações
Para reiniciar o agente do Bindplane no Linux, execute o seguinte comando:
sudo systemctl restart bindplane-agentPara reiniciar o agente do Bindplane no Windows, pode usar a consola Services ou introduzir o seguinte comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configure a exportação de eventos no Kaspersky AV
- Inicie sessão na consola do Kaspersky Security Center.
- Selecione o servidor de administração cujos eventos quer exportar.
- No espaço de trabalho Servidor de administração, clique no separador Eventos.
- Clique no link Configurar notificações e exportação de eventos.
- Selecione Configurar exportação para o sistema SIEM na lista.
- Indique os seguintes detalhes de configuração:
- Sistema SIEM: selecione Arcsight (formato CEF).
- Endereço do servidor do sistema SIEM: introduza o endereço IP do agente Bindplane.
- Porta do servidor do sistema SIEM: introduza o número da porta do agente Bindplane (por exemplo,
514para UDP). - Protocolo: selecione UDP.
- Clique em OK.
Tabela de mapeamento do UDM
| Campo de registo | Mapeamento do UDM | Lógica |
|---|---|---|
| Aplicação | network.http.user_agent | Mapeado diretamente a partir do campo Application no registo não processado. |
| Caminho da aplicação | target.process.file.full_path | Usado com o campo Name para construir o caminho completo se Application path estiver presente no registo não processado. |
| Componente | target.resource.name | Mapeado diretamente a partir do campo Component no registo não processado. |
| Categoria de conteúdo | security_result.category_details | Adicionado ao campo security_result.category_details se Content category estiver presente no registo não processado. |
| Origem da categoria de conteúdo | target.resource.type | Se o valor contiver databases, o campo UDM é definido como DATABASE. |
| Erreur | security_result.summary | Mapeado diretamente a partir do campo Erreur no registo não processado se o campo summary estiver vazio. |
| et | metadata.product_event_type | Mapeado diretamente a partir do campo et no registo não processado 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 a partir do campo etdn no registo não processado. |
| Hash SHA256 do ficheiro | target.process.file.sha256 | Mapeado diretamente a partir do campo File SHA256 hash no registo não processado. |
| gn | security_result.about.labels | O key está definido como GN e o value está definido como o valor do campo gn. |
| hdn | principal.hostname | Mapeado diretamente a partir do campo hdn no registo não processado. |
| anca | principal.ip | Mapeado diretamente a partir do campo hip no registo não processado. |
| host_name | principal.hostname | Mapeado diretamente a partir do campo host_name no registo não processado. |
| intermediary_host | intermediary.hostname | Mapeado diretamente a partir do campo intermediary_host no registo não processado. |
| intermediary_hostname | intermediary.hostname | Mapeado diretamente a partir do campo intermediary_hostname no registo não processado. |
| kv_data1 | Este campo é analisado e os respetivos valores são mapeados para outros campos da UDM. | |
| kv_data2 | Este campo é analisado e os respetivos valores são mapeados para outros campos da UDM. | |
| etiqueta | network.http.user_agent | Se o valor for User-Agent, o campo UDM é preenchido com o valor do campo description. |
| etiqueta | principal.hostname | Se o valor for Host, o campo UDM é preenchido com o nome do anfitrião extraído do campo description. |
| etiqueta | 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 a partir do campo MD5 no registo não processado após a conversão para letras minúsculas. |
| Hash MD5 do ficheiro | target.process.file.md5 | Mapeado diretamente a partir do campo MD5 file hash no registo não processado. |
| mensagem | Este campo é analisado e os respetivos valores são mapeados para outros campos da UDM. | |
| método | network.http.method | Mapeado diretamente a partir do campo method no registo não processado, se corresponder a uma lista de métodos HTTP. |
| nome | target.file.full_path | Mapeado diretamente a partir do campo name no registo não processado. |
| Nom | target.process.file.full_path | Usado com o campo application_path para criar o caminho completo. |
| p1 | target.process.file.sha256 | Mapeado diretamente a partir do campo p1 no registo não processado após a conversão para letras minúsculas, se o campo SHA256 estiver vazio e o valor for uma string hexadecimal. |
| p2 | target.process.file.full_path | Mapeado diretamente a partir do campo p2 no registo não processado. |
| p5 | security_result.rule_name | Mapeado diretamente a partir do campo p5 no registo não processado. |
| p7 | principal.user.user_display_name | Mapeado diretamente a partir do campo p7 no registo não processado se os campos User e user_name estiverem vazios. |
| ID do processo | principal.process.pid | Mapeado diretamente a partir do campo Process ID no registo não processado. |
| process_id | target.process.pid | Mapeado diretamente a partir do campo process_id no registo não processado. |
| protocolo | network.application_protocol | Se o valor contiver http (não é sensível a maiúsculas e minúsculas), o campo UDM é definido como HTTP. |
| Motivo | security_result.summary | Mapeado diretamente a partir do campo Reason no registo não processado. |
| Página Web pedida | target.url | Mapeado diretamente a partir do campo Requested web page no registo não processado. |
| Resultado | Se o valor for Allowed, o campo sr_action é definido como ALLOW. |
|
| rtid | security_result.about.labels | O key está definido como rtid e o value está definido como o valor do campo rtid. |
| Regra | security_result.description | Mapeado diretamente a partir do campo Rule no registo não processado. |
| SHA256 | target.process.file.sha256 | Mapeado diretamente a partir do campo SHA256 no registo não processado após a conversão para letras minúsculas. |
| sr_action | security_result.action | Unido no campo security_result.action. |
| resumo | security_result.summary | Mapeado diretamente a partir do campo summary no registo não processado. |
| task_name | security_result.about.labels | O key está definido como TaskName e o value está definido como o valor do campo task_name. |
| threat_action_taken | Se o valor for blocked, o campo security_action é definido como BLOCK. Se o valor for allowed, o campo security_action é definido como ALLOW. |
|
| timestamp | metadata.event_timestamp | Usado para preencher a data/hora do evento. |
| Tipo | security_result.threat_name | Mapeado diretamente a partir do campo Type no registo não processado. |
| URL | network.http.referral_url | Mapeado diretamente a partir do campo url no registo não processado. |
| Utilizador | principal.user.user_display_name | O nome de utilizador é extraído deste campo e mapeado para o campo UDM. |
| Utilizador | principal.administrative_domain | O domínio é extraído deste campo e mapeado para o campo UDM. |
| user_name | principal.user.user_display_name | Mapeado diretamente a partir do campo user_name no registo não processado se o campo User estiver vazio. |
| metadata.event_type | Defina 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 | Está sempre definido como KASPERSKY. |
|
| metadata.product_name | Está sempre definido como KASPERSKY_AV. |
|
| metadata.log_type | Está sempre definido como KASPERSKY_AV. |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.