Raccogli i log di Skyhigh Secure Web Gateway (on-premise)
Questo documento spiega come importare i log di Skyhigh Secure Web Gateway (on-premise) in Google SecOps utilizzando Google Cloud Storage.
Skyhigh Secure Web Gateway (in precedenza McAfee Web Gateway) è una soluzione di sicurezza web on-premise che fornisce rilevamento di malware, filtro URL, controllo delle applicazioni, prevenzione della perdita di dati e ispezione HTTPS per proteggere le organizzazioni dalle minacce basate sul web e applicare policy di utilizzo accettabile.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Un'istanza Google SecOps
- Accesso privilegiato alla console di gestione di Skyhigh Secure Web Gateway
- Un progetto GCP con l'API Cloud Storage abilitata
- Un server di raccolta basato su Linux con accesso alla rete all'appliance Skyhigh Secure Web Gateway e accesso in uscita a Google Cloud Storage
- Skyhigh Secure Web Gateway versione 7.x o successive
Configura il formato del log di accesso di Skyhigh Secure Web Gateway
Configura il set di regole del gestore log per generare voci di log di accesso in formato JSON.
- Accedi alla console di gestione di Skyhigh Secure Web Gateway.
- Vai a Norme > Set di regole.
- Fai clic su Gestore log nel riquadro di navigazione a sinistra.
- Espandi il set di regole Predefinito.
- Seleziona il set di regole nidificato Access Log.
- Fai clic su Aggiungi > Regola per creare una nuova regola.
- Configura la regola con le seguenti impostazioni:
- Nome: inserisci
Write access log data for collection - Criteri: seleziona Sempre.
- Azione: seleziona Continua.
- Evento: fai clic su Aggiungi > Evento.
- Nome: inserisci
- Nella finestra di dialogo Aggiungi evento:
- Seleziona Imposta User-Defined.logLine.
- Fai clic su Parametri.
- Crea il valore della riga di log combinando le proprietà richieste. Utilizza la proprietà User-Defined.logLine per concatenare i campi nel formato desiderato.
- Fai clic su OK.
- Aggiungi un secondo evento per scrivere la riga di log nel file di log di accesso:
- Fai clic su Aggiungi > Evento.
- Seleziona Registrazione nel file system.
- Fai clic su Parametri.
- Per il parametro message, seleziona User-Defined.logLine.
- Fai clic su OK.
- Fai clic su Fine per salvare la regola.
Fai clic su Salva modifiche nella parte superiore della pagina.
Configura il push automatico del logging del file system
Configura Skyhigh Secure Web Gateway per eseguire il push automatico dei file di log degli accessi al server di raccolta.
- Nella console Skyhigh Secure Web Gateway, vai a Policy > Settings > Engines > File System Logging.
- Seleziona le impostazioni di Configurazione log di accesso.
- Espandi Impostazioni per rotazione, push ed eliminazione.
- Nella sezione Push automatico:
- Seleziona la casella di controllo Abilita push automatico.
- Nel campo Destinazione, inserisci l'URL FTP o HTTP del server di raccolta:
- Esempio FTP:
ftp://COLLECTION_SERVER_IP:21/swg-logs/ - Esempio HTTP:
http://COLLECTION_SERVER_IP:9111/logloader/
- Esempio FTP:
- Nel campo Nome utente, inserisci il nome utente per il server di raccolta.
- Nel campo Password, inserisci la password per il server di raccolta.
- Nella sezione Rotazione, configura l'intervallo di rotazione in base al volume dei log:
- Per gli ambienti con volumi elevati, imposta la rotazione ogni 5-15 minuti
- Per gli ambienti standard, imposta la rotazione ogni 30-60 minuti
Fai clic su Salva modifiche.
Verifica il prefisso del log
- Nella console Skyhigh Secure Web Gateway, vai a Configuration > Appliances > Syslog > Log Prefix.
- Verifica che il prefisso sia impostato su mwg.
Se il prefisso è diverso, modificalo in mwg e fai clic su Salva modifiche.
Crea un bucket Google Cloud Storage
- Vai alla console Google Cloud.
- Seleziona il tuo progetto o creane uno nuovo.
- Nel menu di navigazione, vai a Cloud Storage > Bucket.
- Fai clic su Crea bucket.
Fornisci i seguenti dettagli di configurazione:
Impostazione Valore Assegna un nome al bucket Inserisci un nome univoco globale (ad esempio skyhigh-swg-logs).Tipo di località Scegli in base alle tue esigenze (regione singola, a due regioni, multiregionale) Località Seleziona la posizione (ad esempio, us-central1).Classe di archiviazione Standard (consigliato per i log a cui si accede di frequente) Controllo degli accessi Uniforme (consigliato) Strumenti di protezione (Facoltativo) Abilita il controllo delle versioni degli oggetti o la policy di conservazione Fai clic su Crea.
Configura il server di raccolta per caricare i log in GCS
Configura un server di raccolta per ricevere i file di log inviati da Skyhigh Secure Web Gateway e caricali nel bucket GCS.
Installa gcloud CLI
Sul server di raccolta, installa gcloud CLI:
curl https://sdk.cloud.google.com | bash exec -l $SHELLInizializza gcloud CLI:
gcloud initAutenticati con un account di servizio o un account utente:
gcloud auth loginImposta il progetto predefinito:
gcloud config set project PROJECT_ID
Configurare un server FTP per ricevere i log push
Installa un server FTP sul server di raccolta (ad esempio vsftpd):
sudo apt-get install vsftpd -yCrea una directory dedicata per i file di log pushati:
sudo mkdir -p /var/log/swg-logs sudo chown ftp:ftp /var/log/swg-logsConfigura il server FTP per consentire l'accesso in scrittura alla directory dei log.
Avvia il servizio FTP:
sudo systemctl enable vsftpd sudo systemctl start vsftpd
Crea lo script di caricamento GCS
Crea lo script di caricamento:
sudo mkdir -p /opt/swg-gcs-uploaderCrea il file
/opt/swg-gcs-uploader/upload_to_gcs.shcon il seguente contenuto:#!/bin/bash LOG_DIR="/var/log/swg-logs" GCS_BUCKET="gs://skyhigh-swg-logs/swg-access-logs/" ARCHIVE_DIR="/var/log/swg-logs/archived" mkdir -p "$ARCHIVE_DIR" # Upload new log files to GCS for log_file in "$LOG_DIR"/*.log; do if [ -f "$log_file" ]; then gsutil cp "$log_file" "$GCS_BUCKET" if [ $? -eq 0 ]; then mv "$log_file" "$ARCHIVE_DIR/" echo "$(date): Uploaded and archived $(basename "$log_file")" else echo "$(date): Failed to upload $(basename "$log_file")" fi fi done # Clean up archived files older than 7 days find "$ARCHIVE_DIR" -type f -mtime +7 -deleteRendi eseguibile lo script:
sudo chmod +x /opt/swg-gcs-uploader/upload_to_gcs.shSostituisci
skyhigh-swg-logscon il nome effettivo del bucket GCS.
Pianificare lo script di caricamento
Apri l'editor crontab:
sudo crontab -eAggiungi la seguente voce per eseguire il caricamento ogni 10 minuti:
*/10 * * * * /opt/swg-gcs-uploader/upload_to_gcs.sh >> /var/log/swg-gcs-uploader.log 2>&1Salva ed esci.
Verifica il caricamento
- Attendi che Skyhigh Secure Web Gateway esegua il push di un file di log nel server di raccolta.
Verifica che il file di log sia presente nella directory dei log:
ls -la /var/log/swg-logs/Esegui manualmente lo script di caricamento per eseguire il test:
sudo /opt/swg-gcs-uploader/upload_to_gcs.shVerifica che il file sia stato caricato su GCS:
gsutil ls gs://skyhigh-swg-logs/swg-access-logs/
Applica la configurazione al cluster di gestione centrale
Se esegui più appliance Skyhigh Secure Web Gateway in un cluster di gestione centrale:
- Ripeti la configurazione del push automatico della registrazione del file system su ogni appliance del cluster.
La configurazione del set di regole del gestore dei log viene sincronizzata automaticamente nel cluster.
Recuperare il account di servizio Google SecOps
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo feed.
- Fai clic su Configura un singolo feed.
- Nel campo Nome feed, inserisci un nome per il feed (ad esempio,
Skyhigh SWG Logs). - Seleziona Google Cloud Storage V2 come Tipo di origine.
- Seleziona McAfee Web Protection come Tipo di log.
Fai clic su Ottieni service account. Verrà visualizzato un indirizzo email del account di servizio univoco, ad esempio:
chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.comCopia questo indirizzo email per utilizzarlo nel passaggio successivo.
Fai clic su Avanti.
Specifica i valori per i seguenti parametri di input:
URL del bucket di archiviazione: inserisci l'URI del bucket GCS con il percorso del prefisso:
gs://skyhigh-swg-logs/swg-access-logs/Opzione di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze:
- Mai: non elimina mai i file dopo i trasferimenti (opzione consigliata per i test).
- Elimina file trasferiti: elimina i file dopo il trasferimento riuscito.
Elimina file trasferiti e directory vuote: elimina i file e le directory vuote dopo il trasferimento riuscito.
Età massima del file: includi i file modificati nell'ultimo numero di giorni (il valore predefinito è 180 giorni)
Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset
Etichette di importazione: l'etichetta da applicare agli eventi di questo feed
Fai clic su Avanti.
Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.
Concedi le autorizzazioni IAM al account di servizio Google SecOps
- Vai a Cloud Storage > Bucket.
- Fai clic su
skyhigh-swg-logs. - Vai alla scheda Autorizzazioni.
- Fai clic su Concedi l'accesso.
- Fornisci i seguenti dettagli di configurazione:
- Aggiungi entità: incolla l'email del account di servizio Google SecOps
- Assegna i ruoli: seleziona Visualizzatore oggetti Storage.
- Fai clic su Salva.
Tabella di mappatura UDM
| Campo log | Mappatura UDM | Logica |
|---|---|---|
| mediaType | additional.fields | Unito alle etichette di mediaType, reputation, Ssl_scanned, av_scanned_up, av_scanned_down, rbi, dlp |
| reputazione | additional.fields | |
| Ssl_scanned | additional.fields | |
| av_scanned_up | additional.fields | |
| av_scanned_down | additional.fields | |
| rbi | additional.fields | |
| dlp | additional.fields | |
| intermediary_ip1 | intermediary.ip | Unito da intermediary_ip1, intermediary_ip2, client_ip |
| intermediary_ip2 | intermediary.ip | |
| client_ip | intermediary.ip | |
| intermediary_port | intermediary.port | Convertito in numero intero |
| uriScheme | metadata.event_type | Impostato su "GENERIC_EVENT", sostituito da "NETWORK_HTTP" se uriScheme è in ["http", "https"] |
| uriScheme | network.application_protocol | Impostato su "HTTPS" se uriScheme corrisponde a "https", "HTTP" se corrisponde a "http" |
| http_action | network.http.method | Valore copiato direttamente |
| user_agent_comment | network.http.parsed_user_agent | Convertito in user agent analizzato |
| httpStatusCode | network.http.response_code | Convertito in numero intero |
| user_agent_comment | network.http.user_agent | Valore copiato direttamente |
| serverToClientBytes | network.received_bytes | Convertito in uinteger |
| clientToServerBytes | network.sent_bytes | Convertito in uinteger |
| Nome file | principal.file.full_path | Valore copiato direttamente |
| source_ip | principal.ip | Valore copiato direttamente |
| country | principal.location.country_or_region | Valore copiato direttamente |
| process_name | principal.process.command_line | Valore copiato direttamente |
| Ssl_client_prot | principal.resource.attribute.labels | Unito alle etichette di Ssl_client_prot, Ssl_server_prot |
| Ssl_server_prot | principal.resource.attribute.labels | |
| url | principal.url | Valore copiato direttamente |
| nome utente | principal.user.userid | Valore copiato direttamente |
| blockReason | security_result.action | Impostato su "ALLOW", sostituito da "BLOCK" se blockReason non è vuoto |
| risultato | security_result.action_details | Valore copiato direttamente |
| categoria | security_result.category_details | Valore copiato direttamente |
| virus | security_result.detection_fields | Unito alle etichette di virus, Location, lastRule, applicationType, Mw_probablility, Discarded_host, domain_fronting_url |
| Località | security_result.detection_fields | |
| lastRule | security_result.detection_fields | |
| applicationType | security_result.detection_fields | |
| Mw_probablility | security_result.detection_fields | |
| Discarded_host | security_result.detection_fields | |
| domain_fronting_url | security_result.detection_fields | |
| blockReason | security_result.summary | Valore copiato direttamente |
| requested_path | target.file.full_path | Valore copiato direttamente |
| requested_host | target.hostname | Valore copiato direttamente |
| destination_ip | target.ip | Valore copiato direttamente |
| userID | target.user.userid | Valore copiato direttamente |
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.