Coletar registros do Akeyless Vault
Este documento explica como ingerir registros do Akeyless Vault no Google Security Operations usando a ingestão direta ou o Bindplane. Primeiro, o analisador normaliza as mensagens de registro, que podem estar no formato de chave-valor ou JSON, em uma estrutura consistente. Em seguida, ele extrai os campos relevantes e os mapeia para o esquema do Modelo de dados unificado (UDM, na sigla em inglês), categorizando o tipo de evento com base na presença de endereços IP e ações realizadas.
Antes de começar
Verifique se você tem os pré-requisitos a seguir:
- Instância do Google SecOps
- Acesso privilegiado ao Akeyless Vault
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.
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.
Configurar o encaminhamento de registros para ingestão direta no Google SecOps no Akeyless Vault
- Faça login na UI da Web do Akeyless Gateway.
- Acesse Encaminhamento de registros.
- Selecione Ativar.
- Informe os seguintes detalhes de configuração:
- Formato do registro: selecione JSON.
- Servidor de registro de auditoria: insira
https://audit.akeyless.io/
. - Serviço: selecione Google Chronicle.
- Chave da conta de serviço: forneça o arquivo JSON com as credenciais da conta de serviço.
- ID de cliente: insira seu identificador exclusivo do Google SecOps.
- Região: insira a região em que o Google SecOps é provisionado.
- Tipo de registro: insira AKEYLESS_VAULT.
- Clique em Salvar alterações.
Opcional: ingerir Syslog pelo Bindplane
Instalação do BindPlane no 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 BindPlane no 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: '/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: 'AKEYLESS_VAULT' 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 Bindlane 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 encaminhamento de Syslog para o Bindplane no Akeyless Vault
- Faça login na UI da Web do Akeyless Gateway.
- Acesse Encaminhamento de registros.
- Selecione Ativar.
- Informe os seguintes detalhes de configuração:
- Formato do registro: selecione JSON.
- Servidor de registro de auditoria: insira
https://audit.akeyless.io/
. - Serviço: selecione Syslog.
- Rede Syslog: selecione UDP. (Você pode selecionar outra opção, dependendo da configuração do agente do Bindplane).
- Host syslog: insira o endereço IP do agente do Bindplane.
- Formatador de syslog: selecione Texto.
- (Opcional) TLS: marque a caixa de seleção TLS e faça upload do certificado TLS.
- Clique em Salvar alterações.
Tabela de mapeamento da UDM
Campo de registro | Mapeamento do UDM | Lógica |
---|---|---|
access_id | read_only_udm.metadata.product_log_id | Mapeado diretamente do campo access_id . Se não estiver presente, será extraído do campo message usando a regex access_id:\s+(?<accessid>[\w-]+) . |
account_id | read_only_udm.target.user.userid | Mapeado diretamente do campo account_id . |
ação | read_only_udm.security_result.action_details | Mapeado diretamente do campo action . |
componente | read_only_udm.target.resource.name | Mapeado diretamente do campo component . |
duration | read_only_udm.network.session_duration.seconds | Mapeado diretamente do campo duration e convertido em número inteiro. |
remote_addr | read_only_udm.principal.ip | Extraído do campo remote_addr , dividido por vírgula e adicionado à matriz principal.ip . |
request_parameters.access_type | read_only_udm.target.resource.attribute.labels.value (em que a chave é "access_type") | Mapeado diretamente do campo request_parameters.access_type . Se não estiver presente, será extraído do campo message usando a regex access_type:\s+(?<accesstype>[\S]+) . |
request_parameters.comment | read_only_udm.target.resource.attribute.labels.value (em que a chave é "comment") | Mapeado diretamente do campo request_parameters.comment . |
request_parameters.operation | read_only_udm.target.resource.attribute.labels.value (em que a chave é "operation") | Mapeado diretamente do campo request_parameters.operation . |
request_parameters.product | read_only_udm.target.resource.attribute.labels.value (em que a chave é "product") | Mapeado diretamente do campo request_parameters.product . Se não estiver presente, será extraído do campo message usando a regex product:\s+(?<product>[\w\s]+) . |
request_parameters.token_id | read_only_udm.target.resource.attribute.labels.value (em que a chave é 'token_id') | Mapeado diretamente do campo request_parameters.token_id . |
request_parameters.transaction_type | read_only_udm.target.resource.attribute.labels.value (em que a chave é "transaction_type") | Mapeado diretamente do campo request_parameters.transaction_type e convertido em string. Se não estiver presente, será extraído do campo message usando a regex transaction_type:\s+(?<transactiontype>[\S]+) . |
request_parameters.unique_id | read_only_udm.target.resource.attribute.labels.value (em que a chave é 'unique_id') | Mapeado diretamente do campo request_parameters.unique_id . Se não estiver presente, será extraído do campo message usando a regex unique_id:\s+(?<uniqueid>[\w-]+) . |
request_parameters.universal_identity_rotate_type | read_only_udm.target.resource.attribute.labels.value (em que a chave é "universal_identity_rotate_type") | Mapeado diretamente do campo request_parameters.universal_identity_rotate_type . |
request_parameters.user_agent | read_only_udm.target.resource.attribute.labels.value (em que a chave é "user_agent") | Mapeado diretamente do campo request_parameters.user_agent . |
gravidade, | Mapeado diretamente do campo severity . |
|
status | read_only_udm.network.http.response_code | Mapeado diretamente do campo status e convertido em número inteiro. |
timestamp | read_only_udm.metadata.event_timestamp | Mapeado diretamente do campo timestamp da entrada de registro. |
read_only_udm.metadata.log_type | Fixado no código como AKEYLESS_VAULT . |
|
read_only_udm.metadata.event_type | Definido como STATUS_UPDATE se ip_present for verdadeiro. Caso contrário, o padrão será GENERIC_EVENT . |
|
read_only_udm.metadata.vendor_name | Extraído do campo message usando a regex CEF:0|%{DATA:device_vendor}|%{DATA:device_product}|%{DATA:device_version}|%{DATA:device_event_class_id}\s+%{WORD}\[%{INT}\]:\s+%{GREEDYDATA:kv_data} . |
|
read_only_udm.metadata.product_name | Extraído do campo message usando a regex CEF:0|%{DATA:device_vendor}|%{DATA:device_product}|%{DATA:device_version}|%{DATA:device_event_class_id}\s+%{WORD}\[%{INT}\]:\s+%{GREEDYDATA:kv_data} . |
|
read_only_udm.metadata.product_version | Extraído do campo message usando a regex CEF:0|%{DATA:device_vendor}|%{DATA:device_product}|%{DATA:device_version}|%{DATA:device_event_class_id}\s+%{WORD}\[%{INT}\]:\s+%{GREEDYDATA:kv_data} . |
|
read_only_udm.metadata.product_event_type | Extraído do campo message usando a regex <%{INT}>%{TIMESTAMP_ISO8601:time}\s+%{DATA}\s+(?P<product_event_type>[\w-]+)\[%{INT}\]:\s+(?P<time2>\d{1,2}-%{MONTH}-\d{1,4}\s+\d{1,2}:\d{1,2}:\d{1,2}.\d+)\s+%{WORD}\s+%{WORD:severity}\s+CEF:0|%{DATA:device_vendor}|%{DATA:device_product}|%{DATA:device_version}|%{DATA:device_event_class_id}\s+%{WORD}\[%{INT}\]:\s+%{GREEDYDATA:kv_data} . |
|
read_only_udm.target.namespace | Extraído do campo message usando a regex namespace:\s+(?<namespace>[\S]+) . |
|
read_only_udm.security_result.severity | Mapeado do campo severity : Info para INFORMATIONAL , Error para ERROR , Warning para MEDIUM , caso contrário, UNKNOWN_SEVERITY . |
|
read_only_udm.network.http.method | Mapeado do campo action : get para GET , put e Authentication para PUT , post para POST , delete para DELETE . |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.