SEC09-BP04 Autenticazione delle comunicazioni di rete
Verifica l'identità delle comunicazioni utilizzando protocolli che supportano l'autenticazione, ad esempio Transport Layer Security (TLS) o IPsec.
Progetta il carico di lavoro in modo da utilizzare protocolli di rete sicuri e autenticati per le comunicazioni tra servizi, applicazioni o utenti. L'utilizzo di protocolli di rete che supportano l'autenticazione e l'autorizzazione offre un controllo più rigido sui flussi di rete e riduce l'impatto di eventuali accessi non autorizzati.
Risultato desiderato: un carico di lavoro con flussi di traffico del piano dati e del piano di controllo (control-plane) ben definiti tra i servizi. I flussi di traffico utilizzano protocolli di rete autenticati e crittografati laddove tecnicamente fattibile.
Anti-pattern comuni:
-
Flussi di traffico non crittografati o non autenticati all'interno del carico di lavoro.
-
Riutilizzo delle credenziali di autenticazione tra più utenti o entità.
-
Uso esclusivo di controlli di rete come meccanismo di controllo degli accessi.
-
Creazione di un meccanismo di autenticazione personalizzato anziché usare meccanismi di autenticazione standard del settore.
-
Flussi di traffico eccessivamente permissivi tra i componenti del servizio o altre risorse nel VPC.
Vantaggi dell'adozione di questa best practice:
-
Limita l'ambito dell'impatto di eventuali accessi non autorizzati a una parte del carico di lavoro.
-
Fornisce un livello più elevato di sicurezza affinché le azioni vengano eseguite solo da entità autenticate.
-
Migliora il disaccoppiamento dei servizi definendo e applicando chiaramente le interfacce di trasferimento dei dati previste.
-
Migliora il monitoraggio, la registrazione in log e la risposta agli incidenti tramite l'attribuzione delle richieste e interfacce di comunicazione ben definite.
-
Fornisce un livello elevatissimo di difesa ai carichi di lavoro combinando i controlli di rete con i controlli di autenticazione e autorizzazione.
Livello di rischio associato alla mancata adozione di questa best practice: basso
Guida all'implementazione
I modelli di traffico di rete del carico di lavoro possono essere suddivisi in due categorie:
-
Il traffico orizzontale (sinistra-destra) rappresenta i flussi di traffico tra servizi che costituiscono un carico di lavoro.
-
Il traffico verticale (alto-basso) rappresenta i flussi di traffico tra il carico di lavoro e i consumatori.
Mentre crittografare il traffico verticale (alto-basso) è prassi comune, proteggere il traffico orizzontale (sinistra-destra) mediante protocolli autenticati non è così frequente. Le moderne best practice di sicurezza raccomandano che la progettazione della rete non sia l'unico elemento in grado di garantire una relazione affidabile tra due entità. Quando due servizi possono trovarsi all'interno di una rete comune, è comunque consigliabile crittografare, autenticare e autorizzare le comunicazioni tra tali servizi.
Ad esempio, le API del servizio AWS utilizzano il protocollo di firma AWS Signature Version 4 (SigV4) per autenticare il chiamante, indipendentemente dalla rete da cui proviene la richiesta. Questa autenticazione garantisce che le API AWS possano verificare l'identità che ha richiesto l'azione e che tale identità possa quindi essere combinata con le policy per decidere se autorizzare o meno l'azione.
Servizi come Amazon VPC Lattice e Amazon API Gateway consentono di utilizzare lo stesso protocollo di firma SigV4 per aggiungere funzionalità di autenticazione e autorizzazione al traffico orizzontale (sinistra-destra) ai carichi di lavoro. Se le risorse esterne all'ambiente AWS devono comunicare con servizi che richiedono l'autenticazione e l'autorizzazione basate su SigV4, è possibile utilizzare AWS Identity and Access Management (IAM) Roles Anywhere sulla risorsa AWS per acquisire credenziali AWS temporanee. Queste credenziali possono essere utilizzate per firmare richieste ai servizi che utilizzano SigV4 per autorizzare l'accesso.
Un altro meccanismo comune per l'autenticazione del traffico orizzontale (sinistra-destra) è l'autenticazione reciproca TLS (mTLS). Molte applicazioni Internet delle cose (IoT), business-to-business (B2B) e microservizi utilizzano mTLS per convalidare l'identità di entrambi i lati di una comunicazione TLS mediante l'uso di certificati X.509 lato client e lato server. Questi certificati possono essere emessi da AWS Autorità di certificazione privata (AWS Private CA). È possibile utilizzare servizi come Amazon API Gateway e AWS App Mesh per fornire l'autenticazione mTLS per la comunicazione tra carichi di lavoro a tutti i livelli. Sebbene fornisca informazioni di autenticazione per entrambi i lati di una comunicazione TLS, mTLS non fornisce un meccanismo di autorizzazione.
Infine, OAuth 2.0 e OpenID Connect (OIDC) sono due protocolli generalmente utilizzati per controllare l'accesso ai servizi da parte degli utenti, ma stanno diventando popolari anche per il traffico a livello di servizi. API Gateway fornisce un sistema di autorizzazione JSON Web Token (JWT), che consente ai carichi di lavoro di limitare l'accesso alle route API utilizzando JWT emessi da gestori dell'identità digitale OIDC o OAuth 2.0. Gli ambiti OAuth2 possono essere utilizzati come base per decisioni di autorizzazione essenziali, ma i controlli di autorizzazione devono comunque essere implementati a livello di applicazione. Gli ambiti OAuth2 da soli non possono supportare requisiti di autorizzazione più complessi.
Passaggi dell'implementazione
-
Definisci e documenta i flussi di rete del carico di lavoro: il primo passo per implementare una strategia di difesa di alto profilo è definire i flussi di traffico del carico di lavoro.
-
Crea un diagramma del flusso di dati che definisca chiaramente come vengono trasmessi i dati tra i diversi servizi che costituiscono il carico di lavoro. Questo diagramma è il primo passo per autorizzare tali flussi nei canali di rete autenticati.
-
Nelle fasi di sviluppo e test dota il carico di lavoro di strumenti per controllare che il diagramma del flusso dei dati rifletta accuratamente il comportamento del carico di lavoro in fase di esecuzione.
-
Un diagramma del flusso dei dati può essere utile anche quando si esegue un esercizio di modellazione delle minacce, come descritto in SEC01-BP07 Identificare le minacce e dare priorità alle mitigazioni utilizzando un modello di minaccia.
-
-
Definisci i controlli di rete: considera le funzionalità AWS per stabilire controlli di rete allineati ai flussi di dati. Sebbene i confini della rete non debbano costituire l'unico elemento di controllo della sicurezza, essi forniscono un livello nella strategia di difesa di alto profilo a protezione del carico di lavoro.
-
Utilizza i gruppi di sicurezza per stabilire, definire e limitare i flussi di dati tra risorse.
-
Valuta l'utilizzo di AWS PrivateLink per comunicare sia con AWS che con i servizi di terze parti che supportano AWS PrivateLink. I dati inviati tramite un endpoint di interfaccia AWS PrivateLink rimangono all'interno della dorsale della rete AWS e non attraversano la rete Internet pubblica.
-
-
Implementa l'autenticazione e l'autorizzazione tra i servizi del carico di lavoro: scegli il set di servizi AWS più appropriato per fornire flussi di traffico autenticati e crittografati nel carico di lavoro.
-
Valuta l'ipotesi di utilizzare Amazon VPC Lattice per la sicurezza della comunicazione tra servizi. VPC Lattice può utilizzare l'autenticazione SigV4 combinata con le policy di autenticazione per controllare l'accesso a livello di servizi.
-
Per la comunicazione tra servizi tramite mTLS, valuta l'ipotesi di utilizzare API Gateway o App Mesh. AWS Private CA può essere utilizzato per stabilire una gerarchia di autorità di certificazione (CA) private in grado di emettere certificati da utilizzare con mTLS.
-
Quando esegui l'integrazione con servizi che utilizzano OAuth 2.0 o OIDC, considera l'utilizzo del sistema di autorizzazione JWT da parte di API Gateway.
-
Per la comunicazione tra il carico di lavoro e i dispositivi IoT, considera l'utilizzo di AWS IoT Core, che offre diverse opzioni per la crittografia e l'autenticazione del traffico di rete.
-
-
Monitora gli accessi non autorizzati: monitora continuamente i canali di comunicazione non intenzionali, i responsabili non autorizzati che tentano di accedere alle risorse protette e altri schemi di accesso impropri.
-
In caso di utilizzo di VPC Lattice per gestire l'accesso ai servizi, valuta la possibilità di abilitare e monitorare i log di accesso di VPC Lattice. Questi log di accesso includono informazioni sull'entità richiedente, informazioni di rete tra cui VPC di origine e destinazione e metadati della richiesta.
-
Valuta la possibilità di abilitare i log di flusso VPC per acquisire i metadati sui flussi di rete e verificare periodicamente la presenza di anomalie.
-
Consulta il manuale AWSSecurity Incident Response Guide e la sezione relativa alle risposte agli incidenti del Pilastro di sicurezza del Framework AWS Well-Architected per ulteriori indicazioni su pianificazione, simulazione e risposte agli incidenti di sicurezza.
-
Risorse
Best practice correlate:
Documenti correlati:
Video correlati:
Esempi correlati: