Raccogli i log di Akeyless Vault

Supportato in:

Questo documento spiega come importare i log di Akeyless Vault in Google Security Operations utilizzando l'importazione diretta o Bindplane. Innanzitutto, il parser normalizza i messaggi di log, che possono essere in formato chiave-valore o JSON, in una struttura coerente. Estrae quindi i campi pertinenti e li mappa allo schema Unified Data Model (UDM), classificando il tipo di evento in base alla presenza di indirizzi IP e azioni eseguite.

Prima di iniziare

Assicurati di disporre dei seguenti prerequisiti:

  • Istanza Google SecOps
  • Accesso con privilegi ad Akeyless Vault

Recupera il file di autenticazione di importazione di Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Agenti di raccolta.
  3. Scarica il file di autenticazione dell'importazione.

Ottenere l'ID cliente Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Profilo.
  3. Copia e salva l'ID cliente dalla sezione Dettagli dell'organizzazione.

Configurare l'inoltro dei log per l'importazione diretta in Google SecOps in Akeyless Vault

  1. Accedi all'interfaccia utente web di Akeyless Gateway.
  2. Vai a Inoltro log.
  3. Seleziona Attiva.
  4. Fornisci i seguenti dettagli di configurazione:
    • Formato log: seleziona JSON.
    • Server di log di controllo: inserisci https://audit.akeyless.io/.
    • Servizio: seleziona Google Chronicle.
    • Chiave dell'account di servizio: fornisci il file JSON contenente le credenziali dell'account di servizio.
    • ID cliente: inserisci il tuo identificatore univoco di Google SecOps.
    • Regione: inserisci la regione in cui è stato eseguito il provisioning di Google SecOps.
    • Tipo di log: inserisci AKEYLESS_VAULT.
  5. Fai clic su Salva modifiche.

(Facoltativo) Importa Syslog tramite Bindplane

Installazione di Bindplane per Windows

  1. Apri il prompt dei comandi o PowerShell come amministratore.
  2. Esegui questo comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Installazione di Bindplane su Linux

  1. Apri un terminale con privilegi di root o sudo.
  2. Esegui questo comando:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

Risorse di installazione aggiuntive

Per altre opzioni di installazione, consulta la guida all'installazione.

Configura l'agente Bindplane per importare i syslog e inviarli a Google SecOps

  1. Accedi al file di configurazione:
    • Individua il file config.yaml. In genere si trova nella directory /etc/bindplane-agent/ su Linux o nella directory di installazione su Windows.
    • Apri il file utilizzando un editor di testo (ad esempio nano, vi o Blocco note).
  2. Modifica il file config.yaml come segue:

    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. Sostituisci la porta e l'indirizzo IP come richiesto nella tua infrastruttura.

  4. Sostituisci <customer_id> con l'ID cliente effettivo.

  5. Aggiorna /path/to/ingestion-authentication-file.json con il percorso in cui è stato salvato il file di autenticazione nella sezione Ottenere il file di autenticazione per l'importazione di Google SecOps.

Riavvia l'agente Bindlane per applicare le modifiche

  • Per riavviare l'agente Bindplane in Linux, esegui il seguente comando:

    sudo systemctl restart bindplane-agent
    
  • Per riavviare l'agente Bindplane in Windows, puoi utilizzare la console Servizi o inserire il seguente comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configurare l'inoltro di Syslog a Bindplane in Akeyless Vault

  1. Accedi all'interfaccia utente web di Akeyless Gateway.
  2. Vai a Inoltro log.
  3. Seleziona Attiva.
  4. Fornisci i seguenti dettagli di configurazione:
    • Formato log: seleziona JSON.
    • Server di log di controllo: inserisci https://audit.akeyless.io/.
    • Servizio: seleziona Syslog.
    • Rete Syslog: seleziona UDP. (puoi selezionare un'altra opzione, a seconda della configurazione dell'agente Bindplane).
    • Host syslog: inserisci l'indirizzo IP dell'agente Bindplane.
    • Formattatore syslog: seleziona Testo.
    • (Facoltativo) TLS: seleziona la casella di controllo TLS e carica il certificato TLS.
  5. Fai clic su Salva modifiche.

Tabella di mappatura UDM

Campo log Mappatura UDM Logica
access_id read_only_udm.metadata.product_log_id Mappato direttamente dal campo access_id. Se non presente, viene estratto dal campo message utilizzando la regex access_id:\s+(?<accessid>[\w-]+).
account_id read_only_udm.target.user.userid Mappato direttamente dal campo account_id.
azione read_only_udm.security_result.action_details Mappato direttamente dal campo action.
componente read_only_udm.target.resource.name Mappato direttamente dal campo component.
duration read_only_udm.network.session_duration.seconds Mappato direttamente dal campo duration e convertito in numero intero.
remote_addr read_only_udm.principal.ip Estratte dal campo remote_addr, suddivise da virgola e aggiunte all'array principal.ip.
request_parameters.access_type read_only_udm.target.resource.attribute.labels.value (dove la chiave è "access_type") Mappato direttamente dal campo request_parameters.access_type. Se non presente, viene estratto dal campo message utilizzando la regex access_type:\s+(?<accesstype>[\S]+).
request_parameters.comment read_only_udm.target.resource.attribute.labels.value (dove la chiave è "comment") Mappato direttamente dal campo request_parameters.comment.
request_parameters.operation read_only_udm.target.resource.attribute.labels.value (dove la chiave è "operation") Mappato direttamente dal campo request_parameters.operation.
request_parameters.product read_only_udm.target.resource.attribute.labels.value (dove la chiave è "product") Mappato direttamente dal campo request_parameters.product. Se non presente, viene estratto dal campo message utilizzando la regex product:\s+(?<product>[\w\s]+).
request_parameters.token_id read_only_udm.target.resource.attribute.labels.value (dove la chiave è "token_id") Mappato direttamente dal campo request_parameters.token_id.
request_parameters.transaction_type read_only_udm.target.resource.attribute.labels.value (dove la chiave è "transaction_type") Mappato direttamente dal campo request_parameters.transaction_type e convertito in stringa. Se non presente, viene estratto dal campo message utilizzando la regex transaction_type:\s+(?<transactiontype>[\S]+).
request_parameters.unique_id read_only_udm.target.resource.attribute.labels.value (dove la chiave è "unique_id") Mappato direttamente dal campo request_parameters.unique_id. Se non presente, viene estratto dal campo message utilizzando la regex unique_id:\s+(?<uniqueid>[\w-]+).
request_parameters.universal_identity_rotate_type read_only_udm.target.resource.attribute.labels.value (dove la chiave è "universal_identity_rotate_type") Mappato direttamente dal campo request_parameters.universal_identity_rotate_type.
request_parameters.user_agent read_only_udm.target.resource.attribute.labels.value (dove la chiave è "user_agent") Mappato direttamente dal campo request_parameters.user_agent.
gravità Mappato direttamente dal campo severity.
stato read_only_udm.network.http.response_code Mappato direttamente dal campo status e convertito in numero intero.
timestamp read_only_udm.metadata.event_timestamp Mappato direttamente dal campo timestamp della voce di log.
read_only_udm.metadata.log_type Hardcoded a AKEYLESS_VAULT.
read_only_udm.metadata.event_type Imposta STATUS_UPDATE se ip_present è true, altrimenti il valore predefinito è GENERIC_EVENT.
read_only_udm.metadata.vendor_name Estratto dal campo message utilizzando la 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 Estratto dal campo message utilizzando la 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 Estratto dal campo message utilizzando la 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 Estratto dal campo message utilizzando la 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 Estratto dal campo message utilizzando la regex namespace:\s+(?<namespace>[\S]+).
read_only_udm.security_result.severity Mappatura dal campo severity: Info a INFORMATIONAL, Error a ERROR, Warning a MEDIUM, altrimenti UNKNOWN_SEVERITY.
read_only_udm.network.http.method Mappatura dal campo action: get a GET, put e Authentication a PUT, post a POST, delete a DELETE.

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.