Hacker News

CSP fir Pentesters: D'Grondlage verstoen

Kommentaren

13 min read Via www.kayssel.com

Mewayz Team

Editorial Team

Hacker News

Firwat muss all Pentester Inhalt Sécherheetspolitik beherrschen

Inhaltssécherheetspolitik (CSP) ass ee vun de kriteschste Browser-Säit Verteidegungsmechanismen géint Cross-Site Scripting (XSS), Dateninjektioun a Clickjacking Attacke ginn. Awer bei Pénétratiounstest Engagementer bleiwen CSP Header ee vun den dacks falsch konfiguréierten - a falsch verstanen - Sécherheetskontrollen. Eng 2024 Studie, déi iwwer 1 Millioun Websäiten analyséiert huet, huet festgestallt datt nëmmen 12,8% CSP Header iwwerhaapt ofgesat hunn, a vun deenen, bal 94% enthalen op d'mannst eng Politikschwächt déi exploitéiert ka ginn. Fir Pentester, CSP ze verstoen ass net fakultativ - et ass den Ënnerscheed tëscht enger Surface-Level Bewäertung an engem Bericht, deen tatsächlech d'Sécherheetshaltung vum Client stäerkt.

Egal ob Dir Webapplikatioune Bewäertunge maacht, Bug Bounty Juegd maacht oder Sécherheet an eng Geschäftsplattform opbaut déi sensibel Clientdaten handhabt, CSP Wëssen ass fundamental. Dëse Guide brécht op wat CSP ass, wéi et ënner der Hood funktionnéiert, wou et fällt, a wéi Pentesters systematesch schwaach Politik kënne evaluéieren an ëmgoen.

Wat Inhalt Sécherheetspolitik eigentlech mécht

Am Kär ass CSP en deklarative Sécherheetsmechanismus, deen iwwer en HTTP Äntwert Header geliwwert gëtt (oder manner dacks e Tag). Et instruéiert de Browser wéi eng Quelle vum Inhalt - Skripte, Stiler, Biller, Schrëften, Rummen, a méi - erlaabt sinn op enger bestëmmter Säit ze lueden an auszeféieren. Wann eng Ressource d'Politik verletzt, blockéiert de Browser se a mellt optional d'Verletzung un e spezifizéierten Endpunkt.

Déi ursprénglech Motivatioun hannert CSP war XSS Attacken ze reduzéieren. Traditionell XSS Verteidegung wéi Input Sanitiséierung an Output Kodéierung sinn effektiv awer brécheg - en eenzege verpasste Kontext oder Kodéierungsfehler kann d'Schwachheet nei aféieren. CSP füügt eng Verteidegung-an-Déift Schicht derbäi: och wann en Ugräifer e béiswëlleg Skript-Tag an den DOM injizéiert, verhënnert eng richteg konfiguréiert Politik datt de Browser et ausféiert.

CSP funktionnéiert op engem Whitelist Modell. Anstatt ze probéieren bekannt-schlecht Inhalt ze blockéieren, definéiert et wat explizit erlaabt ass. Alles anescht gëtt par défaut dementéiert. Dës Inversioun vum Sécherheetsmodell ass mächteg an der Theorie, awer an der Praxis, streng Politiken iwwer komplexe Webapplikatiounen ze halen - besonnesch Plattformen déi Dosende vun integréierte Moduler wéi CRM, Rechnung, Analyse a Buchungssystemer managen - ass notoresch schwéier.

Anatomie vun engem CSP Header: Direktiven a Quellen

En CSP-Header besteet aus Direktiven, jidderee kontrolléiert eng spezifesch Ressourcetyp. Dës Direktiven ze verstoen ass essentiell fir all Pentester deen d'Politik vun engem Zil evaluéiert. Déi wichtegst Direktiven enthalen Default-src (de Réckfall fir all Direktiv net explizit festgeluegt), script-src (JavaScript Ausféierung), style-src (CSS), img-src (Biller), connect-src,connection, (XHR), frame-src (embedded iframes), an object-src (Plugins wéi Flash oder Java-Applets).

All Direktiv akzeptéiert een oder méi Quellausdréck déi erlaabt Originen definéieren. Dës reeche vu spezifesche Hostnumm (https://cdn.example.com) bis méi breet Schlësselwieder:

  • 'selwer' — erlaabt Ressourcen aus dem selwechten Urspronk wéi d'Dokument
  • 'none' — blockéiert all Ressourcen vun deem Typ
  • 'unsafe-inline' — erlaabt Inline Scripten oder Stiler (neutraliséiert effektiv XSS Schutz)
  • 'unsafe-eval' - erlaabt eval(), setTimeout(String), an ähnlech dynamesch Code Ausféierung
  • 'nonce-{random}' — erlaabt spezifesch Inline Scripte markéiert mat enger passender kryptografescher Nonce
  • 'strict-dynamic' - vertraut Skripte gelueden vu scho vertraute Skripte, ignoréiert Host-baséiert Erlaabneslëschten
  • Daten: — erlaabt Daten-URIs als Inhaltsquellen

En real-Welt CSP Header kéint esou ausgesinn: Content-Security-Policy: default-src 'self'; script-src 'self' https://cdn.jsdelivr.net 'nonce-abc123'; style-src 'self' 'onsécher-inline'; img-src *; object-src 'none'. Als Pentester ass Är Aarbecht dës Politik ze liesen an direkt z'identifizéieren wou se staark ass, wou se schwaach ass, a wou se exploitéierbar ass.

Gemeinsam CSP Mësskonfiguratiounen Pentesters Sollt Zil

Den Ënnerscheed tëscht engem CSP Header z'installéieren an engem effektive CSP Header z'installéieren ass enorm. An der Praxis enthalen déi meescht Politiken Schwächen, déi duerch Entwécklerkomfort agefouert ginn, Drëtt Partei Integratiounen oder einfache Mëssverständnis. Wärend Bewäertunge solle Pentester systematesch op dës gemeinsam Feeler kontrolléieren.

Déi zerstéierendst Fehlkonfiguratioun ass d'Präsenz vun 'unsafe-inline' an der script-src Direktiv. Dëst eenzegt Schlësselwuert mécht de ganzen Anti-XSS Virdeel vum CSP wesentlech nëtzlos, well et erlaabt de Browser all Inline