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,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: 'AKEYLESS_VAULT' 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 Bindlane 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 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.