GDPR-Developer-Guide/06-Metti in sicurezza siti,...

4.8 KiB
Raw Blame History

Scheda n°6: Metti in sicurezza siti, applicazioni e server

Ogni sito, applicazione e server deve incorporare regole di base di sicurezza allo stato dellarte, non solo per le comunicazioni di rete, ma anche per lautenticazione e la gestione dellinfrastruttura.

Mettere in sicurezza le reti di comunicazione

  • Implementare TLS versione 1.2 or 1.3 (al posto di SSL) su tutti i siti web e per le trasmissioni dati elle tue applicazioni mobili, per esempio con LetsEncrypt, usando solo le versioni più recenti e controllando la correttezza dellimplementazione.
  • Rendi obbligatorio luso di TLS per tutte le pagine del tuo sito e per tutte le applicazioni mobili.
  • Riduci le porte i comunicazione aperte a quelle strettamente necessarie per il corretto funzionamento delle applicazioni installate. Se laccesso a un server web è possibile solo attraverso il protocollo HTTPS, allora solo le port 80 e 443 del server devono essere accessibili, e tutte le altre porte possono essere bloccate dal firewall.
  • OWASP ha pubblicato delle schede-guida, ad esempio per implementare correttamente TLS o per mettere in sicurezza un webservice.

Mettere in sicurezza le autenticazioni

  • Segui le raccomandazioni CNIL per le password. In particolare, ricordati di mettere un limite al numero di tentativi di accesso.

  • Non archiviare mai le passowrd in chiaro. Memorizza il loro hash usando una libreria consolidata, come bcrypt.

  • Se usi cookie per lautenticazione, ti raccomandiamo:

  • di forzare luso di HTTPS tramite HSTS;

  • di usare il flag secure;

  • usa il flag HttpOnly.

  • Testa le librerire di crittografia installate sui tuoi sistemi e disabilita quelle obsolete (RC4, MD4, MD5 etc.). Incoraggia lutilizzo di AES256. Leggi le note di OWASP al riguardo.

  • Adotta una politica specifica per le password degli amministratori. Come minimo, cambia le loro password ogni volta che un amministratore lascia il lavoro, e comunque sempre in caso di sospetta violazione della sicurezza.

  • Limita laccesso ai tool e alle interfacce di amministrazione al solo staff qualificato per il loro uso. Per le operazioni quotidiane, incoraggia lutilizzo di account a privilegi ridotti.

  • Laccesso remoto alle interfacce di amministrazione deve essere soggetto a misure di sicurezza rinforzate. Per esempio, per i server interni, può essere una buona soluzione dotarsi di una VPN con autenticazione forte dellutente e della macchina che usa per connettersi.

Mettere in sicurezza le infrastrutture

  • Fai backup regolari, cifrati e controllati regolarmente. Questo è particolarmente utile nel caso di attacchi di tipo ransomware perché in quel caso la disponibilità di un backup di tutti i sistemi è la tua sola possibilità di ripristinare i sistemi.

  • Limita la dimensione dello stack software che impieghi e per ciascun elemento dello stack:

  • Installa gli update critici senza ritardo, programmando un controllo automatico settimanale;

    • Automatizza il controllo delle vulnerabilità abbonandoti per esempio ai Data Feed di NVD.
  • Adotta strumenti di scoperta delle vulnerabilità per i processi più critici, in modo da poter scoprire possibili violazioni di sicurezza. Puoi usare sistemi per la scoperta e la prevenzione di attacchi anche sui sistemi e sui server critici. Questi test devono essere condotti regolarmente e comunque prima della messa in produzione di ogni nuovo software.

  • Limita o proibisci laccesso sia fisico che via software alle porte di diagnostica e di configurazione remota. Per esempio, puoi avere lelenco di tutte le porte aperte con lo strumento netstat.

  • Proteggi i database che esponi su Internet, come minimo limitando il più possibile laccesso e cambiando la password di default per laccount dellamministratore.

  • Per quanto riguarda la gestione di database, le buone pratiche includono:

    • per laccesso al database **usare account nominativi ** e creare account specifici per ciascuna applicazione;
    • revoca i privilegi di amministratore degli account (utente o applicativo) per evitare modifiche alla struttura del database (tabelle, viste, processi, ecc.);
    • assicurati di proteggerti contro attacchi di tipo SQL injection o *script injection;
    • incoraggia la cifratura a riposo di dischi e database.