Raccogliere i log di AWS Elastic Load Balancing

Supportato in:

Questo documento spiega come raccogliere i log di AWS Elastic Load Balancing configurando un feed di Google Security Operations. L'analizzatore sintattico converte i log in formato UDM. Utilizza pattern grok per estrarre i campi dai messaggi formattati sia CEF che 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 inoltre l'elaborazione condizionale in base alla presenza o al formato di determinati campi per garantire una rappresentazione accurata dell'UDM.

Prima di iniziare

  • Assicurati di avere un'istanza Google SecOps.
  • Assicurati di disporre dell'accesso con privilegi ad AWS.

Configura AWS Elastic Load Balancing

Configura il bucket Amazon S3

  1. Accedi alla console AWS.
  2. Crea un bucket Amazon S3 seguendo questa guida dell'utente: Creare un bucket
  3. Salva il nome (ad esempio elb-logs) e la regione del bucket per utilizzarli in un secondo momento.
  4. Crea un utente seguendo questa guida dell'utente: Creare un utente IAM.
  5. Seleziona l'utente creato.
  6. Seleziona la scheda Credenziali di sicurezza.
  7. Fai clic su Crea chiave di accesso nella sezione Chiavi di accesso.
  8. Seleziona Servizio di terze parti come Caso d'uso.
  9. Fai clic su Avanti.
  10. (Facoltativo) Aggiungi un tag di descrizione.
  11. Fai clic su Crea chiave di accesso.
  12. Fai clic su Scarica file CSV per salvare la chiave di accesso e la chiave di accesso segreta per utilizzarle in un secondo momento.
  13. Fai clic su Fine.
  14. Seleziona la scheda Autorizzazioni.
  15. Fai clic su Aggiungi autorizzazioni nella sezione Criteri di autorizzazione.
  16. Seleziona Aggiungi autorizzazioni.
  17. Seleziona Collega direttamente i criteri.
  18. Cerca e seleziona il criterio AmazonS3FullAccess.
  19. Fai clic su Avanti.
  20. Fai clic su Aggiungi autorizzazioni.

Configurare AWS Elastic Load Balancer per abilitare i log di accesso

  1. Accedi alla Console di gestione AWS.
  2. Cerca e seleziona EC2.
  3. Seleziona Bilanciatori del carico nel menu di navigazione.
  4. Seleziona il bilanciatore del carico per cui vuoi attivare il logging.
  5. Nella scheda Descrizione, scorri fino ad Attributi.
  6. Fai clic su Modifica attributi.
  7. Attiva i log di accesso selezionando Attiva.
  8. Seleziona il bucket S3 creato in precedenza (ad esempio elb-logs).
  9. (Facoltativo) Imposta il prefisso del log per facilitare l'identificazione dei log (ad esempio elb/access-logs/).
  10. Fai clic su Salva.

Configura un feed in Google SecOps per importare i log di AWS Elastic Load Balancer

  1. Vai a Impostazioni SIEM > Feed.
  2. Fai clic su Aggiungi nuovo.
  3. Nel campo Nome feed, inserisci un nome per il feed (ad esempio Log di AWS Elastic Load Balancer).
  4. Seleziona Amazon S3 come Tipo di origine.
  5. Seleziona AWS Elastic Load Balancer come Tipo di log.
  6. Fai clic su Avanti.
  7. Specifica i valori per i seguenti parametri di input:

    • 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 bucket.
    • 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.
    • ID chiave di accesso: la chiave di accesso utente con accesso al bucket S3.
    • Chiave di accesso segreta: la chiave segreta dell'utente con accesso al bucket S3.
    • Spazio dei nomi degli asset: lo spazio dei nomi degli asset.
    • Etichette di importazione: l'etichetta da applicare agli eventi di questo feed.
  8. Fai clic su Avanti.

  9. Rivedi la configurazione del nuovo feed nella schermata Concludi e poi fai clic su Invia.

Tabella di mappatura UDM

Campo log Mappatura UDM Logica
actions_executed security_result.action Se actions_executed è "waf,forward" o "waf,redirect", imposta il valore su "ALLOW". Se actions_executed è "waf", imposta "BLOCK".
chosen_cert_arn principal.user.attribute.labels Se chosen_cert_arn contiene "sessione", mappa il relativo valore a security_result.description. In caso contrario, crea un'etichetta con chiave "ARN" e valore chosen_cert_arn e aggiungila all'array principal.user.attribute.labels.
chosen_cert_arn security_result.description Se chosen_cert_arn contiene "sessione", mappa il relativo valore a questo campo.
client_ip principal.asset.ip Mappatura diretta.
client_ip principal.ip Mappatura diretta.
client_port principal.port Mappatura diretta.
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 Vari Analizzati 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 "Supporto JavaScript" e il valore da cs2Label.
data.cs3Label (CEF) additional.fields Crea una coppia chiave-valore con la chiave "Assistenza CO" e il valore da cs3Label.
data.cs4Label (CEF) additional.fields Crea una coppia chiave-valore con chiave "VID" e valore da cs4Label.
data.cs5Label (CEF) additional.fields Crea una coppia chiave-valore con chiave "clappsig" e valore da cs5Label.
data.cs6Label (CEF) additional.fields Crea una coppia chiave-valore con chiave "clapp" e valore da cs6Label.
data.cs7Label (CEF) additional.fields Crea una coppia chiave-valore con chiave "latitude" e valore da cs7Label.
data.deviceExternalId (CEF) about.asset.asset_id Utilizzato nell'ambito 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 Mappatura diretta.
data.dst_ip target.ip Mappatura diretta.
data.dst_port target.port Mappatura diretta.
data.elb target.resource.id Mappatura diretta.
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 a 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 da 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 di crittografia viene estratta utilizzando grok e mappata.
data.xff (CEF) principal.ip Mappato direttamente dal campo CEF.
domain_name principal.administrative_domain Mappatura diretta.
http_method network.http.method Mappatura diretta.
log_type metadata.log_type Mappatura diretta.
message Vari Analizzati utilizzando pattern Grok per estrarre più campi. Consulta le altre righe per mappature specifiche.
received_bytes network.received_bytes Mappatura diretta.
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 Mappata 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 Mappatura diretta.
ssl_cipher network.tls.cipher Mappatura diretta.
ssl_protocol network.tls.version Mappatura diretta.
target_group_arn target.group.group_display_name Mappatura diretta.
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 Mappata direttamente dopo l'analisi della data.
trace_id metadata.product_log_id Mappato direttamente dopo la rimozione di "Root=".
url network.http.referral_url Mappatura diretta.
user_agent network.http.user_agent Mappatura diretta.
(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 di destinazione, nome host o IP di destinazione e su "NETWORK_HTTP" in caso contrario.
(Parser) metadata.product_name Imposta su "AWS Elastic Load Balancer".
(Parser) metadata.vendor_name Impostato su "AMAZON".

Modifiche

2024-03-22

  • È stato aggiunto un nuovo pattern Grok per supportare il nuovo pattern dei log JSON.
  • È stato aggiunto il supporto per i log dei pattern CEF.
  • "dst_ip" è stato mappato a "target.ip".
  • "dst_port" è stato mappato a "target.port".
  • "sip" è stato mappato a "principal.ip".
  • "request_processing_time", "target_processing_time", "siteid", "fileId" e "response_processing_time" sono stati mappati a "security_result.detection.fields".
  • Mappature allineate per "principal.ip" e "principal.asset.ip".
  • Mappature allineate per "target.ip" e "target.asset.ip".
  • Mappature allineate per "target.hostname" e "target.asset.hostname".
  • "cipher" è stato mappato a "network.tls.cipher".
  • "version" è stato mappato a "network.tls.version".
  • "Cliente" è stato mappato a "principal.user.user_display_name".

2022-05-27

  • Miglioramento: il valore memorizzato in metadata.product_name è stato modificato in "AWS Elastic Load Balancer".

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.