Hacker News

CSP por Pentestistoj: Kompreni la Fundamentojn

Komentoj

11 min read Via www.kayssel.com

Mewayz Team

Editorial Team

Hacker News

Kial Ĉiu Pentester Necesas Majstri Enhavan Sekurecpolitikon

Politiko pri Sekureco de Enhavo (CSP) fariĝis unu el la plej kritikaj defendmekanismoj de la retumilo kontraŭ trans-reteja skribo (XSS), datuma injekto kaj atakoj pri klakkaptado. Tamen en penetrotestaj engaĝiĝoj, CSP-titoloj restas unu el la plej ofte misagorditaj - kaj miskomprenitaj - sekureckontroloj. Studo (2024) analizanta pli ol 1 milionon da retejoj trovis ke nur 12.8% deplojis CSP-titolojn entute, kaj el tiuj, preskaŭ 94% enhavis almenaŭ unu politikan malforton kiu povus esti ekspluatata. Por pentestantoj, kompreni CSP ne estas laŭvola — ĝi estas la diferenco inter surfacnivela takso kaj raporto, kiu efektive plifortigas la sekurecan sintenon de kliento.

Ĉu vi faras taksojn pri TTT-aplikaĵoj, ĉasadon de cimpremioj aŭ konstruas sekurecon en komercan platformon, kiu pritraktas sentemajn klientajn datumojn, CSP-scio estas fundamenta. Ĉi tiu gvidilo malkonstruas kio estas CSP, kiel ĝi funkcias sub la kapuĉo, kie ĝi malsukcesas, kaj kiel pentestantoj povas sisteme taksi kaj preteriri malfortajn politikojn.

Kion Enhava Sekurecpolitiko Efektive Faras

Ekzemple, CSP estas deklara sekureca mekanismo liverita per HTTP-responda kaplinio (aŭ malpli ofte, etikedo ). Ĝi instrukcias al la retumilo, kiuj fontoj de enhavo - skriptoj, stiloj, bildoj, tiparoj, kadroj kaj pli - rajtas ŝargi kaj efektivigi sur difinita paĝo. Kiam rimedo malobservas la politikon, la retumilo blokas ĝin kaj laŭvole raportas la malobservon al difinita finpunkto.

La origina instigo malantaŭ CSP estis mildigi XSS-atakojn. Tradiciaj XSS-defendoj kiel eniga sanigado kaj eligokodado estas efikaj sed fragilaj - ununura maltrafita kunteksto aŭ koda eraro povas reenkonduki la vundeblecon. CSP aldonas defend-profundan tavolon: eĉ se atakanto injektas malican skriptetikedon en la DOM, ĝuste agordita politiko malhelpas la retumilon ekzekuti ĝin.

CSP funkcias laŭ blanklisto-modelo. Prefere ol provi bloki konatan malbonan enhavon, ĝi difinas kio estas eksplicite permesita. Ĉio alia estas neita defaŭlte. Ĉi tiu inversio de la sekureca modelo estas potenca teorie, sed praktike konservi striktajn politikojn tra kompleksaj retejoj - precipe platformoj administrantaj dekojn da integraj moduloj kiel CRM, fakturado, analizo kaj rezervosistemoj - estas fifame malfacila.

Anatomio de CSP-kapo: Direktivoj kaj Fontoj

CSP-kapo estas kunmetita de directivoj, ĉiu kontrolante specifan rimedan tipon. Kompreni ĉi tiujn direktivojn estas esenca por iu ajn pentisto taksanta la politikon de celo. La plej gravaj direktivoj inkluzivas default-src (la restarigo por iu ajn direktivo ne eksplicite agordita), script-src (JavaScript-ekzekuto), style-src (CSS), img-src (bildoj), connect-src (XHR, Fetch, WebSocket-frame), connect-src iframes), kaj object-src (kromaĵoj kiel Flash aŭ Java-apletoj).

Ĉiu direktivo akceptas unu aŭ plurajn fontoesprimojn kiuj difinas permesitajn originojn. Ĉi tiuj intervalas de specifaj gastigantnomoj (https://cdn.example.com) ĝis pli larĝaj ŝlosilvortoj:

  • 'mem' — permesas rimedojn el la sama origino kiel la dokumento
  • 'neniu' — blokas ĉiujn tiuspecajn rimedojn
  • 'unsafe-inline' — permesas enliniajn skriptojn aŭ stilojn (efike neŭtraligas XSS-protekton)
  • 'unsafe-eval' — ebligas eval(), setTimeout(string), kaj similan dinamikan kodan ekzekuton
  • 'nonce-{hazarda}' — permesas specifajn enliniajn manuskriptojn etikeditajn kun kongrua kriptiga nonce
  • 'strikta-dinamika' — fidas skriptojn ŝarĝitajn de jam fidindaj skriptoj, ignorante gastigajn permeslistojn
  • datumoj: — permesas datumojn URI-ojn kiel enhavfontojn

Reala monda CSP-kapo povus aspekti jene: Content-Security-Policy: default-src 'self'; script-src 'self' https://cdn.jsdelivr.net 'nonce-abc123'; style-src 'self' 'unsafe-inline'; img-src *; object-src 'neniu'. Kiel pentester, via tasko estas legi ĉi tiun politikon kaj tuj identigi kie ĝi estas forta, kie ĝi estas malforta, kaj kie ĝi estas ekspluatebla.

Oftaj CSP Misagordoj Pentestantoj Devus Celi

La interspaco inter deplojado de CSP-kapo kaj deplojado de efika CSP-kapo estas grandega. Praktike, la plej multaj politikoj enhavas malfortojn lanĉitajn per programisto-konveno, triapartaj integriĝoj aŭ simpla miskompreno. Dum taksadoj, pentestantoj sisteme devus kontroli ĉi tiujn oftajn malsukcesojn.

La plej ruiniga misagordo estas la ĉeesto de 'unsafe-inline' en la direktivo script-src. Ĉi tiu ununura ŝlosilvorto igas la tutan kontraŭ-XSS-utilon de CSP esence senutila, ĉar ĝi permesas al la retumilo ekzekuti ajnan enlinian etikedon