Raccogliere i log di Imperva FlexProtect
Questo documento spiega come importare i log di Imperva FlexProtect in Google Security Operations utilizzando l'agente Bindplane.
L'analizzatore estrae i campi dai log formattati syslog di Imperva FlexProtect in formato CEF (Common Event Format) con estensioni coppia chiave-valore. Utilizza grok e/o kv per analizzare il messaggio CEF e poi mappa questi valori nel modello di dati unificato (UDM). Imposta anche i valori predefiniti dei metadati per l'origine e il tipo di evento. Imperva FlexProtect offre un deployment flessibile delle soluzioni di sicurezza Imperva (SecureSphere, Cloud WAF, Bot Protection) negli ambienti cloud ibrido.
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 privilegiato alla console di gestione Imperva FlexProtect o alle singole console dei prodotti
Recuperare il file di autenticazione dell'importazione di Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Agenti di raccolta.
- Scarica il file di autenticazione dell'acquisizione.
- Salva il file in modo sicuro sul sistema in cui verrà installato l'agente Bindplane.
Recuperare l'ID cliente Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Profilo.
- Copia e salva l'ID cliente dalla sezione Dettagli dell'organizzazione.
Installa l'agente Bindplane
Installa l'agente Bindplane sul sistema operativo Windows o Linux seguendo le istruzioni riportate di seguito.
Installazione di Windows
- Apri il prompt dei comandi o PowerShell come amministratore.
Esegui questo comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Installazione di Linux
- Apri un terminale con privilegi root o sudo.
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
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,vio Blocco note).
- Individua il file
Modifica il file
config.yamlcome 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_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_FLEXPROTECT' 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 in base alle esigenze della tua infrastruttura.
- Sostituisci
<CUSTOMER_ID>con l'ID cliente effettivo. - Aggiorna
/path/to/ingestion-authentication-file.jsoncon il percorso del file in cui è stato salvato il file di autenticazione nel passaggio 1.
Riavvia l'agente Bindplane per applicare le modifiche
Per riavviare l'agente Bindplane in Linux, esegui questo comando:
sudo systemctl restart observiq-otel-collectorPer 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
Configurare l'inoltro di Syslog su Imperva FlexProtect
Per il componente SecureSphere (on-premise/cloud)
- Accedi alla console di gestione Imperva SecureSphere.
- Vai a Configurazione > Set di azioni.
- Fai clic su Aggiungi per creare un nuovo insieme di azioni.
Fai clic su Aggiungi azione e fornisci i seguenti dettagli di configurazione:
- Nome: inserisci un nome descrittivo (ad esempio,
Google SecOps Syslog). - Tipo di azione: seleziona Syslog.
- Host: 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.
- Livello di log Syslog: seleziona DEBUG.
- Syslog Facility: seleziona LOCAL0.
- Formato: seleziona CEF (Common Event Format).
- Nome: inserisci un nome descrittivo (ad esempio,
Salva la configurazione dell'azione e applicala alle policy di sicurezza pertinenti.
Per il componente Cloud WAF/Incapsula
- Accedi alla console Imperva Cloud.
- Vai a Log > Configurazione log.
- Configura la destinazione syslog:
- Host: 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.
- Formato: seleziona CEF.
Tabella di mappatura UDM
| Campo log | Mappatura UDM | Logica |
|---|---|---|
| act | read_only_udm.security_result.action_details | Mappato direttamente dal campo act. |
| app | read_only_udm.network.application_protocol | Mappato direttamente dal campo app. |
| ccode | read_only_udm.principal.location.country_or_region | Mappato direttamente dal campo ccode. |
| cicode | read_only_udm.principal.location.city | Mappato direttamente dal campo cicode. |
| cn1 | read_only_udm.network.http.response_code | Mappato direttamente dal campo cn1 dopo la conversione in numero intero. |
| cs1 | read_only_udm.additional.fields.value.string_value | Mappato direttamente dal campo cs1. |
| cs2 | read_only_udm.additional.fields.value.string_value | Mappato direttamente dal campo cs2. |
| cs3 | read_only_udm.additional.fields.value.string_value | Mappato direttamente dal campo cs3. |
| cs4 | read_only_udm.additional.fields.value.string_value | Mappato direttamente dal campo cs4. |
| cs5 | read_only_udm.additional.fields.value.string_value | Mappato direttamente dal campo cs5. |
| cs6 | read_only_udm.additional.fields.value.string_value | Mappato direttamente dal campo cs6. |
| cs7 | read_only_udm.additional.fields.value.string_value | Mappato direttamente dal campo cs7. |
| cs8 | read_only_udm.additional.fields.value.string_value | Mappato direttamente dal campo cs8. |
| cs9 | read_only_udm.additional.fields.value.string_value | Mappato direttamente dal campo cs9. |
| cpt | read_only_udm.principal.port | Mappato direttamente dal campo cpt dopo la conversione in numero intero. |
| Cliente | read_only_udm.principal.user.user_display_name | Mappato direttamente dal campo Customer. |
| deviceExternalId | read_only_udm.about.asset.asset_id | Il valore viene derivato concatenando "Incapsula.SIEMintegration:" con il campo deviceExternalId. |
| deviceFacility | read_only_udm.principal.location.city | Mappato direttamente dal campo deviceFacility. |
| dproc | read_only_udm.target.process.command_line | Mappato direttamente dal campo dproc. |
| end | read_only_udm.security_result.detection_fields.value | Mappato direttamente dal campo end. |
| fileId | read_only_udm.network.session_id | Mappato direttamente dal campo fileId. |
| filePermission | read_only_udm.about.resource.attribute.permissions.name | Mappato direttamente dal campo filePermission. |
| in | read_only_udm.network.received_bytes | Mappato direttamente dal campo in. |
| qstr | read_only_udm.security_result.detection_fields.value | Mappato direttamente dal campo qstr. |
| richiesta | read_only_udm.target.url | Mappato direttamente dal campo request. |
| requestClientApplication | read_only_udm.network.http.user_agent | Mappato direttamente dal campo requestClientApplication. |
| requestMethod | read_only_udm.network.http.method | Mappato direttamente dal campo requestMethod. |
| siteid | read_only_udm.security_result.detection_fields.value | Mappato direttamente dal campo siteid. |
| sip | read_only_udm.target.ip | Mappato direttamente dal campo sip. |
| sourceServiceName | read_only_udm.principal.application | Mappato direttamente dal campo sourceServiceName. |
| spt | read_only_udm.target.port | Mappato direttamente dal campo spt dopo la conversione in numero intero. |
| src | read_only_udm.principal.ip | Mappato direttamente dal campo src. |
| start | read_only_udm.security_result.detection_fields.value | Mappato direttamente dal campo start. |
| suid | read_only_udm.principal.user.userid | Mappato direttamente dal campo suid. |
| ver | read_only_udm.network.tls.version | Mappato direttamente dal campo ver. |
| read_only_udm.about.asset.asset_id | Il valore viene derivato concatenando "Incapsula.SIEMintegration:" con il campo deviceExternalId. |
|
| read_only_udm.additional.fields.key | Il valore viene determinato dalla logica del parser in base all'etichetta del campo, ad esempio: - cs1Label corrisponde a "Cap Support" - cs2Label corrisponde a "Javascript Support" - cs3Label corrisponde a "CO Support" - cs4Label corrisponde a "VID" - cs5Label corrisponde a "clappsig" - cs6Label corrisponde a "clapp" - cs7Label corrisponde a "latitude" - cs8Label corrisponde a "longitude" - cs9Label corrisponde a "Rule name" |
|
| read_only_udm.metadata.event_timestamp.nanos | Mappato direttamente dal campo collection_time.nanos. |
|
| read_only_udm.metadata.event_timestamp.seconds | Mappato direttamente dal campo collection_time.seconds. |
|
| read_only_udm.metadata.event_type | Il valore viene determinato in base alla presenza dei campi src e sip: . Se sono presenti entrambi, il valore è impostato su "NETWORK_HTTP". - Se è presente solo src, il valore è impostato su "USER_UNCATEGORIZED". - In caso contrario, il valore viene impostato su "GENERIC_EVENT". |
|
| read_only_udm.metadata.product_event_type | Il valore viene derivato concatenando "[", il valore numerico del campo di intestazione CEF all'indice 4, "] - " e la descrizione testuale del campo di intestazione CEF all'indice 4. | |
| read_only_udm.metadata.product_name | Il valore è impostato staticamente su "SIEMintegration". | |
| read_only_udm.metadata.product_version | Il valore è impostato staticamente su "1". | |
| read_only_udm.metadata.vendor_name | Il valore è impostato staticamente su "Incapsula". | |
| read_only_udm.security_result.detection_fields.key | Il valore è impostato staticamente su "siteid", "event_start_time", "event_end_time" o "qstr" in base al campo corrispondente in fase di elaborazione. | |
| read_only_udm.security_result.severity | Il valore è impostato staticamente su "LOW". | |
| read_only_udm.target.port | Mappato direttamente dal campo spt dopo la conversione in numero intero. |
|
qstr |
security_results.detection_fields |
Mappato dal log delle modifiche |
siteid |
security_results.detection_fields |
Mappato dal log delle modifiche |
device_facility |
principal.location.city |
Mappato dal log delle modifiche |
start |
security_result.detection_fields.event_start_time |
Mappato dal log delle modifiche |
cs8Label |
additional_cs8.key |
Mappato dal log delle modifiche |
cs8 |
additional_cs8.value.string_value |
Mappato dal log delle modifiche |
cs9Label |
additional_cs9.key |
Mappato dal log delle modifiche |
cs9 |
additional_cs9.value.string_value |
Mappato dal log delle modifiche |
end |
security_result.detection_fields.event_end_time |
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.