Raccogli i log di Akamai Guardicore Segmentation (in precedenza Guardicore Centra)
Questo documento spiega come configurare Akamai Guardicore Segmentation (precedentemente Guardicore Centra) per inviare i log a Google Security Operations utilizzando Akamai Unified Log Streamer (ULS) con output HTTP.
Guardicore Centra è una piattaforma di microsegmentazione che fornisce sicurezza di rete Zero Trust per data center, ambienti cloud ed endpoint. Offre visibilità sulle dipendenze delle applicazioni, rilevamento delle violazioni tramite tecnologia di inganno e controlli di segmentazione granulari per impedire il movimento laterale e contenere le minacce.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Un'istanza Google SecOps
- Istanza Guardicore Centra (cloud o on-premise)
- Un server Linux per eseguire Akamai ULS (minimo: 1 vCPU, 1 GB di RAM, 500 MB di disco)
- Python 3.9 o versioni successive installato sul server ULS
- Accesso amministratore a Guardicore Centra per creare un utente API di sola lettura
- Accesso HTTPS in uscita dal server ULS agli endpoint di importazione di Google SecOps
- Accesso alla console Google Cloud (per la creazione della chiave API)
Crea il feed in Google SecOps
- Vai a Impostazioni > Gestione dei dati > Feed. Se utilizzi una piattaforma solo SIEM, vai a Impostazioni > Feed.
- Fai clic su Aggiungi nuovo feed.
- Nella pagina successiva, fai clic su Configura un singolo feed.
- Nel campo Nome feed, inserisci un nome per il feed. Ad esempio,
Guardicore Centra Logs. - Seleziona Webhook come Tipo di origine.
- Seleziona Guardicore Centra come Tipo di log.
- Fai clic su Avanti.
- Specifica i valori per i seguenti parametri di input:
- Delimitatore di suddivisione: inserisci
\nper suddividere gli eventi su più righe (ULS invia JSON delimitato da nuova riga). - Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset.
- Etichette di importazione: l'etichetta da applicare agli eventi di questo feed.
- Delimitatore di suddivisione: inserisci
- Fai clic su Avanti.
- Controlla la nuova configurazione del feed di notizie nella schermata Finalizza e poi fai clic su Invia.
Genera e salva la chiave segreta
Dopo aver creato il feed, devi generare una chiave segreta per l'autenticazione nel seguente modo:
- Nella pagina dei dettagli del feed, fai clic su Genera chiave segreta.
- Viene visualizzata una finestra di dialogo con la chiave segreta.
- Copia e salva la chiave segreta in modo sicuro.
Ottieni l'URL dell'endpoint del feed
- Vai alla scheda Dettagli del feed.
- Nella sezione Endpoint Information (Informazioni sull'endpoint), copia l'URL endpoint del feed.
Il formato dell'URL è:
https://<REGION>-chronicle.googleapis.com/v1alpha/projects/<PROJECT_NUMBER>/locations/<REGION>/instances/<INSTANCE_ID>/feeds/<FEED_ID>:importPushLogso
https://<REGION>-chronicle.googleapis.com/v1alpha/projects/<PROJECT_NUMBER>/locations/<REGION>/instances/<INSTANCE_ID>/feeds/<FEED_ID>:importPushLogsSalva questo URL per i passaggi successivi.
Fai clic su Fine.
Crea una chiave API Google Cloud
Google SecOps richiede una chiave API per l'autenticazione. Crea una chiave API limitata nella console Google Cloud .
Crea la chiave API
- Vai alla pagina Credenziali della consoleGoogle Cloud .
- Seleziona il progetto. Questo è il progetto associato alla tua istanza Google SecOps.
- Fai clic su Crea credenziali > Chiave API.
- Viene creata una chiave API, che viene visualizzata in una finestra di dialogo.
- Fai clic su Modifica chiave API per limitare la chiave.
Limita la chiave API
- Nella pagina delle impostazioni della chiave API:
- Nome: inserisci un nome descrittivo (ad esempio
Google SecOps Guardicore Webhook API Key).
- Nome: inserisci un nome descrittivo (ad esempio
- In Restrizioni API:
- Seleziona Limita chiave.
- Nel menu a discesa Seleziona API, cerca e seleziona API Chronicle.
- Fai clic su Salva.
- Copia il valore della chiave API dal campo Chiave API nella parte superiore della pagina.
- Salva la chiave API in modo sicuro.
Configura le credenziali di Guardicore Centra
Crea un utente API di sola lettura in Guardicore Centra
ULS si autentica nell'API Centra con un utente del portale. Crea un utente dedicato con autorizzazioni di sola lettura anziché utilizzare un account amministratore, come segue:
- Accedi alla console di gestione di Guardicore Centra.
- Vai ad Amministrazione > Utenti.
- Fai clic su Create User (Crea utente).
- Fornisci i seguenti dettagli di configurazione:
- Nome utente: inserisci un nome per l'utente dell'integrazione (ad esempio
secops-uls). - Password: inserisci una password.
- Schema di autorizzazione: seleziona Assistenza (accesso di sola lettura).
- Nome utente: inserisci un nome per l'utente dell'integrazione (ad esempio
- Fai clic su Salva.
- Esci e accedi con il nuovo utente, quindi completa la modifica obbligatoria della password.
- Prendi nota del nome host della console di gestione Centra (senza
https://). ULS lo utilizza come nome host dell'API.
Crea il file .edgerc per l'autenticazione di Guardicore
Akamai ULS legge le credenziali di Guardicore dal file .edgerc, dalle chiavi gc_hostname, gc_username e gc_password.
Sul server ULS, crea il file
.edgercnella home directory nel seguente modo:nano ~/.edgercAggiungi la seguente configurazione:
[default] gc_hostname = your-instance.cloud.guardicore.com gc_username = your_username gc_password = your_passwordSostituisci i seguenti valori:
your-instance.cloud.guardicore.com: il nome host di gestione di Guardicore Centra (senzahttps://)your_username: il nome utente dell'utente API di sola lettura creato nella sezione precedenteyour_password: la password dell'utente
Esempio:
[default] gc_hostname = cus-1234.cloud.guardicore.com gc_username = secops-uls gc_password = MySecurePassword123Salva e chiudi il file.
Imposta le autorizzazioni appropriate come segue:
chmod 600 ~/.edgerc
Installa Akamai ULS
Installa ULS da GitHub
Sul server ULS, clona il repository ULS come segue:
git clone https://github.com/akamai/uls.git cd ulsInstalla le dipendenze Python:
pip3 install -r requirements.txtInstalla il modulo di recupero dei log di Guardicore (
gc-logs) nella directoryextdel checkout di ULS:git clone -q --depth 1 -b v0.0.8 --single-branch https://github.com/MikeSchiessl/gc-logs.git ext/cli-gc pip3 install -r ext/cli-gc/bin/requirements.txtVerifica l'installazione:
python3 bin/uls.py --help
Configura ULS per inviare i log a Google SecOps
Crea l'URL webhook di Google SecOps
Combina l'URL dell'endpoint Google SecOps e la chiave API come segue:
<ENDPOINT_URL>?key=<API_KEY>Esempio:
https://<REGION>-chronicle.googleapis.com/v1alpha/projects/<PROJECT_NUMBER>/locations/<REGION>/instances/<INSTANCE_ID>/feeds/<FEED_ID>:importPushLogs?key=AIzaSyD...
Esegui ULS per il feed NETLOG di Guardicore
Il feed NETLOG contiene i log dei flussi di rete degli agenti Guardicore.
Esegui ULS con il seguente comando:
python3 bin/uls.py \ --input gc \ --feed NETLOG \ --output http \ --httpurl "https://<REGION>-chronicle.googleapis.com/v1alpha/projects/<PROJECT_NUMBER>/locations/<REGION>/instances/<INSTANCE_ID>/feeds/<FEED_ID>:importPushLogs?key=YOUR_API_KEY" \ --httpauthheader '{"X-Webhook-Access-Key": "YOUR_SECRET_KEY"}' \ --httpformat '%s'- Sostituisci i seguenti valori:
YOUR_API_KEY: la chiave API Google Cloud creata in precedenzaYOUR_SECRET_KEY: la chiave segreta di Google SecOps generata in precedenza
- Sostituisci i seguenti valori:
ULS inizia a trasmettere gli eventi
NETLOGa Google SecOps.
Esegui ULS per il feed Guardicore INCIDENT
Il feed INCIDENT contiene gli incidenti di sicurezza rilevati da Guardicore.
Esegui ULS con il seguente comando:
python3 bin/uls.py \ --input gc \ --feed INCIDENT \ --output http \ --httpurl "https://<REGION>-chronicle.googleapis.com/v1alpha/projects/<PROJECT_NUMBER>/locations/<REGION>/instances/<INSTANCE_ID>/feeds/<FEED_ID>:importPushLogs?key=YOUR_API_KEY" \ --httpauthheader '{"X-Webhook-Access-Key": "YOUR_SECRET_KEY"}' \ --httpformat '%s'- Sostituisci i seguenti valori:
YOUR_API_KEY: la chiave API Google Cloud creata in precedenzaYOUR_SECRET_KEY: la chiave segreta di Google SecOps generata in precedenza
- Sostituisci i seguenti valori:
ULS inizia a trasmettere gli eventi
INCIDENTa Google SecOps.
Esegui ULS per il feed Guardicore AGENT
Il feed AGENT contiene informazioni sullo stato e sull'integrità dell'agente.
Esegui ULS con il seguente comando:
python3 bin/uls.py \ --input gc \ --feed AGENT \ --output http \ --httpurl "https://<REGION>-chronicle.googleapis.com/v1alpha/projects/<PROJECT_NUMBER>/locations/<REGION>/instances/<INSTANCE_ID>/feeds/<FEED_ID>:importPushLogs?key=YOUR_API_KEY" \ --httpauthheader '{"X-Webhook-Access-Key": "YOUR_SECRET_KEY"}' \ --httpformat '%s'- Sostituisci i seguenti valori:
YOUR_API_KEY: la chiave API Google Cloud creata in precedenzaYOUR_SECRET_KEY: la chiave segreta di Google SecOps generata in precedenza
- Sostituisci i seguenti valori:
ULS inizierà a trasmettere in streaming gli eventi
AGENTa Google SecOps.
Esegui ULS per il feed Guardicore SYSTEM
Il feed SYSTEM contiene avvisi ed eventi di sistema.
Esegui ULS con il seguente comando:
python3 bin/uls.py \ --input gc \ --feed SYSTEM \ --output http \ --httpurl "https://<REGION>-chronicle.googleapis.com/v1alpha/projects/<PROJECT_NUMBER>/locations/<REGION>/instances/<INSTANCE_ID>/feeds/<FEED_ID>:importPushLogs?key=YOUR_API_KEY" \ --httpauthheader '{"X-Webhook-Access-Key": "YOUR_SECRET_KEY"}' \ --httpformat '%s'- Sostituisci i seguenti valori:
YOUR_API_KEY: la chiave API Google Cloud creata in precedenzaYOUR_SECRET_KEY: la chiave segreta di Google SecOps generata in precedenza
- Sostituisci i seguenti valori:
ULS inizierà a trasmettere in streaming gli eventi
SYSTEMa Google SecOps.
Esegui ULS per il feed AUDIT di Guardicore
Il feed AUDIT contiene gli audit log delle azioni amministrative.
Esegui ULS con il seguente comando:
python3 bin/uls.py \ --input gc \ --feed AUDIT \ --output http \ --httpurl "https://<REGION>-chronicle.googleapis.com/v1alpha/projects/<PROJECT_NUMBER>/locations/<REGION>/instances/<INSTANCE_ID>/feeds/<FEED_ID>:importPushLogs?key=YOUR_API_KEY" \ --httpauthheader '{"X-Webhook-Access-Key": "YOUR_SECRET_KEY"}' \ --httpformat '%s'- Sostituisci i seguenti valori:
YOUR_API_KEY: la chiave API Google Cloud creata in precedenzaYOUR_SECRET_KEY: la chiave segreta di Google SecOps generata in precedenza
- Sostituisci i seguenti valori:
ULS inizierà a trasmettere in streaming gli eventi
AUDITa Google SecOps.
Esegui ULS come servizio in background
Per garantire che ULS venga eseguito in modo continuo, configuralo come servizio systemd.
Crea un file di servizio systemd per il feed NETLOG
Crea un file di servizio:
sudo nano /etc/systemd/system/uls-guardicore-netlog.serviceAggiungi i seguenti contenuti:
[Unit] Description=Akamai ULS - Guardicore NETLOG After=network.target [Service] Type=simple User=root WorkingDirectory=/root/uls ExecStart=/usr/bin/python3 /root/uls/bin/uls.py --input gc --feed NETLOG --output http --httpurl "https://<REGION>-chronicle.googleapis.com/v1alpha/projects/<PROJECT_NUMBER>/locations/<REGION>/instances/<INSTANCE_ID>/feeds/<FEED_ID>:importPushLogs?key=YOUR_API_KEY" --httpauthheader '{"X-Webhook-Access-Key": "YOUR_SECRET_KEY"}' --httpformat '%%s' Restart=always RestartSec=10 [Install] WantedBy=multi-user.target- Sostituisci i seguenti valori:
/root/uls: il percorso in cui hai clonato il repository ULSYOUR_API_KEY: la chiave API Google CloudYOUR_SECRET_KEY: la chiave segreta di Google SecOps
- Sostituisci i seguenti valori:
Salva e chiudi il file.
Attiva e avvia il servizio:
sudo systemctl daemon-reload sudo systemctl enable uls-guardicore-netlog.service sudo systemctl start uls-guardicore-netlog.serviceControlla lo stato del servizio:
sudo systemctl status uls-guardicore-netlog.service
Crea servizi aggiuntivi per altri feed
Ripeti i passaggi precedenti per ogni feed che vuoi raccogliere (INCIDENT, AGENT, SYSTEM, AUDIT), creando file di servizio separati come segue:
/etc/systemd/system/uls-guardicore-incident.service/etc/systemd/system/uls-guardicore-agent.service/etc/systemd/system/uls-guardicore-system.service/etc/systemd/system/uls-guardicore-audit.service
Modifica il parametro --feed e il nome del servizio di conseguenza in ogni file.
Verifica l'importazione dei log
- Attendi 5-10 minuti per l'importazione e l'elaborazione dei log.
- Nella console Google SecOps, vai a Ricerca.
Esegui la seguente query di ricerca UDM:
metadata.vendor_name = "Guardicore"Se i log vengono importati correttamente, dovresti visualizzare gli eventi Guardicore nei risultati di ricerca.
Puoi anche cercare tipi di feed specifici:
metadata.vendor_name = "Guardicore" AND metadata.product_name = "Centra"
Risoluzione dei problemi
Errori di connessione ULS
Se ULS non riesce a connettersi a Guardicore, segui questi passaggi:
- Verifica che il file
.edgerccontenga il nome host e le credenziali corretti. Testa la connettività alla tua istanza Guardicore nel seguente modo:
curl -u "username:password" https://your-instance.cloud.guardicore.com/api/v3.0/visibilityVerifica che l'istanza Guardicore sia accessibile dal server ULS.
Errori di output HTTP ULS
Se ULS non riesce a inviare i log a Google SecOps, segui questi passaggi:
- Verifica che le chiavi API e segrete siano corrette.
- Verifica che l'URL dell'endpoint Google SecOps sia corretto per la tua regione.
Verifica la connettività HTTPS in uscita dal server ULS:
curl -I https://malachiteingestion-pa.googleapis.comEsamina i log ULS per individuare i messaggi di errore:
sudo journalctl -u uls-guardicore-netlog.service -f
I log non vengono visualizzati nella piattaforma
Se i log non vengono visualizzati in Google SecOps, segui questi passaggi:
- Verifica che il feed del webhook sia in stato Attivo in Impostazioni > Gestione dei dati > Feed.
- Controlla la scheda Integrità del feed per verificare la presenza di errori di importazione.
- Verifica che il delimitatore di suddivisione sia impostato su
\nnella configurazione del feed. - Assicurati che il tipo di log sia impostato su Guardicore Centra.
Errori dei certificati autofirmati
Se l'istanza Guardicore utilizza un certificato autofirmato, ULS potrebbe non riuscire con errori di verifica SSL. Per bypassare la verifica SSL (non consigliato per la produzione), segui questi passaggi:
Aggiungi il flag
--httpinsecureal comando ULS:python3 bin/uls.py \ --input gc \ --feed NETLOG \ --output http \ --httpurl "https://<REGION>-chronicle.googleapis.com/v1alpha/projects/<PROJECT_NUMBER>/locations/<REGION>/instances/<INSTANCE_ID>/feeds/<FEED_ID>:importPushLogs?key=YOUR_API_KEY" \ --httpauthheader '{"X-Webhook-Access-Key": "YOUR_SECRET_KEY"}' \ --httpformat '%s' \ --httpinsecure
Feed Guardicore disponibili
Akamai ULS supporta i seguenti feed Guardicore:
| Nome feed | Descrizione | Parametro del feed ULS |
|---|---|---|
NETLOG |
Log di flusso di rete dagli agenti Guardicore | NETLOG |
INCIDENT |
Incidenti di sicurezza rilevati da Guardicore | INCIDENT |
AGENT |
Stato dell'agente e informazioni sull'integrità | AGENT |
SYSTEM |
Avvisi di sistema** | Avvisi ed eventi a livello di sistema |
AUDIT Logs |
Azioni amministrative e modifiche alla configurazione | AUDIT |
Riferimento ai metodi di autenticazione
I feed webhook di Google SecOps supportano diversi metodi di autenticazione. Akamai ULS utilizza il metodo ibrido con la chiave API nell'URL e la chiave segreta nell'intestazione.
Metodo utilizzato da ULS: ibrido (URL + intestazione)
Formato della richiesta:
POST <ENDPOINT_URL>?key=<API_KEY> HTTP/1.1 Content-Type: application/json X-Webhook-Access-Key: <SECRET_KEY> {"event": "data", "timestamp": "2025-01-15T10:30:00Z"}Formato del comando ULS:
--httpurl "<ENDPOINT_URL>?key=<API_KEY>" --httpauthheader '{"X-Webhook-Access-Key": "<SECRET_KEY>"}'
Nomi delle intestazioni di autenticazione
Google SecOps accetta i seguenti nomi di intestazione per l'autenticazione:
Per la chiave API:
X-goog-api-key(consigliata)X-goog-api-key(senza distinzione tra maiuscole e minuscole)
Per la chiave segreta:
X-Webhook-Access-Key(consigliata)X-Webhook-Access-Key(senza distinzione tra maiuscole e minuscole)
Limiti e best practice dei webhook
Limiti per le richieste
| Limite | Valore |
|---|---|
| Max single log line | 1 MB |
| QPS (query al secondo) max | 15.000 |
| Timeout richieste | 90 secondi |
| Comportamento dei nuovi tentativi | Gestito dal mittente. Google SecOps restituisce l'errore HTTP 429 quando viene superato il limite di burst; il sistema di invio deve eseguire il buffering e riprovare. |
Best practice
- Esegui istanze ULS separate per ogni tipo di feed per migliorare l'affidabilità e la risoluzione dei problemi.
- Monitora lo stato del servizio ULS utilizzando systemd e configura gli avvisi per gli errori del servizio.
- Ruota periodicamente le credenziali di Guardicore e aggiorna il file
.edgerc. - Utilizza un account di servizio dedicato in Guardicore con accesso API di sola lettura.
- Configura la rotazione dei log per i log ULS per evitare problemi di spazio su disco.
- Testa gli scenari di failover eseguendo ULS su più server con bilanciamento del carico.
Tabella di mappatura UDM
La tabella seguente elenca i campi del log di Guardicore Centra e i campi UDM corrispondenti.
| Campo log | Campo UDM | Descrizione |
|---|---|---|
timestamp |
metadata.event_timestamp |
Timestamp evento |
source_ip |
principal.ip |
Indirizzo IP di origine |
destination_ip |
target.ip |
Indirizzo IP di destinazione |
source_port |
principal.port |
Numero di porta di origine |
destination_port |
target.port |
Numero di porta di destinazione |
protocol |
network.ip_protocol |
Protocollo di rete |
action |
security_result.action |
Azione di sicurezza intrapresa |
severity |
security_result.severity |
Gravità dell'evento |
user |
principal.user.userid |
Nome utente |
hostname |
principal.hostname |
Nome host di origine |
process_name |
principal.process.file.full_path |
Nome processo |
incident_id |
security_result.detection_fields.key |
Identificatore incidente |
description |
security_result.description |
Descrizione evento |
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.