Coletar registros do CyberArk Privilege Cloud
Este documento explica como ingerir registros do CyberArk Privilege Cloud no Google Security Operations usando o Bindplane. O código do analisador transforma os registros do formato SYSLOG + KV bruto para o formato do modelo de dados unificado (UDM) do Google SecOps. Primeiro, ele extrai campos de mensagens formatadas em CEF usando padrões grok e análise de chave-valor. Depois, mapeia esses campos e outros para os campos correspondentes da UDM, enriquecendo os dados com valores padronizados para fornecedor, produto e gravidade.
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 CyberArk Privilege Cloud
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
Instale o agente do Bindplane no sistema operacional Windows ou Linux de acordo com as instruções a seguir.
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: tcplog: # Replace the port and IP address as required listen_address: "0.0.0.0:6514" 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: 'CYBERARK_PRIVILEGE_CLOUD' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog 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 em 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
Instalar o Secure Tunnel
- Verifique se o ID da máquina é exclusivo, mesmo quando as máquinas são implantadas em vários domínios.
- Faça o download do pacote de software do Privilege Cloud em Implantar o conector do Privilege Cloud (Standard), copie o arquivo ZIP do Secure Tunnel e descompacte-o.
- Execute a instalação na pasta descompactada.
- Na página Selecionar pasta de instalação, insira o local da pasta de instalação e clique em Avançar.
- Na página Pronto para instalar, clique em Instalar.
- Quando a instalação for concluída, clique em Concluir. A ferramenta de configuração será iniciada.
Configurar o Secure Tunnel
- Na página Autenticar no Privilege Cloud, insira os seguintes detalhes e clique em Próxima:
- Subdomínio ou ID do cliente: o subdomínio é o identificador do sistema no
endereço do sistema, conforme mostrado no FQDN do portal do Privilege Cloud:
https://<subdomain>.Privilegecloud.cyberark.com
. Insira apenas o identificador<subdomain>
, não o URL completo. Se preferir, use o ID do cliente fornecido pela CyberArk. - Nome de usuário e senha: insira as credenciais fornecidas pelo suporte do CyberArk.
- Subdomínio ou ID do cliente: o subdomínio é o identificador do sistema no
endereço do sistema, conforme mostrado no FQDN do portal do Privilege Cloud:
- Na página Configurar componentes locais, adicione os componentes que você quer conectar pelo túnel seguro e clique em Configurar componentes.
- Informe os seguintes detalhes de configuração:
- Tipo de componente: selecione SIEM.
- Endereço do host: insira o endereço do host do agente do Bindplane (o componente SIEM precisa incluir um nome de host).
- Porta de destino: insira o número da porta do agente do Bindplane.
- Porta remota: a porta usada pelo CyberArk para fazer interface com seu túnel seguro. A porta remota é fornecida pelo suporte do CyberArk. Normalmente, a porta é
1468
. - Clique em Avançado para mostrar essa coluna.
- Acesso por túneis seguros: é possível configurar quais túneis seguros seus servidores vão acessar, mesmo que eles estejam sendo executados em uma máquina diferente.
- Clique em Configurar componentes > Fechar.
Tabela de mapeamento da UDM
Campo de registro | Mapeamento do UDM | Lógica |
---|---|---|
age | security_result.action_details | Mapeado diretamente do campo act no registro bruto. |
app | network.application_protocol | Mapeado do campo app no registro bruto e transformado usando a lógica em parse_app_protocol.include . |
cn1 | additional.fields.value.string_value | Mapeado diretamente do campo cn1 no registro bruto. |
cn1Label | additional.fields.key | Mapeado diretamente do campo cn1Label no registro bruto. |
cn2 | additional.fields.value.string_value | Mapeado diretamente do campo cn2 no registro bruto. |
cn2Label | additional.fields.key | Mapeado diretamente do campo cn2Label no registro bruto. |
cs1 | additional.fields.value.string_value | Mapeado diretamente do campo cs1 no registro bruto. |
cs1Label | additional.fields.key | Mapeado diretamente do campo cs1Label no registro bruto. |
cs2 | additional.fields.value.string_value | Mapeado diretamente do campo cs2 no registro bruto. |
cs2Label | additional.fields.key | Mapeado diretamente do campo cs2Label no registro bruto. |
cs3 | additional.fields.value.string_value | Mapeado diretamente do campo cs3 no registro bruto. |
cs3Label | additional.fields.key | Mapeado diretamente do campo cs3Label no registro bruto. |
cs4 | additional.fields.value.string_value | Mapeado diretamente do campo cs4 no registro bruto. |
cs4Label | additional.fields.key | Mapeado diretamente do campo cs4Label no registro bruto. |
cs5 | additional.fields.value.string_value | Mapeado diretamente do campo cs5 no registro bruto. |
cs5Label | additional.fields.key | Mapeado diretamente do campo cs5Label no registro bruto. |
device_event_class_id | metadata.product_event_type | Mapeado diretamente do campo device_event_class_id no registro bruto. |
device_version | metadata.product_version | Mapeado diretamente do campo device_version no registro bruto. |
dhost | target.hostname | Mapeado diretamente do campo dhost no registro bruto. |
duser | target.user.user_display_name | Mapeado diretamente do campo duser no registro bruto. |
dvc | about.ip | Mapeado diretamente do campo dvc no registro bruto. |
event_name | metadata.product_event_type | Mapeado diretamente do campo event_name no registro bruto. |
externalId | metadata.product_log_id | Mapeado diretamente do campo externalId no registro bruto. |
fname | additional.fields.value.string_value | Mapeado diretamente do campo fname no registro bruto. |
msg | metadata.description | Mapeado diretamente do campo msg no registro bruto. |
reason | security_result.summary | Mapeado diretamente do campo reason no registro bruto. |
gravidade, | security_result.severity | Mapeado do campo severity no registro bruto e transformado em "BAIXA", "MÉDIA", "ALTA" ou "CRÍTICA" com base no valor. |
shost | principal.ip | Mapeado diretamente do campo shost no registro bruto. |
suser | principal.user.user_display_name | Mapeado diretamente do campo suser no registro bruto. |
tempo | metadata.event_timestamp.seconds | Mapeado diretamente do campo time no registro bruto após ser analisado e convertido em um carimbo de data/hora. |
metadata.event_type | Defina como "USER_UNCATEGORIZED" se suser estiver presente e duser não estiver. Caso contrário, defina como "GENERIC_EVENT". |
|
metadata.log_type | Defina como "CYBERARK_PRIVILEGE_CLOUD". | |
metadata.product_name | Defina como "CYBERARK_PRIVILEGE_CLOUD". | |
principal.asset.hostname | Valor extraído dos campos shost ou dvc , se eles contiverem um nome de host. |
|
principal.asset.ip | Valor extraído dos campos shost ou dvc , se eles contiverem um endereço IP. |
|
principal.hostname | Valor extraído dos campos shost ou dvc , se eles contiverem um nome de host. |
|
target.asset.hostname | Valor extraído do campo dhost , se ele contiver um nome de host. |
|
additional.fields.key | A chave para campos adicionais é determinada pelo campo de marcador correspondente (por exemplo, cn1Label por cn1 ). |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.