The Chromium Chronicle #5: सैंडबॉक्स के बाहर कोडिंग करना

एपिसोड 5: माउंटेन व्यू, कैलिफ़ोर्निया के एड का गाना (अगस्त 2019)
पिछले एपिसोड

Chrome को प्रोसेस में बांटा गया है. इनमें से कुछ सैंडबॉक्स वाले होते हैं, जिसका मतलब है कि उनके पास सिस्टम और उपयोगकर्ताओं के खातों का ऐक्सेस कम हो गया है. सैंडबॉक्स की गई प्रोसेस में, नुकसान पहुंचाने वाले कोड को चलाने वाली गड़बड़ियां बहुत कम गंभीर होती हैं.

ब्राउज़र प्रोसेस में कोई सैंडबॉक्स नहीं है, इसलिए कोई गड़बड़ी, नुकसान पहुंचाने वाले कोड को पूरे डिवाइस का पूरा ऐक्सेस दे सकती है. आपको क्या अलग करना चाहिए? और अन्य प्रोसेस में क्या स्थिति है?

सैंडबॉक्स डायग्राम

सभी कोड में गड़बड़ियां हैं. ब्राउज़र प्रोसेस में, ये गड़बड़ियां नुकसान पहुंचाने वाले कोड को प्रोग्राम इंस्टॉल करने, उपयोगकर्ता का डेटा चुराने, कंप्यूटर की सेटिंग में बदलाव करने, सभी ब्राउज़र टैब का कॉन्टेंट ऐक्सेस करने, लॉगिन डेटा वगैरह की अनुमति देती हैं.

अन्य प्रोसेस में, ओएस का ऐक्सेस सीमित होता है. ऐसा प्लैटफ़ॉर्म की पाबंदियों के हिसाब से होता है. ज़्यादा जानकारी के लिए, Chrome की सैंडबॉक्स लागू करने की गाइड देखें.

नीचे दी गई आम गलतियों से बचना चाहिए:

रूल ऑफ़ टू

  • C++ का इस्तेमाल करके, ब्राउज़र प्रोसेस में भरोसेमंद डेटा को पार्स न करें या न समझें.
  • उस ऑरिजिन पर भरोसा न करें जिसे रेंडर करने वाला व्यक्ति दावा करता है. मौजूदा ऑरिजिन को सुरक्षित तरीके से पाने के लिए, ब्राउज़र के RenderFrameHost का इस्तेमाल किया जा सकता है.


ऐसा करें

इसके बजाय, यहां दिए गए सबसे सही तरीके अपनाएं:

  • अगर आपका कोड ब्राउज़र की प्रोसेस में है, तो ज़्यादा परेशान करें.
  • अन्य प्रोसेस से सभी IPC की पुष्टि करें. यह मानकर चलें कि दूसरी सभी प्रोसेस के साथ पहले ही छेड़छाड़ की जा चुकी है और आपको धोखा देने के लिए ऐसा किया जा रहा है.
  • अपनी प्रोसेसिंग, रेंडरर या यूटिलिटी प्रोसेस या सैंडबॉक्स की गई कुछ प्रोसेस में करें. आम तौर पर, मेमोरी के लिए सुरक्षित भाषा का भी इस्तेमाल किया जा सकता है. जैसे कि JavaScript (सुरक्षा से जुड़े 50% से ज़्यादा बग हल करता है).

सालों तक हमने ब्राउज़र प्रोसेस में नेटवर्क स्टैक (जैसे कि एचटीटीपी, डीएनएस, क्यूयूआईसी) चलाए. इसकी वजह से गंभीर जोखिम वाली समस्याएं पैदा हुईं. कुछ प्लैटफ़ॉर्म पर, अब नेटवर्किंग की अपनी प्रोसेस है और इसमें सैंडबॉक्स भी आ रहा है.

जानकारी पाने के दूसरे तरीके

  • Chromium का दो नियम: दो से ज़्यादा असुरक्षित डेटा नहीं, असुरक्षित कोड, और असुरक्षित प्रोसेस.
  • आईपीसी डेटा की पुष्टि करना: यह कैसे पक्का किया जा सकता है कि रेंडर करने की प्रोसेस के आईपीसी में तमाम तरह की गड़बड़ियां या गलत तरीके से पेश न किए गए हों, इस बारे में जानकारी देने वाली गाइड.