Best practice per la sicurezza sul Web

Best practice per la sicurezza sul Web

Cloud CDN e il bilanciamento del carico HTTP(S) possono aiutarti a rispettare le best practice di sicurezza web, sia che tu stia pubblicando contenuti da istanze di Compute Engine, un bucket Cloud Storage o un'origine esterna situata al di fuori di Google Cloud.

Imposta intestazioni di sicurezza

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

  • Comportamento dei clienti
  • Come vengono incorporati i contenuti
  • Modalità di pubblicazione dei contenuti tra domini
  • Indica se utilizzare sempre TLS (HTTPS) quando ti connetti a quel dominio.

Questi controlli sono generalmente rappresentati come intestazioni di risposta HTTP, che puoi impostare per ogni backend (origine, in termini CDN) come intestazioni della risposta personalizzate per il tuo bilanciamento del carico HTTP(S) e Cloud CDN.

Se utilizzi Cloud Storage e pubblichi contenuti web dal bucket, puoi utilizzare Cloud CDN prima del bucket di archiviazione per impostare le intestazioni di sicurezza web e memorizzare nella cache i contenuti più diffusi.

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

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.

Informa i client che devono connettersi al tuo dominio direttamente tramite HTTPS (SSL/TLS), evitando la necessità di reindirizzare da HTTP a HTTPS, operazione che è più lenta e che introduce il rischio di un attacco di tipo persona-nel mezzo.

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

Quando pubblichi l'intestazione Strict-Transport-Security, fai attenzione quando aggiungi le istruzioni includeSubdomains o preload. Queste istruzioni richiedono che qualsiasi sottodominio utilizzi HTTPS, inclusi eventuali siti interni nello stesso dominio. Ad esempio, support.example.com se pubblicato da example.com.

Richiedi 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 Indica se un browser è in grado di visualizzare una pagina in un <frame>, <iframe>, <embed> o <object>. Questo contribuisce a impedire attacchi di click-jacking, non permettendo ai tuoi contenuti di essere incorporati in altri siti. Nega tutti gli iiframe del sito: X-Frame-Options: DENY

Consenti solo al tuo sito di iframe (incorporamento): X-Frame-Options: SAMEORIGIN

Content-Security-Policy Per valutare le norme di sicurezza dei contenuti del tuo sito, puoi utilizzare lo strumento di valutazione CSP di Google. Non consentire gli script in linea e carica solo script su HTTPS: Content-Security-Policy: default-src https:

Fai attenzione quando introduci nuove intestazioni di sicurezza ai siti web esistenti, perché possono interrompere script di terze parti, contenuti incorporati (ad esempio in iframe) o altri aspetti dei siti. Prima di apportare modifiche al traffico di produzione, consigliamo di creare una seconda istanza del bucket o del servizio di backend e dei test.

Ulteriori informazioni sulle intestazioni di sicurezza web e sulle best practice sono disponibili anche su web.dev sul sito di infosec di Mozilla.

TLS e gestione dei certificati

I certificati gestiti hanno le seguenti caratteristiche:

  • Vengono forniti gratuitamente
  • Deployment facile sui tuoi bilanciatori del carico
  • Rinnovo automatico
  • Sono distribuiti a livello globale in tutte le località perimetrali di Google

TLS fornisce l'autenticità convalidando che i dati non sono stati modificati in transito. I certificati TLS garantiscono la riservatezza garantendo che i intercettatori non possano stabilire cosa viene scambiato tra utenti e server. Questa verifica è importante per la privacy e la sicurezza degli utenti.

Con i certificati SSL, puoi sfruttare i moderni protocolli di trasporto, come HTTP/2 e QUIC di Google, entrambi richiedono SSL (TLS). Questi protocolli migliorano direttamente le prestazioni dei contenuti web, la distribuzione di 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 i criteri SSL per aumentare la versione minima di TLS. Ti consigliamo di aumentare la versione a TLS v1.2, se non hai la necessità di supportare client meno recenti, come i dispositivi incorporati o i client più vecchi (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. Dopodiché potrai registrare queste informazioni.

Passaggi successivi