2009-06-05 5 views
7

हार्वर्ड आर्किटेक्चर कंप्यूटरों में अलग कोड और डेटा यादें हैं। क्या यह उन्हें कोड इंजेक्शन हमलों से प्रतिरक्षा करता है (क्योंकि डेटा को कोड के रूप में निष्पादित नहीं किया जा सकता है)?क्या हार्वर्ड आर्किटेक्चर कंप्यूटर मनमाने ढंग से कोड इंजेक्शन और निष्पादन हमलों से प्रतिरक्षा हैं?

उत्तर

13

वे कुछ हद तक वॉन न्यूमैन आर्किटेक्चर की तुलना में अधिक प्रतिरक्षा हैं, लेकिन पूरी तरह से नहीं। प्रत्येक आर्किटेक्चर में एक रूपांतरण बिंदु होता है, जहां डेटा को कोड के रूप में माना जाता है। वॉन न्यूमैन में यह सीपीयू के अंदर तुरंत होता है, जबकि हार्वर्ड में यह स्मृति के आरक्षित होने से पहले होता है और मॉड्यूल के लिए घोषित किया जाता है (या कभी-कभी इससे पहले, जब बिल्ड सिस्टम द्वारा फाइल तैयार की जाती है)। इसका मतलब है कि हार्वर्ड आर्किटेक्चर में एक सफल कोड इंजेक्शन हमले को थोड़ा अधिक जटिल और दूर-दराज करने की आवश्यकता होती है, लेकिन यह असंभव नहीं है।

यदि कोई मशीन के भंडारण (जैसे फ़ाइल सिस्टम) में दुर्भावनापूर्ण कोड वाली फ़ाइल रख सकता है और कह सकता है, तो एक बफर ओवररन जो मौजूदा (वैध, गैर-दुर्भावनापूर्ण) कोड पर वापस लौटने पर रीडायरेक्ट करेगा जो इस दुर्भावनापूर्ण फ़ाइल को लोड करता है कोड के रूप में और यदि आर्किटेक्चर इस फ़ाइल को निष्पादन शुरू करने की अनुमति देता है (उदाहरण के लिए स्वयं-प्रारंभिक दिनचर्या के माध्यम से), यह सफल कोड इंजेक्शन का एक उदाहरण होगा।

5

यह आंशिक रूप से "कोड इंजेक्शन हमले" के रूप में गिनती पर निर्भर करता है।

उदाहरण के लिए, एक एसक्यूएल इंजेक्शन हमला लें। एसक्यूएल क्वेरी को स्मृति के निष्पादन योग्य भाग में कभी भी होने की आवश्यकता नहीं होगी, क्योंकि इसे डेटाबेस इंजन द्वारा देशी कोड (या व्याख्या की गई, या जो भी शब्दावली आप उपयोग करना चाहते हैं) में परिवर्तित हो जाती है। हालांकि, एसक्यूएल को अभी भी "कोड" के रूप में माना जा सकता है।

यदि आप केवल प्रोसेसर द्वारा निष्पादित किए जाने वाले मूल कोड डालने वाले हमलावर को शामिल करते हैं (उदाहरण के लिए एक बफर ओवररन के माध्यम से) और यदि प्रक्रिया को "कोड क्षेत्र" में डेटा कॉपी करने से रोका जाता है तो यह इस प्रकार के विरुद्ध सुरक्षा प्रदान करता है हमला, हाँ। (मैं 100% सुरक्षा का दावा करने के भले ही मैं किसी भी हमले वैक्टर की सोच भी नहीं सकते अनिच्छुक हूँ, यह लगता सरल है, लेकिन सुरक्षा एक चाल व्यापार है।)

0

अधिकांश हार्वर्ड आर्किटेक्चर मशीनें अभी भी कोर के बाहर डेटा और निर्देश दोनों के लिए एक साझा साझा मेमोरी स्पेस का उपयोग करती हैं। इसलिए, कोड को इंजेक्ट करना और निर्देशों के रूप में इसे निष्पादित करना अभी भी संभव होगा। वास्तव में, अधिकांश प्रोसेसर आज आंतरिक रूप से हार्वर्ड आर्किटेक्चर हैं, भले ही वे वॉन न्यूमैन को बाहरी रूप से देखते हैं।

4

जाहिर है, some researchers हैं जो हार्वर्ड आर्किटेक्चर पर permanent code injection attack को पूरा करने में सक्षम थे। तो शायद लोगों के विचार के रूप में सुरक्षित नहीं है।

+0

यह जहां यह सावधान रहने की भुगतान करता है, पहला वाक्य है कि "हार्वर्ड वास्तुकला सीपीयू डिजाइन एम्बेडेड दुनिया में आम है।" यदि आप हार्वर्ड मार्क I के वास्तविक डिज़ाइन का अध्ययन करते हैं, तो आप जल्दी से महसूस करते हैं कि यह सीपीयू डिज़ाइन नहीं था जो महत्वपूर्ण था, यह निर्देशों और डेटा के बीच सख्त शारीरिक अलगाव था - निष्पादन तक उनके संबंधित स्टोर से, जो नहीं करता किसी भी मौजूदा वास्तुकला में मौजूद नहीं है जिसे मैं जानता हूं। उस पेपर पते "संशोधित हार्वर्ड आर्किटेक्चर।" – avgvstvs

+2

@avgvstvs: कुछ डीएसपी या माइक्रोकंट्रोलर वास्तव में हार्वर्ड हैं, निर्देश स्मृति और डेटा के लिए अलग-अलग बोस के साथ। विचार यह है कि वे रोम से कोड चलाते हैं, और कुछ स्क्रैच रैम भी रखते हैं। यहां तक ​​कि [एआरएम 9 में स्पष्ट रूप से बाहरी बाहरी बोस थे] (https: //en.wikipedia.org/wiki/ARM9) (जिसे हार्वर्ड के बजाए एक संशोधित हार्वर्ड बनाता है) से जोड़ा जा सकता है। यदि डेटा और निर्देश स्मृति के बीच जाकर डिस्क पर लिखने और अन्य मेमोरी में फिर से पढ़ने की आवश्यकता होती है , मुझे लगता है कि ज्यादातर लोग हार्वर्ड को संशोधित नहीं करेंगे, हार्वर्ड को संशोधित नहीं करते हैं। (हालांकि संशोधित हार्वर्ड में केवल एल 1 को विभाजित करने से अधिक शामिल है) –

+0

फिर से, मैं इस तथ्य पर वापस जाता हूं कि मार्क I बस बस में अलग नहीं था, यह पूरा हो गया था डेटा और निर्देशों के लिए अलग-अलग स्टोरों को अलग करें। शायद अधिकांश लोग * एक साझा रोम पर अभी भी "हार्वर्ड" पर विचार करेंगे, लेकिन मुझे नहीं। कारण यह है कि प्रश्न में हमला सफल होने में सक्षम था क्योंकि रोम साझा किया गया था। – avgvstvs

0

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

+1

यह एक अच्छा जवाब है लेकिन वास्तव में इस सवाल के लिए नहीं – IanNorton

0

मेरे विश्वविद्यालय में हाल ही में एक एमएस रक्षा थी जिसने इस बात पर चर्चा की। दुर्भाग्य से, मैं भाग लेने में सक्षम नहीं था। मुझे यकीन है कि अगर आपने श्री वॉट्स से संपर्क किया तो वह इस पर चर्चा करने के इच्छुक होंगे।

http://www.cs.uidaho.edu/Defenses/KrisWatts.html

संबंधित मुद्दे