Best practice per la sicurezza in AWS CloudTrail
AWS CloudTrail fornisce una serie di caratteristiche di sicurezza che occorre valutare durante lo sviluppo e l'implementazione delle policy di sicurezza. Le seguenti best practice sono linee guida generali e non rappresentano una soluzione di sicurezza completa. Dato che queste best practice potrebbero non essere appropriate o sufficienti nel proprio ambiente, si considerino come riflessioni utili più che istruzioni.
Argomenti
Best practice relative alla sicurezza di CloudTrail Detective
Creazione di un trail
Per una registrazione continuativa di attività ed eventi nell'account AWS, creare un trail. Anche se CloudTrail offre 90 giorni di informazioni sulla cronologia di eventi per la gestione degli eventi nella console CloudTrail senza creare un percorso, non crea una registrazione permanente e non fornisce informazioni su tutti i tipi possibili di eventi. Per un record in corso e per un record che contiene tutti i tipi di eventi specificati devi creare un percorso che fornisca i relativi file di log per un bucket Amazon S3 specificato.
Come supporto nella gestione dei dati di CloudTrail, considera di creare un percorso che registri gli eventi di gestione in tutte le Regioni AWS, quindi di creare percorsi aggiuntivi che registrino tipi di eventi specifici per le risorse, ad esempio le attività del bucket Amazon S3 o le funzioni AWS Lambda.
Di seguito sono riportate alcune delle procedure che è possibile eseguire:
Applicazione di un trail a tutte le Regioni AWS
Per ottenere un record completo degli eventi di un utente, un ruolo o un servizio nell'account AWS, ogni trail deve essere configurato per registrare gli eventi in tutte le Regioni AWS. Effettuando la registrazione degli eventi in tutte le Regioni AWS, si garantisce la registrazione di tutti gli eventi nell'account AWS, indipendentemente dalla regione AWS in cui si verificano. È inclusa la registrazione degli eventi di servizio globali, che vengono registrati in una regione AWS specifica per quel servizio. Quando crei un percorso valido per tutte le regioni, CloudTrail registra gli eventi in ciascuna regione e distribuisce i file di log degli eventi CloudTrail in un bucket S3 specificato. Se viene aggiunta una regione AWS dopo aver creato un trail valido per tutte le regioni, la nuova regione viene automaticamente inclusa e gli eventi in tale regione vengono registrati. Questa è l'opzione di default quando crei un percorso nella console CloudTrail.
Di seguito sono riportate alcune delle procedure che è possibile eseguire:
-
Aggiornamento di un percorso esistente per registrare gli eventi in tutte le Regioni AWS
-
Implementare i controlli di ricerca in corso per garantire che tutti i trail creati registrino eventi in tutte le Regioni AWS utilizzando la regola multi-region-cloud-trail-enabled in AWS Config.
Abilitazione dell'integrità dei file di log di CloudTrail
I file di log convalidati sono particolarmente preziosi nelle indagini giudiziarie e sulla sicurezza. Ad esempio, un file di log convalidato consente di confermare senza ombra di dubbio che tale file non ha subito modifiche oppure che una specifica attività API è stata eseguita utilizzando credenziali utente attendibili. Il processo di convalida dell'integrità dei file di log di CloudTrail consente inoltre di sapere se un file di log è stato eliminato o modificato oppure di confermare che nessun file di log è stato distribuito nel tuo account durante un determinato periodo di tempo. La convalida dell'integrità dei file di log di CloudTrail utilizza algoritmi standard di settore: SHA-256 per l'hashing e SHA-256 con RSA per la firma digitale. Ciò rende impossibile, a livello di programmazione, qualsiasi operazione di modifica, eliminazione o contraffazione dei file di log di CloudTrail senza che tale operazione venga rilevata. Per ulteriori informazioni, consulta . Abilitazione della convalida e convalida dei file.
Integrazione con Amazon CloudWatch Logs
CloudWatch Logs consente di monitorare e ricevere allarmi al verificarsi di eventi specifici acquisiti da CloudTrail. Gli eventi inviati a CloudWatch Logs sono quelli configurati per essere registrati dal percorso, perciò assicurati di aver configurato il percorso o i percorsi per registrare i tipi di eventi (eventi di gestione e/o eventi di dati) che desideri monitorare.
Ad esempio, puoi monitorare la chiave di sicurezza e gli eventi di gestione correlati alla rete, ad esempio gli eventi di accesso non riuscito alla AWS Management Console.
Di seguito sono riportate alcune delle procedure che è possibile eseguire:
-
Rivedere l'esempio Integrazioni CloudWatch Logs per CloudTrail.
-
Configurare il trail per inviare gli eventi ai CloudWatch Logs.
-
Considera di implementare controlli di Detective costanti per garantire l'invio di eventi da parte di tutti i percorsi a CloudWatch Logs per il monitoraggio, utilizzando la regola cloud-trail-cloud-watch-logs-enabled in AWS Config.
Best practice di prevenzione relative alla sicurezza per CloudTrail
Le seguenti best practice per CloudTrail consentono di prevenire impedire di sicurezza.
Registrazione in un bucket Amazon S3 dedicato e centralizzato
I file di log CloudTrail sono un registro di verifica delle operazioni intraprese da un utente, un ruolo o un servizio AWS. L'integrità, la completezza e la disponibilità di questi log è cruciale per scopi forensi e di auditing. Effettuando la registrazione in un bucket Amazon S3 dedicato e centralizzato, puoi applicare rigorosi controlli di sicurezza, accesso e separazione dei compiti.
Di seguito sono riportate alcune delle procedure che è possibile eseguire:
-
Crea un account AWS come account archivio di log. Se utilizzi AWS Organizations, registra questo account aziendale e considera la creazione di un percorso dell'organizzazione per registrare i dati di tutti gli account AWS dell'organizzazione.
-
Se non utilizzi Organizations, ma desideri registrare i dati per più account AWS, crea un percorso di attività di log in questo account archivio di log. Limitare l'accesso a questo account ai soli utenti amministrativi affidabili che devono avere accesso ai dati di auditing e dell'account.
-
Con la creazione di un percorso, che si tratti di un percorso dell'organizzazione o di un percorso per un singolo account AWS, crea un bucket Amazon S3 dedicato per archiviare i file di log per questo percorso.
-
Se si desidera registrare l'attività per più di un account AWS, modificare le policy dei bucket per consentire la registrazione e l'archiviazione dei file di log per tutti gli account AWS di cui si desidera registrare le attività dell'account AWS.
-
Se non utilizzi un percorso dell'organizzazione, crea percorsi in tutti gli account AWS, specificando il bucket Amazon S3 nell'account archivio di log.
Crittografia lato server con chiavi gestite da AWS KMS.
Per impostazione predefinita, i file di log distribuiti da CloudTrail al bucket vengono crittografati mediante la crittografia Amazon lato server con chiavi di crittografia gestite da Amazon S3 (SSE-S3). Per fornire un livello di sicurezza gestibile direttamente, puoi utilizzare invece la crittografia lato server con chiavi gestite da AWS KMS (SSE-KMS) per i file di log di CloudTrail. Per utilizzare SSE-KMS con CloudTrail, puoi creare e gestire una AWS KMS key, nota anche come chiave KMS.
Se utilizzi SSE-KMS e la convalida dei file di log e hai modificato la policy del bucket Amazon S3 per abilitare solo i file con crittografia SSE-KMS, non potrai creare percorsi che utilizzano quel bucket, a meno di modificare la policy del bucket per permettere espressamente la crittografia AES256, come illustrato nella seguente riga di policy di esempio.
"StringNotEquals": { "s3:x-amz-server-side-encryption": ["aws:kms", "AES256"] }
Di seguito sono riportate alcune delle procedure che è possibile eseguire:
-
Esaminare i vantaggi della crittografia dei file di log con SSE-KMS.
-
Crea una chiave KMS da utilizzare per la crittografia dei file di log.
-
Considerare di implementare i controlli di ricerca in corso per garantire che tutti i trail eseguano la crittografia dei file di log con SSE-KMS utilizzando la regola cloud-trail-encryption-enabled in AWS Config.
Aggiungi una chiave della condizione alla policy di default dell'argomento Amazon SNS
Quando configuri un percorso per l'invio di notifiche ad Amazon SNS, CloudTrail aggiunge un'istruzione della policy alla policy di accesso dell'argomento SNS che permette a CloudTrail di inviare contenuti a un argomento SNS. Come best practice di sicurezza, consigliamo di aggiungere una chiave della condizione aws:SourceArn
(o facoltativamente aws:SourceAccount
) all'istruzione della policy di CloudTrail. Ciò consente di impedire l'accesso non autorizzato all'account all'argomento SNS. Per ulteriori informazioni, consulta . Policy degli argomenti Amazon SNS per CloudTrail.
Implementazione di privilegi di accesso minimi ai bucket Amazon S3 in cui si archiviano i file di log
I percorsi di CloudTrail registrano eventi su un bucket Amazon S3 specificato. Questi file di log contengono un log di audit delle operazioni eseguite da utenti, ruoli e servizi AWS. L'integrità e la completezza di questi file di log sono fondamentali a scopo forense e di auditing. Per garantire l'integrità, devi rispettare il principio dei privilegi minimi durante la creazione o la modifica dell'accesso a qualsiasi bucket Amazon S3 utilizzato per archiviare i file di log di CloudTrail.
Utilizza le fasi seguenti:
-
Esaminare le policy dei bucket di Amazon S3 per tutti i bucket in cui si archiviano i file di log e adattarla, se necessario, per rimuovere qualsiasi accesso inutile. Questa policy del bucket viene generata se crei un percorso utilizzando la console CloudTrail, ma può anche essere creata e gestita manualmente.
-
Come best practice per la sicurezza, assicurati di aggiungere manualmente una chiave di condizione
aws:SourceArn
per la policy del bucket. Per ulteriori informazioni, consulta . Policy del bucket Amazon S3 per CloudTrail. -
Se stai usando lo stesso bucket Amazon S3 per archiviare i file di log per più account AWS, segui le indicazioni per la ricezione di file di log per più account.
-
Se stai utilizzando un percorso dell'organizzazione, verifica di seguire le indicazioni per i percorsi dell'organizzazione ed esamina le policy di esempio per un bucket Amazon S3 per un percorso dell'organizzazione in Creazione di un percorso per un'organizzazione con AWS Command Line Interface.
-
Consulta la documentazione della sicurezza di Amazon S3 e la spiegazione passo per passo di esempio per proteggere un bucket.
Abilitazione dell'eliminazione MFA sul bucket Amazon S3 in cui si archiviano i file di log
La configurazione Multi-Factor Authentication (MFA) garantisce che qualsiasi tentativo di modificare lo stato di controllo delle versioni del bucket oppure di eliminare in modo permanente una versione di un oggetto richiede un ulteriore livello di autenticazione. Questo aiuta a impedire qualsiasi operazione che potrebbe compromettere l'integrità dei file di log, anche qualora un utente acquisisse la password di un utente IAM che dispone di autorizzazioni per eliminare definitivamente gli oggetti Amazon S3.
Di seguito sono riportate alcune delle procedure che è possibile eseguire:
-
Consulta le linee guida sull'eliminazione MFA.
-
Aggiungi una policy del bucket Amazon S3 per richiedere l'autenticazione MFA.
Configurazione della gestione del ciclo di vita dell'oggetto nel bucket Amazon S3 in cui si archiviano i file di log
L'impostazione predefinita del percorso CloudTrail è archiviare i file di log in modo indefinito nel bucket Amazon S3 configurato per il percorso. È possibile utilizzare le regole d gestione del ciclo di vita di oggetti di Amazon S3 per definire le policy di conservazione per soddisfare al meglio le esigenze dell'azienda e le esigenze di auditing. Ad esempio, è possibile archiviare i file di log creati da più di un anno in Amazon Glacier o eliminare i file di log dopo un determinato periodo di tempo.
Limitazione dell'accesso alla policy AWSCloudTrail_FullAccess
Gli utenti con la policy AWSCloudTrail_FullAccess hanno la possibilità di disabilitare o riconfigurare le funzioni di auditing più sensibili e importanti nel proprio account AWS. Questa policy non è progettata per essere condivisa o applicata globalmente a utenti e ruoli nell'account AWS. Limita l'applicazione di questa policy al minor numero di persone possibile, quelle che prevedi agiranno come amministratori di account AWS.