Raccogliere i log di Imperva Data Risk Analytics (DRA)

Supportata in:

Questo documento spiega come importare i log di Imperva DRA in Google Security Operations utilizzando l'agente Bindplane.

Il parser estrae i campi dai log formattati di syslog di Imperva Analisi dei Rischi dei Dati. Utilizza grok e/o kv per analizzare il messaggio di log e poi mappa questi valori al modello UDM (Unified Data Model). Imposta anche i valori predefiniti dei metadati per l'origine e il tipo di evento. Imperva DRA aiuta a scoprire attività di dati sospette e a dare la priorità agli incidenti critici tra miliardi di eventi di controllo.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Un'istanza Google SecOps
  • Un host Windows 2016 o versioni successive o Linux con systemd
  • Se l'agente viene eseguito dietro un proxy, assicurati che le porte del firewall siano aperte in base ai requisiti dell'agente Bindplane.
  • Accesso con privilegi alla console di gestione di Imperva DRA

Recupera le credenziali 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 Editor Chronicle.
  7. Fai clic su Continua e poi 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) o 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 di 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 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
    

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
    

Risorse aggiuntive per l'installazione

Per ulteriori opzioni di installazione, consulta la guida all'installazione dell'agente Bindplane.

Configura l'agente Bindplane per importare Syslog e inviarlo a Google SecOps

  1. Accedi al file di configurazione:

    • Individua il file config.yaml. In genere, si trova nella directory /opt/observiq-otel-collector/ 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:
        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
        # Adjust the path to the credentials file you downloaded in Step 1
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        # Replace with your actual customer ID from Step 2
        customer_id: <CUSTOMER_ID>
        endpoint: chronicle.googleapis.com
        # Add optional ingestion labels for better organization
        log_type: 'IMPERVA_DRA'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/source0__chronicle_w_labels-0:
          receivers:
            - udplog
          exporters:
            - chronicle/chronicle_w_labels
    
    • Sostituisci la porta e l'indirizzo IP come richiesto nella tua infrastruttura.
    • 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.
    • Sostituisci <PROJECT_NUMBER> con il numero di progetto in IAM e amministrazione > Impostazioni.
    • Sostituisci <CUSTOMER_ID> con l'ID cliente effettivo.
    • Aggiorna /path/to/ingestion-authentication-file.json con il percorso del file in cui è stato salvato il file della chiave del account di servizio (Opzione 1) nel Passaggio 1.

Esportatore dell'API di importazione precedente

  • 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/chronicle_w_labels:
        compression: gzip
        # Adjust the path to the credentials file you downloaded in Step 1
        creds_file_path: '/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
        log_type: 'IMPERVA_DRA'
        raw_log_field: body
        ingestion_labels:
    

Riavvia l'agente Bindplane per applicare le modifiche

  1. Per riavviare l'agente Bindplane in Linux, esegui questo comando:

    sudo systemctl restart observiq-otel-collector
    
  2. Per riavviare l'agente Bindplane in Windows, puoi utilizzare la console Servizi o inserire il seguente comando:

    net stop observiq-otel-collector && net start observiq-otel-collector
    

Configura l'inoltro di Syslog su Imperva DRA

  1. Accedi alla console di gestione di Imperva DRA.
  2. Vai a Configuration (Configurazione) > SIEM Integration (Integrazione SIEM).
  3. Nella sezione Syslog Server, fornisci i seguenti dettagli di configurazione:

    • IP server: inserisci l'indirizzo IP dell'agente Bindplane.
    • Porta: inserisci il numero di porta dell'agente Bindplane (il valore predefinito è 514).
    • Protocollo: seleziona UDP o TCP, a seconda della configurazione dell'agente Bindplane.
    • Struttura: seleziona la struttura syslog appropriata (ad esempio, LOCAL0).
  4. Fai clic su Invia messaggio syslog di prova per verificare la connettività.

  5. Nella sezione Eventi da inviare, configura:

    • Classi di eventi: seleziona Rilevamento violazioni e/o Riduzione del rischio in base ai requisiti.
    • Tipi di notifiche: scegli le azioni di apertura/chiusura/riapertura degli incidenti e i relativi livelli di gravità.
    • Formato messaggio: seleziona JSON per il formato dei dati strutturati o Non elaborato per il formato syslog di base.
  6. Configura Soglia di gravità per determinare quali livelli di gravità devono essere inoltrati.

  7. Salva la configurazione.

Tabella di mappatura UDM

Campo log Mappatura UDM Logica
category_label additional.fields Unita
clusterMemberNames_label additional.fields Unita
clusterNames_label additional.fields Unita
clusterNames_list additional.fields Unita
dbName_list additional.fields Unita
dbUser_list additional.fields Unita
destHostname_list additional.fields Unita
dstips_label additional.fields Unita
fileExtension_list additional.fields Unita
folder_list additional.fields Unita
numOfAccessedObjects_label additional.fields Unita
severity additional.fields Mappato: (?i)test-severity → severity_label
severity_label additional.fields Unita
sourceApps_list additional.fields Unita
srcApp_list additional.fields Unita
srcHostname_list additional.fields Unita
srcUser_list additional.fields Unita
suspiciousCommand_list additional.fields Unita
tableName_list additional.fields Unita
userAction_label additional.fields Unita
hostname intermediary.hostname Mappata direttamente
msg metadata.description Mappato direttamente
event_timestamp metadata.event_timestamp Analizzato come MMM dd HH:mm:ss
firstIncidentTime metadata.event_timestamp Analizzato come UNIX_MS
lastIncidentTime metadata.event_timestamp Analizzato come UNIX_MS
securityEventTimestamp metadata.event_timestamp Analizzato come UNIX
has_principal metadata.event_type Mappatura: true → RESOURCE_CREATION, true → USER_UNCATEGORIZED, true → `NETWORK_CONNE…
type metadata.product_event_type Mappato direttamente
data.id metadata.product_log_id Mappata direttamente
id metadata.product_log_id Mappata direttamente
sapp principal.application Mappata direttamente
sourceApps principal.application Mappata direttamente
srcApp principal.application Mappata direttamente
shost principal.asset.hostname Mappata direttamente
srcHosts principal.asset.hostname Mappata direttamente
pri_ip principal.asset.ip Unita
src principal.asset.ip Unita
srcIp principal.asset.ip Unita
src_ip principal.asset.ip Unita
src_ips principal.asset.ip Unita
shost principal.hostname Mappata direttamente
srcHosts principal.hostname Mappata direttamente
pri_ip principal.ip Unita
src principal.ip Unita
srcIp principal.ip Unita
src_ip principal.ip Unita
src_ips principal.ip Unita
editUser principal.user.userid Mappata direttamente
srcUser principal.user.userid Mappata direttamente
srcUsers principal.user.userid Mappata direttamente
suser principal.user.userid Mappata direttamente
server_sec_res security_result Unita
user_sec_res security_result Unita
actionType security_result.action_details Mappata direttamente
data.ruleComment security_result.description Mappata direttamente
msg security_result.description Mappata direttamente
act_label security_result.detection_fields Unita
action_label security_result.detection_fields Unita
cat_label security_result.detection_fields Unita
dateEdited_label security_result.detection_fields Unita
firstIncidentTime_label security_result.detection_fields Unita
incidents_label security_result.detection_fields Unita
lastIncidentTime_label security_result.detection_fields Unita
num_of_Incidents_label security_result.detection_fields Unita
data.ruleName security_result.rule_name Mappata direttamente
severity security_result.severity Valori mappati (5 in totale, ad es. (?i)Low → LOW, (?i)Medium → MEDIUM, (?i)High → HIGH)
severityScore security_result.severity_details Rinominato/mappato
srcHost src.asset.hostname Mappato direttamente
srcHost src.asset.ip Mappato: ^(?:[0-9]{1,3}[.]){3}[0-9]{1,3}$ → srcHost
srcHost src.hostname Mappata direttamente
srcHost src.ip Mappato: ^(?:[0-9]{1,3}[.]){3}[0-9]{1,3}$ → srcHost
dhost target.asset.hostname Mappata direttamente
dstHost target.asset.hostname Mappata direttamente
dstHosts target.asset.hostname Mappata direttamente
dest_ip target.asset.ip Unita
dst target.asset.ip Mappato: ^(?:[0-9]{1,3}[.]){3}[0-9]{1,3}$ → dst
dst_ip target.asset.ip Unita
dst_ips target.asset.ip Unita
tar_ip target.asset.ip Unita
dhost target.hostname Mappata direttamente
dstHost target.hostname Mappata direttamente
dstHosts target.hostname Mappata direttamente
dest_ip target.ip Unita
dst target.ip Mappato: ^(?:[0-9]{1,3}[.]){3}[0-9]{1,3}$ → dst
dst_ip target.ip Unita
dst_ips target.ip Unita
tar_ip target.ip Unita
clusterName target.resource.name Mappata direttamente
dest target.resource.name Mappata direttamente
destination target.resource.name Mappata direttamente
server.dbName target.resource.name Mappata direttamente
destinationType target.resource.resource_subtype Mappata direttamente
dstType target.resource.resource_subtype Mappata direttamente
server.dbType target.resource.resource_subtype Mappata direttamente
accessedTables target.resource.type Mappata direttamente
url target.url Mappata direttamente
acct target.user.userid Mappata direttamente
destinationAccount target.user.userid Mappata direttamente
server.dbUser target.user.userid Mappata direttamente
N/D metadata.event_type Costante: RESOURCE_CREATION
N/D metadata.product_name Costante: Data Risk Analytics
N/D metadata.vendor_name Costante: IMPERVA
N/D security_result.severity Costante: LOW
client_ip event.idm.read_only_udm.principal.ip e event.idm.read_only_udm.principal.asset.ip Mappato dal log delle modifiche
source_ip event.idm.read_only_udm.principal.ip e event.idm.read_only_udm.principal.asset.ip Mappato dal log delle modifiche
action_id event.idm.read_only_udm.security_result.rule_id Mappato dal log delle modifiche
client_port event.idm.read_only_udm.principal.port Mappato dal log delle modifiche
destination_ip event.idm.read_only_udm.target.ip e event.idm.read_only_udm.target.asset.ip Mappato dal log delle modifiche
destination_port event.idm.read_only_udm.target.port Mappato dal log delle modifiche
distinguished_name_device_id event.idm.read_only_udm.principal.asset.asset_id Mappato dal log delle modifiche
distinguished_name event.idm.read_only_udm.principal.user.group_identifiers Mappato dal log delle modifiche
distinguished_name_ou event.idm.read_only_udm.principal.user.group_identifiers Mappato dal log delle modifiche
distinguished_name_user event.idm.read_only_udm.principal.user.email_addresses Mappato dal log delle modifiche
rule_name event.idm.read_only_udm.security_result.rule_name Mappato dal log delle modifiche
id event.idm.read_only_udm.metadata.product_log_id Mappato dal log delle modifiche
packet_size event.idm.read_only_udm.network.sent_bytes Mappato dal log delle modifiche
version event.idm.read_only_udm.metadata.product_version Mappato dal log delle modifiche
collective_id event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
collective_name event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
connection_type event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
entitlement_token_id event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
json_wrapper.appname event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
json_wrapper.facility event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
start event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
json_wrapper.priority event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
rule_subnet event.idm.read_only_udm.security_result.detection_fields Mappato dal log delle modifiche
srcHosts event.idm.read_only_udm.src.ip Mappato dal log delle modifiche
srcHosts event.idm.read_only_udm.src.asset.ip Mappato dal log delle modifiche
srcHosts event.idm.read_only_udm.src.hostname Mappato dal log delle modifiche
srcHosts event.idm.read_only_udm.src.asset.hostname Mappato dal log delle modifiche
dstHosts event.idm.read_only_udm.target.asset.hostname Mappato dal log delle modifiche
srcUsers event.idm.read_only_udm.principal.user.userid Mappato dal log delle modifiche
srcIps event.idm.read_only_udm.principal.ip Mappato dal log delle modifiche
srcIps event.idm.read_only_udm.principal.asset.ip Mappato dal log delle modifiche
srcHosts event.idm.read_only_udm.principal.hostname Mappato dal log delle modifiche
srcHosts event.idm.read_only_udm.principal.asset.hostname Mappato dal log delle modifiche
sourceApps event.idm.read_only_udm.principal.application Mappato dal log delle modifiche
dstIps event.idm.read_only_udm.target.ip Mappato dal log delle modifiche
dstIps event.idm.read_only_udm.target.asset.ip Mappato dal log delle modifiche
dstHosts event.idm.read_only_udm.target.hostname Mappato dal log delle modifiche
destinationAccount event.idm.read_only_udm.target.user.userid Mappato dal log delle modifiche
destination event.idm.read_only_udm.target.resource.name Mappato dal log delle modifiche
destinationType event.idm.read_only_udm.target.resource.resource_subtype Mappato dal log delle modifiche
accessedTables event.idm.read_only_udm.target.resource.type Mappato dal log delle modifiche
securityEventTimestamp event.idm.read_only_udm.metadata.event_timestamp Mappato dal log delle modifiche
actionType event.idm.read_only_udm.security_result.action_details Mappato dal log delle modifiche
severity event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
numOfAccessedObjects event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
userAction event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
clusterNames event.idm.read_only_udm.additional.fields 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.