Mantenere le vostre applicazioni sicure e protette è fondamentale per un’impresa di successo. Indipendentemente dal fatto che utilizziate architetture applicative cloud-native o sistemi on-premise, o qualsiasi altra via di mezzo, in genere si ritiene che suddividere l’infrastruttura in zone di isolamento sia una best practice. Queste zone forniscono un isolamento di sicurezza che mantiene le vostre applicazioni e i relativi dati al sicuro da malintenzionati esterni.

Se eseguito correttamente, questo processo di isolamento basato sulla zona può prendere una violazione della sicurezza che altrimenti potrebbe avere un impatto enorme sull’integrità dell’applicazione e trasformarla in un problema molto più piccolo o addirittura in una violazione insignificante con un impatto davvero minimo.

Capire le zone di isolamento

Sebbene ci siano molti modi diversi per progettare le zone di isolamento, un modello comune consiste nell’utilizzare tre zone. Queste forniscono la separazione tra la rete Internet pubblica (zona pubblica) e i servizi interni e gli archivi dati (zona privata), inserendo un livello di isolamento (DMZ) tra le due. La figura sottostante mostra come queste tre zone funzionano insieme.

Gli utenti interagiscono con l’applicazione dalla rete Internet pubblica accedendo ai servizi nell’area pubblica. La zona pubblica è esposta e connessa a internet. I servizi in questa zona sono esposti direttamente a Internet e accessibili direttamente da Internet. I servizi vengono eseguiti su server protetti tramite vari firewall, ma per il resto ricevono traffico direttamente dagli utenti sulla rete Internet esterna.

Questi servizi rivolti al pubblico svolgono il minor lavoro possibile, ma uno dei loro compiti più importanti è regolamentare e ispezionare i dati ricevuti da Internet esterno per assicurarsi che siano validi e appropriati. Questi servizi dovrebbero filtrare gli attacchi DoS (Denial of Service), l’infiltrazione di malintenzionati e l’input non valido dell’utente finale.

La maggior parte delle applicazioni si trova nell’area privata. Questa zona è dove vengono archiviati i dati delle applicazioni, nonché i servizi che accedono e manipolano i dati, ed è dove si trova la maggior parte del back-end delle applicazioni. Questa zona è anche la più lontana dalla rete Internet pubblica visto che non vi sono server rivolti al pubblico ed è il più isolata possibile dalla rete Internet pubblica.

Per mantenere sicura la zona privata, nessuno può accedere direttamente ai servizi in questa zona. Anche i servizi nella zona pubblica dell’applicazione non possono accedere ai servizi nella zona privata. I servizi della zona pubblica accedono invece alla zona privata tramite una terza zona, la già citata DMZ (o “zona demilitarizzata”). Si tratta di una zona intermedia che fornisce un livello di isolamento e sicurezza aggiuntiva tra le zone pubbliche e private, proteggendo ulteriormente la maggior parte delle applicazioni contenute nella zona privata.

Lo scopo di questo modello a tre zone è quello di mantenere la “l’Internet selvaggia” lontana dalle parti sensibili delle vostre applicazioni. Due zone isolate (la zona pubblica e la DMZ) forniscono insomma un livello di protezione tra la rete Internet pubblica e la maggior parte dei servizi di back-end.

Le zone sono isolate l’una dall’altra utilizzando segmenti di rete separati e privati che dispongono di specifici firewall di sicurezza a livello di applicazione e di rete che le collegano. Mentre il traffico generalmente scorre liberamente all’interno della zona pubblica sul front-end, è limitato nella zona privata sul back-end, in modo che solo i servizi progettati per dialogare tra loro possano comunicare.

Web application firewall

Non è consentita alcuna comunicazione non necessaria tra i servizi di back-end. Tutte queste restrizioni sono progettate per limitare l’area di impatto di un attacco. Se una parte del vostro sistema è compromessa, queste protezioni renderanno difficile per l’attaccante scavare a fondo nelle vostre applicazioni. I vostri dati sensibili, archiviati all’interno della zona privata, sono separati da eventuali malintenzionati da molti livelli di protezione.

Controlli di sicurezza cloud standard

Nel cloud, Amazon Web Services (AWS), Microsoft Azure e Google Cloud offrono meccanismi di sicurezza standard che aiutano nella costruzione e gestione di queste zone.

  • VPC Amazon. I VPC, o cloud privati virtuali, forniscono intervalli di indirizzi IP e regole di routing isolati. Ciascuna zona di isolamento può essere creata come un VPC separato. Quindi, vengono create regole di instradamento specifiche per controllare il flusso di traffico tra i VPC. Trasformando ogni zona in un VPC separato, potete facilmente creare le zone e mantenerle isolate. Questo modello mantiene il traffico all’interno di ciascuna zona limitato a quella zona. Il traffico destinato a spostarsi da un servizio in una zona ad un servizio in un’altra zona deve passare attraverso punti naturali di “traffic opt-in” che limitino la tipologia di traffico che può fluire. Questi firewall a livello di rete sono la prima linea di difesa per mantenere isolate le zone di sicurezza.
  • Gruppi di sicurezza. I gruppi di sicurezza forniscono firewall a livello di server che controllano il traffico che scorre nelle singole istanze. In genere sono collegati a ciascuna istanza del server allocata, insieme ad altre istanze di componenti cloud come i database. I gruppi di sicurezza possono essere utilizzati per impedire l’accesso non autorizzato a un determinato componente. Ad esempio, un gruppo di sicurezza potrebbe assicurarsi che il traffico in arrivo al server di un servizio di transizione debba provenire da un insieme specifico di servizi front-end e non possa provenire da nessun altro server su Internet. I gruppi di sicurezza forniscono una solida sicurezza a livello di server, ma richiedono una gestione molto accurata per assicurarsi che siano configurati in modo da consentire solo il traffico appropriato verso istanze specifiche. Pertanto, dovrebbero essere usati con i VPC, non al loro posto, per creare le tue zone di isolamento.
  • ACL di rete. Gli ACL di rete forniscono il controllo dell’accesso a livello di rete. Impediscono al traffico indesiderato di fluire ovunque all’interno di un determinato VPC tra singoli server e servizi. Le liste di controllo accessi di rete sono stateless, il che significa che gestiscono il traffico IP di basso livello e non specifici canali di comunicazione point-to-point. In quanto tali, forniscono un ampio scudo alle vostre zone di sicurezza, mentre i gruppi di sicurezza forniscono una protezione specifica e dettagliata. Ad esempio, gli ACL di rete possono essere utilizzati per impedire a chiunque di tentare di accedere direttamente a un servizio back-end impedendo tutto il traffico SSH nella zona.

Ogni zona di sicurezza in genere imposta regole di sicurezza diverse. Nella zona pubblica, ad esempio, può essere ragionevole consentire ai servizi all’interno di questa zona meno sicura di comunicare in modo molto aperto. Tuttavia, nella zona privata, le comunicazioni tra i servizi possono essere fortemente limitate. Naturalmente, a seconda dell’applicazione, i requisiti di sicurezza specifici utilizzati per ciascuna zona possono variare notevolmente.