Raccogliere i log di AWS Elastic Load Balancing
Questo documento spiega come raccogliere i log di AWS Elastic Load Balancing configurando un feed Google Security Operations. Il parser converte i log in formato UDM. Utilizza i pattern grok per estrarre i campi dai messaggi in formato CEF e non CEF, mappandoli ai campi UDM e gestendo varie trasformazioni dei dati, inclusa la logica specifica per i campi HTTP, TLS e relativi alla sicurezza. Esegue anche l'elaborazione condizionale in base alla presenza o al formato di determinati campi per garantire una rappresentazione accurata di UDM.
Prima di iniziare {: #before-you-begin }
Assicurati di soddisfare i seguenti prerequisiti:
- Istanza Google SecOps
- Accesso privilegiato ad AWS
Configura AWS Elastic Load Balancing
- Abilita il logging degli accessi per inviare i log di accesso a un bucket di archiviazione S3
- Crea un Amazon Simple Queue Service (SQS) e collegalo a un bucket di archiviazione S3.
Configura il bucket Amazon S3
- Accedi alla console AWS.
- Crea un bucket Amazon S3 seguendo questa guida utente: Creazione di un bucket
- Salva il nome del bucket (ad esempio
elb-logs
) e la regione per un utilizzo successivo. - Crea un utente seguendo questa guida: Creazione di un utente IAM.
- Seleziona l'utente creato.
- Seleziona la scheda Credenziali di sicurezza.
- Fai clic su Crea chiave di accesso nella sezione Chiavi di accesso.
- Seleziona Servizio di terze parti come Caso d'uso.
- Fai clic su Avanti.
- (Facoltativo) Aggiungi un tag di descrizione.
- Fai clic su Crea chiave di accesso.
- Fai clic su Scarica file CSV per salvare la chiave di accesso e la chiave di accesso segreta per un utilizzo successivo.
- Fai clic su Fine.
- Seleziona la scheda Autorizzazioni.
- Fai clic su Aggiungi autorizzazioni nella sezione Norme relative alle autorizzazioni.
- Seleziona Aggiungi autorizzazioni.
- Seleziona Allega direttamente le norme.
- Cerca e seleziona il criterio AmazonS3FullAccess.
- Fai clic su Avanti.
- Fai clic su Aggiungi autorizzazioni.
Come configurare AWS Elastic Load Balancer per abilitare i log di accesso
- Accedi alla console di gestione AWS.
- Cerca e seleziona EC2.
- Nel menu di navigazione, seleziona Bilanciatori del carico.
- Seleziona il bilanciatore del carico per il quale vuoi attivare la registrazione.
- Nella scheda Descrizione, scorri fino a Attributi.
- Fai clic su Modifica attributi.
- Attiva i log di accesso selezionando Attiva.
- Seleziona il bucket S3 creato in precedenza (ad esempio,
elb-logs
). - (Facoltativo) Imposta il prefisso del log per identificare più facilmente i log (ad esempio,
elb/access-logs/
). - Fai clic su Salva.
Configurare i feed
Esistono due diversi punti di accesso per configurare i feed nella piattaforma Google SecOps:
- Impostazioni SIEM > Feed
- Hub dei contenuti > Pacchetti di contenuti
Configurare i feed da Impostazioni SIEM > Feed
Per configurare più feed per diversi tipi di log all'interno di questa famiglia di prodotti, consulta Configurare i feed per prodotto.
Per configurare un singolo feed:
- Vai a Impostazioni SIEM > 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 Log di AWS Elastic Load Balancer).
- Seleziona Amazon S3 come Tipo di origine.
- Seleziona AWS Elastic Load Balancer come Tipo di log.
- Fai clic su Avanti.
Specifica i valori per i seguenti parametri di input:
- Region (Regione): la regione in cui si trova il bucket Amazon S3.
- URI S3: l'URI del bucket.
s3:/BUCKET_NAME
- Sostituisci
BUCKET_NAME
con il nome effettivo del tuo bucket S3.
- Sostituisci
- L'URI è un: seleziona il TIPO DI URI in base alla configurazione dello stream di log (File singolo | Directory | Directory che include sottodirectory).
- Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze di importazione.
ID chiave di accesso: la chiave di accesso dell'utente con autorizzazioni di lettura dal bucket S3.
Chiave di accesso segreta: la chiave segreta dell'utente con le autorizzazioni per leggere dal bucket S3.
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.
Configurare i feed dall'hub dei contenuti
Specifica i valori per i seguenti campi:
- Region (Regione): la regione in cui si trova il bucket Amazon S3.
- URI S3: l'URI del bucket.
s3:/BUCKET_NAME
- Sostituisci
BUCKET_NAME
con il nome effettivo del tuo bucket S3.
- Sostituisci
- L'URI è un: seleziona il TIPO DI URI in base alla configurazione dello stream di log (File singolo | Directory | Directory che include sottodirectory).
- Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze di importazione.
ID chiave di accesso: la chiave di accesso dell'utente con autorizzazioni di lettura dal bucket S3.
Chiave di accesso segreta: la chiave segreta dell'utente con le autorizzazioni per leggere dal bucket S3.
Opzioni avanzate
- Nome feed: un valore precompilato che identifica il feed.
- Tipo di origine: metodo utilizzato per raccogliere i log in Google SecOps.
- Spazio dei nomi dell'asset: spazio dei nomi associato al feed.
- Etichette di importazione: etichette applicate a tutti gli eventi di questo feed.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logic |
---|---|---|
actions_executed |
security_result.action |
Se actions_executed è "waf,forward" o "waf,redirect", imposta il valore su "ALLOW". Se actions_executed è "waf", impostalo su "BLOCK". |
chosen_cert_arn |
principal.user.attribute.labels |
Se chosen_cert_arn contiene "sessione", mappa il suo valore a security_result.description . In caso contrario, crea un'etichetta con la chiave "ARN" e il valore chosen_cert_arn e aggiungila all'array principal.user.attribute.labels . |
chosen_cert_arn |
security_result.description |
Se chosen_cert_arn contiene "session", mappa il suo valore a questo campo. |
client_ip |
principal.asset.ip |
Mappato direttamente. |
client_ip |
principal.ip |
Mappato direttamente. |
client_port |
principal.port |
Mappato direttamente. |
classification |
security_result.rule_name |
Mappato direttamente se non è vuoto o "-". |
classification_reason |
security_result.summary |
Mappato direttamente se non è vuoto o "-". |
Customer (CEF) |
principal.user.user_display_name |
Mappato direttamente dal campo CEF. |
data |
Varie | Analizzato utilizzando pattern grok per estrarre più campi. Consulta le altre righe per mappature specifiche. |
data.act (CEF) |
security_result.action_details |
Mappato direttamente dal campo CEF. |
data.app (CEF) |
principal.application |
Mappato direttamente dal campo CEF. |
data.ccode (CEF) |
principal.location.country |
Mappato direttamente dal campo CEF. |
data.cicode (CEF) |
principal.location.city |
Mappato direttamente dal campo CEF. |
data.cn1 (CEF) |
network.http.response_code |
Mappato direttamente dal campo CEF. |
data.cpt (CEF) |
principal.port |
Mappato direttamente dal campo CEF. |
data.cs1Label (CEF) |
additional.fields |
Crea una coppia chiave-valore con la chiave "Cap Support" e il valore di cs1Label . |
data.cs2Label (CEF) |
additional.fields |
Crea una coppia chiave-valore con la chiave "Javascript Support" e il valore di cs2Label . |
data.cs3Label (CEF) |
additional.fields |
Crea una coppia chiave-valore con la chiave "CO Support" e il valore di cs3Label . |
data.cs4Label (CEF) |
additional.fields |
Crea una coppia chiave-valore con la chiave "VID" e il valore di cs4Label . |
data.cs5Label (CEF) |
additional.fields |
Crea una coppia chiave-valore con la chiave "clappsig" e il valore di cs5Label . |
data.cs6Label (CEF) |
additional.fields |
Crea una coppia chiave-valore con la chiave "clapp" e il valore di cs6Label . |
data.cs7Label (CEF) |
additional.fields |
Crea una coppia chiave-valore con la chiave "latitude" e il valore di cs7Label . |
data.deviceExternalId (CEF) |
about.asset.asset_id |
Utilizzato come parte dell'ID risorsa: Incapsula.SIEMintegration:deviceExternalId . |
data.deviceFacility (CEF) |
principal.location.region |
Mappato direttamente dal campo CEF. |
data.dproc (CEF) |
target.process.command_line |
Mappato direttamente dal campo CEF. |
data.dst_ip |
target.asset.ip |
Mappato direttamente. |
data.dst_ip |
target.ip |
Mappato direttamente. |
data.dst_port |
target.port |
Mappato direttamente. |
data.elb |
target.resource.id |
Mappato direttamente. |
data.fileId (CEF) |
security_result.detection_fields |
Crea una coppia chiave-valore con la chiave "fileId" e il valore di fileId . |
data.in (CEF) |
network.received_bytes |
Mappato direttamente dal campo CEF. |
data.request (CEF) |
target.url |
Mappato direttamente dal campo CEF. |
data.requestClientApplication (CEF) |
network.http.user_agent |
Mappato direttamente dal campo CEF. |
data.requestMethod (CEF) |
network.http.method |
Mappato direttamente dal campo CEF. |
data.severity (CEF) |
security_result.severity |
Mappato su LOW se la gravità è 0. |
data.sip (CEF) |
principal.asset.ip |
Mappato direttamente dal campo CEF. |
data.sip (CEF) |
principal.ip |
Mappato direttamente dal campo CEF. |
data.siteid (CEF) |
security_result.detection_fields |
Crea una coppia chiave-valore con la chiave "siteid" e il valore di siteid . |
data.sourceServiceName (CEF) |
principal.application |
Mappato direttamente dal campo CEF. |
data.spt (CEF) |
principal.port |
Mappato direttamente dal campo CEF. |
data.src (CEF) |
principal.ip |
Mappato direttamente dal campo CEF. |
data.suid (CEF) |
principal.user.userid |
Mappato direttamente dal campo CEF. |
data.ver (CEF) |
network.tls.version |
La parte della versione viene estratta utilizzando grok e mappata. |
data.ver (CEF) |
network.tls.cipher |
La parte della cifra viene estratta utilizzando grok e mappata. |
data.xff (CEF) |
principal.ip |
Mappato direttamente dal campo CEF. |
domain_name |
principal.administrative_domain |
Mappato direttamente. |
http_method |
network.http.method |
Mappato direttamente. |
log_type |
metadata.log_type |
Mappato direttamente. |
message |
Varie | Analizzato utilizzando pattern grok per estrarre più campi. Consulta le altre righe per mappature specifiche. |
received_bytes |
network.received_bytes |
Mappato direttamente. |
redirect_url |
network.application_protocol |
Se redirect_url inizia con "http", il protocollo viene estratto e mappato. |
redirect_url |
target.asset.hostname |
Se redirect_url inizia con "http", il nome host viene estratto e mappato. |
redirect_url |
target.hostname |
Se redirect_url inizia con "http", il nome host viene estratto e mappato. |
redirect_url |
target.port |
Se redirect_url inizia con "http", la porta viene estratta e mappata. |
request_creation_time |
metadata.collected_timestamp |
Mappato direttamente dopo l'analisi della data. |
request_processing_time |
security_result.detection_fields |
Crea una coppia chiave-valore con la chiave "request_processing_time" e il valore di questo campo. |
response_processing_time |
security_result.detection_fields |
Crea una coppia chiave-valore con la chiave "response_processing_time" e il valore di questo campo. |
sent_bytes |
network.sent_bytes |
Mappato direttamente. |
ssl_cipher |
network.tls.cipher |
Mappato direttamente. |
ssl_protocol |
network.tls.version |
Mappato direttamente. |
target_group_arn |
target.group.group_display_name |
Mappato direttamente. |
target_processing_time |
security_result.detection_fields |
Crea una coppia chiave-valore con la chiave "target_processing_time" e il valore di questo campo. |
target_status_code |
target.labels |
Crea un'etichetta con la chiave "target_status_code" e il valore di questo campo e la aggiunge all'array target.labels . |
time |
metadata.event_timestamp |
Mappato direttamente dopo l'analisi della data. |
trace_id |
metadata.product_log_id |
Mappato direttamente dopo la rimozione di "Root=". |
url |
network.http.referral_url |
Mappato direttamente. |
user_agent |
network.http.user_agent |
Mappato direttamente. |
(Parser) | metadata.event_type |
Imposta su "NETWORK_HTTP" se sono presenti gli ID macchina principale e di destinazione, su "STATUS_UPDATE" se è presente solo l'ID macchina principale, su "GENERIC_EVENT" se non sono presenti IP, nome host o IP di destinazione e su "NETWORK_HTTP" in caso contrario. |
(Parser) | metadata.product_name |
Imposta "AWS Elastic Load Balancer". |
(Parser) | metadata.vendor_name |
Imposta il valore su "AMAZON". |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.