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

53 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 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](https://letsencrypt.org/fr/), 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](https://cheatsheetseries.owasp.org/cheatsheets/Transport_Layer_Protection_Cheat_Sheet.html) o per [mettere in sicurezza un webservice](https://cheatsheetseries.owasp.org/cheatsheets/Web_Service_Security_Cheat_Sheet.html).
## Mettere in sicurezza le autenticazioni
* **Segui le [raccomandazioni CNIL per le password](https://www.cnil.fr/fr/node/23803)**. 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](https://en.wikipedia.org/wiki/Bcrypt).
* **Se usi cookie per lautenticazione**, ti raccomandiamo:
* di forzare luso di HTTPS tramite [HSTS](https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security);
* 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](https://owasp.org/www-project-cheat-sheets/cheatsheets/Cryptographic_Storage_Cheat_Sheet.html).
* **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](https://nvd.nist.gov/vuln/data-feeds).
* **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.