Recolha registos do Check Point EDR
Este documento explica como carregar registos do antivírus Check Point para o Google Security Operations através do Bindplane. O analisador processa registos do Check Point SandBlast, convertendo registos formatados SYSLOG + KV e SYSLOG + CEF no Unified Data Model (UDM). O analisador sintático extrai campos de mensagens CEF através de módulos incluídos e mapeia-os para campos UDM, processando vários tipos de eventos e enriquecendo os dados com contexto adicional dos registos não processados. Para mensagens que não sejam CEF, o analisador usa a extração de chave-valor, padrões grok e lógica condicional para mapear campos relevantes para o esquema UDM de EDR.
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 dispositivo Check Point com SandBlast
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: 'CHECKPOINT_EDR' 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 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 o Syslog na série de dispositivos Checkpoint 1500
- Inicie sessão no Checkpoint Appliance.
- Aceda a Registos e monitorização > Servidores de registos > Servidores Syslog.
- Clique em Configurar.
- Indique os seguintes detalhes de configuração:
- Protocolo: selecione UDP.
- Nome: introduza um nome descritivo.
- Endereço IP: introduza o endereço IP do agente do Bindplane.
- Porta: introduza o número da porta do agente do Bindplane.
- Selecione Ativar servidor de registo.
- Selecione os registos a encaminhar: registos do sistema e de segurança.
- Clique em Aplicar.
Tabela de mapeamento do UDM
| Campo de registo | Mapeamento de UDM | Lógica |
|---|---|---|
action |
event.idm.read_only_udm.security_result.action |
Mapeado diretamente a partir do campo CEF action. |
action_comment |
event.idm.read_only_udm.additional.fields[<N>].key: action_commentevent.idm.read_only_udm.additional.fields[<N>].value.string_value: valor de action_comment |
Mapeado diretamente a partir do campo action_comment. |
action_details |
event.idm.read_only_udm.security_result.action_details |
Mapeado diretamente a partir do campo CEF action_details. |
additional_info |
event.idm.read_only_udm.additional.fields[<N>].key: additional_infoevent.idm.read_only_udm.additional.fields[<N>].value.string_value: valor de additional_info |
Mapeado diretamente a partir do campo additional_info. |
am_update_proxy |
event.idm.read_only_udm.intermediary.domain.name |
Mapeado diretamente a partir do campo am_update_proxy. |
am_update_source |
event.idm.read_only_udm.target.url |
Mapeado diretamente a partir do campo am_update_source. |
client_version |
event.idm.read_only_udm.metadata.product_version |
Mapeado diretamente a partir do campo client_version. |
cn1 |
event.idm.read_only_udm.security_result.severity |
Mapeado a partir do campo cn1 CEF e convertido em valores de gravidade da UDM (CRITICAL, HIGH, MEDIUM, LOW, INFO). |
cs1 |
event.idm.read_only_udm.additional.fields[<N>].key: Connectivity Stateevent.idm.read_only_udm.additional.fields[<N>].value.string_value: valor de cs1 |
Mapeado diretamente a partir do campo cs1. |
description |
event.idm.read_only_udm.metadata.description |
Mapeado diretamente a partir do campo CEF description. |
deviceDirection |
event.idm.read_only_udm.network.direction |
Mapeado a partir do campo deviceDirection. Um valor de 0 é mapeado para INBOUND. Os outros valores não são mapeados. |
deviceFacility |
event.idm.read_only_udm.additional.fields[<N>].key: deviceFacilityevent.idm.read_only_udm.additional.fields[<N>].value.string_value: valor de deviceFacility |
Mapeado diretamente a partir do campo deviceFacility. |
dst |
event.idm.read_only_udm.network.target.ip |
Mapeado diretamente a partir do campo dst quando event_type é Firewall. |
engine_ver |
event.idm.read_only_udm.additional.fields[<N>].key: engine_verevent.idm.read_only_udm.additional.fields[<N>].value.string_value: valor de engine_ver |
Mapeado diretamente a partir do campo engine_ver. |
ep_rule_id |
event.idm.read_only_udm.firewall.firewall_rule_id |
Mapeado diretamente a partir do campo ep_rule_id quando event_type é Firewall. |
event_type |
event.idm.read_only_udm.metadata.product_event_type |
Mapeado diretamente a partir do campo CEF event_type. |
failed_updates |
event.idm.read_only_udm.additional.fields[<N>].key: failed_updatesevent.idm.read_only_udm.additional.fields[<N>].value.string_value: valor de failed_updates |
Mapeado diretamente a partir do campo failed_updates. |
file_md5 |
event.idm.read_only_udm.source_file.hash_md5 |
Mapeado diretamente a partir do campo file_md5 quando event_type é TE Event. |
file_name |
event.idm.read_only_udm.source_file.file_name |
Mapeado diretamente a partir do campo file_name quando event_type é TE Event. |
file_sha1 |
event.idm.read_only_udm.source_file.hash_sha1 |
Mapeado diretamente a partir do campo file_sha1 quando event_type é TE Event. |
file_sha256 |
event.idm.read_only_udm.source_file.hash_sha256 |
Mapeado diretamente a partir do campo file_sha256 quando event_type é TE Event. |
host_type |
event.idm.read_only_udm.principal.asset.type |
Mapeado a partir do campo host_type. Desktop é convertido em WORKSTATION e, em seguida, o valor é convertido em maiúsculas. |
ifdir |
event.idm.read_only_udm.network.direction |
Mapeado diretamente a partir do campo ifdir e convertido em maiúsculas quando event_type é Firewall. |
installed_products |
event.idm.read_only_udm.principal.asset.software.name |
Mapeado diretamente a partir do campo installed_products. |
is_scanned |
sec_res.detection_fields[<N>].key: is_scannedsec_res.detection_fields[<N>].value: valor de is_scanned |
Mapeado diretamente a partir do campo is_scanned. |
local_time |
event.idm.read_only_udm.additional.fields[<N>].key: local_timeevent.idm.read_only_udm.additional.fields[<N>].value.string_value: valor de local_time |
Mapeado diretamente a partir do campo local_time. |
log_type |
event.idm.read_only_udm.metadata.log_type |
Mapeado diretamente a partir do campo log_type. |
loguid |
event.idm.read_only_udm.metadata.product_log_id |
Mapeado diretamente a partir do campo loguid. |
machine_guid |
event.idm.read_only_udm.principal.asset.product_object_id |
Mapeado diretamente a partir do campo machine_guid. |
media_authorized |
event.idm.read_only_udm.additional.fields[<N>].key: media_authorizedevent.idm.read_only_udm.additional.fields[<N>].value.string_value: valor de media_authorized |
Mapeado diretamente a partir do campo media_authorized. |
media_class_id |
event.idm.read_only_udm.additional.fields[<N>].key: media_class_idevent.idm.read_only_udm.additional.fields[<N>].value.string_value: valor de media_class_id |
Mapeado diretamente a partir do campo media_class_id. |
media_description |
event.idm.read_only_udm.additional.fields[<N>].key: media_descriptionevent.idm.read_only_udm.additional.fields[<N>].value.string_value: valor de media_description |
Mapeado diretamente a partir do campo media_description. |
media_encrypted |
event.idm.read_only_udm.additional.fields[<N>].key: media_encryptedevent.idm.read_only_udm.additional.fields[<N>].value.string_value: valor de media_encrypted |
Mapeado diretamente a partir do campo media_encrypted. |
media_manufacturer |
event.idm.read_only_udm.additional.fields[<N>].key: media_manufacturerevent.idm.read_only_udm.additional.fields[<N>].value.string_value: valor de media_manufacturer |
Mapeado diretamente a partir do campo media_manufacturer. |
media_type |
event.idm.read_only_udm.additional.fields[<N>].key: media_typeevent.idm.read_only_udm.additional.fields[<N>].value.string_value: valor de media_type |
Mapeado diretamente a partir do campo media_type. |
msg |
event.idm.read_only_udm.metadata.description |
Mapeado diretamente a partir do campo CEF msg. |
origin |
event.idm.read_only_udm.about.ip |
Mapeado diretamente a partir do campo CEF origin. |
os_name |
event.idm.read_only_udm.additional.fields[<N>].key: os_nameevent.idm.read_only_udm.additional.fields[<N>].value.string_value: valor de os_name |
Mapeado diretamente a partir do campo os_name. |
os_version |
event.idm.read_only_udm.principal.asset.platform_software.platform_version |
Mapeado diretamente a partir do campo os_version. |
policy_date |
event.idm.read_only_udm.additional.fields[<N>].key: policy_dateevent.idm.read_only_udm.additional.fields[<N>].value.string_value: valor de policy_date |
Mapeado diretamente a partir do campo policy_date. |
policy_guid |
event.idm.read_only_udm.principal.resource.product_object_id |
Mapeado diretamente a partir do campo policy_guid. |
policy_name |
event.idm.read_only_udm.principal.resource.name |
Mapeado diretamente a partir do campo policy_name. |
policy_number |
event.idm.read_only_udm.principal.resource.product_object_id |
Mapeado diretamente a partir do campo policy_number. |
policy_type |
event.idm.read_only_udm.additional.fields[<N>].key: policy_typeevent.idm.read_only_udm.additional.fields[<N>].value.string_value: valor de policy_type |
Mapeado diretamente a partir do campo policy_type. |
policy_version |
event.idm.read_only_udm.additional.fields[<N>].key: policy_versionevent.idm.read_only_udm.additional.fields[<N>].value.string_value: valor de policy_version |
Mapeado diretamente a partir do campo policy_version. |
product |
event.idm.read_only_udm.metadata.product_name |
Mapeado diretamente a partir do campo CEF product. |
proto |
event.idm.read_only_udm.network.protocol |
Mapeado diretamente a partir do campo proto quando event_type é Firewall. |
reading_data_access |
event.idm.read_only_udm.additional.fields[<N>].key: reading_data_accessevent.idm.read_only_udm.additional.fields[<N>].value.string_value: valor de reading_data_access |
Mapeado diretamente a partir do campo reading_data_access. |
requestClientApplication |
event.idm.read_only_udm.network.http.user_agent |
Mapeado diretamente a partir do campo requestClientApplication. |
result |
event.idm.read_only_udm.security_result.summary |
Mapeado diretamente a partir do campo result. |
rt |
event.idm.read_only_udm.metadata.event_timestamp.seconds |
Mapeado a partir do campo rt, dividido por 1000, e a parte inteira é considerada como segundos. |
rule_name |
event.idm.read_only_udm.firewall.firewall_rule |
Mapeado diretamente a partir do campo rule_name quando event_type é Firewall. |
s_port |
event.idm.read_only_udm.network.client.port |
Mapeado diretamente a partir do campo s_port quando event_type é Firewall. |
sequencenum |
event.idm.read_only_udm.additional.fields[<N>].key: sequencenumevent.idm.read_only_udm.additional.fields[<N>].value.string_value: valor de sequencenum |
Mapeado diretamente a partir do campo sequencenum. |
service |
event.idm.read_only_udm.network.target.port |
Mapeado diretamente a partir do campo service quando event_type é Firewall. |
severity |
event.idm.read_only_udm.security_result.severity |
Mapeado a partir do campo severity e convertido em valores de gravidade da UDM (CRÍTICO, ALTO, MÉDIO, BAIXO, INFO). |
shost |
event.idm.read_only_udm.principal.hostname |
Mapeado diretamente a partir do campo CEF shost. |
sig_ver |
event.idm.read_only_udm.additional.fields[<N>].key: sig_verevent.idm.read_only_udm.additional.fields[<N>].value.string_value: valor de sig_ver |
Mapeado diretamente a partir do campo sig_ver. |
src |
event.idm.read_only_udm.principal.ip |
Mapeado diretamente a partir do campo CEF src. |
src_machine_name |
event.idm.read_only_udm.principal.hostname |
Mapeado diretamente a partir do campo src_machine_name quando event_type está vazio. |
subject |
event.idm.read_only_udm.task.task_name |
Mapeado diretamente a partir do campo subject quando event_type está vazio. |
suser |
event.idm.read_only_udm.principal.user.user_display_name |
Mapeado diretamente a partir do campo CEF suser. |
time |
event.idm.read_only_udm.metadata.event_timestamp.seconds |
Mapeado diretamente a partir do campo time e convertido em segundos da época Unix. |
user_name |
event.idm.read_only_udm.principal.user.email_addresses |
Mapeado diretamente a partir do campo CEF user_name. |
user_sid |
event.idm.read_only_udm.principal.user.windows_sid |
Mapeado diretamente a partir do campo user_sid. |
version |
event.idm.read_only_udm.additional.fields[<N>].key: versionevent.idm.read_only_udm.additional.fields[<N>].value.string_value: valor de version |
Mapeado diretamente a partir do campo version. |
writing_data_access |
event.idm.read_only_udm.additional.fields[<N>].key: writing_data_accessevent.idm.read_only_udm.additional.fields[<N>].value.string_value: valor de writing_data_access |
Mapeado diretamente a partir do campo writing_data_access. |
| N/A | event.idm.read_only_udm.metadata.event_type |
Definido como GENERIC_EVENT se nenhum de principal.ip, principal.hostname ou principal.mac estiver presente no registo não processado. Caso contrário, é definido como STATUS_UPDATE. |
| N/A | event.idm.read_only_udm.metadata.vendor_name |
Valor constante: Check Point. |
| N/A | event.idm.read_only_udm.metadata.log_type |
Valor constante: CHECKPOINT_EDR. |
| N/A | event.idm.read_only_udm.principal.asset.platform_software.platform |
Defina como WINDOWS se os_name contiver WINDOWS ou Windows. |
| N/A | event.idm.read_only_udm.network.http.user_agent |
Definido como Check Point Endpoint Security Client se requestClientApplication estiver presente. |
| N/A | event.edr.data_source |
Valor constante: CHECKPOINT_SANDBLAST quando message não contém CEF. |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.