Hacker News

CSP para sa mga Pentesters: Pagsabut sa mga Sukaranan

Mga komento

16 min read Via www.kayssel.com

Mewayz Team

Editorial Team

Hacker News

Ngano nga Ang Matag Pentester Kinahanglan nga Mag-master sa Content Security Policy

Content Security Policy (CSP) nahimong usa sa labing kritikal nga browser-side defense mechanism batok sa cross-site scripting (XSS), data injection, ug clickjacking attacks. Apan sa penetration testing engagements, ang mga ulohan sa CSP nagpabilin nga usa sa labing kanunay nga sayop nga pag-configure - ug wala masabtan - mga kontrol sa seguridad. Usa ka 2024 nga pagtuon nga nag-analisar sa kapin sa 1 milyon nga mga website nakit-an nga 12.8% ra ang nag-deploy sa mga ulohan sa CSP, ug sa mga, hapit 94% adunay labing menos usa ka kahuyang sa palisiya nga mahimong mapahimuslan. Para sa mga pentester, ang pagsabot sa CSP dili opsyonal — kini ang kalainan tali sa surface-level assessment ug usa ka report nga aktuwal nga nagpalig-on sa postura sa seguridad sa kliyente.

Bisag nagpahigayon ka ug web application assessments, bug bounty hunting, o pagtukod og seguridad ngadto sa usa ka business platform nga nagdumala sa sensitibong data sa customer, ang kahibalo sa CSP maoy sukaranan. Gibungkag niini nga giya kung unsa ang CSP, kung giunsa kini paglihok sa ilawom sa tabon, kung diin kini napakyas, ug kung giunsa ang mga pentester makahimo sa sistematikong pagtimbang-timbang ug paglaktaw sa huyang nga mga palisiya.

Unsa ang Tinuod nga Patakaran sa Seguridad sa Content

Sa kinauyokan niini, ang CSP usa ka mekanismo sa deklaratibo nga seguridad nga gihatag pinaagi sa usa ka header sa tubag sa HTTP (o dili kaayo kasagaran, usa ka tag nga ). Gitudloan niini ang browser kung unsang mga gigikanan sa sulud - mga script, istilo, imahe, font, frame, ug uban pa - gitugotan nga i-load ug ipatuman sa usa ka panid. Kung ang usa ka kapanguhaan makalapas sa palisiya, ang browser mo-block niini ug opsyonal nga i-report ang paglapas sa usa ka piho nga endpoint.

Ang orihinal nga motibasyon luyo sa CSP mao ang pagpagaan sa mga pag-atake sa XSS. Ang tradisyonal nga mga depensa sa XSS sama sa sanitization sa input ug pag-encode sa output epektibo apan brittle - ang usa ka nawala nga konteksto o sayup sa pag-encode mahimo’g mabalik ang pagkahuyang. Ang CSP midugang og defense-in-depth layer: bisan og ang tig-atake mag-inject ug malisyoso nga script tag ngadto sa DOM, ang usa ka hustong pagka-configure nga polisiya magpugong sa browser sa pagpatuman niini.

Ang CSP naglihok sa usa ka whitelist nga modelo. Imbis nga sulayan nga babagan ang nahibal-an nga dili maayo nga sulud, gipasabut niini kung unsa ang klaro nga gitugotan. Ang tanan nga uban pa gipanghimakak pinaagi sa default. Kini nga pagbag-o sa modelo sa seguridad kusgan sa teorya, apan sa praktis, ang pagpadayon sa estrikto nga mga palisiya sa mga komplikado nga aplikasyon sa web — labi na ang mga platform nga nagdumala sa daghang mga integrated module sama sa CRM, pag-invoice, analytics, ug mga sistema sa pag-book — labi ka lisud.

Anatomy of a CSP Header: Directives and Sources

Usa ka CSP header gilangkuban sa direktiba, ang matag usa nagkontrol sa usa ka piho nga tipo sa kapanguhaan. Ang pagsabut niini nga mga direktiba hinungdanon alang sa bisan kinsa nga pentester nga nagtimbang-timbang sa palisiya sa usa ka target. Ang labing importante nga mga direktiba naglakip sa default-src (ang fallback alang sa bisan unsang direktiba nga dili tin-aw nga gitakda), script-src (JavaScript execution), style-src (CSS), img-src (mga hulagway), connect-src (XHR, Fetch) iframes), ug object-src (mga plugins sama sa Flash o Java applets).

Ang matag direktiba modawat sa usa o daghan pang mga ekspresyon sa tinubdan nga naghubit sa gitugot nga mga gigikanan. Kini gikan sa piho nga mga hostname (https://cdn.example.com) ngadto sa mas lapad nga mga keyword:

  • 'kaugalingon' — nagtugot sa mga kapanguhaan gikan sa sama nga gigikanan sa dokumento
  • 'wala' — gibabagan ang tanang mga kahinguhaan sa maong matang
  • 'unsafe-inline' — nagtugot sa inline nga mga script o estilo (epektibong nag-neutralize sa proteksyon sa XSS)
  • 'unsafe-eval' — nagtugot sa eval(), setTimeout(string), ug susamang dynamic code execution
  • 'nonce-{random}' — nagtugot sa espisipikong inline nga mga script nga gi-tag nga adunay pareha nga cryptographic nonce
  • 'strict-dynamic' — nagsalig sa mga script nga gikargahan sa kasaligan na nga mga script, nga wala magtagad sa host-based allowlists
  • data: — nagtugot sa mga data URI isip tinubdan sa sulod

Ang usa ka tinuod nga kalibutan nga ulohan sa CSP mahimong sama niini: Content-Security-Policy: default-src 'self'; script-src 'kaugalingon' https://cdn.jsdelivr.net 'nonce-abc123'; style-src 'kaugalingon' 'dili luwas-inline'; img-src *; object-src 'wala'. Isip usa ka pentester, ang imong trabaho mao ang pagbasa niini nga polisiya ug pag-ila dayon kon asa kini lig-on, asa kini huyang, ug asa kini mapahimuslan.

Kinahanglan nga CSP Misconfigurations Ang mga Pentester Kinahanglang Target

Ang kal-ang tali sa pag-deploy og CSP header ug sa pagdeploy og epektibo CSP header dako kaayo. Sa praktis, kadaghanan sa mga palisiya adunay mga kahuyang nga gipaila sa kasayon ​​sa developer, mga panagsama sa ikatulo nga partido, o yano nga dili pagsinabtanay. Atol sa mga pagtasa, kinahanglang sistematikong susihon sa mga pentester kining kasagarang mga kapakyasan.

Ang labing makaguba nga sayop nga pag-configure mao ang presensya sa 'dili luwas nga linya' sa script-src nga direktiba. Kining usa ka keyword naghimo sa tibuok nga anti-XSS nga benepisyo sa CSP nga walay pulos, tungod kay kini nagtugot sa browser sa pagpatuman sa bisan unsa nga inline nga