Recolha registos do Check Point Harmony
Este documento explica como carregar registos do Check Point Harmony Email and Collaboration (HEC) para o Google Security Operations através do Bindplane. Este código do analisador
extrai pares de chave-valor de mensagens syslog do Check Point Harmony e mapeia-os
para um modelo de dados unificado (UDM). Primeiro, normaliza o formato da mensagem e, em seguida, analisa e mapeia iterativamente os campos para categorias da UDM, como principal
, target
, network
e security_result
, enriquecendo os dados para análise de segurança.
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 Check Point Harmony HEC (Infinity Portal)
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
Instale o agente do Bindplane no seu sistema operativo Windows ou Linux de acordo com as seguintes instruções.
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 log_type: 'CHECKPOINT_HARMONY' raw_log_field: body ingestion_labels: 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 Bindplane no Windows, pode usar a consola Serviços ou introduzir o seguinte comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configure o Syslog para o Check Point Harmony HEC
- Inicie sessão no Infinity Portal > IU Web do Harmony Email & Collaboration.
- Aceda a Definições > Monitorização > SIEM.
- Clique em Adicionar servidor SIEM.
- Indique os seguintes detalhes de configuração:
- Anfitrião: introduza o endereço IP do agente do Bindplane.
- Porta: introduza o número da porta do agente do Bindplane.
- Protocolo: selecione UDP.
- (Opcional) Token: introduza uma etiqueta opcional nos registos.
- Clique em Guardar.
Tabela de mapeamento do UDM
Campo de registo | Mapeamento de UDM | Lógica |
---|---|---|
ação | security_result.action_details | Mapeado diretamente. |
security_result.action | Mapeado para ALLOW, BLOCK, ALLOW_WITH_MODIFICATION ou QUARANTINE com base no valor do campo de ação. | |
additional_info | additional.fields.value.string_value | Mapeado diretamente com a chave = additional_info . |
analyzed_on | security_result.detection_fields.value | Mapeado diretamente com a chave = analyzed_on . |
client_name | additional.fields.value.string_value | Mapeado diretamente com a chave = client_name . |
client_version | intermediary.platform_version | Mapeado diretamente. |
confidence_level | security_result.detection_fields.value | Mapeado diretamente com a chave = confidence_level . |
security_result.confidence | Mapeado para UNKNOWN_CONFIDENCE, LOW_CONFIDENCE, MEDIUM_CONFIDENCE ou HIGH_CONFIDENCE com base no valor do campo confidence_level. | |
descrição | security_result.description | Mapeado diretamente. |
dst | target.ip | Mapeado diretamente. |
dst_dns_name | security_result.detection_fields.value | Mapeado diretamente com a chave = dst_dns_name . |
dst_machine_name | security_result.detection_fields.value | Mapeado diretamente com a chave = dst_machine_name . |
target.asset.hostname | Mapeado diretamente. | |
target.hostname | Mapeado diretamente. | |
dst_user_dn | security_result.detection_fields.value | Mapeado diretamente com a chave = dst_user_dn . |
dst_user_name | target.user.userid | Mapeado diretamente. |
ep_rule_id | security_result.rule_id | Mapeado diretamente se rule_uid estiver vazio. |
erros | security_result.summary | Mapeado diretamente. |
event_type | metadata.product_event_type | Mapeado diretamente. |
file_md5 | target.process.file.md5 | Mapeado diretamente se o valor for um hash MD5 válido e não for composto apenas por zeros. |
target.file.md5 | Mapeado diretamente se o valor for um hash MD5 válido e não for composto apenas por zeros. | |
file_name | target.process.file.full_path | Mapeado diretamente. |
file_sha1 | target.process.file.sha1 | Mapeado diretamente se o valor for um hash SHA-1 válido e não for composto apenas por zeros. |
target.file.sha1 | Mapeado diretamente se o valor for um hash SHA-1 válido e não for composto apenas por zeros. | |
file_sha256 | target.process.file.sha256 | Mapeado diretamente se o valor for um hash SHA256 válido e não for composto apenas por zeros. |
target.file.sha256 | Mapeado diretamente se o valor for um hash SHA256 válido e não for composto apenas por zeros. | |
file_size | target.file.size | Mapeado diretamente. |
file_type | target.file.file_type | Mapeado para FILE_TYPE_ZIP, FILE_TYPE_DOS_EXE, FILE_TYPE_PDF ou FILE_TYPE_XLSX com base no valor do campo file_type. |
flags | additional.fields.value.string_value | Mapeado diretamente com a chave = flags . |
fw_subproduct | additional.fields.value.string_value | Mapeado diretamente com a chave = fw_subproduct se o produto estiver vazio. |
metadata.product_name | Mapeado diretamente se o produto estiver vazio. | |
host_type | security_result.detection_fields.value | Mapeado diretamente com a chave = host_type . |
ifdir | network.direction | Mapeado diretamente após a conversão para maiúsculas. |
ifname | security_result.detection_fields.value | Mapeado diretamente com a chave = ifname . |
installed_products | security_result.detection_fields.value | Mapeado diretamente com a chave = installed_products . |
is_scanned | security_result.detection_fields.value | Mapeado diretamente com a chave = is_scanned . |
layer_name | security_result.detection_fields.value | Mapeado diretamente com a chave = layer_name . |
security_result.rule_set_display_name | Mapeado diretamente. | |
layer_uuid | security_result.detection_fields.value | Mapeado diretamente com a chave = layer_uuid . |
security_result.rule_set | Mapeado diretamente. | |
loguid | metadata.product_log_id | Mapeado diretamente. |
machine_guid | principal.asset.attribute.labels.value | Mapeado diretamente com a chave = machine_guid . |
malware_action | security_result.detection_fields.value | Mapeado diretamente com a chave = malware_action . |
malware_family | security_result.detection_fields.value | Mapeado diretamente com a chave = malware_family . |
media_authorized | security_result.detection_fields.value | Mapeado diretamente com a chave = media_authorized . |
media_class_id | security_result.detection_fields.value | Mapeado diretamente com a chave = media_class_id . |
media_description | security_result.detection_fields.value | Mapeado diretamente com a chave = media_description . |
media_encrypted | security_result.detection_fields.value | Mapeado diretamente com a chave = media_encrypted . |
media_manufacturer | security_result.detection_fields.value | Mapeado diretamente com a chave = media_manufacturer . |
media_type | security_result.detection_fields.value | Mapeado diretamente com a chave = media_type . |
métodos | security_result.detection_fields.value | Mapeado diretamente com a chave = methods . |
originsicname | security_result.detection_fields.value | Mapeado diretamente com a chave = originsicname . |
origem | intermediary.ip | Mapeado diretamente. |
os_version | principal.asset.platform_software.platform_patch_level | Mapeado diretamente. |
outzone | security_result.detection_fields.value | Mapeado diretamente com a chave = outzone . |
parent_rule | security_result.detection_fields.value | Mapeado diretamente com a chave = parent_rule . |
peer_gateway | intermediary.ip | Mapeado diretamente. |
policy_guid | security_result.detection_fields.value | Mapeado diretamente com a chave = policy_guid . |
policy_name | security_result.detection_fields.value | Mapeado diretamente com a chave = policy_name . |
policy_number | security_result.detection_fields.value | Mapeado diretamente com a chave = policy_number . |
policy_type | security_result.detection_fields.value | Mapeado diretamente com a chave = policy_type . |
produto | additional.fields.value.string_value | Mapeado diretamente com a chave = product . |
metadata.product_name | Mapeado diretamente. | |
product_family | additional.fields.value.string_value | Mapeado diretamente com a chave = product_family . |
program_name | additional.fields.value.string_value | Mapeado diretamente com a chave = program_name . |
protection_name | security_result.detection_fields.value | Mapeado diretamente com a chave = protection_name . |
protection_type | security_result.detection_fields.value | Mapeado diretamente com a chave = protection_type . |
reading_data_access | security_result.detection_fields.value | Mapeado diretamente com a chave = reading_data_access . |
rule_action | security_result.detection_fields.value | Mapeado diretamente com a chave = rule_action . |
rule_name | security_result.rule_name | Mapeado diretamente. |
rule_uid | security_result.rule_id | Mapeado diretamente se ep_rule_id estiver vazio. |
s_port | principal.port | Mapeado diretamente. |
esquema | security_result.detection_fields.value | Mapeado diretamente com a chave = scheme . |
sequencenum | additional.fields.value.string_value | Mapeado diretamente com a chave = sequencenum . |
serviço | target.port | Mapeado diretamente. |
service_id | security_result.detection_fields.value | Mapeado diretamente com a chave = service_id . |
session_uid | network.session_id | Mapeado diretamente. |
src | principal.ip | Mapeado diretamente. |
src_dns_name | security_result.detection_fields.value | Mapeado diretamente com a chave = src_dns_name . |
src_machine_name | security_result.detection_fields.value | Mapeado diretamente com a chave = src_machine_name . |
principal.asset.hostname | Mapeado diretamente. | |
principal.hostname | Mapeado diretamente. | |
src_user_dn | security_result.detection_fields.value | Mapeado diretamente com a chave = src_user_dn . |
src_user_name | principal.user.userid | Mapeado diretamente. |
principal.user.email_addresses | O endereço de email é extraído do campo src_user_name, se existir e estiver no formato userid (email) . |
|
te_verdict_determined_by | security_result.detection_fields.value | Mapeado diretamente com a chave = te_verdict_determined_by . |
timestamp | metadata.event_timestamp | Mapeado diretamente. |
trusted_domain | security_result.detection_fields.value | Mapeado diretamente com a chave = trusted_domain . |
utilizador | principal.user.userid | Mapeado diretamente se src_user_name estiver vazio. |
principal.user.email_addresses | O endereço de email é extraído do campo do utilizador, se existir e estiver no formato userid (email) . |
|
user_name | principal.user.email_addresses | Mapeado diretamente se o valor for um endereço de email válido. |
user_sid | principal.user.windows_sid | Mapeado diretamente. |
veredicto | security_result.detection_fields.value | Mapeado diretamente com a chave = verdict . |
versão | additional.fields.value.string_value | Mapeado diretamente com a chave = version . |
vpn_feature_name | security_result.detection_fields.value | Mapeado diretamente com a chave = vpn_feature_name . |
web_client_type | security_result.detection_fields.value | Mapeado diretamente com a chave = web_client_type . |
metadata.log_type | Este campo está codificado como CHECKPOINT_HARMONY . |
|
metadata.vendor_name | Este campo está codificado como CHECKPOINT_HARMONY . |
|
principal.asset.platform_software.platform | Mapeado para WINDOWS, MAC ou LINUX com base no valor do campo os_name. | |
network.ip_protocol | Mapeado para TCP, UDP, ICMP, IP6IN4 ou GRE com base no valor do campo proto e noutros campos, como service e service_id. | |
security_result.severity | Mapeado para BAIXO, MÉDIO, ELEVADO ou CRÍTICO com base no valor do campo de gravidade. | |
metadata.event_type | Este campo está definido como NETWORK_CONNECTION se o principal e o destino estiverem presentes, STATUS_UNCATEGORIZED se apenas o principal estiver presente e GENERIC_EVENT caso contrário. |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.