Sandbox escape — cheklangan process yoki kodning sandbox belgilagan resurs va privilege chegarasidan tashqariga chiqishidir. Browser renderer, mobile ilova, container, document viewer yoki serverless function sandboxda ishlashi mumkin. Escape ko‘pincha ikkinchi bosqich exploit bo‘lib, avval sandbox ichida code execution yoki nazorat talab qiladi.
Sandbox modeli
Sandbox file, network, system call, memory va device accessni policy bilan cheklaydi. Process isolation, namespace, capability, mandatory access control va broker architecture birga ishlashi mumkin. Browser renderer sensitive operationni yuqori privilege’li brokerga IPC orqali so‘raydi; broker request va obyekt permissionini tekshiradi.
Har sandbox threat modelga ega. Container odatda host kernelni bo‘lishadi va virtual machine bilan bir xil isolation kafolatini bermaydi. Language sandbox unsafe native extensionga ruxsat bersa chegarasi kengayadi. “Sandboxlangan” atamasi qaysi actor va resource’dan himoya ekanini aniq aytishi kerak.
Escape yo‘llari
Kernel yoki hypervisor vulnerability cheklangan processga yuqori privilege beradi. Broker IPC validation xatosi ruxsatsiz file handle yoki operation beradi. Ortiqcha system call, mounted socket, writable host path yoki device access konfiguratsion escape yo‘li yaratadi.
Confused deputy holatida privileged service caller vakolatini tekshirmasdan uning nomidan amal bajaradi. Symlink va path traversal broker ruxsat etilgan directorydan tashqariga olib chiqishi mumkin. Resource exhaustion ham policy bypass bo‘lmasa-da qo‘shni workloadga ta’sir qilib isolation maqsadini buzadi.
Exploit chain
Attacker ko‘pincha renderer yoki application’dagi remote vulnerability bilan sandbox ichida kod bajaradi. Keyin environmentni enumeratsiya qilib, escape uchun kernel yoki broker weaknessidan foydalanadi. So‘ng credential o‘qish, persistence va lateral movement keladi. Har bosqich alohida patch va detection nuqtasiga ega.
Sandbox ichidagi code execution impacti escape bo‘lmasa ham nol emas. Accessible origin data, token yoki network service o‘g‘irlanishi mumkin. Risk sandbox policy real resurslari va workload identity permissioniga qarab baholanadi.
Himoya
Kernel, runtime va browser tez patchlanadi. System call allowlist, read-only filesystem, capability drop va no-new-privileges surface’ni toraytiradi. Host management socket sandboxga mount qilinmaydi. Broker capability-based handle va caller identity bilan har requestni tekshiradi.
VM yoki microVM kuchliroq kernel boundary talab qilinadigan untrusted multi-tenant workload uchun tanlanishi mumkin. Bu ham mutlaq himoya emas; hypervisor va device emulation patch hamda minimal surface talab qiladi. Nested qatlamlar defense in depth beradi.
Aniqlash va sinov
Monitoring sandbox policy denial, kutilmagan system call, namespace o‘zgarishi, host file va privileged child processni ko‘rsatadi. Escape aniqlansa host compromise deb qaraladi; faqat container qayta yaratish yetarli emas. Node isolate, credential rotation va trusted image’dan rebuild qilinadi.
Security test ayni production policy va kernel versionida bajariladi. PoC izolyatsiyalangan labda, zararli persistence’siz sinovdan o‘tadi. Policy regression test har release’da taqiqlangan operation rad etilishini tekshiradi.
Aniqlash va javob
Escape alomatlari sandbox ichidagi jarayonning odatda ko‘rmasligi kerak bo‘lgan host fayllariga murojaati, yangi namespace yoki imtiyoz yaratishi, noodatiy system call va kutilmagan tarmoq ulanishini o‘z ichiga oladi. Faqat ilova jurnaliga tayanish yetarli emas, chunki buzilgan jarayon uni o‘zgartirishi mumkin; host yoki tashqi kuzatuv qatlamidagi telemetriya muhim. Shubha tasdiqlansa, ish yukini to‘xtatish bilan birga host va shu yadrodan foydalangan boshqa workloadlar ham tekshiriladi. Image va tokenlar almashtiriladi, zaif komponent yangilanadi. Kuchli chegarani talab qiluvchi ishonchsiz kod alohida mikroVM yoki mustaqil hostda bajarilishi mumkin.
Bog‘liq tushunchalar
Sandbox, Container escape, Privilege escalation, System call filtering, Confused deputy, Broker process, Defense in depth