FixVibe
Covered by FixVibemedium

Intestazioni di sicurezza HTTP: implementazione di CSP e HSTS per la difesa lato browser

Questa ricerca esplora il ruolo critico delle intestazioni di sicurezza HTTP, in particolare Content Security Policy (CSP) e HTTP Strict Transport Security (HSTS), nella protezione delle applicazioni web da vulnerabilità comuni come Cross-Site Scripting (XSS) e attacchi di downgrade del protocollo.

CWE-1021CWE-79CWE-319

Il ruolo delle intestazioni di sicurezza

Le intestazioni di sicurezza HTTP forniscono un meccanismo standardizzato per le applicazioni Web per istruire i browser ad applicare policy di sicurezza specifiche durante una sessione [S1] [S2]. Queste intestazioni fungono da livello critico di difesa approfondita, mitigando i rischi che potrebbero non essere completamente affrontati dalla sola logica applicativa.

Politica di sicurezza dei contenuti (CSP)

La policy di sicurezza dei contenuti (CSP) è un livello di sicurezza che aiuta a rilevare e mitigare determinati tipi di attacchi, tra cui Cross-Site Scripting (XSS) e attacchi di data injection [S1]. Definendo una policy che specifica quali risorse dinamiche possono essere caricate, CSP impedisce al browser di eseguire script dannosi inseriti da un utente malintenzionato [S1]. Ciò limita di fatto l'esecuzione di codice non autorizzato anche se nell'applicazione esiste una vulnerabilità di injection.

Sicurezza del trasporto rigorosa HTTP (HSTS)

HTTP Strict Transport Security (HSTS) è un meccanismo che consente a un sito Web di informare i browser che è necessario accedervi solo tramite HTTPS, anziché HTTP [S2]. Ciò protegge dagli attacchi di downgrade del protocollo e dal dirottamento dei cookie garantendo che tutte le comunicazioni tra il client e il server siano crittografate [S2]. Una volta che un browser riceve questa intestazione, convertirà automaticamente tutti i successivi tentativi di accesso al sito tramite HTTP in richieste HTTPS.

Implicazioni sulla sicurezza delle intestazioni mancanti

Le applicazioni che non riescono a implementare queste intestazioni corrono un rischio significativamente più elevato di compromissione sul lato client. L'assenza di una politica di sicurezza dei contenuti consente l'esecuzione di script non autorizzati, che possono portare al dirottamento della sessione, all'esfiltrazione di dati non autorizzata o al defacement [S1]. Allo stesso modo, la mancanza di un'intestazione HSTS lascia gli utenti vulnerabili agli attacchi man-in-the-middle (MITM), in particolare durante la fase di connessione iniziale, in cui un utente malintenzionato può intercettare il traffico e reindirizzare l'utente a una versione dannosa o non crittografata del sito [S2].

Come lo esegue il test FixVibe

FixVibe lo include già come controllo di scansione passiva. headers.security-headers controlla i metadati della risposta HTTP pubblica per la presenza e la forza di Content-Security-Policy, Strict-Transport-Security, X-Frame-Options o frame-ancestors, X-Content-Type-Options, Referrer-Policy e Permissions-Policy. Segnala valori mancanti o deboli senza sondaggi di exploit e la sua richiesta di correzione fornisce esempi di intestazioni pronte per la distribuzione per configurazioni comuni di app e CDN.

Guida alla risoluzione

Per migliorare il livello di sicurezza, i server Web devono essere configurati per restituire queste intestazioni su tutti i percorsi di produzione. Un CSP robusto deve essere personalizzato in base ai requisiti di risorse specifici dell'applicazione, utilizzando direttive come script-src e object-src per limitare gli ambienti di esecuzione degli script [S1]. Per la sicurezza del trasporto, l'intestazione Strict-Transport-Security deve essere abilitata con una direttiva max-age appropriata per garantire una protezione persistente tra le sessioni utente [S2].