Best practice per la sicurezza web
Cloud CDN e Cloud Load Balancing possono aiutarti a rispettare le best practice per la sicurezza web, indipendentemente dal fatto che tu pubblichi contenuti da istanze Compute Engine, da un bucket Cloud Storage o da un'origine esterna situata al di fuori di Google Cloud.
Imposta le intestazioni di sicurezza
La specifica HTTP contiene una serie di intestazioni che controllano quanto segue:
- Comportamento del cliente
- Come vengono incorporati i contenuti
- Come vengono pubblicati i contenuti nei vari domini
- Indica se utilizzare sempre TLS (HTTPS) per la connessione al dominio
Questi controlli sono in genere rappresentati come intestazioni di risposta HTTP, che puoi impostare per ogni backend (origine, in termini di CDN) come intestazioni delle risposte personalizzate per il bilanciatore del carico delle applicazioni esterno e il deployment di Cloud CDN.
Se utilizzi Cloud Storage e gestisci contenuti web dal tuo bucket, puoi utilizzare Cloud CDN prima del bucket di archiviazione per impostare intestazioni di sicurezza web e memorizzare nella cache i contenuti più utilizzati.
Le intestazioni di sicurezza web più utili sono definite nella tabella seguente.
Nome intestazione | Descrizione | Esempio di utilizzo |
---|---|---|
Strict-Transport-Security (HSTS) |
Assicurati che i tuoi domini dispongano di certificati SSL (TLS) validi prima di impostare questa intestazione. Informa i client che devono connettersi al tuo dominio direttamente tramite HTTPS (SSL/TLS), evitando la necessità di eseguire il reindirizzamento da HTTP a HTTPS, che è più lento e introduce il rischio di un attacco man-in-the-middle. L'impostazione di questa intestazione è praticamente irreversibile. Dopo aver memorizzato nella cache questo header, i client dei browser moderni non tentano connessioni non HTTPS e gli utenti non possono accedere a nessun dominio per cui hanno ricevuto questo header, anche se il protocollo SSL non è attivo. Questo comportamento impedisce a un malintenzionato di eseguire il downgrade del protocollo sicuro all'HTTP non protetto (noto come attacco di downgrade).
Quando pubblichi l'intestazione |
Richiedi ai client di connettersi direttamente tramite HTTPS per tutte le connessioni future, memorizzando questa direttiva nella cache per un massimo di due anni:
|
X-Frame-Options |
Indica se un browser può visualizzare una pagina in un <frame>, <iframe>, <embed> o <object>. In questo modo, puoi difenderti dagli attacchi di clickjacking impedendo l'embedding dei tuoi contenuti in altri siti. |
Rifiutare tutto l'iframe del tuo sito: X-Frame-Options: DENY
Consenti solo al tuo sito di incorporare (iframe) se stesso: |
Content-Security-Policy
|
Per valutare i criteri di sicurezza del contenuto del tuo sito, puoi utilizzare lo strumento CSP Evaluator di Google. | Non consentire gli script in linea e carica gli script solo tramite HTTPS:
Content-Security-Policy: default-src https:
|
Fai attenzione quando introduci nuovi intestazioni di sicurezza nei siti web esistenti, perché possono danneggiare script di terze parti, contenuti incorporati (ad esempio negli iframe) o altri aspetti dei tuoi siti. Prima di apportare modifiche al traffico di produzione, ti consigliamo di creare una seconda istanza del bucket o del servizio di backend e di eseguire test.
Puoi scoprire di più sugli intestazioni e sulle best practice per la sicurezza web su web.dev e sul sito di infosec di Mozilla.
TLS e gestione dei certificati
I certificati gestiti hanno le seguenti caratteristiche:
- Sono forniti senza costi
- Può essere facilmente implementato nei bilanciatori del carico
- Rinnovo automatico
- Sono distribuite a livello globale in tutte le località di Google Edge
TLS garantisce l'autenticità verificando che i dati non siano stati modificati durante il transito. I certificati TLS garantiscono la riservatezza assicurando che un assalitore non possa determinare cosa viene scambiato tra utenti e server. Questo è importante per la privacy e la sicurezza degli utenti.
Con i certificati SSL, puoi usufruire di protocolli di trasporto moderni, come HTTP/2 e il protocollo QUIC di Google, che richiedono entrambi SSL (TLS). Questi protocolli migliorano direttamente il rendimento dei contenuti web, la distribuzione di contenuti multimediali (ad esempio video in streaming) e l'affidabilità su reti congestionate.
Google Cloud supporta i protocolli TLS moderni (ad esempio TLS 1.3) nei servizi Cloud Load Balancing e Cloud CDN.
Puoi utilizzare i criteri SSL per aumentare la versione minima di TLS. Ti consigliamo di passare alla versione TLS 1.2 se
non devi supportare i client precedenti, come i dispositivi embedded
o i client non browser meno recenti (più di 10 anni). A livello globale, TLS 1.0 e TLS 1.1 rappresentano meno dello 0,5% delle connessioni su Google Cloud.
Se devi identificare o associare client specifici a versioni obsolete di TLS, puoi utilizzare la variabile {tls_version}
in un'intestazione della richiesta. Puoi quindi registrare queste informazioni.
Passaggi successivi
- Per verificare se Cloud CDN sta pubblicando risposte dalla cache, consulta Visualizzazione dei log.
- Per scoprire quali contenuti sono memorizzabili nella cache o meno, consulta la Panoramica della memorizzazione nella cache.
- Per visualizzare i punti di presenza di Cloud CDN, consulta Località cache.