Web Push bildirishlari orqali yashirincha hujum qilish: "Sleeping Agent" zaifligi
Yovuz Xavf: Ko‘zga Ko‘rinmaydigan Tahdid
Web Push bildirishnomalari bugungi web ilovalarda katta rol o‘ynaydi. Hamkorlik vositalarida va muhim signal tizimlarida ularni ko‘p ishlatishadi. Lekin bu mexanizm ba’zida xavfli hujumlar uchun yashirin yo‘l bo‘lib qolishi mumkin.
Sleeping Agent deb nomlangan zaiflik shunday bir muammo. Bu zaiflik brauzerlarning Web Push xavfsizligini tekshirishdagi vaqt oralig‘idan foydalanadi.
Zaiflik Qanday Ishlaydi
Web Push APIda userVisibleOnly: true degan talab bor. Bu brauzer va web ilova o‘rtasida “har bir push xabari foydalanuvchiga ko‘rinadigan bildirishnoma bilan keladi” degan kelishuvni bildiradi.
Lekin amalda bu talab to‘g‘ri ishlamaydi.
Hujum qiluvchi Service Worker push signalini olganda ikkita buyruqni ketma-ket bajaradi:
showNotification()— bildirishnomani ko‘rsatadinotification.close()— uni darhol yopadi
Natijada bildirishnoma bir lahzali paydo bo‘lib, darhol yo‘qoladi. Brauzer faqat o‘zining ichki ma’lumotlar bazasini tekshiradi. U yerda yozuv borligi uchun talab bajarilgan deb hisoblaydi. Foydalanuvchi esa hech narsa ko‘rmaydi.
Nima Uchun Bu Muhim
Bu zaiflik Web Push API ning butun ishonch tizimini zaiflashtiradi:
Yashirin aloqa: Hujumchilar foydalanuvchi bilmagan holda uzoq muddatli aloqa yo‘lini yaratadilar. Buning uchun faqat zararli web sahifaga bir marta kirish kifoya.
Qoidalarni chetlab o‘tish: Ko‘p qoidalar bildirishnomani foydalanuvchiga sifatida ko‘rsatishni talab qiladi. Bu zaiflik o‘sha talabni buzadi.
Ko‘p brauzerda ta’siri: Chrome, Edge va hatto eski Safari versiyalarida ham bu zaiflik bor.
Oson amalga oshirish: Murakkab vositalar kerak emas. Oddiy brauzerda besh daqiqada ishlatilishi mumkin.
Texnik Tushuntirish
Zaiflik brauzer tekshiruvini Service Worker tugatgandan keyin bajarishi sababli paydo bo‘ladi. Ketma-ketlik quyidagicha:
- Push signali keladi
- Service Worker
showNotification()vanotification.close()ni ketma-ket bajaradi - Service Worker tugaydi
- Brauzer ma’lumotlar bazasini tekshiradi
- Yozuv borligi uchun talab o‘tadi
- Push signal tasdiqlanadi