Ushbu bo'limda web cache poisoning nima ekanini va qanday xatti-harakatlar bu zaiflikka olib kelishini muhokama qilamiz, hamda ularni ekspluatatsiya qilish va oldini olish yo'llarini ko'rsatamiz.
Web cache poisoning — ilg'or usul bo'lib, unda hujumchi veb-server va keshning xatti-harakatidan foydalanib, boshqa foydalanuvchilarga zararli HTTP javob berilishiga erishadi. Tubdan, WCP ikki bosqichdan iborat. Birinchidan, hujumchi back-end serverdan beixtiyor xavfli payloadni o'z ichiga olgan javob keltirib chiqarishni topishi kerak. Muvaffaqiyatga erishgach, javobi keshlanib, mo'ljallangan jabrlanuvchilarga berilishini ta'minlashi kerak. Zaharlangan kesh XSS, JavaScript injection, open redirection kabi turli hujumlarni tarqatishning halokatli vositasi bo'lishi mumkin.
Kesh server va foydalanuvchi o'rtasida turadi va ma'lum so'rovlarga javoblarni (odatda belgilangan vaqtga) saqlaydi. Agar boshqa foydalanuvchi ekvivalent so'rov yuborsa, kesh back-end ishtirokisiz keshlangan javob nusxasini beradi.
Kesh HTTP so'rov kelganda, keshlangan javob berish yoki back-end'ga uzatishni hal qilishi kerak. Keshlar ekvivalent so'rovlarni so'rovning oldindan belgilangan komponentlar to'plamini — "cache key"ni — solishtirib aniqlaydi. Odatda bu request line va Host sarlavhasini o'z ichiga oladi. Cache key'ga kiritilmagan komponentlar "unkeyed" (kalitsiz) deb ataladi. Muhimi: so'rovning boshqa komponentlarini kesh butunlay e'tiborsiz qoldiradi.
WCP ta'siri ikki asosiy omilga bog'liq: hujumchi aynan nimani keshlata olishi (payload qanchalik zararli) va zaharlangan sahifadagi trafik miqdori. Zaharlangan javob faqat kesh zaharlangan paytda o'sha sahifaga tashrif buyurgan foydalanuvchilarga beriladi. Agar hujumchi yirik saytning bosh sahifasidagi keshlangan javobni zaharlasa, hujum minglab foydalanuvchini qamrab olishi mumkin. Kesh yozuvi muddati odatda ta'sirga ta'sir qilmaydi — hujumni keshni cheksiz qayta zaharlaydigan qilib skriptlash mumkin.
Oddiy WCP hujumini qurish quyidagi qadamlardan iborat:
Jonli saytda kalitsiz kiritmalarni sinaganda, generatsiya qilingan javoblaringiz haqiqiy foydalanuvchilarga berilishi xavfi bor. Shuning uchun har bir so'rovingiz unikal cache key'ga ega bo'lishiga ishonch hosil qiling (cache buster qo'shing).
WCP'ning aniq oldini olish yo'li — keshlashni butunlay o'chirish. Bu ko'p saytlar uchun real bo'lmasa-da, keshni faqat statik javoblar bilan cheklash ham samarali. Boshqa choralar: kesh key'idan biror narsani chiqarish o'rniga so'rovni qayta yozing; fat GET so'rovlarni qabul qilmang; CDN qaysi sarlavhalarni qo'llab-quvvatlashini ko'rib chiqing va sayt ishlashi uchun kerak bo'lmagan sarlavhalarni o'chiring; client-side zaifliklarni, garchi ekspluatatsiya qilib bo'lmasdek ko'rinsa ham, patch qiling.