Bosh sahifa Wiki Clickjacking

Clickjacking

Clickjacking — foydalanuvchini ko‘rinayotgan elementdan boshqa yashirin yoki ustma-ust joylashtirilgan elementni bosishga majbur qiladigan web hujumi. Hujumchi qonuniy sahifani iframe ichida ko‘rsatib, uning ustiga shaffof yoki chalg‘ituvchi interfeys joylashtirishi mumkin.

Foydalanuvchi oddiy tugma, video yoki o‘yin elementini bosyapman deb o‘ylaydi, aslida esa hisob sozlamasini o‘zgartirish, permission berish yoki boshqa muhim amalni bajarishi mumkin.

Asosiy mexanizm

Hujum sahifasi nishon saytni frame ichida ochadi.

Keyin CSS orqali:

  • opacity;
  • position;
  • z-index;
  • pointer event;
  • clipping;
  • shaffof qatlam

yordamida haqiqiy tugma foydalanuvchi ko‘rgan tugma ostiga joylashtiriladi.

Bosish hodisasi yashirin frame’ga tushadi.

UI redressing

Clickjacking UI redressing hujumlari oilasiga kiradi.

Maqsad foydalanuvchining interfeys haqidagi tasavvurini o‘zgartirish.

Hujum faqat bitta click bilan cheklanmasligi mumkin. Bir necha bosqichli form, drag-and-drop yoki touch gesture ham aldov orqali bajarilishi mumkin.

Sessiondan foydalanish

Nishon sayt frame ichida userning mavjud cookie va sessioni bilan ochilishi mumkin.

Agar user allaqachon login qilgan bo‘lsa yashirin tugma authenticated operation bajaradi.

Shu sababli attacker parolni bilmasdan ham userning aktiv sessionidan foydalanishga urinadi.

CSRF bilan farqi

CSRF attacker sahifasidan serverga soxta request yuboradi.

Clickjackingda user haqiqiy nishon sahifasidagi elementni o‘zi bosadi, ammo uning nima ekanini bilmaydi.

CSRF token requestni himoya qilishi mumkin, lekin user sahifadagi haqiqiy tokenli formani clickjacking orqali submit qilsa alohida frame himoyasi kerak.

Likejacking

Social platformdagi like, follow yoki share tugmasini yashirin joylashtirish clickjackingning oddiy turi.

User boshqa elementni bosib, bilmasdan post yoki sahifani tasdiqlaydi.

Bu reputatsiya, reklama va spam tarqalishiga xizmat qilishi mumkin.

Permission clickjacking

Browser yoki application permission dialogiga yaqin dizayn bilan userni camera, microphone, location yoki notification access berishga undash mumkin.

Browserning native dialogi to‘liq iframe ichida boshqarilmasa ham sahifa oldindan userni noto‘g‘ri harakatga tayyorlashi mumkin.

Drag-and-drop hujumi

Foydalanuvchi ko‘rinadigan obyektni sudrayapman deb o‘ylaydi.

Aslida hidden frame’dan data yoki token boshqa elementga olib o‘tilishi mumkin.

Zamonaviy browser himoyalari ayrim tarixiy variantlarni cheklagan, ammo UI redressing threat modeli saqlanadi.

X-Frame-Options

Server response header orqali sahifani frame ichida ochishni cheklashi mumkin.

Keng tarqalgan qiymatlar:

  • DENY — hech qanday frame’da ochilmaydi;
  • SAMEORIGIN — faqat ayni origin frame’ida;
  • eski ALLOW-FROM yondashuvi cheklangan qo‘llab-quvvatlashga ega.

Bu header clickjackingga qarshi asosiy tarixiy himoyalardan biri.

CSP frame-ancestors

Content Security Policy ichidagi frame-ancestors qoidasi sahifani qaysi originlar frame ichiga joylashtira olishini belgilaydi.

Misollar:

frame-ancestors 'none'
frame-ancestors 'self'
frame-ancestors https://trusted.example

Bu yondashuv moslashuvchan va zamonaviyroq.

Frame-busting script

Eski himoyalarda JavaScript orqali sahifa top-level oynada ekanini tekshirish ishlatilgan.

Masalan, frame ichida bo‘lsa navigatsiyani o‘zgartirish.

Bunday script:

sabab ishonchsiz bo‘lishi mumkin.

Header-based himoya afzal.

SameSite cookie cross-site iframe ichida session cookie yuborilishini cheklashi mumkin.

Bu ayrim clickjacking holatlarida userni login qilinmagan ko‘rsatadi.

Lekin barcha browser, cookie va same-site relationship holatlari bir xil emas.

SameSite frame policy o‘rnini to‘liq bosmaydi.

Muhim operation

Pul o‘tkazish, email almashtirish, access berish yoki API key yaratish kabi actionlar qo‘shimcha confirmation talab qilishi mumkin.

Himoya:

  • parolni qayta kiritish;
  • WebAuthn tasdig‘i;
  • transaction details ko‘rsatish;
  • qisqa confirmation code;
  • aniq final dialog.

Bu userning haqiqiy niyatini qayta tekshiradi.

Frame kerak bo‘lgan holatlar

Ba’zi applicationlar embeddingni qonuniy qo‘llaydi:

  • payment widget;
  • video;
  • dashboard;
  • partner portal;
  • support component.

Bunday holatda barcha originlarga ruxsat berish o‘rniga aniq allowlist ishlatiladi.

Embedded va top-level mode uchun alohida endpoint bo‘lishi mumkin.

Aniqlash va test

Security testda sahifa boshqa origin frame’iga joylashtirib ko‘riladi.

Tekshiriladi:

Faqat frontend route emas, sensitive endpointga olib boruvchi barcha sahifalar himoyalanadi.

JavaScript dialog cheklovi

Sensitive actionni faqat custom modal bilan tasdiqlash clickjackingni to‘liq to‘xtatmaydi, chunki modal ham frame ichida ko‘rsatilishi mumkin. Qayta authentication yoki browser tomonidan himoyalangan WebAuthn prompti userning real actionini kuchliroq tasdiqlaydi.

Mobile touch

Touchscreen’da elementlar kichik va scroll bilan harakatlanadi. Hujumchi yashirin frame’ni finger tegadigan joyga moslashtirishi mumkin. Responsive layout va zoom sabab test faqat desktop resolutionda bajarilmaydi.

Embedding contract

Partnerga frame ichida sahifa ko‘rsatish zarur bo‘lsa parent origin va message almashinuvi aniq contractga ega bo‘ladi. postMessage yuboruvchi va qabul qiluvchi tomon originni tekshiradi. Wildcard target origin sensitive data uchun ishlatilmaydi.

Frame ichidagi autentifikatsiya

Login yoki MFA sahifasini begona origin frame’ida ko‘rsatishga ruxsat berish userni qaysi saytga credential berayotganini tushunishdan mahrum qiladi. Identity provider odatda top-level navigation yoki aniq trusted originlar bilan ishlaydi. Authentication page’lari uchun frame-ancestors 'none'ga yaqin qat’iy siyosat qo‘llanishi mumkin.

Bog‘liq tushunchalar

UI redressing, iframe, X-Frame-Options, Content Security Policy, frame-ancestors, CSRF, SameSite cookie, Browser security, Session