Missing Web Security Header Tag Permissions-Policy segnalato nel report di Web Vulnerability Assessment
In seguito a un Web Vulnerability Assessment, è possibile che venga segnalata la mancanza di header specifici lato server (qui prendiamo in esame l’assenza dell’intestazione “Missing Web Security Header Tag Permissions-Policy”). Tali header possono essere implementati per migliorare la sicurezza di piattaforme e sistemi.
Web Security Header Tag Permissions-Policy: limita l’accesso a specifiche e necessarie funzionalità del browser
La vulnerabilità riguarda l’assenza dell’intestazione di sicurezza HTTP Permissions-Policy (precedentemente nota come Feature-Policy) nelle risposte del server web. Questa intestazione è utilizzata per controllare le funzionalità che il browser può utilizzare mentre visualizza una pagina web, come ad esempio l’accesso alla fotocamera, al microfono, alla geolocalizzazione, ecc.
Implementare l’intestazione Permissions-Policy è una buona pratica di sicurezza che aiuta a limitare l’accesso a funzionalità del browser solo a quelle necessarie, riducendo così il rischio di attacchi e migliorando la sicurezza complessiva del sito web.
Rischi associati
- Maggiore superficie di attacco
Senza restrizioni esplicite, gli attaccanti potrebbero sfruttare funzionalità del browser che non sono necessarie per il funzionamento del sito, aumentando la superficie di attacco. - Accesso non autorizzato
Funzionalità sensibili come la fotocamera, il microfono o la geolocalizzazione potrebbero essere accessibili da script malevoli.
Come intervenire sulla vulnerabilità segnalata come Missing Web Security Header Tag Permissions-Policy
Per mitigare questa vulnerabilità, è necessario aggiungere l’intestazione Permissions-Policy nelle risposte HTTP del server, specificando quali funzionalità devono essere consentite.
Esempi di configurazione
Apache
Aggiungi la seguente direttiva nel file di configurazione (conf o apache2.conf):
add_header Permissions-Policy "geolocation=(self), camera=(), microphone=()";
Questo esempio consente l’uso della geolocalizzazione solo per il dominio stesso e disabilita l’uso della fotocamera e del microfono.
Nginx
Aggiungi la seguente direttiva nel blocco server del file di configurazione (conf):
const helmet = require('helmet');
app.use(helmet.permittedCrossDomainPolicies({
permittedPolicies: "none"
}));
3. Express.js (Node.js)
Utilizza il middleware helmet per configurare l’intestazione:
const helmet = require('helmet');
app.use(helmet.permittedCrossDomainPolicies({
permittedPolicies: "none"
}));
Valori Comuni
- geolocation: controlla l’accesso alla geolocalizzazione.
- camera: controlla l’accesso alla fotocamera.
- microphone: controlla l’accesso al microfono.
- fullscreen: controlla l’uso della modalità a schermo intero.
- payment: controlla l’uso delle API di pagamento.