Hacker News

CSP per Pentesters: Capisce i Fundamenti

Cumenti

13 min read Via www.kayssel.com

Mewayz Team

Editorial Team

Hacker News

Perchè ogni Pentester hà bisognu di maestru di a pulitica di sicurezza di u cuntenutu

A Pulitica di Sicurezza di u Cuntenutu (CSP) hè diventata unu di i meccanismi di difesa di u navigatore più critichi contr'à a scripting cross-site (XSS), l'iniezione di dati è l'attacchi di clickjacking. Eppuru in l'ingaghjamentu di teste di penetrazione, l'intestazione CSP restanu unu di i cuntrolli di sicurezza più frequentemente misconfigurati - è incompresi. Un studiu 2024 chì analizà più di 1 milione di siti web hà truvatu chì solu u 12,8% hà implementatu intestazioni CSP in tuttu, è di quelli, quasi u 94% cuntene almenu una debule di pulitica chì puderia esse sfruttata. Per i pentesters, capiscenu CSP ùn hè micca opzionale - hè a diffarenza trà una valutazione à u livellu di a superficia è un rapportu chì rinforza veramente a postura di sicurità di u cliente.

Sia chì conducete valutazioni di l'applicazioni web, caccia di ricompense di bug, o custruendu a sicurità in una piattaforma cummerciale chì gestisce i dati sensibili di i clienti, a cunniscenza CSP hè fundamintale. Questa guida spiega ciò chì hè CSP, cumu si travaglia sottu u cappucciu, induve falla, è cumu i pentesters ponu valutà sistematicamente è sguassate e pulitiche debuli.

Ciò chì a Pulitica di Sicurezza di u Contenutu faci veramente

In u so core, CSP hè un mecanismu di sicurezza dichjarazione furnitu via un capu di risposta HTTP (o menu cumunimenti, un tag ). Instruisce u navigatore chì fonti di cuntenutu - scripts, stili, imaghjini, fonts, frames, è più - sò permessi di carricà è eseguisce nantu à una determinata pagina. Quandu una risorsa viola a pulitica, u navigatore u blucca è facoltativamente segnala a violazione à un puntu finale specificu.

A motivazione originale di CSP era di mitigà l'attacchi XSS. E difese XSS tradiziunali cum'è a sanitizazione di l'input è a codificazione di output sò efficaci ma fragili - un unicu cuntestu mancatu o errore di codificazione pò reintroduce a vulnerabilità. CSP aghjusta una strata di difesa in profondità: ancu se un attaccu injecta un tag di script maliziusu in u DOM, una pulitica cunfigurata currettamente impedisce à u navigatore di eseguisce.

CSP opera nantu à un mudellu di lista bianca. Piuttostu chè di pruvà à bluccà u cuntenutu cunnisciutu cattivu, definisce ciò chì hè esplicitamente permessu. Tuttu u restu hè denegatu per difettu. Questa inversione di u mudellu di sicurità hè putente in teoria, ma in pratica, mantene e pulitiche strette in l'applicazioni web cumplessi - in particulare e plataforme chì gestiscenu decine di moduli integrati cum'è CRM, fatturazione, analisi, è sistemi di prenotazione - hè notoriamente difficiule.

Anatomia di un Header CSP: Direttive è Fonti

Un capu CSP hè cumpostu di direttivi, ognunu cuntrullendu un tipu di risorsa specificu. Capisce queste direttive hè essenziale per ogni pentester chì valuta a pulitica di un target. I direttivi più impurtanti includenu default-src (u fallback per ogni direttiva micca esplicitamente stabilita), script-src (esecuzione JavaScript), style-src (CSS), img-src (imaghjini), connect-src (XHR, Fetch, WebSocket, src), connessioni src iframes), è object-src (plugins cum'è Flash o applet Java).

Ogni direttiva accetta una o più espressioni fonte chì definiscenu l'urighjini permessi. Quessi varianu da nomi d'ospiti specifichi (https://cdn.example.com) à parole chjave più larghe:

  • 'self' — permette risorse da a listessa origine chì u documentu
  • 'nimu' - blucca tutte e risorse di stu tipu
  • 'unsafe-inline' - permette scripts inline o stili (neutralizeghja in modu efficace a prutezzione XSS)
  • 'unsafe-eval' - permette eval (), setTimeout (string) è esecuzione di codice dinamicu simili
  • 'nonce-{random}' - permette scripts inline specifichi marcati cù un nonce criptograficu currispundente
  • 'strict-dynamic' - si fida di scripts caricati da scripts digià affidati, ignorendu liste di permessi basati in host
  • dati: — permette l'URI di dati cum'è fonti di cuntenutu

Un intestazione CSP di u mondu reale puderia vede cusì: Politica-Security-Content: default-src 'self'; script-src 'self' https://cdn.jsdelivr.net 'nonce-abc123'; style-src 'self' 'unsafe-inline'; img-src *; object-src 'nimu'. Cum'è un pentester, u vostru travagliu hè di leghje sta pulitica è identificà immediatamente induve hè forte, induve hè debule, è induve hè sfruttable.

Miconfigurazioni misconfigurazioni CSP cumuni Pentesters duveranu Target

U distaccu trà implementà un header CSP è implementà un header CSP efficace hè enormu. In pratica, a maiò parte di e pulitiche cuntenenu debbuli introdutte da a cunvenzione di u sviluppatore, integrazioni di terze parti, o semplice malintesa. Durante e valutazioni, i pentesters anu da verificà sistematicamente per questi fallimenti cumuni.

U misconfigurazione più devastante hè a presenza di 'unsafe-inline' in a direttiva script-src. Questa unica keyword rende l'interu benefiziu anti-XSS di CSP essenzialmente inutile, perchè permette à u navigatore di eseguisce qualsiasi tag