Recolha registos do Akeyless Vault
Este documento explica como carregar registos do Akeyless Vault para o Google Security Operations através do carregamento direto ou do Bindplane. O analisador primeiro normaliza as mensagens de registo, que podem estar no formato de chave-valor ou JSON, numa estrutura consistente. Em seguida, extrai os campos relevantes e mapeia-os para o esquema do modelo de dados unificado (UDM), categorizando o tipo de evento com base na presença de endereços IP e nas ações realizadas.
Antes de começar
Certifique-se de que tem os seguintes pré-requisitos:
- Instância do Google SecOps
- Acesso privilegiado ao Akeyless Vault
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.
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.
Configure o encaminhamento de registos para carregamento direto para o Google SecOps no Akeyless Vault
- Inicie sessão na IU Web do Akeyless Gateway.
- Aceda a Encaminhamento de registos.
- Selecione Ativar.
- Indique os seguintes detalhes de configuração:
- Formato de registo: selecione JSON.
- Servidor de registo de auditoria: introduza
https://audit.akeyless.io/
. - Serviço: selecione Google Chronicle.
- Chave da conta de serviço: faculte o ficheiro JSON que contém as credenciais da conta de serviço.
- ID de cliente: introduza o identificador exclusivo do Google SecOps.
- Região: introduza a região onde o Google SecOps é aprovisionado.
- Tipo de registo: introduza AKEYLESS_VAULT.
- Clique em Guardar alterações.
Opcional: carregue o Syslog através do Bindplane
Instalação do Bindplane no 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 Bindplane no 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: '/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 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 Bindlane 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 encaminhamento de Syslog para o Bindplane no Akeyless Vault
- Inicie sessão na IU Web do Akeyless Gateway.
- Aceda a Encaminhamento de registos.
- Selecione Ativar.
- Indique os seguintes detalhes de configuração:
- Formato de registo: selecione JSON.
- Servidor de registo de auditoria: introduza
https://audit.akeyless.io/
. - Serviço: selecione Syslog.
- Rede Syslog: selecione UDP. (Pode selecionar outra opção, consoante a configuração do agente do Bindplane).
- Anfitrião Syslog: introduza o endereço IP do agente Bindplane.
- Formatador Syslog: selecione Texto.
- (Opcional) TLS: selecione a caixa de verificação TLS e carregue o certificado TLS.
- Clique em Guardar alterações.
Tabela de mapeamento do UDM
Campo de registo | Mapeamento de UDM | Lógica |
---|---|---|
access_id | read_only_udm.metadata.product_log_id | Mapeado diretamente a partir do campo access_id . Se não estiver presente, é extraído do campo message através da regex access_id:\s+(?<accessid>[\w-]+) . |
account_id | read_only_udm.target.user.userid | Mapeado diretamente a partir do campo account_id . |
ação | read_only_udm.security_result.action_details | Mapeado diretamente a partir do campo action . |
componente | read_only_udm.target.resource.name | Mapeado diretamente a partir do campo component . |
duração | read_only_udm.network.session_duration.seconds | Mapeado diretamente a partir 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írgulas e adicionado à matriz principal.ip . |
request_parameters.access_type | read_only_udm.target.resource.attribute.labels.value (onde a chave é "access_type") | Mapeado diretamente a partir do campo request_parameters.access_type . Se não estiver presente, é extraído do campo message através da regex access_type:\s+(?<accesstype>[\S]+) . |
request_parameters.comment | read_only_udm.target.resource.attribute.labels.value (onde a chave é "comment") | Mapeado diretamente a partir do campo request_parameters.comment . |
request_parameters.operation | read_only_udm.target.resource.attribute.labels.value (onde a chave é "operation") | Mapeado diretamente a partir do campo request_parameters.operation . |
request_parameters.product | read_only_udm.target.resource.attribute.labels.value (onde a chave é "product") | Mapeado diretamente a partir do campo request_parameters.product . Se não estiver presente, é extraído do campo message através da regex product:\s+(?<product>[\w\s]+) . |
request_parameters.token_id | read_only_udm.target.resource.attribute.labels.value (onde a chave é "token_id") | Mapeado diretamente a partir do campo request_parameters.token_id . |
request_parameters.transaction_type | read_only_udm.target.resource.attribute.labels.value (onde a chave é "transaction_type") | Mapeado diretamente a partir do campo request_parameters.transaction_type e convertido em string. Se não estiver presente, é extraído do campo message através da regex transaction_type:\s+(?<transactiontype>[\S]+) . |
request_parameters.unique_id | read_only_udm.target.resource.attribute.labels.value (onde a chave é "unique_id") | Mapeado diretamente a partir do campo request_parameters.unique_id . Se não estiver presente, é extraído do campo message através da regex unique_id:\s+(?<uniqueid>[\w-]+) . |
request_parameters.universal_identity_rotate_type | read_only_udm.target.resource.attribute.labels.value (onde a chave é "universal_identity_rotate_type") | Mapeado diretamente a partir do campo request_parameters.universal_identity_rotate_type . |
request_parameters.user_agent | read_only_udm.target.resource.attribute.labels.value (onde a chave é "user_agent") | Mapeado diretamente a partir do campo request_parameters.user_agent . |
gravidade | Mapeado diretamente a partir do campo severity . |
|
estado | read_only_udm.network.http.response_code | Mapeado diretamente a partir do campo status e convertido em número inteiro. |
timestamp | read_only_udm.metadata.event_timestamp | Mapeado diretamente a partir do campo timestamp da entrada do registo. |
read_only_udm.metadata.log_type | Codificado para AKEYLESS_VAULT . |
|
read_only_udm.metadata.event_type | Definido como STATUS_UPDATE se ip_present for verdadeiro. Caso contrário, a predefinição é GENERIC_EVENT . |
|
read_only_udm.metadata.vendor_name | Extraído do campo message através da 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 através da 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 através da 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 através da 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 através da regex namespace:\s+(?<namespace>[\S]+) . |
|
read_only_udm.security_result.severity | Mapeado a partir do campo severity : Info para INFORMATIONAL , Error para ERROR , Warning para MEDIUM , caso contrário, UNKNOWN_SEVERITY . |
|
read_only_udm.network.http.method | Mapeado a partir do campo action : get a GET , put e Authentication a PUT , post a POST , delete a DELETE . |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.