Hacker News

Pentesters uchun CSP: Asoslarni tushunish

Fikrlar

12 min read Via www.kayssel.com

Mewayz Team

Editorial Team

Hacker News

Nega har bir Pentester kontent xavfsizligi siyosatini o'zlashtirishi kerak

Kontent xavfsizligi siyosati (CSP) saytlararo skriptlar (XSS), maʼlumotlarni kiritish va kliklash hujumlariga qarshi brauzer tarafidagi eng muhim himoya mexanizmlaridan biriga aylandi. Penetratsiya sinovlarida CSP sarlavhalari eng ko'p noto'g'ri sozlangan va noto'g'ri tushunilgan xavfsizlik boshqaruvlaridan biri bo'lib qolmoqda. 2024 yilda 1 milliondan ortiq veb-saytlarni tahlil qilgan tadqiqot shuni ko'rsatdiki, faqat 12,8% CSP sarlavhalarini o'rnatgan va ularning 94% ga yaqinida foydalanish mumkin bo'lgan kamida bitta siyosat zaifligi mavjud. Pentesters uchun CSPni tushunish ixtiyoriy emas — bu yuzaki baholash va mijozning xavfsizlik holatini mustahkamlovchi hisobot o'rtasidagi farqdir.

Veb-ilovalarni baholash, xatolarni ovlash yoki mijozlarning nozik ma'lumotlarini qayta ishlaydigan biznes platformasida xavfsizlikni yaratish bo'ladimi, CSP bilimi asosdir. Ushbu qoʻllanmada CSP nima ekanligi, uning qanday ishlashi, qayerda muvaffaqiyatsizlikka uchragani va pentesterlarning zaif siyosatlarni tizimli ravishda baholashi va chetlab oʻtishi mumkinligi haqida maʼlumot berilgan.

Kontent xavfsizligi siyosati aslida nima qiladi

Aslida CSP HTTP javob sarlavhasi (yoki kamroq tarqalgan teg) orqali yetkaziladigan deklarativ xavfsizlik mexanizmidir. U brauzerga qaysi kontent manbalarini - skriptlar, uslublar, tasvirlar, shriftlar, ramkalar va boshqalarni ma'lum bir sahifada yuklash va bajarishga ruxsat berilishini ko'rsatadi. Resurs siyosatni buzsa, brauzer uni bloklaydi va qoidabuzarlik haqida belgilangan oxirgi nuqtaga xabar beradi.

CSP-ning asl maqsadi XSS hujumlarini yumshatish edi. Kirishni tozalash va chiqishni kodlash kabi an'anaviy XSS himoya vositalari samarali, ammo mo'rt - o'tkazib yuborilgan bitta kontekst yoki kodlash xatosi zaiflikni qayta tiklashi mumkin. CSP chuqur mudofaa qatlamini qo'shadi: tajovuzkor DOMga zararli skript tegini kiritsa ham, to'g'ri sozlangan siyosat brauzerning uni bajarishiga to'sqinlik qiladi.

CSP oq ro'yxat modelida ishlaydi. Ma'lum bo'lgan yomon kontentni blokirovka qilishga urinishdan ko'ra, u aniq ruxsat etilgan narsalarni belgilaydi. Qolganlarning hammasi sukut bo'yicha rad etiladi. Xavfsizlik modelining bu inversiyasi nazariy jihatdan kuchli, biroq amalda murakkab veb-ilovalar, xususan, CRM, hisob-faktura, tahlil va bronlash tizimlari kabi o‘nlab integratsiyalashgan modullarni boshqaruvchi platformalarda qat’iy siyosat yuritish juda qiyin.

CSP sarlavhasining anatomiyasi: Direktivlar va manbalar

CSP sarlavhasi har biri ma'lum bir manba turini boshqaradigan direktivalardan iborat. Ushbu ko'rsatmalarni tushunish maqsad siyosatini baholaydigan har qanday pentester uchun juda muhimdir. Eng muhim direktivalar orasida default-src (aniq o'rnatilmagan har qanday direktiv uchun zaxira), script-src (JavaScript bajarilishi), style-src (CSS), img-src (tasvirlar), connect-src, Fetch (XHR), Web ulanishi frame-src (oʻrnatilgan iframes) va object-src (Flash yoki Java ilovalari kabi plaginlar).

Har bir direktiva ruxsat etilgan manbalarni belgilaydigan bir yoki bir nechta manba ifodalarini qabul qiladi. Bular muayyan xost nomlaridan (https://cdn.example.com) kengroq kalit so‘zlargacha:

  • 'self' — hujjat bilan bir xil manbadan manbalarga ruxsat beradi
  • 'none' — bu turdagi barcha resurslarni bloklaydi
  • 'insafe-inline' — inline skriptlar yoki uslublarga ruxsat beradi (XSS himoyasini samarali ravishda zararsizlantiradi)
  • 'unsafe-eval' — eval(), setTimeout(string) va shunga o'xshash dinamik kodni bajarishga ruxsat beradi
  • 'nonce-{tasodifiy}' — mos keladigan kriptografik nonce bilan teglangan maxsus inline skriptlarga ruxsat beradi
  • 'qattiq dinamik' — allaqachon ishonchli skriptlar tomonidan yuklangan skriptlarga ishonadi, xostga asoslangan ruxsatnomalar roʻyxatiga eʼtibor bermaydi
  • ma'lumotlar: — kontent manbalari sifatida ma'lumotlar URI'lariga ruxsat beradi

Haqiqiy CSP sarlavhasi quyidagicha ko'rinishi mumkin: Content-Security-Policy: default-src 'self'; script-src 'self' https://cdn.jsdelivr.net 'nonce-abc123'; style-src 'self' 'xavfsiz-inline'; img-src *; object-src 'yo'q'. Pentester sifatida sizning vazifangiz ushbu siyosatni o‘qib chiqish va u qayerda kuchli, qayerda zaif va qayerda foydalanish mumkinligini darhol aniqlashdir.

Umumiy CSP noto'g'ri konfiguratsiyalari Pentesters nishonga olishi kerak

CSP sarlavhasini o'rnatish va samarali CSP sarlavhasini o'rnatish o'rtasidagi bo'shliq juda katta. Amalda, siyosatlarning aksariyati ishlab chiquvchining qulayligi, uchinchi tomon integratsiyasi yoki oddiy tushunmovchilik tufayli yuzaga kelgan zaif tomonlarni o'z ichiga oladi. Baholash vaqtida pentesters muntazam ravishda ushbu keng tarqalgan nosozliklarni tekshirishi kerak.

Eng dahshatli noto'g'ri konfiguratsiya script-src direktivasida "unsafe-inline" mavjudligidir. Ushbu yagona kalit so'z CSP ning butun anti-XSS foydasini umuman foydasiz qiladi, chunki u brauzerga har qanday inline