Raccogliere i log degli host AWS EC2

Supportato in:

Questo documento spiega come integrare i log degli host AWS EC2 in Google Security Operations per il monitoraggio e l'analisi. L'integrazione prevede l'analisi e la mappatura dei log degli host EC2 al modello UDM (Unified Data Model), l'esecuzione della trasformazione dei dati e la creazione di relazioni tra host ed istanze EC2. I log forniscono informazioni preziose su istanze, proprietà host, tipi di istanze e metriche sul rendimento che possono essere utilizzate per il monitoraggio della sicurezza, il controllo e la conformità.

Prima di iniziare

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

Configura AWS IAM e S3

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

Configura CloudTrail per AWS KMS

  1. Accedi alla AWS Management Console.
  2. Nella barra di ricerca, digita e seleziona CloudTrail dall'elenco dei servizi.
  3. Fai clic su Crea percorso.
  4. Fornisci un nome del percorso, ad esempio EC2-Activity-Trail.
  5. Seleziona la casella di controllo Attiva per tutti gli account della mia organizzazione.
  6. Digita l'URI del bucket S3 creato in precedenza (il formato deve essere: s3://your-log-bucket-name/) o crea un nuovo bucket S3.
  7. Se SSE-KMS è abilitato, fornisci un nome per l'alias AWS KMS o scegli una chiave AWS KMS esistente.
  8. Puoi lasciare invariate le altre impostazioni.
  9. Fai clic su Avanti.
  10. Seleziona Eventi di gestione e Eventi relativi ai dati in Tipi di eventi per acquisire l'attività dell'host EC2.
  11. Fai clic su Avanti.
  12. Rivedi le impostazioni in Rivedi e crea.
  13. Fai clic su Crea percorso.
  14. (Facoltativo) Se hai creato un nuovo bucket, continua con la procedura seguente:
    • Vai a S3.
    • Identifica e seleziona il bucket di log appena creato.
    • Seleziona la cartella AWSLogs.
    • Fai clic su Copia URI S3 e salvalo.

Configura un feed in Google SecOps per importare gli host AWS EC2

  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 host AWS EC2.
  4. Seleziona Amazon S3 come Tipo di origine.
  5. Seleziona Host AWS EC2 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://your-log-bucket-name/
        • Sostituisci your-log-bucket-name con il nome effettivo del bucket.
    • L'URI è una: seleziona Directory o 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 dell'asset: lo spazio dei nomi dell'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
AllocationTime entity.metadata.creation_timestamp Il campo AllocationTime viene analizzato come timestamp e mappato al campo creation_timestamp. L'analizzatore tenta vari formati (aaaa-MM-gg HH:mm:ss, RFC 3339, UNIX, ISO8601).
AllowsMultipleInstanceTypes entity.entity.asset.attribute.labels.value Il valore di AllowsMultipleInstanceTypes dal log non elaborato viene utilizzato come valore di un'etichetta. La chiave per questa etichetta è impostata su allows_multiple_instance_types.
AutoPlacement entity.entity.asset.attribute.labels.value Il valore di AutoPlacement dal log non elaborato viene utilizzato come valore di un'etichetta. La chiave per questa etichetta è impostata su auto_placement.
AvailabilityZone entity.entity.asset.attribute.cloud.availability_zone Il campo AvailabilityZone è mappato direttamente al campo availability_zone.
AvailabilityZoneID entity.entity.asset.attribute.labels.value Il valore di AvailabilityZoneID dal log non elaborato viene utilizzato come valore di un'etichetta. La chiave per questa etichetta è impostata su availability_zone_id.
AvailableCapacity.AvailableInstanceCapacity.AvailableCapacity entity.entity.asset.attribute.labels.value Il valore di AvailableCapacity.AvailableInstanceCapacity.AvailableCapacity (o AvailableCapacity.Instance.Available dopo la ridenominazione) viene convertito in una stringa e utilizzato come valore di un'etichetta. La chiave è impostata su available_instance_capacity_available_capacity.
AvailableCapacity.AvailableInstanceCapacity.InstanceType entity.entity.asset.attribute.labels.value Il valore di AvailableCapacity.AvailableInstanceCapacity.InstanceType (o AvailableCapacity.Instance.Type dopo la ridenominazione) viene utilizzato come valore di un'etichetta. La chiave è impostata su available_instance_capacity_instance_type.
AvailableCapacity.AvailableInstanceCapacity.TotalCapacity entity.entity.asset.attribute.labels.value Il valore di AvailableCapacity.AvailableInstanceCapacity.TotalCapacity (o AvailableCapacity.Instance.Total dopo la ridenominazione) viene convertito in una stringa e utilizzato come valore di un'etichetta. La chiave è impostata su total_capacity.
AvailableCapacity.AvailableVCpus entity.entity.asset.attribute.labels.value Il valore di AvailableCapacity.AvailableVCpus (o AvailableCapacity.VCPUs dopo la ridenominazione) viene convertito in una stringa e utilizzato come valore di un'etichetta. La chiave è impostata su available_v_cpus.
ClientToken entity.entity.asset.attribute.labels.value Il valore di ClientToken dal log non elaborato viene utilizzato come valore di un'etichetta. La chiave per questa etichetta è impostata su client_token.
HostID entity.metadata.product_entity_id Il campo HostID (o ID dopo la ridenominazione) è mappato direttamente al campo product_entity_id.
HostID entity.entity.asset.asset_id Il campo HostID (o ID dopo la ridenominazione) è mappato direttamente al campo asset_id.
HostMaintenance entity.entity.asset.attribute.labels.value Il valore di HostMaintenance (o Maintenance dopo la ridenominazione) dal log non elaborato viene utilizzato come valore di un'etichetta. La chiave per questa etichetta è impostata su host_maintenance.
HostProperties.Cores entity.entity.asset.hardware.cpu_number_cores Il valore di HostProperties.Cores viene convertito in un numero intero non firmato e mappato a cpu_number_cores.
HostProperties.InstanceFamily entity.entity.asset.attribute.labels.value Il valore di HostProperties.InstanceFamily dal log non elaborato viene utilizzato come valore di un'etichetta. La chiave per questa etichetta è impostata su host_properties_instance_family.
HostProperties.InstanceType entity.entity.asset.attribute.labels.value Il valore di HostProperties.InstanceType dal log non elaborato viene utilizzato come valore di un'etichetta. La chiave per questa etichetta è impostata su host_properties_instance_type.
HostProperties.Sockets entity.entity.asset.attribute.labels.value Il valore di HostProperties.Sockets viene convertito in una stringa e utilizzato come valore di un'etichetta. La chiave è impostata su host_properties_sockets.
HostProperties.TotalVCpus entity.entity.asset.attribute.labels.value Il valore di HostProperties.TotalVCpus (o HostProperties.TotalVCPUs dopo la ridenominazione) viene convertito in una stringa e utilizzato come valore di un'etichetta. La chiave è impostata su host_properties_total_v_cpus.
HostRecovery entity.entity.asset.attribute.labels.value Il valore di HostRecovery (o Recovery dopo la ridenominazione) dal log non elaborato viene utilizzato come valore di un'etichetta. La chiave per questa etichetta è impostata su host_recovery.
HostReservationID entity.entity.asset.attribute.labels.value Il valore di HostReservationID (o ReservationID dopo la ridenominazione) dal log non elaborato viene utilizzato come valore di un'etichetta. La chiave per questa etichetta è impostata su host_reservation_id.
MemberOfServiceLinkedResourceGroup entity.entity.asset.attribute.labels.value Il valore di MemberOfServiceLinkedResourceGroup viene convertito in una stringa e utilizzato come valore di un'etichetta. La chiave è impostata su member_of_service_linked_resource_group.
OwnerID entity.entity.asset.attribute.labels.value Il valore di OwnerID dal log non elaborato viene utilizzato come valore di un'etichetta. La chiave per questa etichetta è impostata su owner_id.
ReleaseTime entity.entity.asset.attribute.labels.value Il valore di ReleaseTime dal log non elaborato viene utilizzato come valore di un'etichetta. La chiave per questa etichetta è impostata su release_time.
State entity.entity.asset.attribute.labels.value Il valore di State dal log non elaborato viene utilizzato come valore di un'etichetta. La chiave per questa etichetta è impostata su state.
TagSet entity.entity.asset.attribute.labels L'array TagSet viene sottoposto a un'iterazione e Key e Value di ogni tag vengono utilizzati rispettivamente come chiave e valore di un'etichetta. Il valore AMAZON_WEB_SERVICES viene assegnato a questo campo dall'analizzatore. Il valore collection_time del log non elaborato viene mappato al campo collected_timestamp. Il valore ASSET viene assegnato a questo campo dall'analizzatore. Il valore AWS EC2 HOSTS viene assegnato a questo campo dall'analizzatore. Il valore AWS viene assegnato a questo campo dall'analizzatore. Le relazioni sono derivate dai campi Instances e OutpostArn, ma questi campi non sono mappati direttamente all'oggetto IDM. La logica del parser crea oggetti di relazione in base a questi campi e li unisce nell'array relations.
collection_time entity.metadata.collected_timestamp Il collection_time del log viene utilizzato come collected_timestamp dell'evento.

Modifiche

2024-01-31

  • È stato aggiunto il supporto del nuovo schema.

2023-12-14

  • Parser appena creato.

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