Recolha registos do Akeyless Vault

Compatível com:

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

  1. Inicie sessão na consola Google SecOps.
  2. Aceda a Definições do SIEM > Agentes de recolha.
  3. Transfira o ficheiro de autenticação de carregamento.

Obtenha o ID de cliente do Google SecOps

  1. Inicie sessão na consola Google SecOps.
  2. Aceda a Definições do SIEM > Perfil.
  3. 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

  1. Inicie sessão na IU Web do Akeyless Gateway.
  2. Aceda a Encaminhamento de registos.
  3. Selecione Ativar.
  4. 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.
  5. Clique em Guardar alterações.

Opcional: carregue o Syslog através do Bindplane

Instalação do Bindplane no Windows

  1. Abra a Linha de comandos ou o PowerShell como administrador.
  2. 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

  1. Abra um terminal com privilégios de raiz ou sudo.
  2. 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

  1. 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).
  2. 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
    
  3. Substitua a porta e o endereço IP conforme necessário na sua infraestrutura.

  4. Substitua <customer_id> pelo ID de cliente real.

  5. 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

  1. Inicie sessão na IU Web do Akeyless Gateway.
  2. Aceda a Encaminhamento de registos.
  3. Selecione Ativar.
  4. 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.
  5. 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.