रो हैमर
रो हैमर (जिसे रोहैमर के रूप में भी लिखा जाता है) एक सुरक्षा शोषण है जो की डायनेमिक रैंडम-एक्सेस मेमोरी (डीआरएएम) में एक अनपेक्षित और अवांछनीय दुष्प्रभाव का लाभ उठाता है जिसमें मेमोरी सेल (कंप्यूटिंग) अपने चार्ज को लीक करके, संभवतः परिवर्तित करके, आपस में विद्युतीय रूप से संपर्क करते हैं। संभवतः पास की सामग्री को परिवर्तित कर देती हैं। इस प्रकार से मेमोरी रो जिन्हें मूल मेमोरी एक्सेस में संबोधित नहीं किया गया था। और डीआरएएम मेमोरी सेलो के बीच पृथक्करण की यह रोकथाम आधुनिक डीआरएएम में उच्च सेल घनत्व के परिणामस्वरूप होती है, और इसे विशेष रूप से तैयार किए गए मेमोरी एक्सेस पैटर्न द्वारा ट्रिगर किया जा सकता है जो एक ही मेमोरी रो को कई बार तेजी से सक्रिय करता है।[1][2][3]
रो हैमर प्रभाव का उपयोग कुछ प्रिविलेज एस्कालेशन कंप्यूटर सुरक्षा शोषण (कंप्यूटर सुरक्षा) में किया गया है,[2][4][5][6] और नेटवर्क-आधारित अटैक भी सैद्धांतिक रूप से संभव हैं।[7][8]
रो हैमर प्रभाव को होने से रोकने के लिए विभिन्न हार्डवेयर-आधारित तकनीकें उपस्तिथ हैं, जिनमें कुछ केंद्रीय प्रसंस्करण इकाई और डीआरएएम मेमोरी मॉड्यूल के प्रकारों में आवश्यक समर्थन सम्मिलित है।[9][10]
बैकग्राउंड
डायनेमिक रैम (डीआरएएम) में, संग्रहीत डेटा का प्रत्येक बिट एक अलग मेमोरी सेल पर अधिकृत कर लेता है जो एक कैपेसिटर और एक ट्रांजिस्टर के साथ विद्युत रूप से कार्यान्वित होता है। इस प्रकार से कैपेसिटर की चार्ज स्थिति (चार्ज या डिस्चार्ज) वह है जो यह निर्धारित करती है कि डीआरएएम सेल बाइनरी मान के रूप में 1 या 0 संग्रहीत करता है या नहीं। किन्तु बड़ी संख्या में डीआरएएम मेमोरी सेल को इंटेग्रेटेड सर्किट में पैक किया जाता है, साथ में कुछ अतिरिक्त तर्क भी होते हैं जो डेटा को पढ़ने, लिखने और मेमोरी रिफ्रेशिंग करने के उद्देश्यों के लिए सेल को व्यवस्थित करते हैं।[11][12]
मेमोरी सेल (दोनों चित्रों में नीले वर्ग) को आगे आव्यूह (गणित) में व्यवस्थित किया गया है और रो और स्तंभों के माध्यम से संबोधित किया गया है। जिसमे आव्यूह पर प्रयुक्त मेमोरी एड्रेस को रो एड्रेस और कॉलम एड्रेस में तोड़ दिया जाता है, जिसे रो और कॉलम एड्रेस डिकोडर्स (क्रमशः दोनों चित्रों, ऊर्ध्वाधर और क्षैतिज हरे आयतों में) द्वारा संसाधित किया जाता है। एक रो एड्रेस द्वारा रीड ऑपरेशन के लिए रो का चयन करने के बाद (चयन को रो एक्टिवेशन के रूप में भी जाना जाता है), रो में सभी सेलो से बिट्स को सेंस एम्पलीफायरों में स्थानांतरित किया जाता है जो रो बफर (दोनों चित्रों में लाल वर्ग) बनाते हैं, जिससे कॉलम एड्रेस का उपयोग करके स्पष्ट बिट का चयन किया जाता है। नतीजतन, रीड ऑपरेशन एक विनाशकारी प्रकृति के होते हैं क्योंकि डीआरएएम के डिज़ाइन के लिए सेल चार्ज को रो बफर में स्थानांतरित करके उनके मूल्यों को पढ़ने के बाद मेमोरी सेलो को फिर से लिखने की आवश्यकता होती है। इस प्रकार से लेखन संचालन समान विधियों से एड्रेस को डिकोड करते हैं, किन्तु डिज़ाइन के परिणामस्वरूप एक बिट के मान को परिवर्तन करने के लिए पूरी रो को फिर से लिखना होगा।[1]: 2–3 [11][12][13]
इस प्रकार से प्राकृतिक डिस्चार्ज दर वाले कैपेसिटर का उपयोग करके डेटा बिट्स को संग्रहीत करने के परिणामस्वरूप, डीआरएएम मेमोरी सेलो समय के साथ अपनी स्थिति खो देती हैं और सभी मेमोरी सेलो की आवधिक मेमोरी रिफ्रेश की आवश्यकता होती है, जिसे रिफ्रेशिंग के रूप में जाना जाता है।[1]: 3 [11] और डिज़ाइन के एक अन्य परिणाम के रूप में, डीआरएएम मेमोरी संग्रहीत डेटा में यादृच्छिक परिवर्तनों के लिए अतिसंवेदनशील है, जिसे सॉफ्ट मेमोरी एर्रोर्स के रूप में जाना जाता है और इलेक्ट्रॉनिक्स और अन्य कारणों पर कॉस्मिक कारणों प्रभाव के लिए उत्तरदायी है। ऐसी विभिन्न तकनीकें हैं जो की सॉफ्ट मेमोरी एर्रोर्स का प्रतिकार करती हैं और डीआरएएम की विश्वसनीयता में सुधार करती हैं, जिनमें से ईसीसी मेमोरी | एरर-कोर्रेक्टिंग कोड (ईसीसी) मेमोरी और इसके उन्नत वेरिएंट (जैसे लॉकस्टेप मेमोरी) का सबसे अधिक उपयोग किया जाता है।[14]
अवलोकन
डायनेमिक रैंडम-एक्सेस मेमोरी इंटीग्रेटेड सर्किट की बढ़ती घनत्व के कारण कम चार्ज वाली मेमोरी सेलो भौतिक रूप से छोटी हो गई हैं, जिसके परिणामस्वरूप परिचालन नॉइज़ मार्जिन कम हो गया है, मेमोरी सेलो के बीच विद्युत चुम्बकीय इंटरैक्शन की दर में वृद्धि हुई है, और डेटा हानि की अधिक संभावना है। परिणामस्वरूप, डिस्टर्बेंस संबंधी एरर देखी गई हैं, जो सेलो द्वारा एक-दूसरे के संचालन में हस्तक्षेप करने के कारण होती हैं और प्रभावित मेमोरी सेलो में संग्रहीत बिट्स के मूल्यों में यादृच्छिक परिवर्तन के रूप में प्रकट होती हैं। इस प्रकार से डिस्टर्बेंस एर्रोर्स के बारे में जागरूकता 1970 के दशक की प्रारंभ में हुई और इंटेल 1103 पहले व्यावसायिक रूप से उपलब्ध डीआरएएम इंटेग्रेटेड सर्किट के रूप में था; तब से, डीआरएएम निर्माताओं ने डिस्टर्बेंस एर्रोर्स का प्रतिकार करने के लिए विभिन्न मीटिगेशन तकनीकों को नियोजित किया है, जैसे सेलो के बीच पृथक्करण में सुधार और उत्पादन परीक्षण करना है। चूंकि, शोधकर्ताओं ने 2014 के विश्लेषण में साबित किया कि 2012 और 2013 में निर्मित व्यावसायिक रूप से उपलब्ध डीडीआर3 Sडीआरएएम चिप्स डिस्टर्बेंस एर्रोर्स के लिए अतिसंवेदनशील हैं, जबकि रो हैमर शब्द का उपयोग संबंधित दुष्प्रभाव को नाम देने के लिए किया गया है जिसके कारण सॉफ्ट एरर देखी गई।[1][3][15]
डीडीआर3 मेमोरी में रो हैमर प्रभाव उत्पन्न होने का अवसर[16] मुख्य रूप से डीडीआर3 की मेमोरी सेलो के उच्च घनत्व और सेलो के बीच संबंधित इंटरैक्शन के परिणामों को उत्तरदायी ठहराया गया है, जबकि तेजी से डीआरएएम रो एक्टिवेशन को प्राथमिक कारण के रूप में निर्धारित किया गया है। इस प्रकार से बार-बार रो एक्टिवेशन से संबंधित रो चयन लाइनों पर वोल्टेज में उतार-चढ़ाव होता है, जो आस-पास (अधिकतर स्तिथियों में आसन्न) मेमोरी रो से संबंधित कैपेसिटर में प्राकृतिक से अधिक डिस्चार्ज दरों को प्रेरित करने के लिए देखा गया है, जिन्हें विक्टिम रो कहा जाता है; यदि प्रभावित मेमोरी सेल्स को बहुत अधिक चार्ज खोने से पहले मेमोरी रिफ्रेश नहीं किया जाता है, तो डिस्टर्बेंस की एरर होती हैं। परीक्षणों से पता चलता है कि लगभग 139,000 अनुवर्ती मेमोरी रो एक्सेस (कैश फ्लश के साथ) करने के बाद एक डिस्टर्बेंस एरर देखी जा सकती है, और प्रत्येक 1,700 सेलो में एक मेमोरी सेल अतिसंवेदनशील हो सकता है। उन परीक्षणों से यह भी पता चलता है कि अशांति एर्रोर्स की दर पर्यावरण के तापमान में वृद्धि से काफी प्रभावित नहीं होती है, जबकि यह डीआरएएम की वास्तविक सामग्री पर निर्भर करती है क्योंकि कुछ बिट पैटर्न के परिणामस्वरूप काफी अधिक डिस्टर्बेंस एरर दर होती है।[1][2][15][17]
इस प्रकार से डबल-साइडेड हैमरिंग नामक संस्करण में विक्टिम रो के चारों ओर दो डीआरएएम रो की लक्षित सक्रियता सम्मिलित होती है: इस खंड में दिए गए चित्रण में, यह संस्करण बैंगनी रो में बिट फ़्लिप को प्रेरित करने के उद्देश्य से दोनों पीली रो को सक्रिय करेगा, जो इसमें है स्तिथि विक्टिम रो का होगा. परीक्षणों से पता चलता है कि इस दृष्टिकोण के परिणामस्वरूप विक्टिम रो की नेइबोरिंग डीआरएएम रो में से केवल एक को सक्रिय करने वाले संस्करण की तुलना में डिस्टर्बेंस एर्रोर्स की दर बहुत अधिक हो सकती है।[4][18]: 19–20 [19]
चूँकि डीआरएएम विक्रेताओं ने मिटीगेसन उपाय प्रयुक्त कर दिए हैं, रोहैमर मिटीगेसन को बायपास करने के लिए पैटर्न को और अधिक परिष्कृत होना पड़ा। वर्तमान के रोहैमर पैटर्न में गैर-समान, आवृत्ति-आधारित पैटर्न सम्मिलित हैं।[20] इन पैटर्न में कई दो तरफा आक्रामक जोड़े सम्मिलित हैं जहां उनमें से प्रत्येक को एक अलग आवृत्ति, चरण और आयाम के साथ अंकित किया गया है। इसका उपयोग करके और रीफ़्रेश कमांड के साथ पैटर्न को सिंक्रनाइज़ करके, उन अंधे स्थानों को बहुत प्रभावी रूप से निर्धारित करना संभव है जहां मिटीगेसन अब सुरक्षा प्रदान करने में सक्षम नहीं है। इस विचार के आधार पर, शिक्षाविदों ने ब्लैकस्मिथ नामक रोहैमर फ़ज़र का निर्माण किया[21] जो सभी डीडीआर4 उपकरणों पर उपस्तिथा मिटीगेसन को बायपास कर सकता है।
मिटीगेसन
रो हैमर प्रभाव का कमोबेश सफल पता लगाने, रोकथाम, सुधार या मिटीगेसन के लिए विभिन्न विधियाँ उपस्तिथ हैं। परीक्षणों से पता चलता है कि सरल ईसीसी मेमोरी, जो एकल-एरर सुधार और दोहरी-एरर पहचान (एसईसीडीईडी) क्षमताएं प्रदान करती है, सभी देखी गई डिस्टर्बेंस एर्रोर्स को ठीक करने या पता लगाने में सक्षम नहीं है क्योंकि उनमें से कुछ में प्रति मेमोरी शब्द दो से अधिक फ़्लिप्ड बिट्स सम्मिलित हैं।[1]: 8 [15]: 32 इसके अतिरिक्त, शोध से पता चलता है कि स्पष्ट रूप से लक्षित तीन-बिट रो हैमर फ़्लिप ईसीसी मेमोरी को संशोधनों पर ध्यान देने से रोकता है।[22][23]
एक कम प्रभावी समाधान यह है कि अधिक बार मेमोरी रिफ्रेशिंग प्रारंभ की जाए, जिसमें मेमोरी रिफ्रेशिंग इन्टरवल्स सामान्य 64 एमएस से कम हो,[lower-alpha 1] किन्तु इस तकनीक के परिणामस्वरूप विद्युत की खपत अधिक होती है और प्रोसेसिंग ओवरहेड में वृद्धि होती है; कुछ विक्रेता फर्मवेयर अपडेट प्रदान करते हैं जो इस प्रकार के मिटीगेसन को प्रयुक्त करते हैं।[24] अधिक सम्मिश्र रोकथाम उपायों में से बार-बार एक्सेस की गई मेमोरी रो की काउंटर (डिजिटल)-आधारित पहचान करता है और उनकी नेइबोरिंग रो को सक्रिय रूप से रिफ्रेशिंग करता है; एक अन्य विधि उनकी पहुंच आवृत्ति की परवाह किए बिना एक्सेस की गई रो के नेइबोरिंग मेमोरी रो के अतिरिक्त दुर्लभ यादृच्छिक रिफ्रेश जारी करती है। इस प्रकार शोध से पता चलता है कि ये दो रोकथाम उपाय प्रदर्शन पर नगण्य प्रभाव डालते हैं।[1]: 10–11 [25]
आइवी ब्रिज ( माइक्रोआर्किटेक्चर) के जारी होने के बाद से, इंटेल ज़ीऑन प्रोसेसर तथाकथित छद्म लक्ष्य रो रिफ्रेश (पीटीआरआर) का समर्थन करते हैं जिसका उपयोग रो को कम करने के लिए पीटीआरआर-संगत डीडीआर 3 डुअल इन-लाइन मेमोरी मॉड्यूल (डीआईएमएम) के साथ संयोजन में किया जा सकता है। संभावित विक्टिम रो को स्वचालित रूप से रिफ्रेशिंग करके हैमर प्रभाव, प्रदर्शन या विद्युत की खपत पर कोई ऋणात्मक प्रभाव नहीं डालता है। जब डीआईएमएम के साथ उपयोग किया जाता है जो pटीआरआर-अनुरूप नहीं हैं, तो ये जिऑन प्रोसेसर डिफ़ॉल्ट रूप से सामान्य आवृत्ति से दोगुनी पर डीआरएएम रिफ्रेश करने में पीछे हट जाते हैं, जिसके परिणामस्वरूप मेमोरी एक्सेस विलंबता थोड़ी अधिक हो जाती है और मेमोरी बैंडविड्थ 2-4% तक कम हो सकती है।[9]
जेईडीईसी द्वारा प्रकाशित एलपीडीडीआर4 मोबाइल मेमोरी मानक[26] इसमें तथाकथित टारगेट रो रिफ्रेश (टीआरआर) के लिए वैकल्पिक हार्डवेयर समर्थन सम्मिलित है जो प्रदर्शन या विद्युत की खपत पर ऋणात्मक प्रभाव डाले बिना रो हैमर प्रभाव को रोकता है।[10][27][28] इसके अतिरिक्त, कुछ निर्माता अपने डीडीआर4 उत्पादों में टीआरआर प्रयुक्त करते हैं,[29][30] चूंकि यह जेईडीईसी द्वारा प्रकाशित डीडीआर4 मेमोरी मानक का भाग नहीं है।[31] इस प्रकार से आंतरिक रूप से, टीआरआर रो एक्टिवेशनों की संख्या की गणना करके और पूर्वनिर्धारित इंटेग्रेटेड सर्किट-विशिष्ट अधिकतम सक्रिय गिनती (एमएसी) और अधिकतम सक्रिय विंडो (tMAW) के साथ तुलना करके संभावित विक्टिम रो की पहचान करता है। मान, और बिट फ़्लिप को रोकने के लिए इन रो को रिफ्रेशिंग करता है। एमएसी मान रो एक्टिवेशनों की अधिकतम कुल संख्या है जो किसी विशेष डीआरएएम रो पर एक समय अंतराल के अन्दर सामने आ सकती है जो कि tMAW के समान या उससे कम है। इसकी नेइबोरिंग रो को विक्टिम रो के रूप में पहचाने जाने से पहले की समयावधि; टीआरआर एक रो को विक्टिम रो के रूप में भी चिह्नित कर सकता है यदि इसकी दो नेइबोरिंग रो के लिए रो एक्टिवेशनों का योग tMAW टाइम विंडो के अन्दर एमएसी सीमा तक पहुंच जाता है।[26][32] शोध से पता चला है कि 2019 और 2020 के बीच उत्पादित उपकरणों से डीडीआर4 यूडीआईएमएम और एलपीडीडीआर4एक्स चिप्स पर नियुक्त टीआरआर मिटीगेसन रोहैमर से बचाने में प्रभावी नहीं हैं।[20]
तेजी से निष्पादित डीआरएएम रो एक्टिवेशनों की बड़ी संख्या की आवश्यकता के कारण, रो हैमर शोषण बड़ी संख्या में अनकैश्ड मेमोरी एक्सेस जारी करता है जो कैश मिस का कारण बनता है, जिसे हार्डवेयर परफॉरमेंस काउंटरो का उपयोग करके असामान्य चोटियों के लिए कैश मिस की दर की देखरेख करके पता लगाया जा सकता है।[4][33]
3 दिसंबर, 2013 को जारी किए गए मेमटेस्ट86 मेमोरी डायग्नोस्टिक सॉफ़्टवेयर के संस्करण 5.0 में एक रो हैमर परीक्षण जोड़ा गया है जो जांचता है कि क्या कंप्यूटर रैम डिस्टर्बेंस एर्रोर्स के लिए अतिसंवेदनशील है, किन्तु यह केवल तभी काम करता है जब कंप्यूटर यूईएफआई को बूट करता है; यूईएफआई के बिना, यह बिना हैमर टेस्ट के पुराने संस्करण को बूट करता है।[34]
निहितार्थ
मेमोरी सुरक्षा, प्रक्रिया (कंप्यूटिंग) को मेमोरी तक पहुंचने से रोकने के विधियों के रूप में, जो उनमें से प्रत्येक के लिए मेमोरी प्रबंधन नहीं है, अधिकांश आधुनिक ऑपरेटिंग सिस्टम के पीछे की अवधारणाओं में से एक है। सुरक्षा रिंगों जैसे अन्य सुरक्षा-संबंधित मेकैनिज़्म्स के साथ संयोजन में मेमोरी सुरक्षा का उपयोग करके, प्रक्रियाओं के बीच प्रीविलेज सेपरेशन प्राप्त करना संभव है, जिसमें कंप्यूटर प्रोग्राम और कंप्यूटर सिस्टम को सामान्य रूप से विशिष्ट प्रीविलेज (कंप्यूटिंग) तक सीमित भागों में विभाजित किया जाता है जिनकी उन्हें आवश्यकता होती है किसी विशेष कार्य को करने के लिए। इस प्रकार से प्रीविलेज सेपरेशन का उपयोग करने से कंप्यूटर सुरक्षा अटैक के प्रभाव को सिस्टम के विशिष्ट भागों तक सीमित करके उनके कारण होने वाली संभावित क्षति की सीमा को भी कम किया जा सकता है।[35][36]
डिस्टर्बेंस एरर (या डिस्टर्बेंस में स्पष्ट मेन मेमोरी सुरक्षा की विभिन्न परतों को बहुत कम हार्डवेयर स्तर पर शार्ट सर्किट करके प्रभावी ढंग से हरा देती हैं, व्यावहारिक रूप से अद्वितीय अटैक वेक्टर प्रकार का निर्माण करती हैं जो प्रक्रियाओं को सीधे मेन मेमोरी के मनमाने भागो की सामग्री को परिवर्तन करने की अनुमति देता है। अंडरलाइनिंग मेमोरी हार्डवेयर में परिवर्तन करना है।[2][4][18][37] इसकी तुलना में, पारंपरिक अटैक वैक्टर जैसे कि बफ़र ओवरफ्लो का उद्देश्य अन्यथा दुर्गम मेन मेमोरी सामग्री में परिवर्तन प्राप्त करने के लिए विभिन्न प्रोग्रामिंग गलतियों का लाभ उठाकर (कंप्यूटर सुरक्षा) सॉफ्टवेयर स्तर पर सुरक्षा तंत्र को अलग करना है।[38]
शोषण
hammer:
mov (X), %eax // read from address X
mov (Y), %ebx // read from address Y
clflush (X) // flush cache for address X
clflush (Y) // flush cache for address Y
mfence
jmp hammer
|
x86 असेंबली कोड का एक स्निपेट जो रो हैमर प्रभाव को प्रेरित करता है (मेमोरी एड्रेस X और Y को एक ही मेमोरी बैंक में अलग-अलग डीआरएएम पंक्तियों में मैप करना होगा):[1]: 3 [4][18]: 13–15 |
जून 2014 में प्रकाशित रो हैमर प्रभाव पर प्रारंभिक शोध में डिस्टर्बेंस एर्रोर्स की प्रकृति का वर्णन किया गया था और अटैक के निर्माण की संभावना का संकेत दिया गया था, किन्तु कार्यशील सुरक्षा शोषण का कोई उदाहरण नहीं दिया गया था।[1] इसके बाद अक्टूबर 2014 के एक रिसर्च पेपर में रो हैमर प्रभाव से उत्पन्न होने वाले किसी भी सुरक्षा-संबंधी विषय के अस्तित्व का संकेत नहीं दिया गया था।[16]
इस प्रकार से 9 मार्च 2015 को, गूगल के प्रोजेक्ट जीरो ने रो हैमर प्रभाव के आधार पर दो वर्किंग प्रिविलेज एस्कालेशन कारनामों का खुलासा किया, जो x86-64 आर्किटेक्चर पर इसकी शोषक प्रकृति को स्थापित करता है। अतः सामने आए कारनामों में से सैंडबॉक्स (कंप्यूटर सुरक्षा) के अन्दर x86-64 मशीन निर्देशों के एक सीमित उपसमूह को चलाने के लिए गूगल गूगल मूल क्लाइंटNaCl) तंत्र को लक्षित करता है।[18]: 27 सैंडबॉक्स से बचने और सीधे सिस्टम कॉल जारी करने की क्षमता प्राप्त करने के लिए रो हैमर प्रभाव का शोषण करना था। यह NaCl भेद्यता (कंप्यूटिंग), के रूप में ट्रैक किया गया CVE-2015-0565, NaCl को संशोधित करके कम कर दिया गया है इसलिए यह निष्पादन की अनुमति नहीं देता है clflush
(कैश लाइन फ्लश[39]) मशीन निर्देश, जिसे पहले प्रभावी रो हैमर अटैक के निर्माण के लिए आवश्यक माना जाता था।[2][4][37]
प्रोजेक्ट ज़ीरो द्वारा प्रकट किया गया दूसरा शोषण x86-64 आर्किटेक्चर पर एक अप्रतिबंधित लिनक्स प्रक्रिया के रूप में चलता है, जो कंप्यूटर में स्थापित सभी भौतिक मेमोरी तक अप्रतिबंधित पहुंच प्राप्त करने के लिए रो हैमर प्रभाव का शोषण करता है। मेमोरी स्प्रयिंग के साथ डिस्टर्बेंस एर्रोर्स को जोड़कर, यह शोषण पेज टेबल एंट्रीज़ को परिवर्तन करने में सक्षम है[18]: 35 वर्चुअल मेमोरी सिस्टम द्वारा वर्चुअल एड्रेसेस को भौतिक एड्रेसेस पर मैप करने के लिए उपयोग किया जाता है, जिसके परिणामस्वरूप शोषण को अप्रतिबंधित मेमोरी एक्सेस प्राप्त होता है।[18]: 34, 36–57 इसकी प्रकृति और x86-64 आर्किटेक्चर बनाने में असमर्थता के कारण clflush
एक प्रीविलेज प्राप्त मशीन निर्देश, इस शोषण को उन कंप्यूटरों पर कदाचित् ही कम किया जा सकता है जो अंडरलाइनिंग रो हैमर रोकथाम तंत्र वाले हार्डवेयर का उपयोग नहीं करते हैं। इस प्रकार से कारनामों की व्यवहार्यता का परीक्षण करते समय, प्रोजेक्ट ज़ीरो ने पाया कि 29 परीक्षण किए गए लैपटॉप में से लगभग आधे में डिस्टर्बेंस की एरर हुईं, जिनमें से कुछ निर्बल लैपटॉप पर रो-हैमर-उत्प्रेरण कोड चलाने के पांच मिनट से भी कम समय में हुईं; परीक्षण किए गए लैपटॉप 2010 और 2014 के बीच निर्मित किए गए थे और इनमें गैर-ईसीसी डीडीआर3 मेमोरी का उपयोग किया गया था।[2][4][37]
जुलाई 2015 में, सुरक्षा शोधकर्ताओं के एक समूह ने एक पेपर प्रकाशित किया जो रो हैमर प्रभाव का लाभ उठाने के लिए एक कंप्यूटर वास्तुकला- और निर्देश सेट निर्देश-सेट-स्वतंत्र विधियों का वर्णन करता है। पर विश्वास करने के अतिरिक्त clflush
कैश फ्लश करने के लिए निर्देश, यह दृष्टिकोण सावधानीपूर्वक चयनित मेमोरी एक्सेस पैटर्न का उपयोग करके कैश एविक्शन की बहुत उच्च दर उत्पन्न करके अनकैश्ड मेमोरी एक्सेस प्राप्त करता है। यद्यपि कैश रिप्लेसमेंट पॉलिसीस प्रोसेसर के बीच भिन्न होती है, यह दृष्टिकोण अनुकूली कैश निष्कासन रणनीति एल्गोरिथम को नियोजित करके वास्तुशिल्प मतभेदों को दूर करता है।[18]: 64–68 इस दृष्टिकोण के लिए अवधारणा का प्रमाण मूल कोड कार्यान्वयन और शुद्ध जावास्क्रिप्ट कार्यान्वयन दोनों के रूप में प्रदान किया जाता है जो फ़ायरफ़ॉक्स 39 पर चलता है। और जावास्क्रिप्ट कार्यान्वयन, जिसे रोहैमर.जे.एस कहा जाता है,[40] इस प्रकार से लार्ज टाइपिंग सरणी डेटा स्ट्रूकचर का उपयोग करता है और बड़े पेजेस का उपयोग करके उनके आंतरिक मेमोरी आवंटन पर निर्भर करता है; परिणामस्वरूप, यह बहुत ही निम्न-स्तरीय भेद्यता का एक बहुत ही उच्च-स्तरीय शोषण प्रदर्शित करता है।[41][42][43][44]
अक्टूबर 2016 में, शोधकर्ताओं ने डीआरएएमएमईआर, एक एंड्रॉइड एप्लिकेशन प्रकाशित किया जो कई लोकप्रिय स्मार्टफ़ोन पर रूट एक्सेस प्राप्त करने के लिए अन्य विधियों के साथ-साथ रो हैमर का उपयोग करता है।[45] किन्तु भेद्यता के रूप में स्वीकार किया गया था CVE-2016-6728[46] और गूगल द्वारा एक महीने के अन्दर एक मिटीगेसन जारी किया गया था। चूंकि, अटैक के संभावित कार्यान्वयन की सामान्य प्रकृति के कारण, एक प्रभावी सॉफ़्टवेयर पैच को विश्वसनीय रूप से प्रयुक्त करना कठिन है। जून 2018 तक, शिक्षा जगत और उद्योग द्वारा किए गए अधिकांश पैच प्रस्ताव या तो नियुक्त करने के लिए अव्यावहारिक थे या सभी अटैक को रोकने में अपर्याप्त थे। मिटीगेसन के रूप में, शोधकर्ताओं ने एक हल्के बचाव का प्रस्ताव रखा जो गार्ड रो के साथ डीएमए बफ़र्स को अलग करके डायरेक्ट मेमोरी एक्सेस (डीएमए) पर आधारित अटैक को रोकता है।[47][48]
इस प्रकार से मई 2021 में, गूगल रिसर्च टीम ने एक नए कारनामे, हाफ-डबल की घोषणा की जो कुछ नए डीआरएएम चिप्स की बिगड़ती भौतिकी का लाभ उठाता है।[49]
यह भी देखें
- मेमोरी स्क्रेम्ब्लिंग – मेमोरी कंट्रोलर सुविधा जो मेमोरी में लिखे गए उपयोगकर्ता डेटा को छद्म-यादृच्छिक पैटर्न में परिवर्तन कर देती है
- विकिरण हार्डनिंग – इलेक्ट्रॉनिक घटकों को आयनीकृत विकिरण के कारण होने वाली क्षति या खराबी के प्रति प्रतिरोधी बनाने का कार्य
- सिंगल इवेन्ट अपसेट – किसी इलेक्ट्रॉनिक उपकरण में संवेदनशील नोड पर अटैक करने वाले आयनों या विद्युत चुम्बकीय विकिरण के कारण होने वाला अवस्था परिवर्तन
- सॉफ्ट एरर – एक प्रकार की एरर जिसमें सिग्नल या डेटा में गलत परिवर्तन होते हैं किन्तु अंडरलाइनिंग डिवाइस या सर्किट में कोई परिवर्तन नहीं होता है
टिप्पणियाँ
- ↑ Research shows that the rate of disturbance errors in a selection of DDR3 memory modules closes to zero when the memory refresh interval becomes roughly seven times shorter than the default of 64 ms.[15]: 17, 26
संदर्भ
- ↑ 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 Yoongu Kim; Ross Daly; Jeremie Kim; Chris Fallin; Ji Hye Lee; Donghyuk Lee; Chris Wilkerson; Konrad Lai; Onur Mutlu (June 24, 2014). "Flipping Bits in Memory Without Accessing Them: An Experimental Study of DRAM Disturbance Errors" (PDF). ece.cmu.edu. IEEE. Retrieved March 10, 2015.
- ↑ 2.0 2.1 2.2 2.3 2.4 2.5 Goodin, Dan (March 10, 2015). "अत्याधुनिक हैक DRAM की कमजोरी का फायदा उठाकर सुपर यूजर का दर्जा देता है". Ars Technica. Retrieved March 10, 2015.
- ↑ 3.0 3.1 Ducklin, Paul (March 12, 2015). "'Row hammering' – how to exploit a computer by overworking its memory". Sophos. Retrieved March 14, 2015.
- ↑ 4.0 4.1 4.2 4.3 4.4 4.5 4.6 Seaborn, Mark; Dullien, Thomas (March 9, 2015). "कर्नेल विशेषाधिकार प्राप्त करने के लिए DRAM रोहैमर बग का शोषण करना". googleprojectzero.blogspot.com. Retrieved March 10, 2015.
- ↑ "Using Rowhammer bitflips to root Android phones is now a thing". Ars Technica. Retrieved October 25, 2016.
- ↑ Swati Khandelwal (May 3, 2018). "GLitch: New 'Rowhammer' Attack Can Remotely Hijack Android Phones". The Hacker News. Retrieved May 21, 2018.
- ↑ Mohit Kumar (May 10, 2018). "New Rowhammer Attack Can Hijack Computers Remotely Over the Network". The Hacker News. Retrieved May 21, 2018.
- ↑ Swati Khandelwal (May 16, 2018). "Nethammer—Exploiting DRAM Rowhammer Bug Through Network Requests". The Hacker News. Retrieved May 21, 2018.
- ↑ 9.0 9.1 Marcin Kaczmarski (August 2014). "Thoughts on Intel Xeon E5-2600 v2 Product Family Performance Optimisation – Component selection guidelines" (PDF). Intel. p. 13. Retrieved March 11, 2015.
- ↑ 10.0 10.1 Greenberg, Marc (October 15, 2014). "DDR DRAM इंटरफेस के लिए विश्वसनीयता, उपलब्धता और सेवाक्षमता (RAS)।" (PDF). memcon.com. pp. 2, 7, 10, 20, 27. Archived from the original (PDF) on July 5, 2016. Retrieved March 11, 2015.
- ↑ 11.0 11.1 11.2 "Lecture 12: DRAM Basics" (PDF). utah.edu. February 17, 2011. pp. 2–7. Retrieved March 10, 2015.
- ↑ 12.0 12.1 "Understanding DRAM Operation" (PDF). IBM. December 1996. Archived from the original (PDF) on August 29, 2017. Retrieved March 10, 2015.
- ↑ David August (November 23, 2004). "Lecture 20: Memory Technology" (PDF). cs.princeton.edu. pp. 3–5. Archived from the original (PDF) on May 19, 2005. Retrieved March 10, 2015.
- ↑ Bianca Schroeder; Eduardo Pinheiro; Wolf-Dietrich Weber (June 25, 2009). "DRAM Errors in the Wild: A Large-Scale Field Study" (PDF). cs.toronto.edu. ACM. Retrieved March 10, 2015.
- ↑ 15.0 15.1 15.2 15.3 15.4 Yoongu Kim; Ross Daly; Jeremie Kim; Chris Fallin; Ji Hye Lee; Donghyuk Lee; Chris Wilkerson; Konrad Lai; Onur Mutlu (June 24, 2014). "Flipping Bits in Memory Without Accessing Them: DRAM Disturbance Errors" (PDF). ece.cmu.edu. Retrieved March 10, 2015.
- ↑ 16.0 16.1 Kyungbae Park; Sanghyeon Baeg; ShiJie Wen; Richard Wong (October 2014). "Active-precharge hammering on a row induced failure in DDR3 SDRAMs under 3× nm technology". Active-Precharge Hammering on a Row Induced Failure in DDR3 SDRAMs under 3x nm Technology. IEEE. pp. 82–85. doi:10.1109/IIRW.2014.7049516. ISBN 978-1-4799-7308-8. S2CID 14464953.
- ↑ Yoongu Kim; Ross Daly; Jeremie Kim; Chris Fallin; Ji Hye Lee; Donghyuk Lee; Chris Wilkerson; Konrad Lai; Onur Mutlu (July 30, 2015). "RowHammer: Reliability Analysis and Security Implications" (PDF). ece.cmu.edu. Retrieved August 7, 2015.
- ↑ 18.0 18.1 18.2 18.3 18.4 18.5 18.6 Mark Seaborn; Thomas Dullien (August 6, 2015). "Exploiting the DRAM rowhammer bug to gain kernel privileges: How to cause and exploit single bit errors" (PDF). Black Hat. Retrieved August 7, 2015.
- ↑ Andy Greenberg (March 10, 2015). "Googlers' Epic Hack Exploits How Memory Leaks Electricity". Wired. Retrieved March 17, 2015.
- ↑ 20.0 20.1 Jattke, Patrick; van der Veen, Victor; Frigo, Pietro; Gunter, Stijn; Razavi, Kaveh (May 25, 2022). "Blacksmith: Scalable Rowhammering in the Frequency Domain" (PDF). comsec.ethz.ch. IEEE. Retrieved November 9, 2022.
- ↑ Blacksmith Rowhammer Fuzzer, 2022-11-02, retrieved 2022-11-09
- ↑ Cojocar, Lucian; Razavi, Kaveh; Giuffrida, Cristiano; Bos, Herbert (2019). "Exploiting Correcting Codes: On the Effectiveness of ECC Memory Against Rowhammer Attacks" (PDF). 2019 IEEE Symposium on Security and Privacy (SP). Symposium on Security & Privacy. IEEE. pp. 55–71. doi:10.1109/sp.2019.00089. ISBN 978-1-5386-6660-9. Retrieved 2022-05-30.
- ↑ VUsec, Systems and Network Security Group (November 11, 2018). "ECCploit: ECC Memory Vulnerable to Rowhammer Attacks After All". Vrije Universiteit Amsterdam. Retrieved 2022-05-30.
- ↑ "Row Hammer Privilege Escalation (Lenovo Security Advisory LEN-2015-009)". Lenovo. August 5, 2015. Retrieved August 6, 2015.
- ↑ Dae-Hyun Kim; Prashant J. Nair; Moinuddin K. Qureshi (October 9, 2014). "Architectural Support for Mitigating Row Hammering in DRAM Memories" (PDF). ece.gatech.edu. IEEE. Archived from the original (PDF) on March 11, 2015. Retrieved March 11, 2015.
- ↑ 26.0 26.1 "JEDEC standard JESD209-4A: Low Power Double Data Rate (LPDDR4)" (PDF). JEDEC. November 2015. pp. 222–223. Retrieved January 10, 2016.
- ↑ Kishore Kasamsetty (October 22, 2014). "DRAM scaling challenges and solutions in LPDDR4 context" (PDF). memcon.com. p. 11. Archived from the original (PDF) on June 3, 2016. Retrieved January 10, 2016.
- ↑ Omar Santos (March 9, 2015). "Mitigations Available for the DRAM Row Hammer Vulnerability". cisco.com. Retrieved March 11, 2015.
- ↑ Marc Greenber (March 9, 2015). "Row Hammering: What it is, and how hackers could use it to gain access to your system". synopsys.com. Retrieved January 10, 2016.
- ↑ Jung-Bae Lee (November 7, 2014). "Green Memory Solution (Samsung Investors Forum 2014)" (PDF). teletogether.com. Samsung Electronics. p. 15. Retrieved January 10, 2016.
- ↑ "JEDEC standard JESD79-4A: DDR4 SDRAM" (PDF). JEDEC. November 2013. Retrieved January 10, 2016.
- ↑ "Data Sheet: 4 Gb ×4, ×8 and ×16 DDR4 SDRAM Features" (PDF). Micron Technology. November 20, 2015. pp. 48, 131. Archived from the original (PDF) on February 10, 2018. Retrieved January 10, 2016.
- ↑ Nishad Herath; Anders Fogh (August 6, 2015). "These are Not Your Grand Daddy's CPU Performance Counters: CPU Hardware Performance Counters for Security" (PDF). Black Hat. pp. 29, 38–68. Retrieved January 9, 2016.
- ↑ "PassMark MemTest86 – Version History". memtest86.com. February 13, 2015. Retrieved March 11, 2015.
- ↑ Pehr Söderman (2011). "Memory Protection" (PDF). csc.kth.se. Retrieved March 11, 2015.
- ↑ Niels Provos; Markus Friedl; Peter Honeyman (August 10, 2003). "Preventing Privilege Escalation" (PDF). niels.xtdnet.nl. Retrieved March 11, 2015.
- ↑ 37.0 37.1 37.2 Liam Tung (March 10, 2015). ""Rowhammer" DRAM flaw could be widespread, says Google". ZDNet. Retrieved March 11, 2015.
- ↑ Murat Balaban (June 6, 2009). "Buffer Overflows Demystified" (TXT). enderunix.org. Retrieved March 11, 2015.
- ↑ "CLFLUSH: Flush Cache Line (x86 Instruction Set Reference)". renejeschke.de. March 3, 2013. Archived from the original on December 3, 2017. Retrieved August 6, 2015.
- ↑ Daniel Gruss; Clémentine Maurice (July 27, 2015). "IAIK/rowhammerjs: rowhammerjs/rowhammer.js at master". github.com. Retrieved July 29, 2015.
- ↑ Daniel Gruss; Clementine Maurice; Stefan Mengard (July 24, 2015). "Rowhammer.js: A Remote Software-Induced Fault Attack in JavaScript". arXiv:1507.06955 [cs.CR].
- ↑ David Auerbach (July 28, 2015). "Rowhammer security exploit: Why a new security attack is truly terrifying". slate.com. Retrieved July 29, 2015.
- ↑ Alix Jean-Pharuns (July 30, 2015). "Rowhammer.js Is the Most Ingenious Hack I've Ever Seen". Motherboard.
- ↑ Dan Goodin (August 4, 2015). "DRAM 'Bitflipping' exploit for attacking PCs: Just add JavaScript". Ars Technica.
- ↑ VUSec (October 2016). "DRAMMER: FLIP FENG SHUI GOES MOBILE". Retrieved January 21, 2017.
- ↑ NIST National Vulnerability Database (NVD). "CVE-2016-6728 Detail".
- ↑ Victor van der Veen; Martina Lindorfer; Yanick Fratantonio; Harikrishnan Padmanabha Pillai; Giovanni Vigna; Christopher Kruegel; Herbert Bos; Kaveh Razavi (2018), "GuardION: Practical Mitigation of DMA-Based Rowhammer Attacks on ARM", Detection of Intrusions and Malware, and Vulnerability Assessment, Springer International Publishing, pp. 92–113, doi:10.1007/978-3-319-93411-2_5, hdl:1871.1/112a5465-aeb5-40fd-98ff-6f3b7c976676, ISBN 9783319934105
- ↑ "RAMPAGE AND GUARDION - Vulnerabilities in modern phones enable unauthorized access". Retrieved June 30, 2018.
- ↑ "Introducing Half-Double: New hammering technique for DRAM Rowhammer bug". Google. 2021-05-25. Retrieved 2021-12-02.
बाहरी संबंध
- Some notes on डीआरएएम (#rowhammer), March 9, 2015, by Robert Graham
- Rowhammer hardware bug threatens to smash notebook security,
InfoWorld
, March 9, 2015, by Serdar Yegulalp - DDR3 Memory Known Failure Mechanism called "Row Hammer" on YouTube, July 17, 2014, by Barbara Aichinger
- Patent US 20140059287 A1: Row hammer refresh command, February 27, 2014, by Kuljit Bains et al.
- Row Hammer Privilege Escalation Vulnerability, Cisco Systems security advisory, March 11, 2015
- ARMOR: A run-time memory hot-row detector, The University of Manchester, by Mohsen Ghasempour et al.
- Using Memory Errors to Attack a Virtual एमएसीhine, March 6, 2003, by Sudhakar Govindavajhala and Andrew W. Appel
- A program for testing for the डीआरएएम "rowhammer" problem, source code on GitHub