Coletar registros do Cylance PROTECT
Este documento explica como ingerir registros do Cylance PROTECT no Google Security Operations usando o Bindplane. O código do analisador do Logstash transforma mensagens syslog do Cylance PROTECT em um modelo de dados unificado (UDM). Ele extrai campos da mensagem syslog, normaliza e mapeia para campos UDM, além de enriquecer os dados com informações de gravidade e categoria da ameaça.
Antes de começar
Verifique se você tem os pré-requisitos a seguir:
- Instância do Google SecOps
- Windows 2016 ou mais recente ou um host Linux com
systemd
- Se estiver executando por trás de um proxy, as portas do firewall estarão abertas.
- Acesso privilegiado ao Cylance PROTECT
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
,vi
ou Bloco de Notas).
- Localize o arquivo
Edite o arquivo
config.yaml
da 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 ingestion_labels: log_type: 'CYLANCE_PROTECT' raw_log_field: body 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.json
para 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-agent
Para 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 Syslog no Cylance Protect
- Faça login no console de gerenciamento do Cylance.
- Acesse Configurações > Aplicativo.
- Marque a caixa de seleção Syslog/SIEM.
- Selecione todos os eventos.
- Informe os seguintes detalhes de configuração:
- SIEM: selecione Syslog.
- Protocolo: selecione UDP.
- Marque a caixa de seleção Permitir mensagens com mais de 2 KB.
- IP/Domínio: insira o endereço IP do agente do Bindplane.
- Porta: insira o número da porta do agente Bindplane (por exemplo,
514
para UDP). - Facilidade: selecione o tipo de registro de aplicativo.
- Clique em Testar conexão.
- Clique em Salvar.
Tabela de mapeamento da UDM
Campo de registro | Mapeamento do UDM | Lógica |
---|---|---|
Versão do agente | metadata.product_version | Valor extraído de Agent Version: <value> |
Pontuação do Cylance | security_result.severity_details | Valor extraído de Cylance Score: <value> |
security_result.severity | Mapeado com base na seguinte lógica: - ALTA: se a pontuação do Cylance for > 67 - MÉDIA: se a pontuação do Cylance for > 33 - BAIXA: se a pontuação do Cylance for <= 33 |
|
Detectado por | security_result.detection_fields.value | Valor extraído de Detected By: <value> |
ID do dispositivo | principal.asset_id | Valor extraído de Device Id: <value> e precedido por Cylance: |
IDs de dispositivos | principal.asset_id | Valor extraído de Device Ids: <value> e adicionado com Cylance: , usado quando Device Id não está presente. |
Nome do dispositivo | principal.hostname | Valor extraído de Device Name: <value> |
Nome do dispositivo | target.hostname | Valor extraído de Device Name: <value> , usado para tipos de eventos específicos, como ScriptControl . |
Nomes dos dispositivos | principal.hostname | Valor extraído de Device Names: <value> , usado quando Device Name não está presente |
Descrição | security_result.summary | Valor extraído de Description: <value> , usado para tipos de eventos específicos, como OpticsCaeNetworkEvent . |
IP de destino | target.ip | Valor extraído de Destination IP: <value> |
Porta de destino | target.port | Valor extraído de Destination Port: <value> |
Código do evento | metadata.product_log_id | Valor extraído de Event Id: <value> |
Nome do evento | Usado para determinar subtipos de eventos específicos e aplicar a lógica correspondente. | |
Tipo de evento | metadata.product_event_type | Valor extraído de Event Type: <value> |
metadata.event_type | Mapeado com base nos campos Event Type e Event Name . O valor padrão é GENERIC_EVENT . |
|
Nome do arquivo | principal.process.file.full_path | Valor extraído de File Name: <value> e combinado com Path: <value> para formar o caminho completo |
Caminho do arquivo | target.file.full_path | Valor extraído de File Path: <value> |
Instigating Process ImageFileSha256 | principal.process.file.sha256 | Valor extraído de Instigating Process ImageFileSha256: <value> |
Nome do processo instigador | principal.process.file.full_path | Valor extraído de Instigating Process Name: <value> |
Proprietário do processo de instigação | principal.user.userid | Valor extraído de Instigating Process Owner: <value> . O nome de usuário é extraído após a divisão por // , se presente. |
Proprietário do processo de instigação | principal.administrative_domain | Nome de domínio extraído de Instigating Process Owner: <value> dividindo por // , se presente |
Endereço IP | principal.ip | Endereços IP extraídos de IP Address: (<value>) |
Intérprete | security_result.rule_labels.value | Valor extraído de Interpreter: <value> |
Versão do intérprete | security_result.rule_labels.value | Valor extraído de Interpreter Version: <value> |
Usuários conectados | about.user.userid | Nomes de usuário extraídos de Logged On Users: (<value>) |
Endereço MAC | principal.mac | Endereço MAC extraído de MAC Address: (<value>) e formatado com dois-pontos |
MD5 | principal.process.file.md5 | Valor extraído de MD5: <value> |
Mensagem | Usado para extrair dados de tipos de eventos específicos, como AuditLog . |
|
SO | principal.platform | Mapeado para WINDOWS se o campo OS contiver Windows |
Caminho | principal.process.file.full_path | Valor extraído de Path: <value> e combinado com File Name: <value> para formar o caminho completo |
Nome da política | security_result.rule_name | Valor extraído de Policy Name: <value> |
ID do processo | principal.process.pid | Valor extraído de Process ID: <value> |
Nome do processo | principal.process.file.full_path | Valor extraído de Process Name: <value> |
Endereço resolvido | network.dns.answers.name | Valor extraído de Resolved Address: <value> |
SHA256 | principal.process.file.sha256 | Valor extraído de SHA256: <value> |
IP de origem | principal.ip | Valor extraído de Source IP: <value> , usado para tipos de evento específicos. |
Status | security_result.action | Mapeado para ações específicas do UDM com base no valor: - Quarantined : QUARANTINE - Cleared : ALLOW_WITH_MODIFICATION |
Nome do domínio de destino | network.dns.questions.name | Valor extraído de Target Domain Name: <value> |
Target Process ImageFileSha256 | target.process.file.sha256 | Valor extraído de Target Process ImageFileSha256: <value> |
Nome do processo de destino | target.process.file.full_path | Valor extraído de Target Process Name: <value> |
Proprietário do processo de destino | target.user.userid | Valor extraído de Target Process Owner: <value> . O nome de usuário é extraído após a divisão por // , se presente. |
Proprietário do processo de destino | target.administrative_domain | Nome de domínio extraído de Target Process Owner: <value> dividindo por // , se presente |
Target Registry KeyPath | target.registry.registry_key | Valor extraído de Target Registry KeyPath: <value> |
Classificação de ameaças | security_result.threat_name | Valor extraído de Threat Classification: <value> |
Usuário | principal.user.userid | Nome de usuário extraído de User: <value> , se presente, usado quando User Name não está presente |
Usuário | principal.user.email_addresses | Endereço de e-mail extraído de User: <value> , se presente, usado quando User Name não está presente |
Nome do usuário | principal.user.userid | Valor extraído de User Name: <value> |
Tipo de violação | security_result.summary | Valor extraído de Violation Type: <value> e precedido por ExploitAttempt: |
Tipo de violação | security_result.threat_name | Valor extraído de Violation Type: <value> |
Nomes das zonas | security_result.description | Valor extraído de Zone Names: (<value>) e precedido por Zone_Names: |
metadata.vendor_name | Fixado no código para Cylance |
|
metadata.product_name | Valor extraído da mensagem de registro, PROTECT ou OPTICS . |
|
metadata.log_type | Fixado no código para CYLANCE_PROTECT |
|
network.ip_protocol | Codificado como TCP para eventos de OpticsCaeNetworkEvent |
|
network.application_protocol | Codificado como DNS para eventos de OpticsCaeDnsEvent |
|
security_result.rule_labels.key | Defina como Interpreter ou Interpreter Version com base no campo disponível |
|
security_result.detection_fields.key | Fixado no código para Detected By |
|
security_result.category | Mapeado com base no tipo de evento. Os valores possíveis incluem: - SOFTWARE_SUSPICIOUS - AUTH_VIOLOATION - POLICY_VIOLATION - NETWORK_SUSPICIOUS - EXPLOIT - SOFTWARE_MALICIOUS |
|
security_result.action | Mapeado com base no tipo de evento e em condições específicas. Os valores possíveis incluem: - ALLOW - BLOCK - QUARANTINE - ALLOW_WITH_MODIFICATION |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.