- V8 sandbox, V8 engine के लिए एक हल्का, in-process sandbox है
- अब यह प्रयोगात्मक चरण से बाहर आ चुका है और Chrome के Vulnerability Reward Program (VRP) में शामिल है
- अभी भी कुछ सुरक्षा समस्याएँ हल की जानी बाकी हैं, और Chrome 123 version को sandbox की "beta" release माना जा सकता है
प्रेरणा
- memory safety अब भी एक महत्वपूर्ण समस्या है, और पिछले 3 वर्षों में खोजे गए सभी Chrome exploits की शुरुआत V8 की memory corruption vulnerabilities से हुई है
- इनमें से 60% vulnerabilities V8 में हुईं, लेकिन अधिकांश "typical" memory corruption bugs नहीं बल्कि सूक्ष्म logic issues थीं
- मौजूदा memory safety solutions में से अधिकांश V8 पर लागू नहीं होते, और Rust जैसी memory-safe language में migration या memory tagging जैसी hardware features भी V8 की security चुनौतियों में मदद नहीं करतीं
V8 (heap) sandbox
- sandbox का मूल विचार V8 की heap memory को isolate करना है ताकि memory corruption process के अन्य हिस्सों में "फैल" न सके
- इसे hardware support के साथ लागू किया जा सकता है, लेकिन फिलहाल उपयुक्त hardware features न होने के कारण इसे software-based तरीके से लागू किया गया है
- sandbox, external memory तक पहुँच सकने वाले सभी data types को "sandbox-compatible" alternatives से बदल देता है
- sandbox के अंदर केवल V8 heap ही sandbox में होती है, और यह WebAssembly के sandboxing model के समान है
प्रदर्शन
- sandbox approach का मुख्य लाभ यह है कि इसकी लागत मूलतः कम है
- sandbox से होने वाला overhead मुख्यतः external objects के लिए pointer table indirection से आता है, और फिलहाल सामान्य workloads में यह overhead 1% से कम है
testing
- security boundary की testability का अर्थ है कि manual और automated तरीकों से यह जाँचा जा सके कि सुरक्षा गारंटी वास्तव में बनी रहती है या नहीं
- V8 sandbox एक स्पष्ट attacker model, attacker की नकल करने की विधि, और security boundary fail होने पर उसे अपने-आप पहचानने की विधि—इन सभी को पूरा करता है
उपयोग
- V8 sandbox को build time पर
v8_enable_sandbox build flag का उपयोग करके enable/disable करना होता है.
- यह केवल 64-bit systems पर उपलब्ध है, और फिलहाल 1 terabyte virtual address space reserve करनी पड़ती है.
- V8 sandbox लगभग 2 वर्ष पहले से ही Android, ChromeOS, Linux, macOS, Windows के 64-bit version वाले Chrome में default रूप से enabled है.
निष्कर्ष
- V8 sandbox एक नया security mechanism है, जिसे इस तरह डिज़ाइन किया गया है कि V8 की memory corruption process की अन्य memory को प्रभावित न कर सके
- मौजूदा memory safety technologies अधिकांश optimized JavaScript engines पर लागू नहीं होतीं, लेकिन V8 sandbox attack surface की रक्षा करने में प्रभावी है
- sandbox, memory safety की दिशा में एक आवश्यक कदम है
GN⁺ की राय
- V8 sandbox, memory corruption vulnerabilities के लिए एक आधुनिक जवाब है, और उन समस्याओं का समाधान देता है जिन्हें पारंपरिक memory safety technologies हल नहीं कर पातीं
- JavaScript engine की जटिलता को देखते हुए यह sandbox security boundary को और मजबूत करने तथा memory safety बेहतर बनाने में महत्वपूर्ण भूमिका निभाता है
- sandbox का कम performance overhead developers के लिए आकर्षक हो सकता है, और इससे इसके व्यापक adoption में मदद मिल सकती है
- हालांकि, sandbox technology पूरी तरह नई security vulnerabilities भी ला सकती है, इसलिए इसे निरंतर monitoring और testing के माध्यम से प्रबंधित किया जाना चाहिए
- sandbox का प्रभावी implementation attackers को system के अन्य हिस्सों तक memory corruption फैलाने से रोकने में महत्वपूर्ण भूमिका निभाता है, और इससे web security मजबूत होगी
अभी कोई टिप्पणी नहीं है.