Raccogli i log di flusso VPC di AWS

Supportato in:

Questo documento descrive come raccogliere i log di flusso VPC di AWS utilizzando un forwarder Google Security Operations.

Per ulteriori informazioni, vedi Importazione dei dati in Google SecOps.

Un'etichetta di importazione identifica il parser che normalizza i dati di log non elaborati in formato UDM strutturato. Le informazioni contenute in questo documento si applicano al parser con l'etichetta di importazione AWS_VPC_FLOW.

Formati dei log di flusso VPC AWS supportati

Google SecOps supporta l'importazione dei log di flusso VPC di AWS in due formati di testo principali:

  • Formato JSON:il tipo di log AWS_VPC_FLOW analizza i log in formato JSON. In questo formato, ogni voce di log include sia una chiave sia il valore corrispondente, rendendo i dati autodescrittivi.

  • Formato CSV: Google SecOps fornisce anche un parser per i log di flusso VPC di AWS in formato CSV. Questo formato elenca le chiavi dei campi una sola volta nella riga di intestazione, mentre le righe successive contengono solo valori separati da virgole.

Per importare i log di flusso VPC di AWS in formato CSV, specifica il tipo di log come AWS_VPC_FLOW_CSV quando configuri il forwarder. Per le istruzioni di configurazione, vedi Configurare il forwarder Google SecOps e syslog per l'importazione dei log di flusso VPC di AWS.

Poiché il formato CSV non include le chiavi dei campi in ogni voce di log, il parser AWS_VPC_FLOW_CSV si basa su un ordine rigoroso e predefinito dei valori. Per una corretta analisi, i file CSV devono rispettare il seguente ordine dei campi:

   Version,Account_id,Interface_id,Srcaddr,Dstaddr,Srcport,Dstport,Protocol,Packets,Bytes,Start,End,Action,Log_status,Vpc_id,Subnet_id,Instance_id,Tcp_flags,Type,Pkt_srcaddr,Pkt_dstaddr,Region,Az_id,Sublocation_type,Sublocation_id,Pkt_src_aws_service,Pkt_dst_aws_service,Flow_direction,Traffic_path,Ecs_cluster_arn,Ecs_cluster_name,Ecs_container_instance_arn,Ecs_container_instance_id,Ecs_container_id,Ecs_second_container_id,Ecs_service_name,Ecs_task_definition_arn,Ecs_task_arn,Ecs_task_id

Di seguito è riportato un esempio di riga di log CSV:

   7,369096419186,eni-0520bb5efed19d33a,10.119.32.34,10.119.223.3,51256,16020,6,14,3881,1723542839,1723542871,ACCEPT,OK,vpc-0769a6844ce873a6a,subnet-0cf9b2cb32f49f258,i-088d6080f45f5744f,0,IPv4,10.119.32.34,10.119.223.3,ap-northeast-1,apne1-az4,-,-,-,-,ingress,,-,-,-,-,-,-,-,-,-,-

Per i campi in cui non è disponibile alcun valore, deve essere passato un valore vuoto (ad esempio , ,) per mantenere l'ordine posizionale corretto all'interno della riga CSV.

Prima di iniziare

Configura il flusso VPC AWS

Configura il flusso VPC di AWS in base al fatto che inoltri i log ad Amazon S3 o ad Amazon CloudWatch.

Configura i log di flusso per inoltrare i log ad Amazon S3

Dopo aver creato e configurato il bucket Amazon S3, puoi creare log di flusso per le interfacce di rete, le subnet e le reti VPC.

Crea un log di flusso per un'interfaccia di rete

  1. Accedi alla console Amazon EC2.
  2. Nel riquadro di navigazione, seleziona Interfacce di rete.
  3. Seleziona una o più interfacce di rete.
  4. Seleziona Azioni > Crea log di flusso.
  5. Configura le impostazioni dei log di flusso. Per ulteriori informazioni, consulta la sezione Configurare le impostazioni dei log di flusso di questo documento.

Crea un log di flusso per una subnet

  1. Accedi alla console Amazon VPC.
  2. Nel riquadro di navigazione, seleziona Subnet.
  3. Seleziona una o più subnet.
  4. Seleziona Azioni > Crea log di flusso.
  5. Configura le impostazioni dei log di flusso. Per ulteriori informazioni, consulta la sezione Configurare le impostazioni dei log di flusso di questo documento.

Crea un log di flusso per un VPC

  1. Accedi alla console Amazon VPC.
  2. Nel riquadro di navigazione, seleziona VPC.
  3. Seleziona uno o più VPC.
  4. Seleziona Azioni > Crea log di flusso.
  5. Configura le impostazioni dei log di flusso. Per ulteriori informazioni, consulta la sezione Configurare le impostazioni dei log di flusso di questo documento.

Configura le impostazioni dei log di flusso

  1. Nella sezione Filtro, specifica il traffico IP da registrare:

    • Accetta: registra solo il traffico accettato.

    • Rifiuta: registra solo il traffico rifiutato.

    • Tutto: registra il traffico accettato e rifiutato.

  2. Nella sezione Intervallo di aggregazione massimo, seleziona 1 minuto.

  3. Nella sezione Destinazione, seleziona Invia a un bucket Amazon S3.

  4. Nella sezione ARN bucket S3, specifica l'ARN di un bucket Amazon S3.

  5. Nella sezione Formato record di log, specifica i seguenti formati per il record di log di flusso:

    1. Per utilizzare il formato predefinito dei record di log di flusso, seleziona Formato predefinito AWS.
    2. Per creare un formato personalizzato, seleziona Formato personalizzato.
  6. Configura il flusso di log VPC con il formato di log AWS personalizzato per utilizzare le funzionalità di IP vero di MSS.

  7. Nell'elenco Formato log, seleziona tutti gli attributi.

  8. Nella sezione Anteprima formato, esamina il formato personalizzato.

  9. Nella sezione Formato file di log, seleziona Testo (predefinito).

  10. Nella sezione Prefisso S3 compatibile con Hive, lascia deselezionata la casella di controllo Attiva.

  11. Nella sezione Partiziona i log per ora, seleziona Ogni ora (60 minuti).

  12. Per aggiungere un tag al log di flusso, seleziona Aggiungi nuovo tag e specifica la chiave e il valore del tag.

  13. Seleziona Crea log di flusso. Per maggiori informazioni, consulta Pubblicare i log di flusso su Amazon S3.

Configura i log di flusso in Amazon CloudWatch

Puoi configurare i log di flusso da VPC, subnet o interfacce di rete.

  1. Nella sezione Filtro, specifica il tipo di traffico IP da registrare:

    • Accetta: registra solo il traffico accettato.

    • Rifiuta: registra solo il traffico rifiutato.

    • Tutto: registra il traffico accettato e rifiutato.

  2. Nella sezione Intervallo di aggregazione massimo, seleziona 1 minuto.

  3. Nella sezione Destinazione, seleziona Invia a CloudWatch Logs.

  4. Nella sezione Gruppo di log di destinazione, fornisci il nome del gruppo di log di destinazione che hai creato.

  5. Nell'elenco Ruolo IAM, seleziona il nome del ruolo. Il nome del ruolo selezionato dispone delle autorizzazioni per pubblicare i log in CloudWatch Logs.

    Il ruolo IAM deve includere le seguenti autorizzazioni:

       {
         "Version": "2012-10-17",
         "Statement": [
           {
             "Effect": "Allow",
             "Action": [
               "logs:CreateLogGroup",
               "logs:CreateLogStream",
               "logs:PutLogEvents",
               "logs:DescribeLogGroups",
               "logs:DescribeLogStreams"
           ],
           "Resource": "*"
         }
        ]
       }
    
  6. Nella sezione Formato record log, seleziona Formato personalizzato per il record log di flusso.

  7. Per aggiungere un tag al log di flusso, seleziona Aggiungi nuovo tag e specifica la chiave e il valore del tag.

  8. Seleziona Crea log di flusso. Per maggiori informazioni, consulta Pubblicare i log di flusso su Amazon S3.

Amazon S3 può essere configurato per inviare le notifiche di eventi ad Amazon SQS. Per saperne di più, consulta Configurazione di un bucket per le notifiche (argomento SNS o coda SQS).

Se utilizzi Amazon SQS (Amazon S3 utilizzando Amazon SQS) come metodo di raccolta dei log, sono necessarie le policy utente IAM per Amazon S3 e Amazon SQS. Per ulteriori informazioni, consulta Utilizzare i criteri IAM con AWS KMS.

In base al servizio e alla regione, identifica gli endpoint per la connettività facendo riferimento alla seguente documentazione di AWS:

Configura Google SecOps Forwarder e Syslog per importare i log di flusso VPC di AWS

  1. Seleziona Impostazioni SIEM > Forwarder.
  2. Fai clic su Aggiungi nuovo inoltro.
  3. Inserisci un nome univoco per il nome del forwarder.
  4. Fai clic su Invia e poi su Conferma. Il forwarder viene aggiunto e viene visualizzata la finestra Aggiungi configurazione del raccoglitore.
  5. Nel campo Nome del raccoglitore, digita un nome.
  6. Nel campo Tipo di log, seleziona AWS VPC Flow o AWS VPC Flow (CSV), a seconda del formato del log.
  7. Nel campo Tipo di raccoglitore, seleziona Syslog.
  8. Configura i seguenti parametri di input obbligatori:
    • Protocollo: specifica il protocollo di connessione che il raccoglitore utilizzerà per ascoltare i dati syslog.
    • Indirizzo: specifica l'indirizzo IP o il nome host di destinazione in cui si trova il raccoglitore e gli indirizzi dei dati syslog.
    • Porta: specifica la porta di destinazione in cui risiede il raccoglitore e rimane in ascolto dei dati syslog.
  9. Fai clic su Invia e poi su Conferma.

Per ulteriori informazioni sui forwarder Google SecOps, consulta la documentazione sui forwarder di Google Security Operations. Per informazioni sui requisiti per ciascun tipo di forwarder, consulta Configurazione del forwarder per tipo.

Se riscontri problemi durante la creazione degli inoltri, contatta l'assistenza di Google Security Operations.

Riferimento alla mappatura dei campi

Questo parser trasforma i log di flusso VPC AWS non elaborati, in formato JSON o CSV, in formato UDM strutturato. Estrae i campi pertinenti, li mappa in modo che corrispondano allo schema UDM e arricchisce i dati con un contesto aggiuntivo, come il tipo di risorsa, il provider cloud e le etichette, per supportare un'analisi più approfondita. La logica di mappatura è coerente in entrambi i formati: il parser CSV si basa su un ordine di campi predefinito per allineare i valori agli stessi campi UDM utilizzati nel formato JSON.

Tabella di mappatura UDM per il parser VPC AWS EC2

Campo log (crescente) Mappatura UDM Logic
CidrBlock event.idm.entity.entity.resource.attribute.labels.cidr_block Mappato direttamente dal campo "CidrBlock" nel log non elaborato.
CidrBlock event.idm.entity.entity.network.ip_subnet_range Mappato direttamente dal campo "CidrBlock" nel log non elaborato.
CidrBlockAssociation.AssociationID event.idm.entity.entity.resource.attribute.labels.cidr_block_association_association_id Mappato direttamente dal campo "AssociationID" all'interno dell'array "CidrBlockAssociation" nel log non elaborato.
CidrBlockAssociation.CidrBlockState.State event.idm.entity.entity.resource.attribute.labels.cidr_block_association_cidr_block_state_state Mappato direttamente dal campo "State" all'interno dell'oggetto "CidrBlockState" dell'array "CidrBlockAssociation" nel log non elaborato.
CidrBlockAssociation.CidrBlockState.StatusMessage event.idm.entity.entity.resource.attribute.labels.cidr_block_association_cidr_block_state_status_message Mappato direttamente dal campo "StatusMessage" all'interno dell'oggetto "CidrBlockState" dell'array "CidrBlockAssociation" nel log non elaborato.
DhcpOptionsID event.idm.entity.entity.resource.attribute.labels.dhcp_options_id Mappato direttamente dal campo "DhcpOptionsID" nel log non elaborato.
ID event.idm.entity.entity.resource.product_object_id Mappato direttamente dal campo "ID" nel log non elaborato, che viene rinominato in "VpcID" nel parser.
ID event.idm.entity.metadata.product_entity_id Mappato direttamente dal campo "ID" nel log non elaborato, che viene rinominato in "VpcID" nel parser.
InstanceTenancy event.idm.entity.entity.resource.attribute.labels.instance_tenancy Mappato direttamente dal campo "InstanceTenancy" nel log non elaborato.
IsDefault event.idm.entity.entity.resource.attribute.labels.is_default Mappato direttamente dal campo "IsDefault" nel log non elaborato.
Ipv6CidrBlockAssociationSet.AssociationID event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_association_id Mappato direttamente dal campo "AssociationID" all'interno dell'array "Ipv6CidrBlockAssociationSet" nel log non elaborato.
Ipv6CidrBlockAssociationSet.Ipv6CidrBlock event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block Mappato direttamente dal campo "Ipv6CidrBlock" all'interno dell'array "Ipv6CidrBlockAssociationSet" nel log non elaborato.
Ipv6CidrBlockAssociationSet.Ipv6CidrBlockState.State event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block_state_state Mappato direttamente dal campo "State" all'interno dell'oggetto "Ipv6CidrBlockState" dell'array "Ipv6CidrBlockAssociationSet" nel log non elaborato.
Ipv6CidrBlockAssociationSet.Ipv6CidrBlockState.StatusMessage event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block_state_status_message Mappato direttamente dal campo "StatusMessage" all'interno dell'oggetto "Ipv6CidrBlockState" dell'array "Ipv6CidrBlockAssociationSet" nel log non elaborato.
Ipv6CidrBlockAssociationSet.Ipv6Pool event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_pool Mappato direttamente dal campo "Ipv6Pool" all'interno dell'array "Ipv6CidrBlockAssociationSet" nel log non elaborato.
Ipv6CidrBlockAssociationSet.NetworkBorderGroup event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_network_border_group Mappato direttamente dal campo "NetworkBorderGroup" all'interno dell'array "Ipv6CidrBlockAssociationSet" nel log non elaborato.
OwnerID event.idm.entity.entity.resource.attribute.labels.owner_id Mappato direttamente dal campo "OwnerID" nel log non elaborato.
Stato event.idm.entity.entity.resource.attribute.labels.state Mappato direttamente dal campo "Stato" nel log non elaborato.
TagSet.Key event.idm.entity.entity.resource.attribute.labels.key Mappato direttamente dal campo "Key" all'interno dell'array "TagSet" nel log non elaborato. Viene creata una nuova etichetta per ogni tag nel "TagSet".
TagSet.Value event.idm.entity.entity.resource.attribute.labels.value Mappato direttamente dal campo "Value" all'interno dell'array "TagSet" nel log non elaborato. In questo modo, viene compilato il valore per ogni etichetta corrispondente creata dal campo "Chiave".
N/D event.idm.entity.entity.resource.attribute.cloud.environment Codificato in modo permanente su "AMAZON_WEB_SERVICES" nel codice del parser.
N/D event.idm.entity.entity.resource.resource_type Codificato come "VPC_NETWORK" nel codice del parser.
N/D event.idm.entity.metadata.collected_timestamp Completato con il timestamp dell'evento, derivato dal campo "collection_time" nel log non elaborato.
N/D event.idm.entity.metadata.entity_type Hardcoded su "RESOURCE" nel codice del parser.
N/D event.idm.entity.metadata.product_name Codificato come "Amazon VPC" nel codice del parser.
N/D event.idm.entity.metadata.vendor_name Codificato come "AWS" nel codice del parser.
N/D events.timestamp Completato con il timestamp dell'evento, derivato dal campo "collection_time" nel log non elaborato.

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