Web és webbiztonság

CSP Report-Only: miért érdemes előbb mérni, és csak utána blokkolni?

A Content Security Policy bevezetése biztonságosabban végezhető, ha az első szakaszban Report-Only módban mérjük a tényleges függőségeket és csak validálás után kapcsolunk enforcementre.

Integra 2002

A Content Security Policy (CSP) egyik legnagyobb előnye, hogy a böngészőben korlátozható, honnan tölthet be az oldal szkripteket, stílusokat, képeket és más erőforrásokat. Ugyanez a képesség a fő kockázata is: egy túl szigorú, előzetesen nem validált szabály legitim funkciókat is letilthat.

Ezért érdemes a CSP-t nem egyetlen kapcsolóként, hanem kontrollált bevezetési folyamatként kezelni. A Content-Security-Policy-Report-Only fejléc erre való: a böngésző kiértékeli a szabályokat és jelzi a megsértésüket, de nem blokkolja a tartalmat.

Mit ad a Report-Only mód?

Report-Only állapotban ugyanazt a policy-logikát lehet kipróbálni, amelyet később enforcement módban szeretnénk használni.

A különbség lényeges:

  • Report-Only: mér és jelez, de nem blokkol;
  • enforced CSP: a szabályt megsértő erőforrást ténylegesen blokkolja.

Ez lehetőséget ad arra, hogy még éles működés mellett kiderüljön:

  • mely külső domainekről tölt az oldal erőforrásokat;
  • maradt-e inline script vagy stílus, amelyet a policy érint;
  • van-e olyan beágyazás, betűkészlet vagy API-hívás, amely nem szerepel a tervezett engedélylistán;
  • egy új release bevezetett-e váratlan függőséget.

Fontos korlát: a Report-Only önmagában nem védelmi kontroll. Ha a policy sérül, a böngésző csak jelentést készít; a tartalom továbbra is lefuthat.

Miért kockázatos az azonnali enforcement?

Egy modern weboldal függőségei könnyen szétterülhetnek több rétegen. Tipikus példák:

  • analitika vagy consent megoldás;
  • külső betűkészlet;
  • CDN;
  • videó- vagy térképbeágyazás;
  • CAPTCHA;
  • ügyfélchat;
  • inline konfigurációs script;
  • fejlesztői keretrendszer által generált erőforrás.

Ha ezek közül egy kimarad a policy-ból, a böngésző helyesen végrehajtja a korlátozást — az oldal viszont részben hibássá válhat.

Ezért a CSP hardening célja nem az, hogy minél hosszabb vagy minél szigorúbb fejléc készüljön. A cél egy minimális, érthető és bizonyítottan működő policy.

Egy egyszerű bevezetési sorrend

Az általunk követett biztonságos minta:

  1. Erőforrás-inventory: azonosítani kell, mit tölt be ténylegesen az oldal és honnan.
  2. Első Report-Only policy: a kívánt célállapothoz közeli, de még nem blokkoló szabályrendszer.
  3. Valós böngészős ellenőrzés: nem elég csak a build; desktop és mobil használat közben is figyelni kell a violationöket.
  4. Zaj szétválasztása: egy böngészőbővítmény vagy lokális eszköz is okozhat olyan CSP-jelzést, amely nem az alkalmazás hibája.
  5. Felesleges függőségek eltávolítása: amit nem kell engedélyezni, azt jobb megszüntetni, mint egyre tágabb policy-val lefedni.
  6. Enforcement csak stabil baseline után: akkor érdemes váltani, amikor a szükséges működési útvonalakat már ellenőriztük.
  7. Release utáni monitorozás: későbbi tartalmi vagy technikai módosítás új függőséget hozhat be.

Mit jelent ez egy statikus Astro oldalnál?

Egy static-first oldal előnyben van: kevesebb runtime JavaScript, kevesebb dinamikus komponens és kisebb harmadikfeles függőség általában egyszerűbb CSP-t tesz lehetővé.

Ez azonban nem jelenti azt, hogy a policy automatikusan triviális. Már egyetlen külső szolgáltatás is új script-src, connect-src, frame-src vagy más követelményt hozhat.

Az integra2002.hu új Astro verziójánál ezért a CSP-t először Report-Only módban vezettük be. A release előtti és utáni böngészős ellenőrzés során külön figyeltük, hogy a policy jelez-e valódi alkalmazásfüggőséget. Ez nem végleges hardening-állapot, hanem tudatos mérési fázis.

Mikor lehet továbblépni enforcementre?

Nem célszerű naptári határidőhöz kötni. Jobb feltételekhez kötni:

  • a fontos oldaltípusok végig lettek járva;
  • nincs ismert legitim erőforrás, amelyet a policy megsértene;
  • a szükséges külső domainek indoka dokumentált;
  • a release után sincs új, megmagyarázatlan violation;
  • van rollback út, ha enforcement után működési regresszió jelenik meg.

A CSP akkor ér valamit, ha valóban korlátoz. De csak akkor érdemes korlátoznia, amikor már tudjuk, mit szabad blokkolni és mit nem.

Források

Címkék
CSPContent Security PolicywebbiztonságHTTP fejlécekhardening
Kapcsolódó szolgáltatások

Ha a témából konkrét teendő következik

IT-biztonság

Gyakorlati KKV IT-biztonság: konfigurációs kockázatok, hozzáférések, mentések, végpontok és infrastruktúra felmérése, majd priorizált javítási terv.

Részletek →