Durante la sessione “Azure Ninja vs Genio del Male” che io e Vito abbiamo fatto a WPC 2017, abbiamo mostrato come partire da una semplice architettura PaaS con una componente IaaS, attaccarla e migliorarla fino a renderla molto più sicura.
Alla fine della sessione abbiamo presentato le sette regole che abbiamo estratto come lezione:
- Script everything e Backup everything: queste due regole ci servono per riparare i danni dopo che è avvenuto un disastro, o per replicare ambienti per fare prove o altro
- Least user privilege e Trust no one: queste regole servono per minimizzare la superficie di attacco, bloccare tutti gli accessi non necessari, ridurre i permessi al minimo, etc…
- Monitor everything: questa regola è la più semplice da applicare (usando strumenti come Azure Monitor, Application Insight, il Security Center, etc…) e serve per capire cosa succede prima che sia troppo tardi, o comunque per non ripetere gli stessi errori…
- Assume cloud failure: questa regola serve per mettere in atto tutte quelle strategie per gestire casi di non disponibilità di parte della soluzione, per motivi malevoli o semplicemente per problemi al servizio. Nel cloud tutto è accessibile via rete, e quindi va trattato come tale. Non si limita solo a gestire gli errori di connessione, ma ad esempio si possono gestire scenari di connettività limitata con il blob storage salvando in locale i file che gli utenti ci inviano, per poi andarli a processare quando il problema è risolto.
- Protect your secrets: questa in assoluto è la più complessa,soprattutto quando le chiavi di accesso sono distribuite nelle app o in dispositivi IoT.