Hacker News

CSP għal Pentesters: Nifhmu l-Fundamenti

Kummenti

13 min read Via www.kayssel.com

Mewayz Team

Editorial Team

Hacker News

Għaliex Kull Pentester Jeħtieġ li Jikkontrolla l-Politika tas-Sigurtà tal-Kontenut

Il-Politika tas-Sigurtà tal-Kontenut (CSP) saret waħda mill-aktar mekkaniżmi ta' difiża kritiċi fuq in-naħa tal-brawżer kontra attakki ta' cross-site scripting (XSS), injezzjoni ta' data, u clickjacking. Madankollu fl-impenji tal-ittestjar tal-penetrazzjoni, l-headers tas-CSP jibqgħu wieħed mill-kontrolli tas-sigurtà l-aktar spiss konfigurati ħażin - u mifhuma ħażin. Studju tal-2024 li janalizza aktar minn miljun websajt sab li 12.8% biss użaw headers CSP għal kollox, u minn dawn, kważi 94% kien fihom mill-inqas dgħjufija waħda tal-politika li setgħet tiġi sfruttata. Għal pentesters, il-fehim tas-CSP mhuwiex fakultattiv — hija d-differenza bejn valutazzjoni fil-livell tal-wiċċ u rapport li fil-fatt isaħħaħ il-qagħda tas-sigurtà tal-klijent.

Sew jekk qed twettaq valutazzjonijiet tal-applikazzjoni tal-web, kaċċa għall-bunty tal-bugs, jew tibni s-sigurtà fi pjattaforma tan-negozju li timmaniġġja dejta sensittiva tal-klijenti, l-għarfien tas-CSP huwa fundamentali. Din il-gwida tkisser x'inhu CSP, kif jaħdem taħt il-barnuża, fejn ifalli, u kif il-pentesters jistgħu jevalwaw u jevitaw b'mod sistematiku politiki dgħajfa.

X'tagħmel fil-fatt il-Politika ta' Sigurtà tal-Kontenut

Fil-qalba tiegħu, CSP huwa mekkaniżmu ta' sigurtà dikjarattiv imwassal permezz ta' header ta' rispons HTTP (jew b'mod inqas komuni, tikketta ). Jagħti struzzjonijiet lill-browser liema sorsi ta' kontenut — skripts, stili, immaġini, fonts, frejms, u aktar — huma permessi li jgħabbu u jeżegwixxu fuq paġna partikolari. Meta riżorsa tikser il-politika, il-browser jimblokkaha u b'mod fakultattiv jirrapporta l-ksur lil punt tat-tmiem speċifikat.

Il-motivazzjoni oriġinali wara CSP kienet li jittaffew l-attakki XSS. Id-difiżi XSS tradizzjonali bħas-sanitizzazzjoni tal-input u l-kodifikazzjoni tal-output huma effettivi iżda fraġli - kuntest wieħed mitluf jew żball ta 'kodifikazzjoni jistgħu jerġgħu jintroduċu l-vulnerabbiltà. Is-CSP iżid saff ta' difiża fil-fond: anki jekk attakkant jinjetta tag b'kitba malizzjuża fid-DOM, politika kkonfigurata sew tipprevjeni lill-browser milli jesegwixxiha.

CSP jopera fuq mudell tal-lista bajda. Pjuttost milli jipprova jimblokka kontenut magħruf ħażin, jiddefinixxi dak li hu permess b'mod espliċitu. Kull ħaġa oħra hija miċħuda b'mod awtomatiku. Din l-inverżjoni tal-mudell tas-sigurtà hija b'saħħitha fit-teorija, iżda fil-prattika, iż-żamma ta' politiki stretti f'applikazzjonijiet tal-web kumplessi — speċjalment pjattaformi li jimmaniġġjaw għexieren ta' moduli integrati bħal CRM, fatturazzjoni, analitika, u sistemi ta' prenotazzjoni — hija notorjament diffiċli.

Anatomija ta' Header CSP: Direttivi u Sorsi

Header tas-CSP huwa magħmul minndirettivi, kull wieħed jikkontrolla tip ta' riżors speċifiku. Il-fehim ta' dawn id-direttivi huwa essenzjali għal kull pentester li jevalwa l-politika ta' mira. L-aktar direttivi importanti jinklududefault-src(ir-riżerva għal kwalunkwe direttiva mhux issettjata b'mod espliċitu),script-src(eżekuzzjoni JavaScript),style-src(CSS),img-src(immaġini),connect-src(XHR, Fetch, WebSocket connection (XHR, Fetch, WebSocket)frames iframes), u object-src (plugins bħal Flash jew Java applets).

Kull direttiva taċċetta espressjoni tas-sors waħda jew aktar li jiddefinixxu l-oriġini permessi. Dawn ivarjaw minn hostnames speċifiċi (https://cdn.example.com) għal kliem prinċipali usa':

  • 'self' — tippermetti riżorsi mill-istess oriġini bħad-dokument
  • 'xejn' — jimblokka r-riżorsi kollha ta' dak it-tip
  • 'unsafe-inline' — tippermetti skripts jew stili inline (jinnewtralizza b'mod effettiv il-protezzjoni XSS)
  • 'unsafe-eval' — tippermetti eval(), setTimeout(string), u eżekuzzjoni ta' kodiċi dinamiku simili
  • 'nonce-{random}' — tippermetti skripts inline speċifiċi mmarkati b'nonce kriptografika li tqabbel
  • 'strict-dynamic' — jafda skripts mgħobbija minn skripts diġà fdati, filwaqt li jinjora l-listi ta' permessi bbażati fuq l-ospitanti
  • dejta: — tippermetti URIs tad-dejta bħala sorsi ta' kontenut

Header tas-CSP tad-dinja reali jista' jidher bħal dan: Content-Security-Policy: default-src 'self'; script-src 'self' https://cdn.jsdelivr.net 'nonce-abc123'; style-src 'self' 'unsafe-inline'; img-src *; object-src 'xejn'. Bħala pentester, ix-xogħol tiegħek hu li taqra din il-politika u tidentifika immedjatament fejn hija b'saħħitha, fejn hija dgħajfa, u fejn tista' tiġi sfruttata.

Konfigurazzjonijiet Ħażin CSP Komuni Pentesters Għandhom Jimmiraw

Id-distakk bejn l-iskjerament ta' header CSP u l-iskjerament ta' header CSP effettiv huwa enormi. Fil-prattika, il-biċċa l-kbira tal-politiki fihom dgħufijiet introdotti mill-konvenjenza tal-iżviluppatur, integrazzjoni ta 'partijiet terzi, jew sempliċi nuqqas ta' ftehim. Matul il-valutazzjonijiet, il-pentesters għandhom jiċċekkjaw b'mod sistematiku għal dawn in-nuqqasijiet komuni.

L-iktar konfigurazzjoni ħażina devastanti hija l-preżenza ta''unsafe-inline' fid-direttivascript-src. Din il-kelma prinċipali waħda tirrendi l-benefiċċju kollu kontra l-XSS tas-CSP essenzjalment inutli, għaliex tippermetti lill-browser jesegwixxi kwalunkwe tikketta inline