Raccogli i log di Akeyless Vault

Versione parser: 2.0

Supportato in:

Questo documento spiega come importare i log di Akeyless Vault in Google Security Operations utilizzando Bindplane.

Akeyless Vault è una piattaforma di gestione dei secret cloud-native che fornisce un accesso centralizzato a credenziali, certificati e chiavi di crittografia. Utilizza una tecnologia brevettata di crittografia dei frammenti distribuiti (DFC) che garantisce che i secret non vengano mai archiviati in un'unica posizione, fornendo una sicurezza zero-knowledge in ambienti ibridi e multi-cloud.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Un'istanza Google SecOps
  • Windows Server 2016 o versioni successive oppure host Linux con systemd
  • Connettività di rete tra l'agente Bindplane e il gateway Akeyless
  • Se l'esecuzione avviene dietro un proxy, assicurati che le porte del firewall siano aperte in base ai requisiti dell'agente Bindplane
  • Accesso privilegiato all'interfaccia utente web di Akeyless Gateway con autorizzazioni di amministratore

Ottieni le credenziali di Google SecOps per l'agente Bindplane

Per autenticare l'agente Bindplane in Google SecOps, scegli uno dei seguenti metodi:

  • Nuovi deployment: utilizza l'API Chronicle (opzione 1).
  • Deployment legacy: continua a utilizzare il file di autenticazione dell'acquisizione (Opzione 2) fino alla dismissione dell'API Ingestion il 20 luglio 2027.
  1. Accedi alla Google Cloud console e seleziona il progetto Google Cloud collegato alla tua istanza Google SecOps.
  2. Vai a IAM e amministrazione > Service account.
  3. Fai clic su Crea service account.
  4. Fornisci i seguenti dettagli di configurazione:
    • Nome service account: inserisci un nome per l'account (ad esempio bindplane-ingest).
    • Descrizione service account: inserisci una descrizione (ad esempio Bindplane agent log ingestion).
  5. Fai clic su Crea e continua.
  6. Nella sezione Concedi a questo account di servizio l'accesso al progetto, fai clic su Seleziona un ruolo e seleziona Chronicle Editor.
  7. Fai clic su Continua, quindi su Fine.
  8. Fai clic sul account di servizio che hai creato, quindi vai alla scheda Chiavi.
  9. Fai clic su Aggiungi chiave > Crea nuova chiave.
  10. Seleziona JSON e fai clic su Crea. Il file della chiave viene scaricato sul tuo computer.
  11. Salva il file della chiave come ingestion-auth.json nella directory del raccoglitore Bindplane (/opt/observiq-otel-collector/ingestion-auth.json su Linux o C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json su Windows) oppure aggiorna creds_file_path in config.yaml in modo che corrisponda al percorso in cui lo salvi.
  12. Vai a IAM e amministrazione > Impostazioni e copia il Numero progetto. Ti servirà per la configurazione dell'esportatore.

Opzione 2: scarica il file di autenticazione dell'acquisizione (legacy)

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Agenti di raccolta.
  3. Scarica il file di autenticazione dell'acquisizione.
  4. Salva il file in modo sicuro sul sistema in cui verrà installato l'agente Bindplane.

Ottieni 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 organizzazione.

Installa l'agente Bindplane

Installa l'agente Bindplane sul tuo sistema operativo Windows o Linux seguendo le istruzioni riportate di seguito.

Installazione di finestre

  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
    
  3. Attendi il completamento dell'installazione.

  4. Verifica l'installazione eseguendo:

    sc query observiq-otel-collector
    

Il servizio dovrebbe essere visualizzato come RUNNING.

Installazione di Linux

  1. Apri un terminale con privilegi 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
    
  3. Attendi il completamento dell'installazione.

  4. Verifica l'installazione eseguendo:

    sudo systemctl status observiq-otel-collector
    

Il servizio dovrebbe essere visualizzato come attivo (in esecuzione).

Risorse aggiuntive per l'installazione

Per ulteriori opzioni di installazione e risoluzione dei problemi, consulta la guida all'installazione dell'agente Bindplane.

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

Individua il file di configurazione

  • Linux:

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Modifica il file di configurazione

  • Sostituisci l'intero contenuto di config.yaml con la seguente configurazione:

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/akeyless_vault:
        protocol: https
        # Region of your instance, for example us, europe, asia-southeast1
        location: <LOCATION>
        # Project number of the Google Cloud project linked to the instance
        project: '<PROJECT_NUMBER>'
        compression: gzip
        creds_file_path: '<PLACEHOLDER_CREDS_FILE_PATH>'
        customer_id: '<PLACEHOLDER_CUSTOMER_ID>'
        endpoint: chronicle.googleapis.com
        log_type: AKEYLESS_VAULT
        raw_log_field: body
        ingestion_labels:
          env: production
    
    service:
      pipelines:
        logs/akeyless_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/akeyless_vault
    

Parametri di configurazione

Sostituisci i seguenti segnaposto:

  • Configurazione del destinatario:

    • udplog: Ricevitore syslog UDP per l'inoltro dei log di Akeyless Gateway
    • 0.0.0.0:514: l'indirizzo IP e la porta su cui ascoltare. Sostituisci la porta come richiesto dalla tua infrastruttura
  • Configurazione dell'esportatore:

    • <PLACEHOLDER_CREDS_FILE_PATH>: percorso completo del file della chiave JSON del account di servizio (opzione 1):
      • Linux: /opt/observiq-otel-collector/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • <PLACEHOLDER_CUSTOMER_ID>: ID cliente Google SecOps
    • location: sostituisci <LOCATION> con la regione della tua istanza Google SecOps (ad esempio us, europe o asia-southeast1). L'esportatore antepone chronicle.googleapis.com a questo valore. Per l'elenco completo, consulta Endpoint regionali.
    • project: sostituisci <PROJECT_NUMBER> con il numero di progetto da IAM e amministrazione > Impostazioni.
    • endpoint: mantieni l'impostazione su chronicle.googleapis.com.

Esportatore API di importazione legacy

  • Se utilizzi il file di autenticazione dell'acquisizione dell'Opzione 2, sostituisci il blocco exporters con il seguente. Imposta creds_file_path sul percorso del file di autenticazione dell'importazione e, se la tua istanza si trova al di fuori degli Stati Uniti, sostituisci malachiteingestion-pa.googleapis.com con l'endpoint regionale (ad esempio, europe-malachiteingestion-pa.googleapis.com).

    exporters:
      chronicle/akeyless_vault:
        compression: gzip
        creds_file_path: '<PLACEHOLDER_CREDS_FILE_PATH>'
        customer_id: '<PLACEHOLDER_CUSTOMER_ID>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: AKEYLESS_VAULT
        raw_log_field: body
        ingestion_labels:
          env: production
    

Salva il file di configurazione

  • Dopo la modifica, salva il file:
    • Linux: premi Ctrl+O, poi Enter e infine Ctrl+X
    • Windows: fai clic su File > Salva.

Riavvia l'agente Bindplane per applicare le modifiche

Per riavviare l'agente Bindplane in Linux:

  1. Esegui questo comando:

    sudo systemctl restart observiq-otel-collector
    
  2. Verifica che il servizio sia in esecuzione:

    sudo systemctl status observiq-otel-collector
    
  3. Controlla i log per individuare eventuali errori:

    sudo journalctl -u observiq-otel-collector -f
    

Per riavviare l'agente Bindplane in Windows:

  1. Scegli una delle seguenti opzioni:

    • Prompt dei comandi o PowerShell come amministratore:
    net stop observiq-otel-collector && net start observiq-otel-collector
    
    • Console dei servizi:
      1. Premi Win+R, digita services.msc e premi Invio.
      2. Individua observIQ OpenTelemetry Collector.
      3. Fai clic con il tasto destro del mouse e seleziona Riavvia.
  2. Verifica che il servizio sia in esecuzione:

    sc query observiq-otel-collector
    
  3. Controlla i log per individuare eventuali errori:

    type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
    

Configura l'inoltro di syslog in Akeyless Vault

  1. Accedi all'interfaccia utente web di Akeyless Gateway.
  2. Vai a Inoltro dei log.
  3. Seleziona la casella di controllo Attiva.
  4. Scegli il formato dei log: seleziona JSON.
  5. Nel campo Audit Log Server (Server audit log), inserisci https://audit.akeyless.io/.
  6. Nell'elenco a discesa Servizio di log, seleziona Syslog.
  7. Fornisci i seguenti dettagli di configurazione:
    • Syslog Network: seleziona il protocollo di rete utilizzato dall'agente Bindplane (ad esempio UDP).
    • Host Syslog: inserisci il nome host o l'indirizzo IP dell'host dell'agente Bindplane (ad esempio, 192.168.1.100:514).
    • Tag Syslog: (facoltativo) inserisci il tag per gli audit log. Il valore predefinito è audit-export.
    • Syslog Formatter (Formattatore Syslog): seleziona Text (Testo) o CEF.
    • TLS: (facoltativo) seleziona la casella di controllo TLS e carica il certificato TLS del tuo server di log se è richiesta la crittografia TLS.
  8. Fai clic su Salva modifiche.

Tabella di mappatura UDM

Campo log Mappatura UDM Logica
access_id metadata.product_log_id Mappato direttamente dal campo access_id. Se non è presente, viene estratto dal campo del messaggio utilizzando le espressioni regolari.
account_id target.user.userid Mappato direttamente dal campo account_id.
action security_result.action_details Mappato direttamente dal campo action.
component target.resource.name Mappato direttamente dal campo component.
duration network.session_duration.seconds Mappato direttamente dal campo duration e convertito in numero intero.
remote_addr principal.ip Estratto dal campo remote_addr, diviso da una virgola e aggiunto all'array principal.ip.
request_parameters.access_type target.resource.attribute.labels (chiave: access_type) Mappato direttamente dal campo request_parameters.access_type. Se non è presente, viene estratto dal campo del messaggio utilizzando le espressioni regolari.
request_parameters.comment target.resource.attribute.labels (chiave: comment) Mappato direttamente dal campo request_parameters.comment.
request_parameters.operation target.resource.attribute.labels (chiave: operation) Mappato direttamente dal campo request_parameters.operation.
request_parameters.product target.resource.attribute.labels (chiave: product) Mappato direttamente dal campo request_parameters.product. Se non è presente, viene estratto dal campo del messaggio utilizzando l'espressione regolare.
request_parameters.token_id target.resource.attribute.labels (chiave: token_id) Mappato direttamente dal campo request_parameters.token_id.
request_parameters.transaction_type target.resource.attribute.labels (chiave: transaction_type) Mappato direttamente dal campo request_parameters.transaction_type e convertito in stringa. Se non è presente, viene estratto dal campo del messaggio utilizzando l'espressione regolare.
request_parameters.unique_id target.resource.attribute.labels (chiave: unique_id) Mappato direttamente dal campo request_parameters.unique_id. Se non è presente, viene estratto dal campo del messaggio utilizzando le espressioni regolari.
request_parameters.universal_identity_rotate_type target.resource.attribute.labels (chiave: universal_identity_rotate_type) Mappato direttamente dal campo request_parameters.universal_identity_rotate_type.
request_parameters.user_agent target.resource.attribute.labels (chiave: user_agent) Mappato direttamente dal campo request_parameters.user_agent.
severity security_result.severity Mappatura dal campo severity: Info a INFORMATIONAL, Error a ERROR, Warning a MEDIUM, altrimenti UNKNOWN_SEVERITY.
status network.http.response_code Mappato direttamente dal campo status e convertito in numero intero.
timestamp metadata.event_timestamp Mappato direttamente dal campo timestamp della voce di log.
N/D metadata.log_type Impostato come hardcoded su AKEYLESS_VAULT.
N/D metadata.event_type Impostato su STATUS_UPDATE se l'IP è presente, altrimenti il valore predefinito è GENERIC_EVENT.
N/D metadata.vendor_name Estratto dal campo del messaggio utilizzando il pattern regex CEF.
N/D metadata.product_name Estratto dal campo del messaggio utilizzando il pattern regex CEF.
N/D metadata.product_version Estratto dal campo del messaggio utilizzando il pattern regex CEF.
N/D metadata.product_event_type Estratto dal campo del messaggio utilizzando il pattern regex dell'intestazione syslog.
N/D target.namespace Estratto dal campo del messaggio utilizzando le espressioni regolari.
action network.http.method Mappatura dal campo action: get a GET, put e Authentication a PUT, post a POST, delete a DELETE.
remote_addr event.idm.read_only_udm.intermediary.ip Mappato dal log delle modifiche
syslog_hostname event.idm.read_only_udm.observer.hostname Mappato dal log delle modifiche
process_name event.idm.read_only_udm.observer.application Mappato dal log delle modifiche
pid event.idm.read_only_udm.observer.process.pid Mappato dal log delle modifiche
severity event.idm.read_only_udm.security_result.severity Mappato dal log delle modifiche
request_parameters.unique_id event.idm.read_only_udm.principal.user.email_addresses Mappato dal log delle modifiche
item_type event.idm.read_only_udm.target.resource.resource_subtype Mappato dal log delle modifiche
request_parameters.session_id event.idm.read_only_udm.network.session_id Mappato dal log delle modifiche
duration_in_ms event.idm.read_only_udm.target.resource.attribute.labels Mappato dal log delle modifiche
request_parameters.source event.idm.read_only_udm.target.resource.attribute.labels Mappato dal log delle modifiche
request_parameters.item_accessibility event.idm.read_only_udm.target.resource.attribute.labels Mappato dal log delle modifiche
remote_addr array principal.ip Mappato dal log delle modifiche

Log delle modifiche

Visualizza il log delle modifiche per questo parser

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