Recolha registos do Cylance PROTECT
Este documento explica como carregar registos do Cylance PROTECT para o Google Security Operations através do Bindplane. O código do analisador Logstash transforma as mensagens syslog do Cylance PROTECT num modelo de dados unificado (UDM). Extrai campos da mensagem syslog, normaliza-os, mapeia-os para campos UDM e enriquece os dados com informações de gravidade e categoria de ameaças.
Antes de começar
Certifique-se de que tem os seguintes pré-requisitos:
- Instância do Google SecOps
- Windows 2016 ou posterior, ou um 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 Cylance PROTECT
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
,vi
ou Bloco de notas).
- Localize o ficheiro
Edite o ficheiro
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 de cliente real.Atualize
/path/to/ingestion-authentication-file.json
para 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-agent
Para reiniciar o agente do Bindplane no Windows, pode usar a consola Services ou introduzir o seguinte comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configure o Syslog no Cylance Protect
- Inicie sessão na consola de gestão do Cylance.
- Aceda a Definições > Aplicação.
- Selecione a caixa de verificação Syslog/SIEM.
- Selecione todos os eventos.
- Indique os seguintes detalhes de configuração:
- SIEM: selecione Syslog.
- Protocolo: selecione UDP.
- Selecione a caixa de verificação Permitir mensagens com mais de 2 KB.
- IP/Domínio: introduza o endereço IP do agente Bindplane.
- Porta: introduza o número da porta do agente Bindplane (por exemplo,
514
para UDP). - Instalação: selecione o tipo de registo de aplicações.
- Clique em Testar ligação.
- Clique em Guardar.
Tabela de mapeamento do UDM
Campo de registo | Mapeamento de UDM | Lógica |
---|---|---|
Versão do agente | metadata.product_version | Valor extraído de Agent Version: <value> |
Pontuação da Cylance | security_result.severity_details | Valor extraído de Cylance Score: <value> |
security_result.severity | Mapeada com base na seguinte lógica: - ALTO: se a pontuação do Cylance for superior a 67 - MÉDIO: se a pontuação do Cylance for superior a 33 - BAIXO: se a pontuação do Cylance for igual ou inferior a 33 |
|
Detetado 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 adicionado com 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> |
ID 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 | Mapeada com base nos campos Event Type e Event Name . O valor predefinido é GENERIC_EVENT |
|
Nome do ficheiro | principal.process.file.full_path | Valor extraído de File Name: <value> e combinado com Path: <value> para formar o caminho completo |
Caminho do ficheiro | 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 utilizador é extraído após a divisão por // , se estiver presente |
Proprietário do processo de instigação | principal.administrative_domain | Nome do 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> |
Utilizadores com sessão iniciada | about.user.userid | Nomes de utilizador 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> |
Morada resolvida | network.dns.answers.name | Valor extraído de Resolved Address: <value> |
SHA256 | principal.process.file.sha256 | Valor extraído de SHA256: <value> |
IP da fonte | principal.ip | Valor extraído de Source IP: <value> , usado para tipos de eventos específicos |
Estado | security_result.action | Mapeado para ações da UDM específicas 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 utilizador é extraído após a divisão por // , se estiver presente |
Proprietário do processo de destino | target.administrative_domain | Nome do 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> |
Utilizador | principal.user.userid | Nome de utilizador extraído de User: <value> , se presente, usado quando User Name não está presente |
Utilizador | principal.user.email_addresses | Endereço de email extraído de User: <value> , se estiver presente, usado quando User Name não está presente |
Nome de utilizador | 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 adicionado com 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 adicionado com Zone_Names: |
metadata.vendor_name | Codificado nos Cylance |
|
metadata.product_name | Valor extraído da mensagem de registo, PROTECT ou OPTICS |
|
metadata.log_type | Codificado nos CYLANCE_PROTECT |
|
network.ip_protocol | Codificado de forma rígida para TCP para eventos OpticsCaeNetworkEvent |
|
network.application_protocol | Codificado de forma rígida para DNS para eventos OpticsCaeDnsEvent |
|
security_result.rule_labels.key | Defina como Interpreter ou Interpreter Version com base no campo disponível |
|
security_result.detection_fields.key | Codificado nos 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 nas 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 da Google SecOps.