Best practice per la sicurezza web

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 stia pubblicando contenuti da istanze Compute Engine, un bucket Cloud Storage o un'origine esterna che si trova al di fuori di Google Cloud.

Imposta le intestazioni di sicurezza

La specifica HTTP prevede una serie di intestazioni che controllano quanto segue:

  • Comportamento del client
  • Modalità di incorporamento dei contenuti
  • Modalità di pubblicazione dei contenuti su più domini
  • Utilizzo esclusivo di TLS (HTTPS) per la connessione al dominio

Questi controlli sono in genere rappresentati come intestazioni delle risposte HTTP, che puoi impostare per ogni backend (origine, nella terminologia CDN) come intestazioni delle risposte personalizzate per il tuo deployment con bilanciatore del carico delle applicazioni esterno e Cloud CDN.

Se utilizzi Cloud Storage e fornisci contenuti web dal tuo bucket, puoi utilizzare Cloud CDN davanti al tuo bucket di archiviazione per impostare le intestazioni di sicurezza web e memorizzare nella cache i contenuti popolari.

Le intestazioni di sicurezza web più utili sono definite nella tabella seguente.

Nome intestazione Descrizione Esempio di utilizzo
Strict-Transport-Security (HSTS) Verifica che i tuoi domini abbiano certificati SSL (TLS) validi prima di impostare questa intestazione.

Indica ai client che devono connettersi direttamente al tuo dominio tramite HTTPS (SSL/TLS), evitando la necessità di reindirizzamento da HTTP a HTTPS, un'operazione più lenta e che introduce il rischio di un attacco man-in-the-middle.

L'impostazione di questa intestazione è effettivamente irreversibile. Dopo aver memorizzato nella cache questa intestazione, i client browser moderni non tentano connessioni non HTTPS e gli utenti non possono accedere ad alcun dominio per il quale hanno ricevuto questa intestazione, anche se SSL non è attivo. Questo comportamento impedisce a un malintenzionato di eseguire il downgrade del protocollo sicuro a HTTP non protetto (noto come attacco di downgrade).

Quando fornisci l'intestazione Strict-Transport-Security, fai attenzione durante l'aggiunta delle istruzioni includeSubdomains o preload. Queste istruzioni richiedono che qualsiasi sottodominio utilizzi HTTPS, inclusi eventuali siti interni sullo stesso dominio. Ad esempio, support.example.com quando l'intestazione viene fornita da example.com.

Richiedere ai client di connettersi direttamente tramite HTTPS per tutte le connessioni future, memorizzando nella cache questa istruzione per un massimo di due anni:

Strict-Transport-Security: max-age=3104000

X-Frame-Options Indicare se un browser può visualizzare una pagina in un <frame>, <iframe>, <embed> o <object>. Questo contribuisce a prevenire attacchi "click-jacking", impedendo l'incorporamento dei tuoi contenuti in altri siti. Negare completamente l'incorporamento in iframe del tuo sito: X-Frame-Options: DENY

Consentire l'incorporamento in iframe del tuo sito solo al sito stesso: X-Frame-Options: SAMEORIGIN

Content-Security-Policy Per valutare la Content Security Policy del tuo sito, puoi utilizzare lo strumento CSP Evaluator di Google. Non consentire script in linea e caricare script solo tramite HTTPS: Content-Security-Policy: default-src https:

Fai attenzione quando introduci nuove intestazioni di sicurezza nei siti web esistenti, perché possono causare errori in 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 ed eseguire dei test.

Puoi scoprire di più sulle intestazioni di sicurezza web e sulle best practice su web.dev e sul sito infosec di Mozilla.

Gestione di TLS e certificati

I certificati gestiti hanno le seguenti caratteristiche:

  • Vengono forniti senza costi
  • Il deployment sui bilanciatori del carico è facile da eseguire
  • Si rinnovano automaticamente
  • Sono distribuiti a livello globale in tutte le località edge di Google

TLS garantisce l'autenticità verificando che i dati non siano stati modificati durante il transito. I certificati TLS garantiscono la riservatezza assicurando che un intercettatore 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 le prestazioni dei contenuti web, la distribuzione dei contenuti multimediali (come i video in streaming) e l'affidabilità sulle reti congestionate.

Google Cloud supporta i moderni protocolli TLS (come TLS 1.3) nei servizi Cloud Load Balancing e Cloud CDN.

Puoi utilizzare le policy SSL per aumentare la versione minima di TLS. Ti consigliamo l'aumento alla versione TLS 1.2 se non devi supportare client meno recenti, come dispositivi incorporati o client non browser più vecchi (con più di 10 anni). A livello globale, TLS v1.0 e TLS v1.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