Hacker News

CSP барои Pentesters: Фаҳмидани асосҳо

Шарҳҳо

2 min read Via www.kayssel.com

Mewayz Team

Editorial Team

Hacker News

Чаро ҳар як Пентестер бояд сиёсати амнияти мундариҷаро азхуд кунад

Сиёсати амнияти мундариҷа (CSP) ба яке аз муҳимтарин механизмҳои дифои браузери зидди скрипти байнисоҳавӣ (XSS), воридкунии маълумот ва ҳамлаҳои кликкунӣ табдил ёфтааст. Бо вуҷуди ин, ҳангоми санҷиши воридшавӣ, сарлавҳаҳои CSP яке аз назорати бехатарии аксаран нодуруст танзимшаванда ва нодуруст фаҳмида мешаванд. Тадқиқоти соли 2024, ки беш аз 1 миллион вебсайтро таҳлил мекунад, нишон дод, ки танҳо 12,8% сарлавҳаҳои CSP-ро ҷойгир кардаанд ва аз инҳо, тақрибан 94% ҳадди аққал як заъфи сиёсатро дар бар мегирад, ки метавонад истифода шавад. Барои пентестерҳо фаҳмидани CSP ихтиёрӣ нест — ин фарқияти байни арзёбии сатҳи рӯизаминӣ ва гузоришест, ки воқеан мавқеи амнияти муштариро мустаҳкам мекунад.

Новобаста аз он ки шумо арзёбии барномаҳои веб, шикори мукофоти хатогиҳо ё сохтани амниятро дар платформаи тиҷоратӣ, ки маълумоти ҳассоси муштариро коркард мекунад, анҷом медиҳед, дониши CSP асосист. Ин дастур фаҳмонад, ки CSP чист, он чӣ гуна дар зери сарпӯш кор мекунад, дар куҷо ноком мешавад ва чӣ гуна пентестерҳо метавонанд сиёсатҳои заифро ба таври мунтазам арзёбӣ кунанд ва аз байн баранд.

Сиёсати амнияти мундариҷа воқеан чӣ кор мекунад

Дар асл, CSP як механизми декларативии бехатарӣ мебошад, ки тавассути сарлавҳаи посухи HTTP (ё камтар маъмул, теги ) дода мешавад. Он ба браузер дастур медиҳад, ки кадом манбаъҳои мундариҷа - скриптҳо, услубҳо, тасвирҳо, шрифтҳо, чаҳорчӯбаҳо ва ғайра - барои бор кардан ва иҷро кардани саҳифа дар саҳифа иҷозат дода шудаанд. Вақте ки манбаъ сиёсатро вайрон мекунад, браузер онро маҳкам мекунад ва ихтиёран дар бораи вайронкунӣ ба нуқтаи ниҳоии муайян хабар медиҳад.

Ҳавасмандии аслии CSP кам кардани ҳамлаҳои XSS буд. Ҳимояи анъанавии XSS, ба монанди санитаризатсияи вуруд ва рамзгузории баромад самаранок, вале ноустувор аст - як контексти аз даст додашуда ё хатои рамзгузорӣ метавонад осебпазириро дубора ҷорӣ кунад. CSP қабати амиқи дифоъро илова мекунад: ҳатто агар ҳамлакунанда теги скрипти зарароварро ба DOM ворид кунад, сиёсати дуруст танзимшуда браузерро аз иҷрои он пешгирӣ мекунад.

CSP дар модели рӯйхати сафед кор мекунад. Ба ҷои кӯшиши бастани мундариҷаи бад, он чизеро, ки ба таври возеҳ иҷозат дода шудааст, муайян мекунад. Ҳама чизи дигар бо нобаёнӣ рад карда мешавад. Ин табдили модели амният аз ҷиҳати назария пурқувват аст, аммо дар амал нигоҳ доштани сиёсати қатъӣ дар барномаҳои мураккаби веб – бахусус платформаҳое, ки даҳҳо модулҳои ҳамгирошудаи CRM, фактура, таҳлил ва системаҳои фармоиширо идора мекунанд, хеле душвор аст.

Анатомияи сарлавҳаи CSP: Директиваҳо ва манбаъҳо

Сарлавҳаи CSP аз директиваҳо иборат аст, ки ҳар як намуди захираҳои мушаххасро назорат мекунад. Фаҳмидани ин дастурҳо барои ҳар як пентестер, ки сиёсати ҳадафро арзёбӣ мекунад, муҳим аст. Муњимтарин директивањо иборатанд аз default-src (бозгашти ягон дастури ба таври возеҳ муқаррар карда нашудаанд), script-src (иҷрои JavaScript), style-src (CSS), img-src (тасвирҳо), connect-src (XHR), пайвастшавӣ, Webs frame-src (iframes дарунсохташуда) ва object-src (плагинҳо ба мисли апплетҳои Flash ё Java).

Ҳар як дастур як ё якчанд ифодаи манбаъ-ро қабул мекунад, ки сарчашмаҳои иҷозатдодашударо муайян мекунанд. Инҳо аз номҳои мушаххаси мизбон (https://cdn.example.com) то калимаҳои калидии васеътаранд:

  • 'self' — имкон медиҳад, ки захираҳо аз ҳамон сарчашма бо ҳуҷҷат
  • 'none' — ҳамаи захираҳои ин намудро блок мекунад
  • 'unsafe-inline' — ба скриптҳо ё услубҳои дохилӣ иҷозат медиҳад (ҳимояи XSS-ро самаранок безарар мекунад)
  • 'unsafe-eval' — имкон медиҳад, ки eval(), setTimeout(string) ва иҷроиши коди динамикии шабеҳро иҷро кунанд
  • 'nonce-{random}' — имкон медиҳад, ки скриптҳои мушаххаси сатрӣ, ки бо nonce криптографии мувофиқ нишон дода шудаанд
  • 'strict-dynamic' — ба скриптҳои боркардаи скриптҳои аллакай боваринок эътимод дорад ва рӯйхатҳои иҷозатдодашудаи ҳостро сарфи назар мекунад
  • data: — ба URI-ҳои маълумот ҳамчун манбаи мундариҷа иҷозат медиҳад

Сарлавҳаи воқеии CSP метавонад чунин бошад: Content-Security-Policy: default-src 'self'; script-src 'self' https://cdn.jsdelivr.net 'nonce-abc123'; style-src 'self' 'unsafe-inline'; img-src *; object-src 'нест'. Ҳамчун пентестер, вазифаи шумо хондани ин сиёсат ва фавран муайян кардани он аст, ки он дар куҷо қавӣ, дар куҷо заиф ва дар куҷо истифодашаванда аст.

Танзимоти нодурусти маъмули CSP, ки Pentesters бояд ҳадаф қарор диҳанд

Тафовут байни ҷойгиркунии сарлавҳаи CSP ва ҷойгиркунии сарлавҳаи самаранок CSP хеле калон аст. Дар амал, аксари сиёсатҳо дорои заифиҳое мебошанд, ки аз ҷониби роҳати таҳиягарон, ҳамгироии тарафи сеюм ё нофаҳмии оддӣ ба вуҷуд омадаанд. Ҳангоми арзёбӣ, пентестер бояд мунтазам ин нокомиҳои маъмулро тафтиш кунанд.

Танзимоти нодурусти харобиовар мавҷудияти 'unsafe-inline' дар дастури script-src мебошад. Ин як калимаи калидӣ тамоми манфиати зидди XSS-и CSP-ро аслан бефоида мекунад, зеро он ба браузер имкон медиҳад, ки ҳама гуна тегҳои дохилии