Questo post è l'ultima puntata della serie Cloud Computing Foundations. Potenziate ulteriormente le vostre competenze partecipando al nostro Cloud Computing corso di certificazione corso di certificazione.
Uno degli aspetti più importanti del ciclo di vita dello sviluppo è capire come proteggere l'ambiente di hosting che esegue le nostre applicazioni web. I nostri server consentono connessioni in entrata da sistemi esterni su porte specifiche ogni volta che distribuiamo un'applicazione web. Le porte del server identificano il traffico di rete in entrata e in uscita.
Per comprendere le vulnerabilità dei server, dobbiamo pensare a dove avvengono le comunicazioni.
Nell'esempio precedente:
- Un client (a sinistra), in genere un browser web, invia una richiesta HTTP al server.
- Il server riceve la richiesta HTTP e la elabora.
- Il nome di dominio viene interrogato da uno o più server di nomi di dominio, solitamente gestiti dalla società di registrazione del nome di dominio.
- Il server recupera o genera il contenuto richiesto e invia una risposta HTTP al client.
- Il client riceve la risposta e visualizza il contenuto.
Durante questo processo, in alcuni casi, le connessioni ai nostri server possono provenire da computer malintenzionati che cercano di sfruttare i punti deboli nelle configurazioni dei nostri server. Le ragioni per cui un server può essere sfruttato sono molteplici.
Vediamo alcuni attacchi comuni ai server.
Attacchi DDoS (Distributed Denial of Service)
In un attacco DDoS (Distributed Denial of Service) un aggressore tenta di sovraccaricare un server mirato con un'ondata di richieste HTTP. Questo è anche chiamato attacco HTTP flood. Ricordate che ogni volta che facciamo una richiesta HTTP, i nostri server hanno il compito di rispondere alla richiesta. Se i nostri server non dispongono delle risorse necessarie per soddisfare il numero di richieste simultanee in arrivo, il server Web si blocca o si arresta. In seguito, ogni richiesta HTTP successiva fallirà, rendendo il server web irraggiungibile.
Gli attacchi DDoS vengono generalmente eseguiti tramite botnet. Le botnet sono una rete di dispositivi infettati con software dannoso, noto anche come malware, progettato specificamente per produrre una marea di richieste HTTP a un computer bersaglio.
L'illustrazione precedente fornisce una panoramica del funzionamento degli attacchi HTTP flood. Sul lato destro, il client effettua una richiesta al server, ma poiché anche diversi bot effettuano richieste al server, prosciugandone le risorse, il client non riesce a connettersi al server.
Attraversamento di directory
L'attraversamento delle directory è un altro exploit comune che in genere si rivolge a server mal configurati. Tutti i file Web vengono serviti direttamente dalla directory principale del Web. Gli utenti che si collegano ai nostri server tramite richieste Web HTTP dovrebbero essere in grado di accedere solo a file specifici della directory principale del Web, senza poter navigare o eseguire file da cartelle più alte nella struttura delle directory. Se ciò dovesse accadere, un utente malintenzionato potrebbe accedere a file di sistema e di configurazione critici e creare scompiglio sul server.
L'immagine qui sopra mostra il funzionamento di questo attacco. L'aggressore invia una richiesta HTTP dannosa utilizzando un URL modificato, che include il percorso della directory di un file di sistema o di configurazione. Il server elabora la richiesta e, a causa di una cattiva configurazione del server o della progettazione dell'applicazione, può recuperare il file di sistema e visualizzarne il contenuto o il codice sorgente.
Attacco con forza bruta
L'attacco a forza bruta, chiamato anche attacco a dizionario o account takeover, è un altro attacco molto comune con il quale un agente malintenzionato tenta di accedere a un punto di accesso limitato del vostro server. Questo punto di accesso limitato è in genere l'account di root del server o un altro account con privilegi di root. Gli aggressori utilizzano il malware per inviare automaticamente numerosi tentativi di accesso con combinazioni di password e nome utente generate automaticamente sulla base di parole del dizionario.
L'illustrazione qui sopra mostra come funziona questo attacco. A sinistra, l'attaccante invia ripetuti tentativi di accesso generati da un elenco di parole utilizzando un malware. Se vengono trovate le combinazioni corrette, l'attaccante ottiene l'accesso al server. Gli attacchi di forza bruta possono essere molto efficaci, anche se un server utilizza solo l'autenticazione con chiave SSH.
Mantenere il server sicuro
Ecco alcune best practice da considerare quando si configurano e si proteggono i server:
- Mantenete il sistema operativo e il software aggiornati con le ultime patch di sicurezza e gli ultimi aggiornamenti.
- Disattivare o bloccare i servizi o le porte non necessarie per ridurre al minimo la superficie di attacco.
- Limitate l'accesso al vostro server permettendo solo agli utenti autorizzati di connettersi e interagire con esso.
- Proteggere il traffico di rete utilizzando protocolli di crittografia come SSL o TLS.
- Disponete di un solido piano di backup e di disaster recovery per ridurre al minimo la perdita di dati e i tempi di inattività.
- Implementare password forti e l'autenticazione a più fattori per proteggere dall'accesso non autorizzato.
- Utilizzare i firewall per controllare il traffico di rete in entrata e in uscita.
- Monitorare i registri dei server e il traffico di rete alla ricerca di attività sospette.
- Utilizzare i sistemi di rilevamento e prevenzione delle intrusioni per identificare e prevenire gli attacchi.
- Implementare misure di sicurezza come le autorizzazioni del file system e i controlli di accesso per proteggere dall'accesso non autorizzato ai dati sensibili.
Acquisite le competenze necessarie per avere successo nel cloud computing seguendo il nostro corso di certificazione Introduction to Cloud Computing .
Commenti