Raccogliere i log di AWS Control Tower
Questo documento spiega come importare i log di AWS Control Tower in Google Security Operations. AWS Control Tower consente il monitoraggio della governance, della conformità e della sicurezza su più account AWS. Questa integrazione ti consente di analizzare i log di AWS Control Tower per una maggiore visibilità e una postura di sicurezza migliore.
Prima di iniziare
- Assicurati di avere un'istanza Google SecOps.
- Assicurati di disporre dell'accesso con privilegi ad AWS.
Configura il bucket Amazon S3
- Crea un bucket Amazon S3 seguendo questa guida dell'utente: Creare un bucket
- Salva Name e Region del bucket per utilizzarli in un secondo momento.
- Crea un utente seguendo questa guida dell'utente: Creare 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 utilizzarle in un secondo momento.
- Fai clic su Fine.
- Seleziona la scheda Autorizzazioni.
- Fai clic su Aggiungi autorizzazioni nella sezione Norme relative alle autorizzazioni.
- Seleziona Aggiungi autorizzazioni.
- Seleziona Collega direttamente i criteri.
- Cerca e seleziona i criteri AmazonS3FullAccess e CloudWatchLogsFullAccess.
- Fai clic su Avanti.
- Fai clic su Aggiungi autorizzazioni.
Configura CloudTrail in AWS Control Tower
- Accedi alla AWS Management Console.
- Vai ad AWS Control Tower.
- Nella barra di ricerca, digita CloudTrail e selezionalo dall'elenco dei servizi.
Fai clic su Crea percorso per creare un nuovo percorso.
Specifica le impostazioni del percorso:
- Nome del percorso: fornisci un nome significativo per il percorso (ad esempio, ControlTowerTrail).
- Applica il tracciato a tutte le regioni: assicurati di selezionare Sì per Applica il tracciato a tutte le regioni.
- Eventi di gestione: assicurati che gli eventi Lettura/scrittura siano impostati su Tutti.
- (Facoltativo) Eventi di dati: attiva gli eventi di dati S3 e gli eventi di dati Lambda per acquisire attività dettagliate dei dati.
- (Facoltativo) Convalida dei file di log: attiva questa opzione per assicurarti che i file di log non vengano manomessi dopo essere stati archiviati.
Nel selettore Evento, scegli di registrare gli eventi di gestione e gli eventi relativi ai dati.
Configura CloudTrail per inviare i log a un bucket S3
- Vai alla console AWS IAM.
- Fai clic su Ruoli.
- Cerca il ruolo utilizzato da CloudTrail
AWSServiceRoleForCloudTrail
(il ruolo viene creato automaticamente quando configuri CloudTrail). - Nella scheda Autorizzazioni del ruolo, fai clic su Allega norme.
- Cerca
CloudTrailS3DeliveryPolicy
. - Seleziona la casella di controllo accanto alle norme relative a
CloudTrailS3DeliveryPolicy
. - Fai clic su Allega criterio.
- Vai alla console CloudTrail di AWS.
- Nella sezione Posizione di archiviazione, seleziona S3 come destinazione per i file di log.
- Seleziona il bucket S3 che hai creato in precedenza.
- Fai clic su Consenti quando ti viene chiesto di concedere a CloudTrail l'autorizzazione a scrivere log nel bucket scelto.
- Rivedi le impostazioni e fai clic su Crea (o su Salva modifiche se stai modificando un percorso esistente).
Configura un feed in Google SecOps per importare i log di AWS Control Tower
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo.
- Nel campo Nome feed, inserisci un nome per il feed (ad esempio Log di AWS Control Tower).
- Seleziona Amazon S3 come Tipo di origine.
- Seleziona AWS Control Tower come Tipo di log.
- Fai clic su Avanti.
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.
- Sostituisci
- 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 degli asset: lo spazio dei nomi degli asset.
Etichette di importazione: l'etichetta da applicare agli eventi di questo feed.
Fai clic su Avanti.
Rivedi la configurazione del nuovo feed nella schermata Concludi e poi fai clic su Invia.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logica |
---|---|---|
awsAccountId | target.user.group_identifiers | L'ID account AWS associato all'evento. |
digestPublicKeyFingerprint | target.file.sha1 | L'impronta della chiave pubblica utilizzata per firmare il digest. |
digestPublicKeyFingerprint | target.resource.attribute.labels.value | L'impronta della chiave pubblica utilizzata per firmare il digest. |
digestS3Bucket | target.resource.name | Il nome del bucket S3 in cui è archiviato il digest. |
digestS3Object | target.file.full_path | Il percorso dell'oggetto digest nel bucket S3. |
digestSignatureAlgorithm | network.tls.cipher | L'algoritmo utilizzato per firmare il digest. |
digestSignatureAlgorithm | target.resource.attribute.labels.value | L'algoritmo utilizzato per firmare il digest. |
digestStartTime | metadata.event_timestamp | L'ora di inizio del periodo del digest. Utilizzato come ora dell'evento se eventTime non è disponibile. |
eventCategory | security_result.category_details | La categoria dell'evento. |
eventID | metadata.product_log_id | L'ID univoco dell'evento. |
eventName | metadata.product_event_type | Il nome dell'evento. |
eventName | security_result.summary | Il nome dell'evento, utilizzato per generare il riepilogo dei risultati di sicurezza. |
eventSource | target.application | La sorgente dell'evento. |
eventTime | metadata.event_timestamp | L'ora in cui si è verificato l'evento. |
eventType | additional.fields.value.string_value | Il tipo di evento. |
logFiles.hashValue | about.file.sha256 | L'hash SHA-256 del file di log. |
logFiles.s3Bucket | about.resource.name | Il nome del bucket S3 in cui è archiviato il file di log. |
logFiles.s3Object | about.file.full_path | Il percorso dell'oggetto file di log nel bucket S3. |
previousDigestHashValue | target.file.sha256 | L'hash SHA-256 del digest precedente. |
recipientAccountId | target.resource.attribute.labels.value | L'ID account AWS del destinatario dell'evento. |
Records.awsRegion | principal.location.name | La regione AWS in cui si è verificato l'evento. |
Records.errorCode | security_result.rule_id | Il codice di errore, se presente, associato alla richiesta. |
Records.errorMessage | security_result.description | L'eventuale messaggio di errore associato alla richiesta. |
Records.eventCategory | security_result.category_details | La categoria dell'evento. |
Records.eventID | metadata.product_log_id | L'ID univoco dell'evento. |
Records.eventName | metadata.product_event_type | Il nome dell'evento. |
Records.eventName | security_result.summary | Il nome dell'evento, utilizzato per generare il riepilogo dei risultati di sicurezza. |
Records.eventSource | target.application | La sorgente dell'evento. |
Records.eventTime | metadata.event_timestamp | L'ora in cui si è verificato l'evento. |
Records.eventType | additional.fields.value.string_value | Il tipo di evento. |
Records.requestID | target.resource.attribute.labels.value | L'ID della richiesta. |
Records.requestParameters.groupName | target.group.group_display_name | Il nome del gruppo, se presente, associato alla richiesta. |
Records.requestParameters.userName | src.user.userid | Il nome dell'utente, se presente, associato alla richiesta. |
Records.requestParameters.userName | src.user.user_display_name | Il nome dell'utente, se presente, associato alla richiesta. |
Records.responseElements.ConsoleLogin | security_action | Il risultato del tentativo di accesso alla console. |
Records.responseElements.ConsoleLogin | security_result.summary | Il risultato del tentativo di accesso alla console, utilizzato per generare il riepilogo dei risultati di sicurezza. |
Records.sourceIPAddress | principal.hostname | L'indirizzo IP dell'entità principale. Utilizzato come nome host se non è un indirizzo IP valido. |
Records.sourceIPAddress | principal.ip | L'indirizzo IP dell'entità principale. |
Records.tlsDetails.cipherSuite | network.tls.cipher | La suite di crittografia utilizzata per la connessione TLS. |
Records.tlsDetails.tlsVersion | network.tls.version | La versione TLS utilizzata per la connessione. |
Records.userAgent | network.http.user_agent | Lo user agent della richiesta. |
Records.userIdentity.accessKeyId | additional.fields.value.string_value | L'ID della chiave di accesso utilizzata per la richiesta. |
Records.userIdentity.accountId | principal.user.group_identifiers | L'ID account AWS dell'utente. |
Records.userIdentity.arn | principal.user.attribute.labels.value | L'ARN dell'utente. |
Records.userIdentity.arn | target.user.userid | L'ARN dell'utente. Utilizzato come userid se userName non è disponibile. |
Records.userIdentity.principalId | principal.user.product_object_id | L'ID principale dell'utente. |
Records.userIdentity.sessionContext.attributes.mfaAuthenticated | principal.user.attribute.labels.value | Indica se per la richiesta è stata utilizzata l'autenticazione a due fattori. |
Records.userIdentity.sessionContext.sessionIssuer.userName | principal.user.userid | Il nome utente dell'utente che ha emesso la sessione. |
Records.userIdentity.type | principal.resource.type | Il tipo di identità utilizzata per la richiesta. |
Records.userIdentity.userName | target.user.userid | Il nome utente dell'utente. |
- | extensions.auth.mechanism | Impostato su "REMOTE". |
- | metadata.event_type | Impostato su "STATUS_UPDATE", "USER_RESOURCE_ACCESS", "USER_LOGIN" o "GENERIC_EVENT" in base a eventName. |
- | metadata.log_type | Impostato su "AWS_CONTROL_TOWER". |
- | metadata.product_name | Imposta su "AWS Control Tower". |
- | metadata.vendor_name | Imposta su "AWS". |
- | principal.asset.attribute.cloud.environment | Imposta su "AMAZON_WEB_SERVICES". |
- | security_result.action | Impostato su "ALLOW" o "BLOCK" in base a errorCode. |
- | security_result.severity | Impostato su "INFORMATIVA". |
Modifiche
2024-03-17
- Miglioramento:
- "req.userIdentity.arn" e "req.userIdentity.userName" sono stati mappati a "target.user.userid".
2023-01-04
- Miglioramento:
- Variabili inizializzate per evitare la replica dei dati nel ciclo For.
2022-12-15
- Miglioramento:
- "metadata.vendor_name" è stato mappato ad "AWS".
- "metadata.product_name" è stato mappato ad "AWS Control Tower".
- "metadata.event_type" è stato mappato a "USER_LOGIN" quando "eventName" è "ConsoleLogin".
- "security_result.severity" è stato mappato a "INFORMATIONAL" quando "eventName" è "ConsoleLogin".
2022-11-17
- Miglioramento:
- Ho mappato "req.userIdentity.userName" e "req.userIdentity.sessionContext.sessionIssuer.userName" a "target.user.id".
- È stata mappata la stringa "ConsoleLogin:Success" a "security_result.action".
- Informazioni sulla porta mappata da "sourceIPAddress" a "principal.port".
2022-10-31
- Parser appena creato.
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.