दो नई गंभीर सुरक्षा खामियां हैं, स्पेक्टर और मेल्टडाउन ।
क्या रास्पबेरी पाई स्पेक्टर और / या मेल्टडाउन के लिए असुरक्षित है?
दो नई गंभीर सुरक्षा खामियां हैं, स्पेक्टर और मेल्टडाउन ।
क्या रास्पबेरी पाई स्पेक्टर और / या मेल्टडाउन के लिए असुरक्षित है?
जवाबों:
एआरएम के अनुसार , पीआई 4 से पहले सभी मॉडलों में उपयोग किए जाने वाले प्रोसेसर कोर कमजोर नहीं होते हैं ।
अधिकांश आर्म प्रोसेसर इस साइड-चैनल अटकल तंत्र के किसी भी रूपांतर से प्रभावित नहीं होते हैं। अतिसंवेदनशील हैं आर्म-डिज़ाइन किए गए प्रोसेसर के छोटे सबसेट की एक निश्चित सूची नीचे पाई जा सकती है। [तालिका के लिए लिंक देखें]
पुराने पीएस द्वारा उपयोग किए जाने वाले प्रोसेसर कोर हैं:
पाई 1 और शून्य (डब्ल्यू) : ARM11
पाई 2 वी 1 : एआरएम कोर्टेक्स-ए 7
Pi 2 V1.2 और Pi 3 : ARM Cortex-A53
उपरोक्त कोर में से कोई भी हमले के किसी भी संस्करण के लिए कमजोर के रूप में सूचीबद्ध नहीं है (वे वास्तव में सूचीबद्ध नहीं हैं, क्योंकि इन हमलों के लिए कोई ज्ञात भेद्यता नहीं है)।
रास्पबेरी Pi 4 का उपयोग करता है कॉर्टेक्स- A72 है, जो कमजोर रूप में सूचीबद्ध है और 4. वेरिएंट 1, 2, 3 ए के रूप में में कहा गया है रास्पबेरी पाई 4 स्पेक्टर कारनामे की चपेट में है? , रास्पियन में इन कमजोरियों के लिए सॉफ्टवेयर शमन हैं, इसलिए शोषण का जोखिम कम होना चाहिए। अन्य ऑपरेटिंग सिस्टम में उपयुक्त शमन नहीं हो सकता है, और जब एआरएम का कहना है कि कॉर्टेक्स-ए 72 के लिए एक हार्डवेयर शमन जारी किया गया है, यह स्पष्ट नहीं है कि क्या यह पीआई 4 पर लागू किया गया है।
ध्यान दें कि वेरिएंट 1 और 2 (CVE-2017-5753 और CVE-2017-5715) स्पेक्टर के रूप में जाने जाते हैं , और वेरिएंट 3 (CVE-2017-5754) और 3a (एआरएम द्वारा संबंधित एक संबंधित हमले) को मेल्टडाउन कहा जाता है । इसलिए, Pi 4 से पहले रास्पबेरी पाई उपकरणों में से कोई भी स्पेक्टर या मेलडाउन के लिए असुरक्षित माना जाता है।
पाई (सभी संस्करण) असुरक्षित नहीं है।
स्पेक्टर और मेल्टडाउन दोनों को आउट-ऑफ-ऑर्डर निष्पादन की आवश्यकता होती है। कॉर्टेक्स- ए 7 जल्दी पाई 2 और में इस्तेमाल किया कॉर्टेक्स A53 बाद में पाई 2 और पी 3 में इस्तेमाल एक सख्ती से इन-आदेश वास्तुकला है। ARM11 पाई 1 में इस्तेमाल एक तरीका है कि स्पेक्टर या मेल्टडाउन परमिट काम करने के लिए आंशिक रूप से बाहर के आदेश है, लेकिन नहीं है।
एआरएम इसकी पुष्टि करता है : एआरएम प्रोसेसर के केवल एक बहुत ही सीमित उपसमूह में हार्डवेयर होते हैं जो उन्हें स्पेक्टर के लिए असुरक्षित बनाता है, एक और भी सीमित उपसमूह मेल्टडाउन के लिए असुरक्षित है, और यह माना जाता है कि सभी खतरे की शमन की अनुमति देते हैं।
मैं इस पर अपना अलग ऑफर देना चाहता हूं।
मेल्टडाउन के बारे में, यह कुछ प्रोसेसर में एक बहुत ही विशिष्ट भेद्यता है, इसलिए यदि एआरएम कहते हैं कि रास्पबेरी पाई में सीपीयू असुरक्षित नहीं है, तो शायद इस पर भरोसा किया जा सकता है।
हालांकि, स्पेक्टर एक अधिक सामान्य भेद्यता है। अब तक, केवल दो वेरिएंट का प्रदर्शन किया गया है, लेकिन मुझे पूरा यकीन है कि अधिक वेरिएंट हैं। सीपीयू में दोष यह है कि एक संदर्भ स्विच करते समय शाखा पूर्वसूचक राज्य को फ्लश नहीं किया जाता है, और शाखा अनुदेशक पते के निम्न-क्रम बिट्स द्वारा उस शाखा पूर्वानुमानकर्ता राज्य को अनुक्रमित किया जाता है, और बिल्कुल भी टैग नहीं किया जाता है। तो आपके पास प्रक्रिया की सीमाओं के पार भी, एक ही शाखा के पूर्वसूचक राज्य को साझा करने वाली दो शाखाएं हो सकती हैं।
मुझे पूरा विश्वास है कि सभी रास्पबेरी पाई मॉडल में सीपीयू व्यावहारिक रूप से अन्य सभी सीपीयू के समान है जिसमें शाखा प्रेडिक्टर सिर्फ 2-बिट संतृप्त काउंटरों का एक बड़ा सरणी है (दृढ़ता से लिया गया, कमजोर रूप से लिया गया, कमजोर रूप से नहीं लिया गया, दृढ़ता से नहीं लिया गया। नहीं लिया)। इस सरणी का सूचकांक शाखा निर्देश पते का निम्न-क्रम बिट्स है, और कोई टैग नहीं है, और यह भविष्य कहनेवाला राज्य कभी भी बंद नहीं होता है।
अब, यदि दो शाखाएँ एक ही पूर्वसूचक स्थिति को साझा करती हैं, तो आप यह माप सकते हैं कि किसी विशेष शाखा ने हाल के दिनों में किस तरह से कदम उठाए हैं। स्पेक्टर की जानकारी लीक इस प्रकार है! यदि आप मज़बूती से ब्राउज़र को जावास्क्रिप्ट से अपने पासवर्ड पर कुछ कोड ब्रांचिंग को निष्पादित करने के लिए ट्रिगर कर सकते हैं, और यह माप सकते हैं कि शाखाएँ किस तरीके से गईं हैं, तो आप वास्तव में पासवर्ड निकाल सकते हैं। अब यह एक चरम उदाहरण है, कोई भी व्यक्ति आपके हर एक बिटकॉइन पर ऐसे तरीके से शाखा नहीं लगाएगा, जिसे जावास्क्रिप्ट से ट्रिगर किया जा सके, लेकिन यह समस्या को प्रदर्शित करता है।
विश्वास मत करो सब कुछ एआरएम कहते हैं। एआरएम का मतलब यह है कि संभवतः Google ने इन एआरएम सीपीयू पर काम नहीं किया है। इसका मतलब यह नहीं है कि वे स्पेक्टर के लिए अयोग्य होंगे। कुछ और तरह के कारनामे काम कर सकते हैं।
यह प्रश्न देखें: https://security.stackexchange.com/questions/176678/is-branch-predictor-flush-instruction-a-complete-spectre-fix और इसके उत्तर के निहितार्थ को समझें। आपके ब्राउज़र में चल रहा एक दुष्ट जावास्क्रिप्ट कोड स्पेक्टर माप के कारण हो सकता है कि प्रक्रिया में अन्य शाखाएं किस तरह से चली गई हैं। यहां तक कि एक शाखा भविष्यवक्ता फ्लश निर्देश इस दुष्ट जावास्क्रिप्ट समस्या को ठीक नहीं करेगा, जब तक कि ब्राउज़र सक्रिय रूप से शाखा कोडक को अविश्वसनीय कोड चलाने से पहले फ्लश न कर दे।
स्पेक्टर हमारे लिए एक बहुत, बहुत लंबे समय तक रहेगा, क्योंकि 14 बिट्स इंडेक्स के रूप में ब्रांच प्रेडिक्टर एक 32-बिट एड्रेस स्पेस के शेष 18 बिट्स के साथ टैग नहीं किया जाता है, क्योंकि तब उसे 20 बिट्स (2 बिट्स सैचुरेटिंग काउंटर की आवश्यकता होगी) , 18 बिट्स टैग) के बजाय सिर्फ 2 बिट्स। यह शाखा भविष्यवक्ता के आकार को दस से गुणा करेगा! मैं सीपीयू निर्माताओं से एक शाखा प्रेडिक्टर फ्लश इंस्ट्रक्शन जोड़ने की अपेक्षा कर रहा हूं जो विशेष स्पेसिफिकेशंस के बिना यूजर स्पेस में भी काम करता है और कॉन्ट्रैक्ट स्विचिंग के समय इसे इस्तेमाल करने के लिए कर्नेल और बिना स्पेसिफाइड JIT कोड चलाते समय यूजर स्पेस का इस्तेमाल करता है। यह व्यवहार में अधिकांश स्पेक्टर समस्याओं को ठीक करेगा, लेकिन सिद्धांत रूप में, उन सभी को नहीं।