सैंडबॉक्स (कंप्यूटर सुरक्षा): Difference between revisions

From Vigyanwiki
No edit summary
Line 17: Line 17:
*नियम-आधारित निष्पादन उपयोगकर्ताओं को इस तथ्य पर पूर्ण नियंत्रण प्रदान करता है कि कौन सी प्रक्रियाएँ प्रारंभ की गई हैं, (अन्य अनुप्रयोगों द्वारा) उत्पन्न की गई हैं, या किन प्रक्रियाओं को अन्य अनुप्रयोगों में कोड इंजेक्ट करने की अनुमति प्रदान की गई है और इनके पास निर्धारित नियमों के एक सेट के अनुसार उपयोगकर्ताओं या प्रोग्रामों के लिए सिस्टम द्वारा पहुँच स्तर निर्दिष्ट करके नेट तक पहुँच होती है।[[:en:Sandbox_(computer_security)#cite_note-10|<sup>[10]</sup>]] यह फ़ाइल/रजिस्ट्री सुरक्षा को भी नियंत्रित कर सकता है (कौन-से प्रोग्राम फ़ाइल सिस्टम/रजिस्ट्री को पढ़ और लिख सकते हैं)। ऐसे वातावरण में, वायरस और [[ट्रोजन वायरस|ट्रोजन]] के पास कंप्यूटर को संक्रमित करने के कम अवसर होते हैं। [[SELinux|एसईलिनक्स]] और [[Apparmor|एपआर्मर]] सुरक्षा संरचनाएँ लिनक्स के लिए दो ऐसे कार्यान्वयन हैं।
*नियम-आधारित निष्पादन उपयोगकर्ताओं को इस तथ्य पर पूर्ण नियंत्रण प्रदान करता है कि कौन सी प्रक्रियाएँ प्रारंभ की गई हैं, (अन्य अनुप्रयोगों द्वारा) उत्पन्न की गई हैं, या किन प्रक्रियाओं को अन्य अनुप्रयोगों में कोड इंजेक्ट करने की अनुमति प्रदान की गई है और इनके पास निर्धारित नियमों के एक सेट के अनुसार उपयोगकर्ताओं या प्रोग्रामों के लिए सिस्टम द्वारा पहुँच स्तर निर्दिष्ट करके नेट तक पहुँच होती है।[[:en:Sandbox_(computer_security)#cite_note-10|<sup>[10]</sup>]] यह फ़ाइल/रजिस्ट्री सुरक्षा को भी नियंत्रित कर सकता है (कौन-से प्रोग्राम फ़ाइल सिस्टम/रजिस्ट्री को पढ़ और लिख सकते हैं)। ऐसे वातावरण में, वायरस और [[ट्रोजन वायरस|ट्रोजन]] के पास कंप्यूटर को संक्रमित करने के कम अवसर होते हैं। [[SELinux|एसईलिनक्स]] और [[Apparmor|एपआर्मर]] सुरक्षा संरचनाएँ लिनक्स के लिए दो ऐसे कार्यान्वयन हैं।
*सुरक्षा शोधकर्ता मैलवेयर व्यवहार का विश्लेषण करने के लिए सैंडबॉक्सिंग तकनीकों पर अत्यधिक निर्भर करते हैं। लक्षित डेस्कटॉप की नकल या पुनरावृत्ति करने वाले वातावरण का निर्माण करके, शोधकर्ता यह मूल्यांकन कर सकते हैं कि मैलवेयर लक्षित होस्ट को कैसे संक्रमित और इसके साथ कैसे समझौता करता है। कई [[मैलवेयर विश्लेषण]] सेवाएँ सैंडबॉक्सिंग तकनीक पर आधारित हैं।<ref>{{cite web |url=http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/34913.pdf |title=Native Client Sandbox – Untrusted x86 Native Code |access-date=2015-01-03}}</ref>
*सुरक्षा शोधकर्ता मैलवेयर व्यवहार का विश्लेषण करने के लिए सैंडबॉक्सिंग तकनीकों पर अत्यधिक निर्भर करते हैं। लक्षित डेस्कटॉप की नकल या पुनरावृत्ति करने वाले वातावरण का निर्माण करके, शोधकर्ता यह मूल्यांकन कर सकते हैं कि मैलवेयर लक्षित होस्ट को कैसे संक्रमित और इसके साथ कैसे समझौता करता है। कई [[मैलवेयर विश्लेषण]] सेवाएँ सैंडबॉक्सिंग तकनीक पर आधारित हैं।<ref>{{cite web |url=http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/34913.pdf |title=Native Client Sandbox – Untrusted x86 Native Code |access-date=2015-01-03}}</ref>
*गूगल नेटिव क्लाइंट, उपयोगकर्ता के ऑपरेटिंग सिस्टम से स्वतंत्र, कुशलतापूर्वक और सुरक्षित रूप से ब्राउज़र में संकलित C और C++ कोड संचालित करने वाला एक सैंडबॉक्स है।<ref>[https://developer.chrome.com/native-client Welcome to Native Client]</ref>
*उपयोगकर्ता के ऑपरेटिंग सिस्टम से स्वतंत्र गूगल नेटिव क्लाइंट, ब्राउज़र में संकलित (कम्पाइल्ड) C और C++ कोड को कुशलतापूर्वक और सुरक्षित रूप से संचालित करने वाला एक सैंडबॉक्स है।<ref>[https://developer.chrome.com/native-client Welcome to Native Client]</ref>
*[[क्षमता-आधारित सुरक्षा]] प्रणालियों को एक सूक्ष्म सैंडबॉक्सिंग तंत्र के रूप में माना जा सकता है, जिसमें कार्यक्रम उत्पन्न होने पर अपारदर्शी टोकन दिए जाते हैं और उनके पास टोकन के आधार पर विशिष्ट चीजों को करने की क्षमता होती है। क्षमता-आधारित कार्यान्वयन विभिन्न स्तरों पर काम कर सकते हैं, कर्नेल से लेकर यूजर-स्पेस तक। क्षमता-आधारित उपयोगकर्ता-स्तरीय सैंडबॉक्सिंग के एक उदाहरण में [[वेब ब्राउज़र]] में HTML रेंडरिंग शामिल है।
*[[क्षमता-आधारित सुरक्षा]] प्रणालियों को एक सूक्ष्म सैंडबॉक्सिंग तंत्र के रूप में माना जा सकता है, जिसमें प्रोग्राम उत्पन्न होने पर अपारदर्शी टोकन दिए जाते हैं और इनके पास टोकन के आधार पर विशिष्ट कार्यों को करने की क्षमता होती है। क्षमता-आधारित कार्यान्वयन कर्नेल से लेकर उपयोगकर्ता-स्थान तक विभिन्न स्तरों पर कार्य कर सकते हैं। [[वेब ब्राउज़र]] में एचटीएमएल प्रतिपादन, क्षमता-आधारित उपयोगकर्ता-स्तरीय सैंडबॉक्सिंग का एक उदाहरण है।
*सुरक्षित कंप्यूटिंग मोड (सेककॉम्प) सख्त मोड, सेककॉम्प केवल <code>write()</code>, <code>read()</code>, <code>exit()</code>, और <code>sigreturn()</code> सिस्टम कॉल की अनुमति देता है।
*सुरक्षित कंप्यूटिंग मोड (सेककॉम्प) सख्त मोड, सेककॉम्प केवल <code>write()</code>, <code>read()</code>, <code>exit()</code>, और <code>sigreturn()</code> सिस्टम कॉल की अनुमति प्रदान करता है।
*[[HTML5]] में [[iframes]] के साथ प्रयोग के लिए एक "सैंडबॉक्स" विशेषता है।<ref>{{cite web |author1=Internet Explorer Team Blog |title=Defense in Depth: Locking Down Mash-Ups with HTML5 Sandbox |url=https://blogs.msdn.microsoft.com/ie/2011/07/14/defense-in-depth-locking-down-mash-ups-with-html5-sandbox/ |website=IEBlog}}</ref>
*[[HTML5|एचटीएमएल5]] में [[iframes|आईफ्रेम्स]] के साथ प्रयोग के लिए एक "सैंडबॉक्स" विशेषता है।<ref>{{cite web |author1=Internet Explorer Team Blog |title=Defense in Depth: Locking Down Mash-Ups with HTML5 Sandbox |url=https://blogs.msdn.microsoft.com/ie/2011/07/14/defense-in-depth-locking-down-mash-ups-with-html5-sandbox/ |website=IEBlog}}</ref>
*जावा वर्चुअल मशीनों में अविश्वसनीय कोड की क्रियाओं को प्रतिबंधित करने के लिए एक सैंडबॉक्स शामिल होता है, जैसे कि [[जावा एप्लेट]]।
*जावा आभासी मशीनों में [[जावा एप्लेट]] जैसे अविश्वसनीय कोड की क्रियाओं को प्रतिबंधित करने के लिए एक सैंडबॉक्स सम्मिलित है।
*.NET [[सामान्य भाषा रनटाइम]] अविश्वसनीय कोड पर प्रतिबंध लागू करने के लिए [[कोड एक्सेस सुरक्षा]] प्रदान करता है।
*डॉटनेट (.NET) [[सामान्य भाषा रनटाइम]], अविश्वसनीय कोड पर प्रतिबंध लागू करने के लिए [[कोड एक्सेस सुरक्षा|कोड पहुँच सुरक्षा]] प्रदान करता है।
*सॉफ़्टवेयर फॉल्ट आइसोलेशन (SFI),<ref>{{Cite web|url=https://courses.cs.washington.edu/courses/cse551/15sp/papers/sfi-sosp93.pdf|title=Efficient Software-Based Fault Isolation|last=Wahbe|first=Robert|date=1993}}</ref> सभी स्टोर को सैंडबॉक्सिंग करके अविश्वसनीय देशी कोड चलाने की अनुमति देता है, मेमोरी के अलग-अलग हिस्सों में विधानसभा निर्देशों को पढ़ता है और कूदता है।
*सॉफ़्टवेयर त्रुटि पृथक्करण (एसएफआई),<ref>{{Cite web|url=https://courses.cs.washington.edu/courses/cse551/15sp/papers/sfi-sosp93.pdf|title=Efficient Software-Based Fault Isolation|last=Wahbe|first=Robert|date=1993}}</ref> सभी स्टोरों की सैंडबॉक्सिंग करके अविश्वसनीय प्राकृतिक कोड संचालन की अनुमति प्रदान करता है, असेंबली निर्देशों का पाठन करके इन्हें मेमोरी के अलग-अलग हिस्सों में भेजता है।
सैंडबॉक्स के कुछ उपयोग मामलों में निम्नलिखित शामिल हैं:
सैंडबॉक्स की कुछ उपयोग की स्थितियों में निम्नलिखित सम्मिलित हैं:
*प्रोग्रामिंग प्रतियोगिताओं में प्रोग्रामों का परीक्षण करने के लिए [[ऑनलाइन न्यायाधीश|ऑनलाइन जज सिस्टम]]।
*प्रोग्रामिंग प्रतियोगिताओं में प्रोग्रामों का परीक्षण करने के लिए [[ऑनलाइन न्यायाधीश|ऑनलाइन निर्णय प्रणाली]]।
*नई पीढ़ी के [[हम समीक्षा करेंगे|पेस्टबिन]] उपयोगकर्ताओं को पास्टबिन के सर्वर पर पेस्ट किए गए [[कोड के टुकड़े|कोड स्निपेट्स]] को निष्पादित करने की अनुमति देते हैं।
*नई पीढ़ी के [[हम समीक्षा करेंगे|पेस्टबिन]] उपयोगकर्ताओं को पेस्टबिन के सर्वर पर पेस्ट किए गए [[कोड के टुकड़े|कोड स्निपेट्स]] को निष्पादित करने की अनुमति प्रदान करते हैं।


== यह भी देखें ==
== यह भी देखें ==

Revision as of 14:02, 25 February 2023

कंप्यूटर सुरक्षा में, सैंडबॉक्स संचालित हो रहे प्रोग्रामों को, सामान्यतः सिस्टम विफलताओं और/या सॉफ़्टवेयर कमजोरियों को फैलने से रोकने के प्रयास में अलग करने के लिए एक सुरक्षा तंत्र है। पृथक्करण रूपक उन बच्चों के विचार से लिया गया है जो एक साथ अच्छा नहीं खेलते हैं, इसलिए प्रत्येक को अकेले खेलने के लिए स्वयं का सैंडबॉक्स दिया जाता है। इसका उपयोग होस्ट मशीन या ऑपरेटिंग सिस्टम को हानि पहुँचाये बिना, प्रायः असत्यापित या अविश्वसनीय तृतीय पक्ष, आपूर्तिकर्ताओं, उपयोगकर्ताओं या वेबसाइटों से संभवतः असत्यापित या अविश्वसनीय प्रोग्रामों या कोड को निष्पादित करने के लिए किया जाता है।[1] सैंडबॉक्स सामान्यतः गेस्ट प्रोग्रामों को संचालित करने के लिए भंडारण और मेमोरी स्क्रैच स्पेस जैसे संसाधनों का एक दृढ़ नियंत्रित समूह प्रदान करता है। नेटवर्क पहुँच, होस्ट सिस्टम के निरीक्षण की क्षमता, या इनपुट उपकरणों से पाठन की क्षमता सामान्यतः अस्वीकृत या दृढ़ प्रतिबंधित होती है।

सैंडबॉक्स को अत्यधिक नियंत्रित वातावरण प्रदान करने के अर्थ में वर्चुअलाइजेशन (आभासीकरण) के विशिष्ट उदाहरण के रूप में देखा जा सकता है। सैंडबॉक्सिंग का उपयोग प्रायः ऐसे असत्यापित प्रोग्रामों का परीक्षण करने के लिए किया जाता है जिसमें सॉफ़्टवेयर को होस्ट उपकरण को हानि पहुँचाने की अनुमति दिए बिना वायरस या अन्य मैलवेयर सम्मिलित हो सकते हैं।[2]

कार्यान्वयन

एक प्रतिबंधित ऑपरेटिंग सिस्टम वातावरण में सॉफ़्टवेयर को निष्पादित करके एक सैंडबॉक्स कार्यान्वित किया जाता है, और इस प्रकार यह एक प्रक्रिया द्वारा उपयोग किये जा सकने वाले संसाधनों (जैसे फाइल डिस्क्रिप्टर, मेमोरी, फाइल सिस्टम स्पेस इत्यादि) को नियंत्रित करता है।[3]

सैंडबॉक्स कार्यान्वयन के उदाहरणों में निम्न उदाहरण सम्मिलित हैं:

  • सेककॉम्प, सीग्रुप्स और लिनक्स नेमस्पेसेस पर निर्मित लिनक्स अनुप्रयोग सैंडबॉक्सिंग। विशेष रूप से सिस्टेम्ड, गूगल क्रोम, फ़ायरफ़ॉक्स, फायरजेल द्वारा उपयोग किया जाता है।
  • एंड्रॉइड, पूर्ण एप्लिकेशन सैंडबॉक्सिंग को प्रयुक्त करने वाला प्रथम मुख्यधारा ऑपरेटिंग सिस्टम था, जिसे प्रत्येक एप्लिकेशन को स्वयं का लिनक्स उपयोगकर्ता आईडी निर्दिष्ट करके निर्मित किया गया था।[4]
  • एप्पल ऐप सैंडबॉक्स, एप्पल के मैक ऐप स्टोर और आईओएस/आईपैडओएस ऐप स्टोर के माध्यम से वितरित ऐपों के लिए आवश्यक, और अन्य चिह्नित ऐपों के लिए अनुशंसित है।[5][6]
  • विंडोज विस्टा और बाद के संस्करणों में "निम्न" मोड प्रक्रिया संचालन समाहित है, जिसे "उपयोगकर्ता अकाउंट नियंत्रण" (यूएसी) के रूप में जाना जाता है, जो केवल एक विशिष्ट निर्देशिका और रजिस्ट्री कुंजियों में लेखन की अनुमति प्रदान करता है। विंडोज 10 प्रो, संस्करण वर्ष 1903 से विंडोज सैंडबॉक्स के नाम से प्रचलित एक सुविधा प्रदान करता है।[7]
  • गूगल सैंडबॉक्स्ड एपीआई।[8]
  • आभासी मशीनें एक ऐसे पूर्ण होस्ट कंप्यूटर का अनुकरण करती हैं, जिस पर एक पारंपरिक ऑपरेटिंग सिस्टम बूट हो सकता है और वास्तविक हार्डवेयर के रूप में संचालित हो सकता है। गेस्ट ऑपरेटिंग सिस्टम सैंडबॉक्स्ड को इस अर्थ में संचालित करता है कि यह होस्ट पर स्वाभाविक रूप से कार्य नहीं करता है और केवल एमुलेटर के माध्यम से होस्ट संसाधनों तक ही पहुँच प्राप्त कर सकता है।
  • एक ऑपरेटिंग-सिस्टम-स्तरीय वर्चुअलाइजेशन (जेल): नेटवर्क-पहुँच प्रतिबंध, और एक प्रतिबंधित फाइल सिस्टम नेमस्पेस। जेल का सर्वाधिक उपयोग वर्चुअल होस्टिंग में किया जाता है।[9]
  • नियम-आधारित निष्पादन उपयोगकर्ताओं को इस तथ्य पर पूर्ण नियंत्रण प्रदान करता है कि कौन सी प्रक्रियाएँ प्रारंभ की गई हैं, (अन्य अनुप्रयोगों द्वारा) उत्पन्न की गई हैं, या किन प्रक्रियाओं को अन्य अनुप्रयोगों में कोड इंजेक्ट करने की अनुमति प्रदान की गई है और इनके पास निर्धारित नियमों के एक सेट के अनुसार उपयोगकर्ताओं या प्रोग्रामों के लिए सिस्टम द्वारा पहुँच स्तर निर्दिष्ट करके नेट तक पहुँच होती है।[10] यह फ़ाइल/रजिस्ट्री सुरक्षा को भी नियंत्रित कर सकता है (कौन-से प्रोग्राम फ़ाइल सिस्टम/रजिस्ट्री को पढ़ और लिख सकते हैं)। ऐसे वातावरण में, वायरस और ट्रोजन के पास कंप्यूटर को संक्रमित करने के कम अवसर होते हैं। एसईलिनक्स और एपआर्मर सुरक्षा संरचनाएँ लिनक्स के लिए दो ऐसे कार्यान्वयन हैं।
  • सुरक्षा शोधकर्ता मैलवेयर व्यवहार का विश्लेषण करने के लिए सैंडबॉक्सिंग तकनीकों पर अत्यधिक निर्भर करते हैं। लक्षित डेस्कटॉप की नकल या पुनरावृत्ति करने वाले वातावरण का निर्माण करके, शोधकर्ता यह मूल्यांकन कर सकते हैं कि मैलवेयर लक्षित होस्ट को कैसे संक्रमित और इसके साथ कैसे समझौता करता है। कई मैलवेयर विश्लेषण सेवाएँ सैंडबॉक्सिंग तकनीक पर आधारित हैं।[10]
  • उपयोगकर्ता के ऑपरेटिंग सिस्टम से स्वतंत्र गूगल नेटिव क्लाइंट, ब्राउज़र में संकलित (कम्पाइल्ड) C और C++ कोड को कुशलतापूर्वक और सुरक्षित रूप से संचालित करने वाला एक सैंडबॉक्स है।[11]
  • क्षमता-आधारित सुरक्षा प्रणालियों को एक सूक्ष्म सैंडबॉक्सिंग तंत्र के रूप में माना जा सकता है, जिसमें प्रोग्राम उत्पन्न होने पर अपारदर्शी टोकन दिए जाते हैं और इनके पास टोकन के आधार पर विशिष्ट कार्यों को करने की क्षमता होती है। क्षमता-आधारित कार्यान्वयन कर्नेल से लेकर उपयोगकर्ता-स्थान तक विभिन्न स्तरों पर कार्य कर सकते हैं। वेब ब्राउज़र में एचटीएमएल प्रतिपादन, क्षमता-आधारित उपयोगकर्ता-स्तरीय सैंडबॉक्सिंग का एक उदाहरण है।
  • सुरक्षित कंप्यूटिंग मोड (सेककॉम्प) सख्त मोड, सेककॉम्प केवल write(), read(), exit(), और sigreturn() सिस्टम कॉल की अनुमति प्रदान करता है।
  • एचटीएमएल5 में आईफ्रेम्स के साथ प्रयोग के लिए एक "सैंडबॉक्स" विशेषता है।[12]
  • जावा आभासी मशीनों में जावा एप्लेट जैसे अविश्वसनीय कोड की क्रियाओं को प्रतिबंधित करने के लिए एक सैंडबॉक्स सम्मिलित है।
  • डॉटनेट (.NET) सामान्य भाषा रनटाइम, अविश्वसनीय कोड पर प्रतिबंध लागू करने के लिए कोड पहुँच सुरक्षा प्रदान करता है।
  • सॉफ़्टवेयर त्रुटि पृथक्करण (एसएफआई),[13] सभी स्टोरों की सैंडबॉक्सिंग करके अविश्वसनीय प्राकृतिक कोड संचालन की अनुमति प्रदान करता है, असेंबली निर्देशों का पाठन करके इन्हें मेमोरी के अलग-अलग हिस्सों में भेजता है।

सैंडबॉक्स की कुछ उपयोग की स्थितियों में निम्नलिखित सम्मिलित हैं:

यह भी देखें

संदर्भ

  1. Goldberg, Ian; Wagner, David; Thomas, Randi & Brewer, Eric (1996). "A Secure Environment for Untrusted Helper Applications (Confining the Wily Hacker)" (PDF). Proceedings of the Sixth USENIX UNIX Security Symposium. Retrieved 25 October 2011.
  2. Geier, Eric (2012-01-16). "How to Keep Your PC Safe With Sandboxing". TechHive. Retrieved 2014-07-03.
  3. "Sandboxing Applications" (PDF). 2001. Retrieved 7 May 2013.
  4. "Application Sandbox - Android Open Source Project". Retrieved 2021-04-02.
  5. "About App Sandbox". developer.apple.com. Retrieved 2020-12-09.
  6. "Security of runtime process in iOS and iPadOS". Apple Support (in English). Retrieved 2021-04-04.
  7. "Windows Sandbox". 2018-12-18. Retrieved 2010-01-07.
  8. google/sandboxed-api, Google, 2020-12-08, retrieved 2020-12-09
  9. "Auto-Sandboxing secure system". Retrieved 2015-01-30.
  10. "Native Client Sandbox – Untrusted x86 Native Code" (PDF). Retrieved 2015-01-03.
  11. Welcome to Native Client
  12. Internet Explorer Team Blog. "Defense in Depth: Locking Down Mash-Ups with HTML5 Sandbox". IEBlog.
  13. Wahbe, Robert (1993). "Efficient Software-Based Fault Isolation" (PDF).


बाहरी संबंध