रो हैमर: Difference between revisions
(Created page with "{{Short description|Computer security exploit}} {{Good article}} {{Use mdy dates|date=March 2015}} रो हैमर (जिसे रोहैमर के रूप म...") |
No edit summary |
||
Line 1: | Line 1: | ||
{{Short description|Computer security exploit}} | {{Short description|Computer security exploit}} | ||
रो हैमर (जिसे रोहैमर के रूप में भी लिखा जाता है) एक सुरक्षा शोषण है जो [[गतिशील रैंडम-एक्सेस मेमोरी]] (DRAM) में एक अनपेक्षित और अवांछनीय दुष्प्रभाव का लाभ उठाता है जिसमें [[मेमोरी सेल (कंप्यूटिंग)]] अपने चार्ज को लीक करके, संभवतः बदलकर, आपस में विद्युतीय रूप से संपर्क करते हैं। आस-पास की [[स्मृति पंक्ति]] की सामग्री जो मूल मेमोरी एक्सेस में [[ स्मृति पता |स्मृति पता]] नहीं थी। DRAM मेमोरी कोशिकाओं के बीच अलगाव की यह रोकथाम आधुनिक DRAM में उच्च सेल घनत्व के परिणामस्वरूप होती है, और इसे विशेष रूप से तैयार किए गए [[मेमोरी एक्सेस पैटर्न]] द्वारा ट्रिगर किया जा सकता है जो एक ही मेमोरी पंक्तियों को कई बार तेजी से सक्रिय करता है।<ref name="isca14-paper">{{cite web | |||
रो हैमर (जिसे रोहैमर के रूप में भी लिखा जाता है) एक सुरक्षा शोषण है जो [[गतिशील रैंडम-एक्सेस मेमोरी]] (DRAM) में एक अनपेक्षित और अवांछनीय दुष्प्रभाव का लाभ उठाता है जिसमें [[मेमोरी सेल (कंप्यूटिंग)]] अपने चार्ज को लीक करके, संभवतः बदलकर, आपस में विद्युतीय रूप से संपर्क करते हैं। आस-पास की [[स्मृति पंक्ति]] की सामग्री जो मूल मेमोरी एक्सेस में [[ स्मृति पता ]] नहीं थी। DRAM मेमोरी कोशिकाओं के बीच अलगाव की यह रोकथाम आधुनिक DRAM में उच्च सेल घनत्व के परिणामस्वरूप होती है, और इसे विशेष रूप से तैयार किए गए [[मेमोरी एक्सेस पैटर्न]] द्वारा ट्रिगर किया जा सकता है जो एक ही मेमोरी पंक्तियों को कई बार तेजी से सक्रिय करता है।<ref name="isca14-paper">{{cite web | |||
| url = http://users.ece.cmu.edu/~yoonguk/papers/kim-isca14.pdf | | url = http://users.ece.cmu.edu/~yoonguk/papers/kim-isca14.pdf | ||
| title = Flipping Bits in Memory Without Accessing Them: An Experimental Study of DRAM Disturbance Errors | | title = Flipping Bits in Memory Without Accessing Them: An Experimental Study of DRAM Disturbance Errors | ||
Line 12: | Line 9: | ||
| publisher = [[IEEE]] | website = ece.cmu.edu | | publisher = [[IEEE]] | website = ece.cmu.edu | ||
}}</ref><ref name="arstechnica">{{cite web |author=Goodin |first=Dan |date=March 10, 2015 |title=अत्याधुनिक हैक DRAM की कमजोरी का फायदा उठाकर सुपर यूजर का दर्जा देता है|url=https://arstechnica.com/security/2015/03/cutting-edge-hack-gives-super-user-status-by-exploiting-dram-weakness/ |access-date=March 10, 2015 |publisher=[[Ars Technica]]}}</ref><ref name="sophos">{{cite web |author=Ducklin |first=Paul |date=March 12, 2015 |title='Row hammering' – how to exploit a computer by overworking its memory |url=https://nakedsecurity.sophos.com/2015/03/12/row-hammering-how-to-exploit-a-computer-by-overworking-its-memory/ |access-date=March 14, 2015 |publisher=[[Sophos]]}}</ref> | }}</ref><ref name="arstechnica">{{cite web |author=Goodin |first=Dan |date=March 10, 2015 |title=अत्याधुनिक हैक DRAM की कमजोरी का फायदा उठाकर सुपर यूजर का दर्जा देता है|url=https://arstechnica.com/security/2015/03/cutting-edge-hack-gives-super-user-status-by-exploiting-dram-weakness/ |access-date=March 10, 2015 |publisher=[[Ars Technica]]}}</ref><ref name="sophos">{{cite web |author=Ducklin |first=Paul |date=March 12, 2015 |title='Row hammering' – how to exploit a computer by overworking its memory |url=https://nakedsecurity.sophos.com/2015/03/12/row-hammering-how-to-exploit-a-computer-by-overworking-its-memory/ |access-date=March 14, 2015 |publisher=[[Sophos]]}}</ref> | ||
पंक्ति हथौड़ा प्रभाव का उपयोग कुछ [[विशेषाधिकार वृद्धि]] कंप्यूटर सुरक्षा [[शोषण (कंप्यूटर सुरक्षा)]] में किया गया है,<ref name="arstechnica"/><ref name="googleprojectzero">{{cite web |author1=Seaborn |first=Mark |last2=Dullien |first2=Thomas |date=March 9, 2015 |title=कर्नेल विशेषाधिकार प्राप्त करने के लिए DRAM रोहैमर बग का शोषण करना|url=http://googleprojectzero.blogspot.com/2015/03/exploiting-dram-rowhammer-bug-to-gain.html |access-date=March 10, 2015 |website=googleprojectzero.blogspot.com}}</ref><ref>{{cite news | पंक्ति हथौड़ा प्रभाव का उपयोग कुछ [[विशेषाधिकार वृद्धि]] कंप्यूटर सुरक्षा [[शोषण (कंप्यूटर सुरक्षा)]] में किया गया है,<ref name="arstechnica"/><ref name="googleprojectzero">{{cite web |author1=Seaborn |first=Mark |last2=Dullien |first2=Thomas |date=March 9, 2015 |title=कर्नेल विशेषाधिकार प्राप्त करने के लिए DRAM रोहैमर बग का शोषण करना|url=http://googleprojectzero.blogspot.com/2015/03/exploiting-dram-rowhammer-bug-to-gain.html |access-date=March 10, 2015 |website=googleprojectzero.blogspot.com}}</ref><ref>{{cite news | ||
| url = https://arstechnica.com/security/2016/10/using-rowhammer-bitflips-to-root-android-phones-is-now-a-thing/ | | url = https://arstechnica.com/security/2016/10/using-rowhammer-bitflips-to-root-android-phones-is-now-a-thing/ | ||
Line 33: | Line 31: | ||
| date = May 16, 2018 | access-date = May 21, 2018 | | date = May 16, 2018 | access-date = May 21, 2018 | ||
}}</ref> | }}</ref> | ||
पंक्ति हथौड़ा प्रभाव को होने से रोकने के लिए विभिन्न हार्डवेयर-आधारित तकनीकें मौजूद हैं, जिनमें कुछ केंद्रीय प्रसंस्करण इकाई और DRAM [[मेमोरी मॉड्यूल]] के प्रकारों में आवश्यक समर्थन शामिल है।<ref name="intel-d2s2e4">{{cite web | पंक्ति हथौड़ा प्रभाव को होने से रोकने के लिए विभिन्न हार्डवेयर-आधारित तकनीकें मौजूद हैं, जिनमें कुछ केंद्रीय प्रसंस्करण इकाई और DRAM [[मेमोरी मॉड्यूल]] के प्रकारों में आवश्यक समर्थन शामिल है।<ref name="intel-d2s2e4">{{cite web | ||
| url = http://infobazy.gda.pl/2014/pliki/prezentacje/d2s2e4-Kaczmarski-Optymalna.pdf | | url = http://infobazy.gda.pl/2014/pliki/prezentacje/d2s2e4-Kaczmarski-Optymalna.pdf | ||
Line 43: | Line 42: | ||
== पृष्ठभूमि == | == पृष्ठभूमि == | ||
[[File:DRAM.svg|thumb|right|upright=1.4|DRAM संगठन का एक उच्च-स्तरीय चित्रण, जिसमें मेमोरी सेल (कंप्यूटिंग) (नीला वर्ग), [[ पता विकोडक ]] (हरा आयत), और [[ इंद्रिय प्रवर्धक ]] (लाल वर्ग) शामिल हैं]][[गतिशील रैम]] (DRAM) में, संग्रहीत डेटा का प्रत्येक [[ अंश ]] एक अलग मेमोरी सेल पर कब्जा कर लेता है जो एक [[ संधारित्र ]] और एक [[ट्रांजिस्टर]] के साथ विद्युत रूप से कार्यान्वित होता है। कैपेसिटर की चार्ज स्थिति (चार्ज या डिस्चार्ज) वह है जो यह निर्धारित करती है कि DRAM सेल बाइनरी मान के रूप में 1 या 0 संग्रहीत करता है या नहीं। बड़ी संख्या में DRAM मेमोरी सेल को एकीकृत सर्किट में पैक किया जाता है, साथ में कुछ अतिरिक्त तर्क भी होते हैं जो डेटा को पढ़ने, लिखने और [[स्मृति ताज़ा]] करने के उद्देश्यों के लिए सेल को व्यवस्थित करते हैं।<ref name="cs7810">{{cite web | [[File:DRAM.svg|thumb|right|upright=1.4|DRAM संगठन का एक उच्च-स्तरीय चित्रण, जिसमें मेमोरी सेल (कंप्यूटिंग) (नीला वर्ग), [[ पता विकोडक |पता विकोडक]] (हरा आयत), और [[ इंद्रिय प्रवर्धक |इंद्रिय प्रवर्धक]] (लाल वर्ग) शामिल हैं]][[गतिशील रैम]] (DRAM) में, संग्रहीत डेटा का प्रत्येक [[ अंश |अंश]] एक अलग मेमोरी सेल पर कब्जा कर लेता है जो एक [[ संधारित्र |संधारित्र]] और एक [[ट्रांजिस्टर]] के साथ विद्युत रूप से कार्यान्वित होता है। कैपेसिटर की चार्ज स्थिति (चार्ज या डिस्चार्ज) वह है जो यह निर्धारित करती है कि DRAM सेल बाइनरी मान के रूप में 1 या 0 संग्रहीत करता है या नहीं। बड़ी संख्या में DRAM मेमोरी सेल को एकीकृत सर्किट में पैक किया जाता है, साथ में कुछ अतिरिक्त तर्क भी होते हैं जो डेटा को पढ़ने, लिखने और [[स्मृति ताज़ा]] करने के उद्देश्यों के लिए सेल को व्यवस्थित करते हैं।<ref name="cs7810">{{cite web | ||
| url = http://www.eng.utah.edu/~cs7810/pres/11-7810-12.pdf | | url = http://www.eng.utah.edu/~cs7810/pres/11-7810-12.pdf | ||
| title = Lecture 12: DRAM Basics | | title = Lecture 12: DRAM Basics | ||
Line 58: | Line 57: | ||
| url-status = dead | | url-status = dead | ||
}}</ref> | }}</ref> | ||
मेमोरी सेल (दोनों चित्रों में नीले वर्ग) को आगे [[मैट्रिक्स (गणित)]] में व्यवस्थित किया गया है और पंक्तियों और स्तंभों के माध्यम से संबोधित किया गया है। मैट्रिक्स पर लागू | मेमोरी सेल (दोनों चित्रों में नीले वर्ग) को आगे [[मैट्रिक्स (गणित)]] में व्यवस्थित किया गया है और पंक्तियों और स्तंभों के माध्यम से संबोधित किया गया है। मैट्रिक्स पर लागू मेमोरी एड्रेस को पंक्ति एड्रेस और कॉलम एड्रेस में तोड़ दिया जाता है, जिसे पंक्ति और कॉलम एड्रेस डिकोडर्स (क्रमशः दोनों चित्रों, ऊर्ध्वाधर और क्षैतिज हरे आयतों में) द्वारा संसाधित किया जाता है। एक पंक्ति पते द्वारा रीड ऑपरेशन के लिए पंक्ति का चयन करने के बाद (चयन को [[पंक्ति सक्रियण]] के रूप में भी जाना जाता है), पंक्ति में सभी कोशिकाओं से बिट्स को सेंस एम्पलीफायरों में स्थानांतरित किया जाता है जो पंक्ति बफर (दोनों चित्रों में लाल वर्ग) बनाते हैं, जिससे कॉलम पते का उपयोग करके सटीक बिट का चयन किया जाता है। नतीजतन, रीड ऑपरेशन एक विनाशकारी प्रकृति के होते हैं क्योंकि DRAM के डिज़ाइन के लिए सेल चार्ज को पंक्ति बफर में स्थानांतरित करके उनके मूल्यों को पढ़ने के बाद मेमोरी कोशिकाओं को फिर से लिखने की आवश्यकता होती है। लेखन संचालन समान तरीके से पतों को डिकोड करते हैं, लेकिन डिज़ाइन के परिणामस्वरूप एक बिट के मान को बदलने के लिए पूरी पंक्तियों को फिर से लिखना होगा।<ref name="isca14-paper"/>{{rp|2–3}}<ref name="cs7810"/><ref name="ece548"/><ref>{{cite web | ||
| url = https://www.cs.princeton.edu/courses/archive/fall04/cos471/lectures/20-Memory.pdf | | url = https://www.cs.princeton.edu/courses/archive/fall04/cos471/lectures/20-Memory.pdf | ||
| archive-url = https://web.archive.org/web/20050519185856/http://www.cs.princeton.edu/courses/archive/fall04/cos471/lectures/20-Memory.pdf | | archive-url = https://web.archive.org/web/20050519185856/http://www.cs.princeton.edu/courses/archive/fall04/cos471/lectures/20-Memory.pdf | ||
Line 67: | Line 66: | ||
| pages = 3–5 | | pages = 3–5 | ||
}}</ref> | }}</ref> | ||
प्राकृतिक डिस्चार्ज दर वाले कैपेसिटर का उपयोग करके डेटा बिट्स को संग्रहीत करने के परिणामस्वरूप, DRAM मेमोरी कोशिकाएं समय के साथ अपनी स्थिति खो देती हैं और सभी मेमोरी कोशिकाओं की आवधिक मेमोरी रिफ्रेश की आवश्यकता होती है, जिसे रिफ्रेशिंग के रूप में जाना जाता है।<ref name="isca14-paper"/>{{rp|3}}<ref name="cs7810"/>डिज़ाइन के एक अन्य परिणाम के रूप में, DRAM मेमोरी संग्रहीत डेटा में यादृच्छिक परिवर्तनों के लिए अतिसंवेदनशील है, जिसे [[ नरम त्रुटि ]] के रूप में जाना जाता है और इलेक्ट्रॉनिक्स और अन्य कारणों पर कॉस्मिक किरण # प्रभाव के लिए जिम्मेदार है। ऐसी विभिन्न तकनीकें हैं जो सॉफ्ट मेमोरी त्रुटियों का प्रतिकार करती हैं और DRAM की विश्वसनीयता में सुधार करती हैं, जिनमें से ECC मेमोरी | त्रुटि-सुधार कोड (ECC) मेमोरी और इसके उन्नत वेरिएंट (जैसे [[लॉकस्टेप मेमोरी]]) का सबसे अधिक उपयोग किया जाता है।<ref>{{cite web | |||
प्राकृतिक डिस्चार्ज दर वाले कैपेसिटर का उपयोग करके डेटा बिट्स को संग्रहीत करने के परिणामस्वरूप, DRAM मेमोरी कोशिकाएं समय के साथ अपनी स्थिति खो देती हैं और सभी मेमोरी कोशिकाओं की आवधिक मेमोरी रिफ्रेश की आवश्यकता होती है, जिसे रिफ्रेशिंग के रूप में जाना जाता है।<ref name="isca14-paper" />{{rp|3}}<ref name="cs7810" /> डिज़ाइन के एक अन्य परिणाम के रूप में, DRAM मेमोरी संग्रहीत डेटा में यादृच्छिक परिवर्तनों के लिए अतिसंवेदनशील है, जिसे [[ नरम त्रुटि |नरम त्रुटि]] के रूप में जाना जाता है और इलेक्ट्रॉनिक्स और अन्य कारणों पर कॉस्मिक किरण # प्रभाव के लिए जिम्मेदार है। ऐसी विभिन्न तकनीकें हैं जो सॉफ्ट मेमोरी त्रुटियों का प्रतिकार करती हैं और DRAM की विश्वसनीयता में सुधार करती हैं, जिनमें से ECC मेमोरी | त्रुटि-सुधार कोड (ECC) मेमोरी और इसके उन्नत वेरिएंट (जैसे [[लॉकस्टेप मेमोरी]]) का सबसे अधिक उपयोग किया जाता है।<ref>{{cite web | |||
| url = http://www.cs.toronto.edu/~bianca/papers/sigmetrics09.pdf | | url = http://www.cs.toronto.edu/~bianca/papers/sigmetrics09.pdf | ||
| title = DRAM Errors in the Wild: A Large-Scale Field Study | | title = DRAM Errors in the Wild: A Large-Scale Field Study | ||
Line 77: | Line 77: | ||
== | |||
== अवलोकन == | |||
[[File:Row hammer.svg|thumb|right|upright=1.4|तीव्र पंक्ति सक्रियण (पीली पंक्तियाँ) पीड़ित पंक्ति (बैंगनी पंक्ति) में संग्रहीत बिट्स के मान को बदल सकती हैं।<ref name="isca14-talk"/>{{rp|2}}]]गतिशील रैंडम-एक्सेस मेमोरी इंटीग्रेटेड सर्किट की बढ़ती घनत्व के कारण कम चार्ज वाली मेमोरी कोशिकाएं भौतिक रूप से छोटी हो गई हैं, जिसके परिणामस्वरूप परिचालन [[शोर में कमी]] कम हो गया है, मेमोरी कोशिकाओं के बीच विद्युत चुम्बकीय इंटरैक्शन की दर में वृद्धि हुई है, और डेटा हानि की अधिक संभावना है। परिणामस्वरूप, गड़बड़ी संबंधी त्रुटियां देखी गई हैं, जो कोशिकाओं द्वारा एक-दूसरे के संचालन में हस्तक्षेप करने के कारण होती हैं और प्रभावित मेमोरी कोशिकाओं में संग्रहीत बिट्स के मूल्यों में यादृच्छिक परिवर्तन के रूप में प्रकट होती हैं। गड़बड़ी त्रुटियों के बारे में जागरूकता 1970 के दशक की शुरुआत में हुई और इंटेल 1103 पहले व्यावसायिक रूप से उपलब्ध DRAM एकीकृत सर्किट के रूप में था; तब से, DRAM निर्माताओं ने गड़बड़ी त्रुटियों का प्रतिकार करने के लिए विभिन्न [[भेद्यता शमन]] तकनीकों को नियोजित किया है, जैसे कोशिकाओं के बीच अलगाव में सुधार और उत्पादन परीक्षण करना। हालाँकि, शोधकर्ताओं ने 2014 के विश्लेषण में साबित किया कि 2012 और 2013 में निर्मित व्यावसायिक रूप से उपलब्ध [[DDR3 SDRAM]] चिप्स गड़बड़ी त्रुटियों के लिए अतिसंवेदनशील हैं, जबकि रो हैमर शब्द का उपयोग संबंधित दुष्प्रभाव को नाम देने के लिए किया गया है जिसके कारण नरम त्रुटि देखी गई।<ref name="isca14-paper"/><ref name="sophos"/><ref name="isca14-talk">{{cite web | [[File:Row hammer.svg|thumb|right|upright=1.4|तीव्र पंक्ति सक्रियण (पीली पंक्तियाँ) पीड़ित पंक्ति (बैंगनी पंक्ति) में संग्रहीत बिट्स के मान को बदल सकती हैं।<ref name="isca14-talk"/>{{rp|2}}]]गतिशील रैंडम-एक्सेस मेमोरी इंटीग्रेटेड सर्किट की बढ़ती घनत्व के कारण कम चार्ज वाली मेमोरी कोशिकाएं भौतिक रूप से छोटी हो गई हैं, जिसके परिणामस्वरूप परिचालन [[शोर में कमी]] कम हो गया है, मेमोरी कोशिकाओं के बीच विद्युत चुम्बकीय इंटरैक्शन की दर में वृद्धि हुई है, और डेटा हानि की अधिक संभावना है। परिणामस्वरूप, गड़बड़ी संबंधी त्रुटियां देखी गई हैं, जो कोशिकाओं द्वारा एक-दूसरे के संचालन में हस्तक्षेप करने के कारण होती हैं और प्रभावित मेमोरी कोशिकाओं में संग्रहीत बिट्स के मूल्यों में यादृच्छिक परिवर्तन के रूप में प्रकट होती हैं। गड़बड़ी त्रुटियों के बारे में जागरूकता 1970 के दशक की शुरुआत में हुई और इंटेल 1103 पहले व्यावसायिक रूप से उपलब्ध DRAM एकीकृत सर्किट के रूप में था; तब से, DRAM निर्माताओं ने गड़बड़ी त्रुटियों का प्रतिकार करने के लिए विभिन्न [[भेद्यता शमन]] तकनीकों को नियोजित किया है, जैसे कोशिकाओं के बीच अलगाव में सुधार और उत्पादन परीक्षण करना। हालाँकि, शोधकर्ताओं ने 2014 के विश्लेषण में साबित किया कि 2012 और 2013 में निर्मित व्यावसायिक रूप से उपलब्ध [[DDR3 SDRAM]] चिप्स गड़बड़ी त्रुटियों के लिए अतिसंवेदनशील हैं, जबकि रो हैमर शब्द का उपयोग संबंधित दुष्प्रभाव को नाम देने के लिए किया गया है जिसके कारण नरम त्रुटि देखी गई।<ref name="isca14-paper"/><ref name="sophos"/><ref name="isca14-talk">{{cite web | ||
| url = http://users.ece.cmu.edu/~omutlu/pub/dram-row-hammer_kim_talk_isca14.pdf | | url = http://users.ece.cmu.edu/~omutlu/pub/dram-row-hammer_kim_talk_isca14.pdf | ||
Line 97: | Line 98: | ||
| isbn = 978-1-4799-7308-8 | | isbn = 978-1-4799-7308-8 | ||
| s2cid = 14464953 | | s2cid = 14464953 | ||
}}</ref> मुख्य रूप से DDR3 की मेमोरी कोशिकाओं के उच्च घनत्व और कोशिकाओं के बीच संबंधित इंटरैक्शन के परिणामों को जिम्मेदार ठहराया गया है, जबकि तेजी से DRAM पंक्ति सक्रियण को प्राथमिक कारण के रूप में निर्धारित किया गया है। बार-बार पंक्ति सक्रियण से संबंधित पंक्ति चयन लाइनों पर [[वोल्टेज]] में उतार-चढ़ाव होता है, जो आस-पास (ज्यादातर मामलों में आसन्न) मेमोरी पंक्तियों से संबंधित कैपेसिटर में प्राकृतिक से अधिक डिस्चार्ज दरों को प्रेरित करने के लिए देखा गया है, जिन्हें पीड़ित पंक्तियां कहा जाता है; यदि प्रभावित मेमोरी सेल्स को बहुत अधिक चार्ज खोने से पहले मेमोरी रिफ्रेश नहीं किया जाता है, तो गड़बड़ी की त्रुटियां होती हैं। परीक्षणों से पता चलता है कि लगभग 139,000 अनुवर्ती मेमोरी पंक्ति एक्सेस ([[कैश फ्लश]] के साथ) करने के बाद एक गड़बड़ी त्रुटि देखी जा सकती है, और प्रत्येक 1,700 कोशिकाओं में एक मेमोरी सेल अतिसंवेदनशील हो सकता है। उन परीक्षणों से यह भी पता चलता है कि अशांति त्रुटियों की दर पर्यावरण के तापमान में वृद्धि से काफी प्रभावित नहीं होती है, जबकि यह डीआरएएम की वास्तविक सामग्री पर निर्भर करती है क्योंकि कुछ [[ थोड़ा अभ्यास ]] के परिणामस्वरूप काफी अधिक गड़बड़ी त्रुटि दर होती है।<ref name="isca14-paper"/><ref name="arstechnica"/><ref name="isca14-talk"/><ref>{{cite web | }}</ref> मुख्य रूप से DDR3 की मेमोरी कोशिकाओं के उच्च घनत्व और कोशिकाओं के बीच संबंधित इंटरैक्शन के परिणामों को जिम्मेदार ठहराया गया है, जबकि तेजी से DRAM पंक्ति सक्रियण को प्राथमिक कारण के रूप में निर्धारित किया गया है। बार-बार पंक्ति सक्रियण से संबंधित पंक्ति चयन लाइनों पर [[वोल्टेज]] में उतार-चढ़ाव होता है, जो आस-पास (ज्यादातर मामलों में आसन्न) मेमोरी पंक्तियों से संबंधित कैपेसिटर में प्राकृतिक से अधिक डिस्चार्ज दरों को प्रेरित करने के लिए देखा गया है, जिन्हें पीड़ित पंक्तियां कहा जाता है; यदि प्रभावित मेमोरी सेल्स को बहुत अधिक चार्ज खोने से पहले मेमोरी रिफ्रेश नहीं किया जाता है, तो गड़बड़ी की त्रुटियां होती हैं। परीक्षणों से पता चलता है कि लगभग 139,000 अनुवर्ती मेमोरी पंक्ति एक्सेस ([[कैश फ्लश]] के साथ) करने के बाद एक गड़बड़ी त्रुटि देखी जा सकती है, और प्रत्येक 1,700 कोशिकाओं में एक मेमोरी सेल अतिसंवेदनशील हो सकता है। उन परीक्षणों से यह भी पता चलता है कि अशांति त्रुटियों की दर पर्यावरण के तापमान में वृद्धि से काफी प्रभावित नहीं होती है, जबकि यह डीआरएएम की वास्तविक सामग्री पर निर्भर करती है क्योंकि कुछ [[ थोड़ा अभ्यास |थोड़ा अभ्यास]] के परिणामस्वरूप काफी अधिक गड़बड़ी त्रुटि दर होती है।<ref name="isca14-paper"/><ref name="arstechnica"/><ref name="isca14-talk"/><ref>{{cite web | ||
| url = http://users.ece.cmu.edu/~omutlu/pub/rowhammer-summary.pdf | | url = http://users.ece.cmu.edu/~omutlu/pub/rowhammer-summary.pdf | ||
| title = RowHammer: Reliability Analysis and Security Implications | | title = RowHammer: Reliability Analysis and Security Implications | ||
Line 106: | Line 107: | ||
| website = ece.cmu.edu | | website = ece.cmu.edu | ||
}}</ref> | }}</ref> | ||
डबल-साइडेड हैमरिंग नामक | |||
डबल-साइडेड हैमरिंग नामक संस्करण में पीड़ित पंक्ति के चारों ओर दो DRAM पंक्तियों की लक्षित सक्रियता शामिल होती है: इस खंड में दिए गए चित्रण में, यह संस्करण बैंगनी पंक्ति में बिट फ़्लिप को प्रेरित करने के उद्देश्य से दोनों पीली पंक्तियों को सक्रिय करेगा, जो इसमें है मामला पीड़ित पंक्ति का होगा. परीक्षणों से पता चलता है कि इस दृष्टिकोण के परिणामस्वरूप पीड़ित पंक्ति की पड़ोसी DRAM पंक्तियों में से केवल एक को सक्रिय करने वाले संस्करण की तुलना में गड़बड़ी त्रुटियों की दर काफी अधिक हो सकती है।<ref name="googleprojectzero" /><ref name="blackhat">{{cite web | |||
| url = https://www.blackhat.com/docs/us-15/materials/us-15-Seaborn-Exploiting-The-DRAM-Rowhammer-Bug-To-Gain-Kernel-Privileges.pdf | | url = https://www.blackhat.com/docs/us-15/materials/us-15-Seaborn-Exploiting-The-DRAM-Rowhammer-Bug-To-Gain-Kernel-Privileges.pdf | ||
| title = Exploiting the DRAM rowhammer bug to gain kernel privileges: How to cause and exploit single bit errors | | title = Exploiting the DRAM rowhammer bug to gain kernel privileges: How to cause and exploit single bit errors | ||
Line 119: | Line 121: | ||
| author = Andy Greenberg | | author = Andy Greenberg | ||
}}</ref> | }}</ref> | ||
= | चूँकि DRAM विक्रेताओं ने शमन उपाय लागू कर दिए हैं, रोहैमर शमन को बायपास करने के लिए पैटर्न को और अधिक परिष्कृत होना पड़ा। हाल के रोहैमर पैटर्न में गैर-समान, आवृत्ति-आधारित पैटर्न शामिल हैं।<ref name=":0" /> इन पैटर्न में कई दो तरफा आक्रामक जोड़े शामिल हैं जहां उनमें से प्रत्येक को एक अलग आवृत्ति, चरण और आयाम के साथ अंकित किया गया है। इसका उपयोग करके और REFRESH कमांड के साथ पैटर्न को सिंक्रनाइज़ करके, उन अंधे स्थानों को बहुत प्रभावी ढंग से निर्धारित करना संभव है जहां शमन अब सुरक्षा प्रदान करने में सक्षम नहीं है। इस विचार के आधार पर, शिक्षाविदों ने ब्लैकस्मिथ नामक रोहैमर फ़ज़र का निर्माण किया<ref>{{Citation |title=Blacksmith Rowhammer Fuzzer |date=2022-11-02 |url=https://github.com/comsec-group/blacksmith |access-date=2022-11-09}}</ref> जो सभी DDR4 उपकरणों पर मौजूदा शमन को बायपास कर सकता है। | ||
पंक्ति हथौड़ा प्रभाव का कमोबेश सफल पता लगाने, रोकथाम, सुधार या शमन के लिए विभिन्न विधियाँ मौजूद हैं। परीक्षणों से पता चलता है कि सरल ईसीसी मेमोरी, जो एकल-त्रुटि सुधार और दोहरी-त्रुटि पहचान (एसईसीडीईडी) क्षमताएं प्रदान करती है, सभी देखी गई गड़बड़ी त्रुटियों को ठीक करने या पता लगाने में सक्षम नहीं है क्योंकि उनमें से कुछ में प्रति मेमोरी शब्द दो से अधिक फ़्लिप्ड बिट्स शामिल हैं।<ref name="isca14-paper"/>{{rp|8}}<ref name="isca14-talk"/>{{rp|32}} इसके अलावा, शोध से पता चलता है कि सटीक रूप से लक्षित तीन-बिट पंक्ति हैमर फ़्लिप ईसीसी मेमोरी को संशोधनों पर ध्यान देने से रोकता है।<ref>{{cite conference | doi = 10.1109/sp.2019.00089 | |||
=== शमन === | |||
पंक्ति हथौड़ा प्रभाव का कमोबेश सफल पता लगाने, रोकथाम, सुधार या शमन के लिए विभिन्न विधियाँ मौजूद हैं। परीक्षणों से पता चलता है कि सरल ईसीसी मेमोरी, जो एकल-त्रुटि सुधार और दोहरी-त्रुटि पहचान (एसईसीडीईडी) क्षमताएं प्रदान करती है, सभी देखी गई गड़बड़ी त्रुटियों को ठीक करने या पता लगाने में सक्षम नहीं है क्योंकि उनमें से कुछ में प्रति मेमोरी शब्द दो से अधिक फ़्लिप्ड बिट्स शामिल हैं।<ref name="isca14-paper" />{{rp|8}}<ref name="isca14-talk" />{{rp|32}} इसके अलावा, शोध से पता चलता है कि सटीक रूप से लक्षित तीन-बिट पंक्ति हैमर फ़्लिप ईसीसी मेमोरी को संशोधनों पर ध्यान देने से रोकता है।<ref>{{cite conference | doi = 10.1109/sp.2019.00089 | |||
| last1 = Cojocar | first1 = Lucian | last2 = Razavi | first2 = Kaveh | last3 = Giuffrida | first3 = Cristiano | last4 = Bos | first4 = Herbert | | last1 = Cojocar | first1 = Lucian | last2 = Razavi | first2 = Kaveh | last3 = Giuffrida | first3 = Cristiano | last4 = Bos | first4 = Herbert | ||
| title = 2019 IEEE Symposium on Security and Privacy (SP) | chapter = Exploiting Correcting Codes: On the Effectiveness of ECC Memory Against Rowhammer Attacks | | title = 2019 IEEE Symposium on Security and Privacy (SP) | chapter = Exploiting Correcting Codes: On the Effectiveness of ECC Memory Against Rowhammer Attacks | ||
Line 132: | Line 135: | ||
| date = November 11, 2018 | access-date = 2022-05-30 | | date = November 11, 2018 | access-date = 2022-05-30 | ||
}}</ref> | }}</ref> | ||
एक कम प्रभावी समाधान यह है कि अधिक बार मेमोरी रिफ्रेशिंग शुरू की जाए, जिसमें [[स्मृति ताज़ा अंतराल]] सामान्य 64 एमएस से कम हो,{{Efn|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.<ref name="isca14-talk"/>{{rp|17,26}}}} लेकिन इस तकनीक के परिणामस्वरूप बिजली की खपत अधिक होती है और प्रोसेसिंग ओवरहेड में वृद्धि होती है; कुछ विक्रेता [[फर्मवेयर]] अपडेट प्रदान करते हैं जो इस प्रकार के शमन को लागू करते हैं।<ref>{{cite web | एक कम प्रभावी समाधान यह है कि अधिक बार मेमोरी रिफ्रेशिंग शुरू की जाए, जिसमें [[स्मृति ताज़ा अंतराल]] सामान्य 64 एमएस से कम हो,{{Efn|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.<ref name="isca14-talk"/>{{rp|17,26}}}} लेकिन इस तकनीक के परिणामस्वरूप बिजली की खपत अधिक होती है और प्रोसेसिंग ओवरहेड में वृद्धि होती है; कुछ विक्रेता [[फर्मवेयर]] अपडेट प्रदान करते हैं जो इस प्रकार के शमन को लागू करते हैं।<ref>{{cite web | ||
| url = https://support.lenovo.com/us/en/product_security/row_hammer | | url = https://support.lenovo.com/us/en/product_security/row_hammer | ||
Line 137: | Line 141: | ||
| date = August 5, 2015 | access-date = August 6, 2015 | | date = August 5, 2015 | access-date = August 6, 2015 | ||
| publisher = [[Lenovo]] | | publisher = [[Lenovo]] | ||
}}</ref> अधिक जटिल रोकथाम उपायों में से | }}</ref> अधिक जटिल रोकथाम उपायों में से बार-बार एक्सेस की गई मेमोरी पंक्तियों की [[काउंटर (डिजिटल)]]-आधारित पहचान करता है और उनकी पड़ोसी पंक्तियों को सक्रिय रूप से ताज़ा करता है; एक अन्य विधि उनकी पहुंच आवृत्ति की परवाह किए बिना एक्सेस की गई पंक्तियों के पड़ोसी मेमोरी पंक्तियों के अतिरिक्त दुर्लभ यादृच्छिक रिफ्रेश जारी करती है। शोध से पता चलता है कि ये दो रोकथाम उपाय प्रदर्शन पर नगण्य प्रभाव डालते हैं।<ref name="isca14-paper" />{{rp|10–11}}<ref>{{cite web | ||
|url = http://users.ece.gatech.edu/~pnair6/rowhammer/rowhammer.pdf | |url = http://users.ece.gatech.edu/~pnair6/rowhammer/rowhammer.pdf | ||
|title = Architectural Support for Mitigating Row Hammering in DRAM Memories | |title = Architectural Support for Mitigating Row Hammering in DRAM Memories | ||
Line 152: | Line 156: | ||
|df = mdy-all | |df = mdy-all | ||
}}</ref> | }}</ref> | ||
आइवी ब्रिज ([[ सूक्ष्मवास्तुकला | सूक्ष्मवास्तुकला]] ) माइक्रोआर्किटेक्चर के जारी होने के बाद से, [[इंटेल]] ज़ीऑन प्रोसेसर तथाकथित छद्म लक्ष्य पंक्ति रिफ्रेश (पीटीआरआर) का समर्थन करते हैं जिसका उपयोग पंक्ति को कम करने के लिए पीटीआरआर-संगत डीडीआर 3 [[दोहरी इन-लाइन मेमोरी मॉड्यूल]] (डीआईएमएम) के साथ संयोजन में किया जा सकता है। संभावित पीड़ित पंक्तियों को स्वचालित रूप से ताज़ा करके हथौड़ा प्रभाव, प्रदर्शन या बिजली की खपत पर कोई नकारात्मक प्रभाव नहीं डालता है। जब DIMMs के साथ उपयोग किया जाता है जो pTRR-अनुरूप नहीं हैं, तो ये [[Xeon]] प्रोसेसर डिफ़ॉल्ट रूप से सामान्य आवृत्ति से दोगुनी पर DRAM रिफ्रेश करने में पीछे हट जाते हैं, जिसके परिणामस्वरूप मेमोरी एक्सेस विलंबता थोड़ी अधिक हो जाती है और मेमोरी बैंडविड्थ 2-4% तक कम हो सकती है।<ref name="intel-d2s2e4" /> | |||
[[JEDEC]] द्वारा प्रकाशित [[LPDDR4]] मोबाइल मेमोरी मानक<ref name="jedec-lpddr4">{{cite web | [[JEDEC]] द्वारा प्रकाशित [[LPDDR4]] मोबाइल मेमोरी मानक<ref name="jedec-lpddr4">{{cite web | ||
Line 160: | Line 165: | ||
| publisher = [[JEDEC]] | format = PDF | | publisher = [[JEDEC]] | format = PDF | ||
| pages = 222–223 | | pages = 222–223 | ||
}}</ref> इसमें तथाकथित टारगेट रो रिफ्रेश (टीआरआर) के लिए वैकल्पिक हार्डवेयर समर्थन शामिल है जो प्रदर्शन या बिजली की खपत पर नकारात्मक प्रभाव डाले बिना रो हैमर प्रभाव को रोकता है।<ref name="memcon-net105"/><ref>{{cite web | }}</ref> इसमें तथाकथित टारगेट रो रिफ्रेश (टीआरआर) के लिए वैकल्पिक हार्डवेयर समर्थन शामिल है जो प्रदर्शन या बिजली की खपत पर नकारात्मक प्रभाव डाले बिना रो हैमर प्रभाव को रोकता है।<ref name="memcon-net105" /><ref>{{cite web | ||
| url = http://www.memcon.com/pdfs/proceedings2014/MOB102.pdf#page=11 | | url = http://www.memcon.com/pdfs/proceedings2014/MOB102.pdf#page=11 | ||
| title = DRAM scaling challenges and solutions in LPDDR4 context | | title = DRAM scaling challenges and solutions in LPDDR4 context | ||
Line 193: | Line 198: | ||
| date = November 2013 | access-date = January 10, 2016 | | date = November 2013 | access-date = January 10, 2016 | ||
| publisher = [[JEDEC]] | format = PDF | | publisher = [[JEDEC]] | format = PDF | ||
}}</ref> आंतरिक रूप से, टीआरआर पंक्ति सक्रियणों की संख्या की गणना करके और पूर्वनिर्धारित एकीकृत सर्किट-विशिष्ट अधिकतम सक्रिय गिनती (एमएसी) और अधिकतम सक्रिय विंडो (टी) के साथ तुलना करके संभावित पीड़ित पंक्तियों की पहचान करता है।<sub>MAW</sub>) मान, और बिट फ़्लिप को रोकने के लिए इन पंक्तियों को ताज़ा करता है। MAC मान पंक्ति सक्रियणों की अधिकतम कुल संख्या है जो किसी विशेष DRAM पंक्ति पर एक समय अंतराल के भीतर सामने आ सकती है जो कि t के बराबर या उससे कम है।<sub>MAW</sub> इसकी पड़ोसी पंक्तियों को पीड़ित पंक्तियों के रूप में पहचाने जाने से पहले की समयावधि; टीआरआर एक पंक्ति को पीड़ित पंक्ति के रूप में भी चिह्नित कर सकता है यदि इसकी दो पड़ोसी पंक्तियों के लिए पंक्ति सक्रियणों का योग टी के भीतर एमएसी सीमा तक पहुंच जाता है<sub>MAW</sub> समय खिड़की।<ref name="jedec-lpddr4"/><ref>{{cite web | }}</ref> आंतरिक रूप से, टीआरआर पंक्ति सक्रियणों की संख्या की गणना करके और पूर्वनिर्धारित एकीकृत सर्किट-विशिष्ट अधिकतम सक्रिय गिनती (एमएसी) और अधिकतम सक्रिय विंडो (टी) के साथ तुलना करके संभावित पीड़ित पंक्तियों की पहचान करता है।<sub>MAW</sub>) मान, और बिट फ़्लिप को रोकने के लिए इन पंक्तियों को ताज़ा करता है। MAC मान पंक्ति सक्रियणों की अधिकतम कुल संख्या है जो किसी विशेष DRAM पंक्ति पर एक समय अंतराल के भीतर सामने आ सकती है जो कि t के बराबर या उससे कम है।<sub>MAW</sub> इसकी पड़ोसी पंक्तियों को पीड़ित पंक्तियों के रूप में पहचाने जाने से पहले की समयावधि; टीआरआर एक पंक्ति को पीड़ित पंक्ति के रूप में भी चिह्नित कर सकता है यदि इसकी दो पड़ोसी पंक्तियों के लिए पंक्ति सक्रियणों का योग टी के भीतर एमएसी सीमा तक पहुंच जाता है<sub>MAW</sub> समय खिड़की।<ref name="jedec-lpddr4" /><ref>{{cite web | ||
| url = http://www.micron.com/~/media/documents/products/data-sheet/dram/ddr4/4gb_ddr4_sdram.pdf | | url = http://www.micron.com/~/media/documents/products/data-sheet/dram/ddr4/4gb_ddr4_sdram.pdf | ||
| title = Data Sheet: 4 Gb ×4, ×8 and ×16 DDR4 SDRAM Features | | title = Data Sheet: 4 Gb ×4, ×8 and ×16 DDR4 SDRAM Features | ||
Line 204: | Line 209: | ||
| url-status = dead | | url-status = dead | ||
}}</ref> शोध से पता चला है कि 2019 और 2020 के बीच उत्पादित उपकरणों से DDR4 UDIMM और LPDDR4X चिप्स पर तैनात टीआरआर शमन रोहैमर से बचाने में प्रभावी नहीं हैं।<ref name=":0">{{cite web |author1=Jattke |first=Patrick |last2=van der Veen |first2=Victor |last3=Frigo |first3=Pietro |last4=Gunter |first4=Stijn |last5=Razavi |first5=Kaveh |date=May 25, 2022 |title=Blacksmith: Scalable Rowhammering in the Frequency Domain |url=https://comsec.ethz.ch/wp-content/files/blacksmith_sp22.pdf |access-date=November 9, 2022 |website=comsec.ethz.ch |publisher=[[IEEE]]}}</ref> | }}</ref> शोध से पता चला है कि 2019 और 2020 के बीच उत्पादित उपकरणों से DDR4 UDIMM और LPDDR4X चिप्स पर तैनात टीआरआर शमन रोहैमर से बचाने में प्रभावी नहीं हैं।<ref name=":0">{{cite web |author1=Jattke |first=Patrick |last2=van der Veen |first2=Victor |last3=Frigo |first3=Pietro |last4=Gunter |first4=Stijn |last5=Razavi |first5=Kaveh |date=May 25, 2022 |title=Blacksmith: Scalable Rowhammering in the Frequency Domain |url=https://comsec.ethz.ch/wp-content/files/blacksmith_sp22.pdf |access-date=November 9, 2022 |website=comsec.ethz.ch |publisher=[[IEEE]]}}</ref> | ||
तेजी से निष्पादित DRAM पंक्ति सक्रियणों की बड़ी संख्या की आवश्यकता के कारण, पंक्ति हथौड़ा शोषण बड़ी संख्या में अनकैश्ड मेमोरी एक्सेस जारी करता है जो [[कैश मिस]] का कारण बनता है, जिसे [[हार्डवेयर प्रदर्शन काउंटर]]ों का उपयोग करके असामान्य चोटियों के लिए कैश मिस की दर की निगरानी करके पता लगाया जा सकता है।<ref name="googleprojectzero"/><ref>{{cite web | |||
तेजी से निष्पादित DRAM पंक्ति सक्रियणों की बड़ी संख्या की आवश्यकता के कारण, पंक्ति हथौड़ा शोषण बड़ी संख्या में अनकैश्ड मेमोरी एक्सेस जारी करता है जो [[कैश मिस]] का कारण बनता है, जिसे [[हार्डवेयर प्रदर्शन काउंटर]]ों का उपयोग करके असामान्य चोटियों के लिए कैश मिस की दर की निगरानी करके पता लगाया जा सकता है।<ref name="googleprojectzero" /><ref>{{cite web | |||
| url = https://www.blackhat.com/docs/us-15/materials/us-15-Herath-These-Are-Not-Your-Grand-Daddys-CPU-Performance-Counters-CPU-Hardware-Performance-Counters-For-Security.pdf | | url = https://www.blackhat.com/docs/us-15/materials/us-15-Herath-These-Are-Not-Your-Grand-Daddys-CPU-Performance-Counters-CPU-Hardware-Performance-Counters-For-Security.pdf | ||
| title = These are Not Your Grand Daddy's CPU Performance Counters: CPU Hardware Performance Counters for Security | | title = These are Not Your Grand Daddy's CPU Performance Counters: CPU Hardware Performance Counters for Security | ||
Line 211: | Line 217: | ||
| publisher = [[Black Hat Briefings|Black Hat]] | pages = 29, 38–68 | | publisher = [[Black Hat Briefings|Black Hat]] | pages = 29, 38–68 | ||
}}</ref> | }}</ref> | ||
3 दिसंबर, 2013 को जारी किए गए [[मेमटेस्ट86]] मेमोरी डायग्नोस्टिक सॉफ़्टवेयर के संस्करण 5.0 में एक पंक्ति हथौड़ा परीक्षण जोड़ा गया है जो जांचता है कि क्या कंप्यूटर रैम गड़बड़ी त्रुटियों के लिए अतिसंवेदनशील है, लेकिन यह केवल तभी काम करता है जब कंप्यूटर [[यूईएफआई]] को बूट करता है; यूईएफआई के बिना, यह बिना हैमर टेस्ट के पुराने संस्करण को बूट करता है।<ref>{{cite web | 3 दिसंबर, 2013 को जारी किए गए [[मेमटेस्ट86]] मेमोरी डायग्नोस्टिक सॉफ़्टवेयर के संस्करण 5.0 में एक पंक्ति हथौड़ा परीक्षण जोड़ा गया है जो जांचता है कि क्या कंप्यूटर रैम गड़बड़ी त्रुटियों के लिए अतिसंवेदनशील है, लेकिन यह केवल तभी काम करता है जब कंप्यूटर [[यूईएफआई]] को बूट करता है; यूईएफआई के बिना, यह बिना हैमर टेस्ट के पुराने संस्करण को बूट करता है।<ref>{{cite web | ||
| url = https://www.memtest86.com/support/ver_history.htm | | url = https://www.memtest86.com/support/ver_history.htm | ||
Line 217: | Line 224: | ||
| website = memtest86.com | | website = memtest86.com | ||
}}</ref> | }}</ref> | ||
== निहितार्थ == | == निहितार्थ == | ||
मेमोरी सुरक्षा, [[प्रक्रिया (कंप्यूटिंग)]] को मेमोरी तक पहुंचने से रोकने के | मेमोरी सुरक्षा, [[प्रक्रिया (कंप्यूटिंग)]] को मेमोरी तक पहुंचने से रोकने के तरीके के रूप में, जो उनमें से प्रत्येक के लिए मेमोरी प्रबंधन नहीं है, अधिकांश आधुनिक [[ऑपरेटिंग सिस्टम]] के पीछे की अवधारणाओं में से एक है। सुरक्षा रिंगों जैसे अन्य सुरक्षा-संबंधित तंत्रों के साथ संयोजन में मेमोरी सुरक्षा का उपयोग करके, प्रक्रियाओं के बीच [[विशेषाधिकार पृथक्करण]] प्राप्त करना संभव है, जिसमें [[कंप्यूटर प्रोग्राम]] और कंप्यूटर सिस्टम को सामान्य रूप से विशिष्ट [[विशेषाधिकार (कंप्यूटिंग)]] तक सीमित भागों में विभाजित किया जाता है जिनकी उन्हें आवश्यकता होती है किसी विशेष कार्य को करने के लिए। विशेषाधिकार पृथक्करण का उपयोग करने से [[कंप्यूटर सुरक्षा]] हमलों के प्रभाव को सिस्टम के विशिष्ट भागों तक सीमित करके उनके कारण होने वाली संभावित क्षति की सीमा को भी कम किया जा सकता है।<ref>{{cite web | ||
| url = http://www.csc.kth.se/utbildning/kth/kurser/DD2395/dasakh10/Slides/dasakh10Lecture09memory.pdf | | url = http://www.csc.kth.se/utbildning/kth/kurser/DD2395/dasakh10/Slides/dasakh10Lecture09memory.pdf | ||
| title = Memory Protection | | title = Memory Protection | ||
Line 232: | Line 240: | ||
| website = niels.xtdnet.nl | | website = niels.xtdnet.nl | ||
}}</ref> | }}</ref> | ||
डिस्टर्बेंस त्रुटियाँ (#DISTURBANCE में स्पष्ट[[मुख्य स्मृति]] सुरक्षा की विभिन्न परतों को बहुत कम हार्डवेयर स्तर पर [[ शार्ट सर्किट ]] करके प्रभावी ढंग से हरा देती हैं, व्यावहारिक रूप से | |||
डिस्टर्बेंस त्रुटियाँ (#DISTURBANCE में स्पष्ट[[मुख्य स्मृति]] सुरक्षा की विभिन्न परतों को बहुत कम हार्डवेयर स्तर पर [[ शार्ट सर्किट |शार्ट सर्किट]] करके प्रभावी ढंग से हरा देती हैं, व्यावहारिक रूप से अद्वितीय [[ आक्रमण सदिश |आक्रमण सदिश]] प्रकार का निर्माण करती हैं जो प्रक्रियाओं को सीधे मुख्य मेमोरी के मनमाने हिस्सों की सामग्री को बदलने की अनुमति देता है। अंतर्निहित मेमोरी हार्डवेयर में हेरफेर करना।<ref name="arstechnica" /><ref name="googleprojectzero" /><ref name="blackhat" /><ref name="zdnet">{{cite web | |||
| url = http://www.zdnet.com/article/rowhammer-dram-flaw-could-be-widespread-says-google/ | | url = http://www.zdnet.com/article/rowhammer-dram-flaw-could-be-widespread-says-google/ | ||
| title = "Rowhammer" DRAM flaw could be widespread, says Google | | title = "Rowhammer" DRAM flaw could be widespread, says Google | ||
| date = March 10, 2015 | access-date = March 11, 2015 | | date = March 10, 2015 | access-date = March 11, 2015 | ||
| author = Liam Tung | publisher = [[ZDNet]] | | author = Liam Tung | publisher = [[ZDNet]] | ||
}}</ref> इसकी तुलना में, पारंपरिक आक्रमण वैक्टर जैसे कि [[ बफ़र अधिकता ]] का उद्देश्य अन्यथा दुर्गम मुख्य मेमोरी सामग्री में परिवर्तन प्राप्त करने के लिए विभिन्न प्रोग्रामिंग गलतियों का फायदा उठाकर (कंप्यूटर सुरक्षा) सॉफ्टवेयर स्तर पर सुरक्षा तंत्र को दरकिनार करना है।<ref>{{cite web | }}</ref> इसकी तुलना में, पारंपरिक आक्रमण वैक्टर जैसे कि [[ बफ़र अधिकता |बफ़र अधिकता]] का उद्देश्य अन्यथा दुर्गम मुख्य मेमोरी सामग्री में परिवर्तन प्राप्त करने के लिए विभिन्न प्रोग्रामिंग गलतियों का फायदा उठाकर (कंप्यूटर सुरक्षा) सॉफ्टवेयर स्तर पर सुरक्षा तंत्र को दरकिनार करना है।<ref>{{cite web | ||
| url = http://www.enderunix.org/docs/en/bof-eng.txt | | url = http://www.enderunix.org/docs/en/bof-eng.txt | ||
| title = Buffer Overflows Demystified | | title = Buffer Overflows Demystified | ||
Line 246: | Line 255: | ||
=== | |||
=== शोषण === | |||
{| class="wikitable floatright" style="margin-left: 1.5em; margin-top: 0.5em; width: 29em;" | {| class="wikitable floatright" style="margin-left: 1.5em; margin-top: 0.5em; width: 29em;" | ||
|- | |- | ||
Line 262: | Line 272: | ||
| style="font-size: 90%; padding-left: 7px; padding-right: 7px;" | A snippet of [[x86 assembly language|x86 assembly]] code that induces the row hammer effect (memory addresses <code>X</code> and <code>Y</code> must map to different DRAM rows in the same [[memory bank]])<ref name="isca14-paper"/>{{rp|3}}<ref name="googleprojectzero"/><ref name="blackhat"/>{{rp|13–15}} | | style="font-size: 90%; padding-left: 7px; padding-right: 7px;" | A snippet of [[x86 assembly language|x86 assembly]] code that induces the row hammer effect (memory addresses <code>X</code> and <code>Y</code> must map to different DRAM rows in the same [[memory bank]])<ref name="isca14-paper"/>{{rp|3}}<ref name="googleprojectzero"/><ref name="blackhat"/>{{rp|13–15}} | ||
|} | |} | ||
जून 2014 में प्रकाशित पंक्ति हथौड़ा प्रभाव पर प्रारंभिक शोध में गड़बड़ी त्रुटियों की प्रकृति का वर्णन किया गया था और हमले के निर्माण की संभावना का संकेत दिया गया था, लेकिन कार्यशील सुरक्षा शोषण का कोई उदाहरण नहीं दिया गया था।<ref name="isca14-paper"/>इसके बाद अक्टूबर 2014 के एक शोध पत्र में रो हैमर प्रभाव से उत्पन्न होने वाले किसी भी सुरक्षा-संबंधी मुद्दे के अस्तित्व का संकेत नहीं दिया गया।<ref name="kyungbae"/> | जून 2014 में प्रकाशित पंक्ति हथौड़ा प्रभाव पर प्रारंभिक शोध में गड़बड़ी त्रुटियों की प्रकृति का वर्णन किया गया था और हमले के निर्माण की संभावना का संकेत दिया गया था, लेकिन कार्यशील सुरक्षा शोषण का कोई उदाहरण नहीं दिया गया था।<ref name="isca14-paper"/> इसके बाद अक्टूबर 2014 के एक शोध पत्र में रो हैमर प्रभाव से उत्पन्न होने वाले किसी भी सुरक्षा-संबंधी मुद्दे के अस्तित्व का संकेत नहीं दिया गया।<ref name="kyungbae"/> | ||
9 मार्च 2015 को, [[Google]] के [[प्रोजेक्ट जीरो]] ने पंक्ति हथौड़ा प्रभाव के आधार पर दो कामकाजी विशेषाधिकार वृद्धि कारनामों का खुलासा किया, जो [[x86-64]] आर्किटेक्चर पर इसकी शोषक प्रकृति को स्थापित करता है। सामने आए कारनामों में से | 9 मार्च 2015 को, [[Google]] के [[प्रोजेक्ट जीरो]] ने पंक्ति हथौड़ा प्रभाव के आधार पर दो कामकाजी विशेषाधिकार वृद्धि कारनामों का खुलासा किया, जो [[x86-64]] आर्किटेक्चर पर इसकी शोषक प्रकृति को स्थापित करता है। सामने आए कारनामों में से [[सैंडबॉक्स (कंप्यूटर सुरक्षा)]] के भीतर x86-64 मशीन निर्देशों के एक सीमित उपसमूह को चलाने के लिए Google [[Google मूल क्लाइंट]]NaCl) तंत्र को लक्षित करता है।<ref name="blackhat"/>{{rp|27}} सैंडबॉक्स से बचने और सीधे [[सिस्टम कॉल]] जारी करने की क्षमता हासिल करने के लिए पंक्ति हथौड़ा प्रभाव का शोषण करना। यह NaCl [[भेद्यता (कंप्यूटिंग)]], के रूप में ट्रैक किया गया {{CVE|2015-0565}}, NaCl को संशोधित करके कम कर दिया गया है इसलिए यह निष्पादन की अनुमति नहीं देता है <code>clflush</code> ([[कैश लाइन]] फ्लश<ref>{{cite web | ||
| url = http://x86.renejeschke.de/html/file_module_x86_id_30.html | | url = http://x86.renejeschke.de/html/file_module_x86_id_30.html | ||
| title = CLFLUSH: Flush Cache Line (x86 Instruction Set Reference) | | title = CLFLUSH: Flush Cache Line (x86 Instruction Set Reference) | ||
Line 273: | Line 283: | ||
| archive-date = December 3, 2017 | | archive-date = December 3, 2017 | ||
| url-status = dead | | url-status = dead | ||
}}</ref>) मशीन निर्देश, जिसे पहले | }}</ref>) मशीन निर्देश, जिसे पहले प्रभावी पंक्ति हथौड़ा हमले के निर्माण के लिए आवश्यक माना जाता था।<ref name="arstechnica"/><ref name="googleprojectzero"/><ref name="zdnet"/> | ||
प्रोजेक्ट ज़ीरो द्वारा प्रकट किया गया दूसरा शोषण x86-64 आर्किटेक्चर पर एक अप्रतिबंधित [[लिनक्स]] प्रक्रिया के रूप में चलता है, जो कंप्यूटर में स्थापित सभी भौतिक मेमोरी तक अप्रतिबंधित पहुंच प्राप्त करने के लिए पंक्ति हथौड़ा प्रभाव का शोषण करता है। [[ स्मृति छिड़काव ]] के साथ गड़बड़ी त्रुटियों को जोड़कर, यह शोषण [[पृष्ठ तालिका प्रविष्टि]] को बदलने में सक्षम है<ref name="blackhat"/>{{rp|35}} [[ आभासी मेमोरी ]] सिस्टम द्वारा वर्चुअल पतों को भौतिक पतों पर मैप करने के लिए उपयोग किया जाता है, जिसके परिणामस्वरूप शोषण को अप्रतिबंधित मेमोरी एक्सेस प्राप्त होता है।<ref name="blackhat"/>{{rp|34,36–57}} इसकी प्रकृति और x86-64 आर्किटेक्चर बनाने में असमर्थता के कारण <code>clflush</code> एक विशेषाधिकार प्राप्त मशीन निर्देश, इस शोषण को उन कंप्यूटरों पर शायद ही कम किया जा सकता है जो अंतर्निहित पंक्ति हथौड़ा रोकथाम तंत्र वाले हार्डवेयर का उपयोग नहीं करते हैं। कारनामों की व्यवहार्यता का परीक्षण करते समय, प्रोजेक्ट ज़ीरो ने पाया कि 29 परीक्षण किए गए [[लैपटॉप]] में से लगभग आधे में गड़बड़ी की त्रुटियां हुईं, जिनमें से कुछ कमजोर लैपटॉप पर पंक्ति-हथौड़ा-उत्प्रेरण कोड चलाने के पांच मिनट से भी कम समय में हुईं; परीक्षण किए गए लैपटॉप 2010 और 2014 के बीच निर्मित किए गए थे और इनमें गैर-ईसीसी डीडीआर3 मेमोरी का उपयोग किया गया था।<ref name="arstechnica"/><ref name="googleprojectzero"/><ref name="zdnet"/> | प्रोजेक्ट ज़ीरो द्वारा प्रकट किया गया दूसरा शोषण x86-64 आर्किटेक्चर पर एक अप्रतिबंधित [[लिनक्स]] प्रक्रिया के रूप में चलता है, जो कंप्यूटर में स्थापित सभी भौतिक मेमोरी तक अप्रतिबंधित पहुंच प्राप्त करने के लिए पंक्ति हथौड़ा प्रभाव का शोषण करता है। [[ स्मृति छिड़काव |स्मृति छिड़काव]] के साथ गड़बड़ी त्रुटियों को जोड़कर, यह शोषण [[पृष्ठ तालिका प्रविष्टि]] को बदलने में सक्षम है<ref name="blackhat"/>{{rp|35}} [[ आभासी मेमोरी |आभासी मेमोरी]] सिस्टम द्वारा वर्चुअल पतों को भौतिक पतों पर मैप करने के लिए उपयोग किया जाता है, जिसके परिणामस्वरूप शोषण को अप्रतिबंधित मेमोरी एक्सेस प्राप्त होता है।<ref name="blackhat"/>{{rp|34,36–57}} इसकी प्रकृति और x86-64 आर्किटेक्चर बनाने में असमर्थता के कारण <code>clflush</code> एक विशेषाधिकार प्राप्त मशीन निर्देश, इस शोषण को उन कंप्यूटरों पर शायद ही कम किया जा सकता है जो अंतर्निहित पंक्ति हथौड़ा रोकथाम तंत्र वाले हार्डवेयर का उपयोग नहीं करते हैं। कारनामों की व्यवहार्यता का परीक्षण करते समय, प्रोजेक्ट ज़ीरो ने पाया कि 29 परीक्षण किए गए [[लैपटॉप]] में से लगभग आधे में गड़बड़ी की त्रुटियां हुईं, जिनमें से कुछ कमजोर लैपटॉप पर पंक्ति-हथौड़ा-उत्प्रेरण कोड चलाने के पांच मिनट से भी कम समय में हुईं; परीक्षण किए गए लैपटॉप 2010 और 2014 के बीच निर्मित किए गए थे और इनमें गैर-ईसीसी डीडीआर3 मेमोरी का उपयोग किया गया था।<ref name="arstechnica"/><ref name="googleprojectzero"/><ref name="zdnet"/> | ||
जुलाई 2015 में, सुरक्षा शोधकर्ताओं के एक समूह ने एक पेपर प्रकाशित किया जो पंक्ति हथौड़ा प्रभाव का फायदा उठाने के लिए एक कंप्यूटर वास्तुकला- और निर्देश सेट | निर्देश-सेट-स्वतंत्र तरीके का वर्णन करता है। पर भरोसा करने के बजाय <code>clflush</code> कैश फ्लश करने के लिए निर्देश, यह दृष्टिकोण सावधानीपूर्वक चयनित मेमोरी एक्सेस पैटर्न का उपयोग करके [[कैश निष्कासन]] की बहुत उच्च दर उत्पन्न करके अनकैश्ड मेमोरी एक्सेस प्राप्त करता है। यद्यपि [[कैश प्रतिस्थापन नीति]] प्रोसेसर के बीच भिन्न होती है, यह दृष्टिकोण | जुलाई 2015 में, सुरक्षा शोधकर्ताओं के एक समूह ने एक पेपर प्रकाशित किया जो पंक्ति हथौड़ा प्रभाव का फायदा उठाने के लिए एक कंप्यूटर वास्तुकला- और निर्देश सेट | निर्देश-सेट-स्वतंत्र तरीके का वर्णन करता है। पर भरोसा करने के बजाय <code>clflush</code> कैश फ्लश करने के लिए निर्देश, यह दृष्टिकोण सावधानीपूर्वक चयनित मेमोरी एक्सेस पैटर्न का उपयोग करके [[कैश निष्कासन]] की बहुत उच्च दर उत्पन्न करके अनकैश्ड मेमोरी एक्सेस प्राप्त करता है। यद्यपि [[कैश प्रतिस्थापन नीति]] प्रोसेसर के बीच भिन्न होती है, यह दृष्टिकोण अनुकूली कैश निष्कासन रणनीति [[कलन विधि]] को नियोजित करके वास्तुशिल्प मतभेदों को दूर करता है।<ref name="blackhat"/>{{rp|64–68}} इस दृष्टिकोण के लिए अवधारणा का प्रमाण मूल कोड कार्यान्वयन और शुद्ध [[जावास्क्रिप्ट]] कार्यान्वयन दोनों के रूप में प्रदान किया जाता है जो [[फ़ायरफ़ॉक्स]] 39 पर चलता है। जावास्क्रिप्ट कार्यान्वयन, जिसे Rowhammer.js कहा जाता है,<ref>{{cite web | ||
| url = https://github.com/IAIK/rowhammerjs/blob/master/javascript/rowhammer.js | | url = https://github.com/IAIK/rowhammerjs/blob/master/javascript/rowhammer.js | ||
| title = IAIK/rowhammerjs: rowhammerjs/rowhammer.js at master | | title = IAIK/rowhammerjs: rowhammerjs/rowhammer.js at master | ||
Line 305: | Line 315: | ||
| date = August 4, 2015 | | date = August 4, 2015 | ||
}}</ref> | }}</ref> | ||
अक्टूबर 2016 में, शोधकर्ताओं ने DRAMMER, एक एंड्रॉइड एप्लिकेशन प्रकाशित किया जो कई लोकप्रिय स्मार्टफ़ोन पर रूट एक्सेस प्राप्त करने के लिए अन्य तरीकों के साथ-साथ पंक्ति हथौड़ा का उपयोग करता है।<ref>{{cite web | अक्टूबर 2016 में, शोधकर्ताओं ने DRAMMER, एक एंड्रॉइड एप्लिकेशन प्रकाशित किया जो कई लोकप्रिय स्मार्टफ़ोन पर रूट एक्सेस प्राप्त करने के लिए अन्य तरीकों के साथ-साथ पंक्ति हथौड़ा का उपयोग करता है।<ref>{{cite web | ||
| url = https://www.vusec.net/projects/drammer/ | | url = https://www.vusec.net/projects/drammer/ | ||
Line 332: | Line 343: | ||
| access-date = June 30, 2018 | | access-date = June 30, 2018 | ||
}}</ref> | }}</ref> | ||
मई 2021 में, Google अनुसंधान टीम ने एक नए कारनामे, हाफ-डबल की घोषणा की जो कुछ नए DRAM चिप्स की बिगड़ती भौतिकी का लाभ उठाता है।<ref>{{cite web|url=https://security.googleblog.com/2021/05/introducing-half-double-new-hammering.html|date=2021-05-25|title=Introducing Half-Double: New hammering technique for DRAM Rowhammer bug|access-date=2021-12-02|publisher=Google}}</ref> | मई 2021 में, Google अनुसंधान टीम ने एक नए कारनामे, हाफ-डबल की घोषणा की जो कुछ नए DRAM चिप्स की बिगड़ती भौतिकी का लाभ उठाता है।<ref>{{cite web|url=https://security.googleblog.com/2021/05/introducing-half-double-new-hammering.html|date=2021-05-25|title=Introducing Half-Double: New hammering technique for DRAM Rowhammer bug|access-date=2021-12-02|publisher=Google}}</ref> | ||
Revision as of 09:06, 23 November 2023
रो हैमर (जिसे रोहैमर के रूप में भी लिखा जाता है) एक सुरक्षा शोषण है जो गतिशील रैंडम-एक्सेस मेमोरी (DRAM) में एक अनपेक्षित और अवांछनीय दुष्प्रभाव का लाभ उठाता है जिसमें मेमोरी सेल (कंप्यूटिंग) अपने चार्ज को लीक करके, संभवतः बदलकर, आपस में विद्युतीय रूप से संपर्क करते हैं। आस-पास की स्मृति पंक्ति की सामग्री जो मूल मेमोरी एक्सेस में स्मृति पता नहीं थी। DRAM मेमोरी कोशिकाओं के बीच अलगाव की यह रोकथाम आधुनिक DRAM में उच्च सेल घनत्व के परिणामस्वरूप होती है, और इसे विशेष रूप से तैयार किए गए मेमोरी एक्सेस पैटर्न द्वारा ट्रिगर किया जा सकता है जो एक ही मेमोरी पंक्तियों को कई बार तेजी से सक्रिय करता है।[1][2][3]
पंक्ति हथौड़ा प्रभाव का उपयोग कुछ विशेषाधिकार वृद्धि कंप्यूटर सुरक्षा शोषण (कंप्यूटर सुरक्षा) में किया गया है,[2][4][5][6] और नेटवर्क-आधारित हमले भी सैद्धांतिक रूप से संभव हैं।[7][8]
पंक्ति हथौड़ा प्रभाव को होने से रोकने के लिए विभिन्न हार्डवेयर-आधारित तकनीकें मौजूद हैं, जिनमें कुछ केंद्रीय प्रसंस्करण इकाई और DRAM मेमोरी मॉड्यूल के प्रकारों में आवश्यक समर्थन शामिल है।[9][10]
पृष्ठभूमि
गतिशील रैम (DRAM) में, संग्रहीत डेटा का प्रत्येक अंश एक अलग मेमोरी सेल पर कब्जा कर लेता है जो एक संधारित्र और एक ट्रांजिस्टर के साथ विद्युत रूप से कार्यान्वित होता है। कैपेसिटर की चार्ज स्थिति (चार्ज या डिस्चार्ज) वह है जो यह निर्धारित करती है कि DRAM सेल बाइनरी मान के रूप में 1 या 0 संग्रहीत करता है या नहीं। बड़ी संख्या में DRAM मेमोरी सेल को एकीकृत सर्किट में पैक किया जाता है, साथ में कुछ अतिरिक्त तर्क भी होते हैं जो डेटा को पढ़ने, लिखने और स्मृति ताज़ा करने के उद्देश्यों के लिए सेल को व्यवस्थित करते हैं।[11][12]
मेमोरी सेल (दोनों चित्रों में नीले वर्ग) को आगे मैट्रिक्स (गणित) में व्यवस्थित किया गया है और पंक्तियों और स्तंभों के माध्यम से संबोधित किया गया है। मैट्रिक्स पर लागू मेमोरी एड्रेस को पंक्ति एड्रेस और कॉलम एड्रेस में तोड़ दिया जाता है, जिसे पंक्ति और कॉलम एड्रेस डिकोडर्स (क्रमशः दोनों चित्रों, ऊर्ध्वाधर और क्षैतिज हरे आयतों में) द्वारा संसाधित किया जाता है। एक पंक्ति पते द्वारा रीड ऑपरेशन के लिए पंक्ति का चयन करने के बाद (चयन को पंक्ति सक्रियण के रूप में भी जाना जाता है), पंक्ति में सभी कोशिकाओं से बिट्स को सेंस एम्पलीफायरों में स्थानांतरित किया जाता है जो पंक्ति बफर (दोनों चित्रों में लाल वर्ग) बनाते हैं, जिससे कॉलम पते का उपयोग करके सटीक बिट का चयन किया जाता है। नतीजतन, रीड ऑपरेशन एक विनाशकारी प्रकृति के होते हैं क्योंकि DRAM के डिज़ाइन के लिए सेल चार्ज को पंक्ति बफर में स्थानांतरित करके उनके मूल्यों को पढ़ने के बाद मेमोरी कोशिकाओं को फिर से लिखने की आवश्यकता होती है। लेखन संचालन समान तरीके से पतों को डिकोड करते हैं, लेकिन डिज़ाइन के परिणामस्वरूप एक बिट के मान को बदलने के लिए पूरी पंक्तियों को फिर से लिखना होगा।[1]: 2–3 [11][12][13]
प्राकृतिक डिस्चार्ज दर वाले कैपेसिटर का उपयोग करके डेटा बिट्स को संग्रहीत करने के परिणामस्वरूप, DRAM मेमोरी कोशिकाएं समय के साथ अपनी स्थिति खो देती हैं और सभी मेमोरी कोशिकाओं की आवधिक मेमोरी रिफ्रेश की आवश्यकता होती है, जिसे रिफ्रेशिंग के रूप में जाना जाता है।[1]: 3 [11] डिज़ाइन के एक अन्य परिणाम के रूप में, DRAM मेमोरी संग्रहीत डेटा में यादृच्छिक परिवर्तनों के लिए अतिसंवेदनशील है, जिसे नरम त्रुटि के रूप में जाना जाता है और इलेक्ट्रॉनिक्स और अन्य कारणों पर कॉस्मिक किरण # प्रभाव के लिए जिम्मेदार है। ऐसी विभिन्न तकनीकें हैं जो सॉफ्ट मेमोरी त्रुटियों का प्रतिकार करती हैं और DRAM की विश्वसनीयता में सुधार करती हैं, जिनमें से ECC मेमोरी | त्रुटि-सुधार कोड (ECC) मेमोरी और इसके उन्नत वेरिएंट (जैसे लॉकस्टेप मेमोरी) का सबसे अधिक उपयोग किया जाता है।[14]
अवलोकन
गतिशील रैंडम-एक्सेस मेमोरी इंटीग्रेटेड सर्किट की बढ़ती घनत्व के कारण कम चार्ज वाली मेमोरी कोशिकाएं भौतिक रूप से छोटी हो गई हैं, जिसके परिणामस्वरूप परिचालन शोर में कमी कम हो गया है, मेमोरी कोशिकाओं के बीच विद्युत चुम्बकीय इंटरैक्शन की दर में वृद्धि हुई है, और डेटा हानि की अधिक संभावना है। परिणामस्वरूप, गड़बड़ी संबंधी त्रुटियां देखी गई हैं, जो कोशिकाओं द्वारा एक-दूसरे के संचालन में हस्तक्षेप करने के कारण होती हैं और प्रभावित मेमोरी कोशिकाओं में संग्रहीत बिट्स के मूल्यों में यादृच्छिक परिवर्तन के रूप में प्रकट होती हैं। गड़बड़ी त्रुटियों के बारे में जागरूकता 1970 के दशक की शुरुआत में हुई और इंटेल 1103 पहले व्यावसायिक रूप से उपलब्ध DRAM एकीकृत सर्किट के रूप में था; तब से, DRAM निर्माताओं ने गड़बड़ी त्रुटियों का प्रतिकार करने के लिए विभिन्न भेद्यता शमन तकनीकों को नियोजित किया है, जैसे कोशिकाओं के बीच अलगाव में सुधार और उत्पादन परीक्षण करना। हालाँकि, शोधकर्ताओं ने 2014 के विश्लेषण में साबित किया कि 2012 और 2013 में निर्मित व्यावसायिक रूप से उपलब्ध DDR3 SDRAM चिप्स गड़बड़ी त्रुटियों के लिए अतिसंवेदनशील हैं, जबकि रो हैमर शब्द का उपयोग संबंधित दुष्प्रभाव को नाम देने के लिए किया गया है जिसके कारण नरम त्रुटि देखी गई।[1][3][15]
DDR3 मेमोरी में पंक्ति हथौड़ा प्रभाव उत्पन्न होने का अवसर[16] मुख्य रूप से DDR3 की मेमोरी कोशिकाओं के उच्च घनत्व और कोशिकाओं के बीच संबंधित इंटरैक्शन के परिणामों को जिम्मेदार ठहराया गया है, जबकि तेजी से DRAM पंक्ति सक्रियण को प्राथमिक कारण के रूप में निर्धारित किया गया है। बार-बार पंक्ति सक्रियण से संबंधित पंक्ति चयन लाइनों पर वोल्टेज में उतार-चढ़ाव होता है, जो आस-पास (ज्यादातर मामलों में आसन्न) मेमोरी पंक्तियों से संबंधित कैपेसिटर में प्राकृतिक से अधिक डिस्चार्ज दरों को प्रेरित करने के लिए देखा गया है, जिन्हें पीड़ित पंक्तियां कहा जाता है; यदि प्रभावित मेमोरी सेल्स को बहुत अधिक चार्ज खोने से पहले मेमोरी रिफ्रेश नहीं किया जाता है, तो गड़बड़ी की त्रुटियां होती हैं। परीक्षणों से पता चलता है कि लगभग 139,000 अनुवर्ती मेमोरी पंक्ति एक्सेस (कैश फ्लश के साथ) करने के बाद एक गड़बड़ी त्रुटि देखी जा सकती है, और प्रत्येक 1,700 कोशिकाओं में एक मेमोरी सेल अतिसंवेदनशील हो सकता है। उन परीक्षणों से यह भी पता चलता है कि अशांति त्रुटियों की दर पर्यावरण के तापमान में वृद्धि से काफी प्रभावित नहीं होती है, जबकि यह डीआरएएम की वास्तविक सामग्री पर निर्भर करती है क्योंकि कुछ थोड़ा अभ्यास के परिणामस्वरूप काफी अधिक गड़बड़ी त्रुटि दर होती है।[1][2][15][17]
डबल-साइडेड हैमरिंग नामक संस्करण में पीड़ित पंक्ति के चारों ओर दो DRAM पंक्तियों की लक्षित सक्रियता शामिल होती है: इस खंड में दिए गए चित्रण में, यह संस्करण बैंगनी पंक्ति में बिट फ़्लिप को प्रेरित करने के उद्देश्य से दोनों पीली पंक्तियों को सक्रिय करेगा, जो इसमें है मामला पीड़ित पंक्ति का होगा. परीक्षणों से पता चलता है कि इस दृष्टिकोण के परिणामस्वरूप पीड़ित पंक्ति की पड़ोसी DRAM पंक्तियों में से केवल एक को सक्रिय करने वाले संस्करण की तुलना में गड़बड़ी त्रुटियों की दर काफी अधिक हो सकती है।[4][18]: 19–20 [19]
चूँकि DRAM विक्रेताओं ने शमन उपाय लागू कर दिए हैं, रोहैमर शमन को बायपास करने के लिए पैटर्न को और अधिक परिष्कृत होना पड़ा। हाल के रोहैमर पैटर्न में गैर-समान, आवृत्ति-आधारित पैटर्न शामिल हैं।[20] इन पैटर्न में कई दो तरफा आक्रामक जोड़े शामिल हैं जहां उनमें से प्रत्येक को एक अलग आवृत्ति, चरण और आयाम के साथ अंकित किया गया है। इसका उपयोग करके और REFRESH कमांड के साथ पैटर्न को सिंक्रनाइज़ करके, उन अंधे स्थानों को बहुत प्रभावी ढंग से निर्धारित करना संभव है जहां शमन अब सुरक्षा प्रदान करने में सक्षम नहीं है। इस विचार के आधार पर, शिक्षाविदों ने ब्लैकस्मिथ नामक रोहैमर फ़ज़र का निर्माण किया[21] जो सभी DDR4 उपकरणों पर मौजूदा शमन को बायपास कर सकता है।
शमन
पंक्ति हथौड़ा प्रभाव का कमोबेश सफल पता लगाने, रोकथाम, सुधार या शमन के लिए विभिन्न विधियाँ मौजूद हैं। परीक्षणों से पता चलता है कि सरल ईसीसी मेमोरी, जो एकल-त्रुटि सुधार और दोहरी-त्रुटि पहचान (एसईसीडीईडी) क्षमताएं प्रदान करती है, सभी देखी गई गड़बड़ी त्रुटियों को ठीक करने या पता लगाने में सक्षम नहीं है क्योंकि उनमें से कुछ में प्रति मेमोरी शब्द दो से अधिक फ़्लिप्ड बिट्स शामिल हैं।[1]: 8 [15]: 32 इसके अलावा, शोध से पता चलता है कि सटीक रूप से लक्षित तीन-बिट पंक्ति हैमर फ़्लिप ईसीसी मेमोरी को संशोधनों पर ध्यान देने से रोकता है।[22][23]
एक कम प्रभावी समाधान यह है कि अधिक बार मेमोरी रिफ्रेशिंग शुरू की जाए, जिसमें स्मृति ताज़ा अंतराल सामान्य 64 एमएस से कम हो,[lower-alpha 1] लेकिन इस तकनीक के परिणामस्वरूप बिजली की खपत अधिक होती है और प्रोसेसिंग ओवरहेड में वृद्धि होती है; कुछ विक्रेता फर्मवेयर अपडेट प्रदान करते हैं जो इस प्रकार के शमन को लागू करते हैं।[24] अधिक जटिल रोकथाम उपायों में से बार-बार एक्सेस की गई मेमोरी पंक्तियों की काउंटर (डिजिटल)-आधारित पहचान करता है और उनकी पड़ोसी पंक्तियों को सक्रिय रूप से ताज़ा करता है; एक अन्य विधि उनकी पहुंच आवृत्ति की परवाह किए बिना एक्सेस की गई पंक्तियों के पड़ोसी मेमोरी पंक्तियों के अतिरिक्त दुर्लभ यादृच्छिक रिफ्रेश जारी करती है। शोध से पता चलता है कि ये दो रोकथाम उपाय प्रदर्शन पर नगण्य प्रभाव डालते हैं।[1]: 10–11 [25]
आइवी ब्रिज ( सूक्ष्मवास्तुकला ) माइक्रोआर्किटेक्चर के जारी होने के बाद से, इंटेल ज़ीऑन प्रोसेसर तथाकथित छद्म लक्ष्य पंक्ति रिफ्रेश (पीटीआरआर) का समर्थन करते हैं जिसका उपयोग पंक्ति को कम करने के लिए पीटीआरआर-संगत डीडीआर 3 दोहरी इन-लाइन मेमोरी मॉड्यूल (डीआईएमएम) के साथ संयोजन में किया जा सकता है। संभावित पीड़ित पंक्तियों को स्वचालित रूप से ताज़ा करके हथौड़ा प्रभाव, प्रदर्शन या बिजली की खपत पर कोई नकारात्मक प्रभाव नहीं डालता है। जब DIMMs के साथ उपयोग किया जाता है जो pTRR-अनुरूप नहीं हैं, तो ये Xeon प्रोसेसर डिफ़ॉल्ट रूप से सामान्य आवृत्ति से दोगुनी पर DRAM रिफ्रेश करने में पीछे हट जाते हैं, जिसके परिणामस्वरूप मेमोरी एक्सेस विलंबता थोड़ी अधिक हो जाती है और मेमोरी बैंडविड्थ 2-4% तक कम हो सकती है।[9]
JEDEC द्वारा प्रकाशित LPDDR4 मोबाइल मेमोरी मानक[26] इसमें तथाकथित टारगेट रो रिफ्रेश (टीआरआर) के लिए वैकल्पिक हार्डवेयर समर्थन शामिल है जो प्रदर्शन या बिजली की खपत पर नकारात्मक प्रभाव डाले बिना रो हैमर प्रभाव को रोकता है।[10][27][28] इसके अतिरिक्त, कुछ निर्माता अपने DDR4 उत्पादों में TRR लागू करते हैं,[29][30] हालाँकि यह JEDEC द्वारा प्रकाशित DDR4 मेमोरी मानक का हिस्सा नहीं है।[31] आंतरिक रूप से, टीआरआर पंक्ति सक्रियणों की संख्या की गणना करके और पूर्वनिर्धारित एकीकृत सर्किट-विशिष्ट अधिकतम सक्रिय गिनती (एमएसी) और अधिकतम सक्रिय विंडो (टी) के साथ तुलना करके संभावित पीड़ित पंक्तियों की पहचान करता है।MAW) मान, और बिट फ़्लिप को रोकने के लिए इन पंक्तियों को ताज़ा करता है। MAC मान पंक्ति सक्रियणों की अधिकतम कुल संख्या है जो किसी विशेष DRAM पंक्ति पर एक समय अंतराल के भीतर सामने आ सकती है जो कि t के बराबर या उससे कम है।MAW इसकी पड़ोसी पंक्तियों को पीड़ित पंक्तियों के रूप में पहचाने जाने से पहले की समयावधि; टीआरआर एक पंक्ति को पीड़ित पंक्ति के रूप में भी चिह्नित कर सकता है यदि इसकी दो पड़ोसी पंक्तियों के लिए पंक्ति सक्रियणों का योग टी के भीतर एमएसी सीमा तक पहुंच जाता हैMAW समय खिड़की।[26][32] शोध से पता चला है कि 2019 और 2020 के बीच उत्पादित उपकरणों से DDR4 UDIMM और LPDDR4X चिप्स पर तैनात टीआरआर शमन रोहैमर से बचाने में प्रभावी नहीं हैं।[20]
तेजी से निष्पादित DRAM पंक्ति सक्रियणों की बड़ी संख्या की आवश्यकता के कारण, पंक्ति हथौड़ा शोषण बड़ी संख्या में अनकैश्ड मेमोरी एक्सेस जारी करता है जो कैश मिस का कारण बनता है, जिसे हार्डवेयर प्रदर्शन काउंटरों का उपयोग करके असामान्य चोटियों के लिए कैश मिस की दर की निगरानी करके पता लगाया जा सकता है।[4][33]
3 दिसंबर, 2013 को जारी किए गए मेमटेस्ट86 मेमोरी डायग्नोस्टिक सॉफ़्टवेयर के संस्करण 5.0 में एक पंक्ति हथौड़ा परीक्षण जोड़ा गया है जो जांचता है कि क्या कंप्यूटर रैम गड़बड़ी त्रुटियों के लिए अतिसंवेदनशील है, लेकिन यह केवल तभी काम करता है जब कंप्यूटर यूईएफआई को बूट करता है; यूईएफआई के बिना, यह बिना हैमर टेस्ट के पुराने संस्करण को बूट करता है।[34]
निहितार्थ
मेमोरी सुरक्षा, प्रक्रिया (कंप्यूटिंग) को मेमोरी तक पहुंचने से रोकने के तरीके के रूप में, जो उनमें से प्रत्येक के लिए मेमोरी प्रबंधन नहीं है, अधिकांश आधुनिक ऑपरेटिंग सिस्टम के पीछे की अवधारणाओं में से एक है। सुरक्षा रिंगों जैसे अन्य सुरक्षा-संबंधित तंत्रों के साथ संयोजन में मेमोरी सुरक्षा का उपयोग करके, प्रक्रियाओं के बीच विशेषाधिकार पृथक्करण प्राप्त करना संभव है, जिसमें कंप्यूटर प्रोग्राम और कंप्यूटर सिस्टम को सामान्य रूप से विशिष्ट विशेषाधिकार (कंप्यूटिंग) तक सीमित भागों में विभाजित किया जाता है जिनकी उन्हें आवश्यकता होती है किसी विशेष कार्य को करने के लिए। विशेषाधिकार पृथक्करण का उपयोग करने से कंप्यूटर सुरक्षा हमलों के प्रभाव को सिस्टम के विशिष्ट भागों तक सीमित करके उनके कारण होने वाली संभावित क्षति की सीमा को भी कम किया जा सकता है।[35][36]
डिस्टर्बेंस त्रुटियाँ (#DISTURBANCE में स्पष्टमुख्य स्मृति सुरक्षा की विभिन्न परतों को बहुत कम हार्डवेयर स्तर पर शार्ट सर्किट करके प्रभावी ढंग से हरा देती हैं, व्यावहारिक रूप से अद्वितीय आक्रमण सदिश प्रकार का निर्माण करती हैं जो प्रक्रियाओं को सीधे मुख्य मेमोरी के मनमाने हिस्सों की सामग्री को बदलने की अनुमति देता है। अंतर्निहित मेमोरी हार्डवेयर में हेरफेर करना।[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
|
A snippet of x86 assembly code that induces the row hammer effect (memory addresses X and Y must map to different DRAM rows in the same memory bank)[1]: 3 [4][18]: 13–15
|
जून 2014 में प्रकाशित पंक्ति हथौड़ा प्रभाव पर प्रारंभिक शोध में गड़बड़ी त्रुटियों की प्रकृति का वर्णन किया गया था और हमले के निर्माण की संभावना का संकेत दिया गया था, लेकिन कार्यशील सुरक्षा शोषण का कोई उदाहरण नहीं दिया गया था।[1] इसके बाद अक्टूबर 2014 के एक शोध पत्र में रो हैमर प्रभाव से उत्पन्न होने वाले किसी भी सुरक्षा-संबंधी मुद्दे के अस्तित्व का संकेत नहीं दिया गया।[16]
9 मार्च 2015 को, Google के प्रोजेक्ट जीरो ने पंक्ति हथौड़ा प्रभाव के आधार पर दो कामकाजी विशेषाधिकार वृद्धि कारनामों का खुलासा किया, जो x86-64 आर्किटेक्चर पर इसकी शोषक प्रकृति को स्थापित करता है। सामने आए कारनामों में से सैंडबॉक्स (कंप्यूटर सुरक्षा) के भीतर x86-64 मशीन निर्देशों के एक सीमित उपसमूह को चलाने के लिए Google Google मूल क्लाइंट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 पर चलता है। जावास्क्रिप्ट कार्यान्वयन, जिसे Rowhammer.js कहा जाता है,[40] बड़े मजबूत और कमजोर टाइपिंग सरणी डेटा संरचना का उपयोग करता है और बड़े पृष्ठों का उपयोग करके उनके आंतरिक मेमोरी आवंटन पर निर्भर करता है; परिणामस्वरूप, यह बहुत ही निम्न-स्तरीय भेद्यता का एक बहुत ही उच्च-स्तरीय शोषण प्रदर्शित करता है।[41][42][43][44]
अक्टूबर 2016 में, शोधकर्ताओं ने DRAMMER, एक एंड्रॉइड एप्लिकेशन प्रकाशित किया जो कई लोकप्रिय स्मार्टफ़ोन पर रूट एक्सेस प्राप्त करने के लिए अन्य तरीकों के साथ-साथ पंक्ति हथौड़ा का उपयोग करता है।[45] भेद्यता के रूप में स्वीकार किया गया था CVE-2016-6728[46] और Google द्वारा एक महीने के भीतर एक शमन जारी किया गया था। हालाँकि, हमले के संभावित कार्यान्वयन की सामान्य प्रकृति के कारण, एक प्रभावी सॉफ़्टवेयर पैच को विश्वसनीय रूप से लागू करना मुश्किल है। जून 2018 तक, शिक्षा जगत और उद्योग द्वारा किए गए अधिकांश पैच प्रस्ताव या तो तैनात करने के लिए अव्यावहारिक थे या सभी हमलों को रोकने में अपर्याप्त थे। शमन के रूप में, शोधकर्ताओं ने एक हल्के बचाव का प्रस्ताव रखा जो गार्ड पंक्तियों के साथ डीएमए बफ़र्स को अलग करके प्रत्यक्ष मेमोरी एक्सेस (डीएमए) पर आधारित हमलों को रोकता है।[47][48]
मई 2021 में, Google अनुसंधान टीम ने एक नए कारनामे, हाफ-डबल की घोषणा की जो कुछ नए DRAM चिप्स की बिगड़ती भौतिकी का लाभ उठाता है।[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 DRAM (#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 Machine, March 6, 2003, by Sudhakar Govindavajhala and Andrew W. Appel
- A program for testing for the DRAM "rowhammer" problem, source code on GitHub