हार्वर्ड आर्किटेक्चर कंप्यूटरों में अलग कोड और डेटा यादें हैं। क्या यह उन्हें कोड इंजेक्शन हमलों से प्रतिरक्षा करता है (क्योंकि डेटा को कोड के रूप में निष्पादित नहीं किया जा सकता है)?क्या हार्वर्ड आर्किटेक्चर कंप्यूटर मनमाने ढंग से कोड इंजेक्शन और निष्पादन हमलों से प्रतिरक्षा हैं?
क्या हार्वर्ड आर्किटेक्चर कंप्यूटर मनमाने ढंग से कोड इंजेक्शन और निष्पादन हमलों से प्रतिरक्षा हैं?
उत्तर
वे कुछ हद तक वॉन न्यूमैन आर्किटेक्चर की तुलना में अधिक प्रतिरक्षा हैं, लेकिन पूरी तरह से नहीं। प्रत्येक आर्किटेक्चर में एक रूपांतरण बिंदु होता है, जहां डेटा को कोड के रूप में माना जाता है। वॉन न्यूमैन में यह सीपीयू के अंदर तुरंत होता है, जबकि हार्वर्ड में यह स्मृति के आरक्षित होने से पहले होता है और मॉड्यूल के लिए घोषित किया जाता है (या कभी-कभी इससे पहले, जब बिल्ड सिस्टम द्वारा फाइल तैयार की जाती है)। इसका मतलब है कि हार्वर्ड आर्किटेक्चर में एक सफल कोड इंजेक्शन हमले को थोड़ा अधिक जटिल और दूर-दराज करने की आवश्यकता होती है, लेकिन यह असंभव नहीं है।
यदि कोई मशीन के भंडारण (जैसे फ़ाइल सिस्टम) में दुर्भावनापूर्ण कोड वाली फ़ाइल रख सकता है और कह सकता है, तो एक बफर ओवररन जो मौजूदा (वैध, गैर-दुर्भावनापूर्ण) कोड पर वापस लौटने पर रीडायरेक्ट करेगा जो इस दुर्भावनापूर्ण फ़ाइल को लोड करता है कोड के रूप में और यदि आर्किटेक्चर इस फ़ाइल को निष्पादन शुरू करने की अनुमति देता है (उदाहरण के लिए स्वयं-प्रारंभिक दिनचर्या के माध्यम से), यह सफल कोड इंजेक्शन का एक उदाहरण होगा।
यह आंशिक रूप से "कोड इंजेक्शन हमले" के रूप में गिनती पर निर्भर करता है।
उदाहरण के लिए, एक एसक्यूएल इंजेक्शन हमला लें। एसक्यूएल क्वेरी को स्मृति के निष्पादन योग्य भाग में कभी भी होने की आवश्यकता नहीं होगी, क्योंकि इसे डेटाबेस इंजन द्वारा देशी कोड (या व्याख्या की गई, या जो भी शब्दावली आप उपयोग करना चाहते हैं) में परिवर्तित हो जाती है। हालांकि, एसक्यूएल को अभी भी "कोड" के रूप में माना जा सकता है।
यदि आप केवल प्रोसेसर द्वारा निष्पादित किए जाने वाले मूल कोड डालने वाले हमलावर को शामिल करते हैं (उदाहरण के लिए एक बफर ओवररन के माध्यम से) और यदि प्रक्रिया को "कोड क्षेत्र" में डेटा कॉपी करने से रोका जाता है तो यह इस प्रकार के विरुद्ध सुरक्षा प्रदान करता है हमला, हाँ। (मैं 100% सुरक्षा का दावा करने के भले ही मैं किसी भी हमले वैक्टर की सोच भी नहीं सकते अनिच्छुक हूँ, यह लगता सरल है, लेकिन सुरक्षा एक चाल व्यापार है।)
अधिकांश हार्वर्ड आर्किटेक्चर मशीनें अभी भी कोर के बाहर डेटा और निर्देश दोनों के लिए एक साझा साझा मेमोरी स्पेस का उपयोग करती हैं। इसलिए, कोड को इंजेक्ट करना और निर्देशों के रूप में इसे निष्पादित करना अभी भी संभव होगा। वास्तव में, अधिकांश प्रोसेसर आज आंतरिक रूप से हार्वर्ड आर्किटेक्चर हैं, भले ही वे वॉन न्यूमैन को बाहरी रूप से देखते हैं।
जाहिर है, some researchers हैं जो हार्वर्ड आर्किटेक्चर पर permanent code injection attack को पूरा करने में सक्षम थे। तो शायद लोगों के विचार के रूप में सुरक्षित नहीं है।
x86 में एक सेगमेंटेशन आर्किटेक्चर है जो ऐसा करता है, और इसका उपयोग कुछ परियोजनाओं द्वारा डेटा को कोड के रूप में निष्पादित करने से रोकने के लिए किया जाता है (एक ऐसा प्रयास जिसे अब ज्यादातर एनएक्स बिट दिया जाता है), और यह कभी नहीं आया नए शोषण के प्रवाह को रोकने के लिए। जंगली में अभी भी शोषक रिमोट फ़ाइल समावेशन की अद्भुत संख्या पर विचार करें।
यह एक अच्छा जवाब है लेकिन वास्तव में इस सवाल के लिए नहीं – IanNorton
मेरे विश्वविद्यालय में हाल ही में एक एमएस रक्षा थी जिसने इस बात पर चर्चा की। दुर्भाग्य से, मैं भाग लेने में सक्षम नहीं था। मुझे यकीन है कि अगर आपने श्री वॉट्स से संपर्क किया तो वह इस पर चर्चा करने के इच्छुक होंगे।
- 1. PHP जेलिंग मनमाने ढंग से कोड
- 2. मनमाने ढंग से JSON कुंजी
- 3. मनमाने ढंग से पाथ पर्यावरण
- 4. क्या कोई मौजूदा गैर-हार्वर्ड आर्किटेक्चर माइक्रोकंट्रोलर हैं?
- 5. विंडोज में मनमाने ढंग से सिग्नल भेजना?
- 6. मनमाने ढंग से एसटीएल कंटेनर के लिए मनमाने ढंग से टाइप
- 7. मनमाने ढंग से आयामों का बेवकूफ टुकड़ा
- 8. संयोजन (या) मनमाने ढंग से नियमित अभिव्यक्ति
- 9. एसवीजी तत्व मनमाने ढंग से ऊंचाई
- 10. ऑब्जेक्ट्स की मनमाने ढंग से लंबी सूची
- 11. पर्ल रेगेक्स मनमाने ढंग से सेट
- 12. मनमाने ढंग से लैम्ब्डा द्वारा छंटनी
- 13. मनमाने ढंग से प्रक्रिया की प्रतीक्षा करें और लिनक्स
- 14. कंप्यूटर आर्किटेक्चर और कंप्यूटर संगठन के बीच क्या अंतर है?
- 15. ग्रोवी: एक मनमाने ढंग से (अज्ञात) नियमित अभिव्यक्ति से बचने
- 16. क्या प्रोग्रामिंग रूप से पाइथन स्टैक फ्रेम का निर्माण करना संभव है और कोड में मनमाने ढंग से बिंदु पर निष्पादन शुरू करना संभव है?
- 17. मनमाने ढंग से बड़ी संख्या के लिए बीसीडी गणित पुस्तकालय?
- 18. लिंक से एक्सएमएल पर पूछताछ करते समय आप मनमाने ढंग से नेमस्पेस कैसे प्रबंधित करते हैं?
- 19. आप स्ट्रिंग से मनमाने ढंग से देशी कमांड कैसे निष्पादित करते हैं?
- 20. पाइथन फ्लोटिंग पॉइंट मनमाने ढंग से सटीक उपलब्ध है?
- 21. मनमाने ढंग से प्लेस घटक (x, y) निर्देशांक
- 22. मैं सी में मनमाने ढंग से लंबी लाइन कैसे पढ़ूं?
- 23. एनएसडीटा के मनमाने ढंग से ब्लॉक को डीकोड करना?
- 24. क्या एक Google ऐप इंजन ऐप एसक्यूएल इंजेक्शन हमलों के लिए अतिसंवेदनशील है?
- 25. आप कैसे देख सकते हैं कि लेन-देन अलगाव स्तर क्या मनमाने ढंग से ऑरैकल सत्र
- 26. उपयोग jQuery एक मनमाने ढंग से गहरी सूची
- 27. JUnit नियम TemporaryFolder मनमाने ढंग से फेंकता एक IOException
- 28. gtk.Menu में मनमाने ढंग से विजेट कैसे डालें?
- 29. एचटीएमएल में मनमाने ढंग से टैग का उपयोग करने से मुझे क्या रोक रहा है?
- 30. क्या मैकिटो का उपयोग कॉम्पैक्ट तरीके से मनमाने ढंग से बातचीत करना संभव है?
यह जहां यह सावधान रहने की भुगतान करता है, पहला वाक्य है कि "हार्वर्ड वास्तुकला सीपीयू डिजाइन एम्बेडेड दुनिया में आम है।" यदि आप हार्वर्ड मार्क I के वास्तविक डिज़ाइन का अध्ययन करते हैं, तो आप जल्दी से महसूस करते हैं कि यह सीपीयू डिज़ाइन नहीं था जो महत्वपूर्ण था, यह निर्देशों और डेटा के बीच सख्त शारीरिक अलगाव था - निष्पादन तक उनके संबंधित स्टोर से, जो नहीं करता किसी भी मौजूदा वास्तुकला में मौजूद नहीं है जिसे मैं जानता हूं। उस पेपर पते "संशोधित हार्वर्ड आर्किटेक्चर।" – avgvstvs
@avgvstvs: कुछ डीएसपी या माइक्रोकंट्रोलर वास्तव में हार्वर्ड हैं, निर्देश स्मृति और डेटा के लिए अलग-अलग बोस के साथ। विचार यह है कि वे रोम से कोड चलाते हैं, और कुछ स्क्रैच रैम भी रखते हैं। यहां तक कि [एआरएम 9 में स्पष्ट रूप से बाहरी बाहरी बोस थे] (https: //en.wikipedia.org/wiki/ARM9) (जिसे हार्वर्ड के बजाए एक संशोधित हार्वर्ड बनाता है) से जोड़ा जा सकता है। यदि डेटा और निर्देश स्मृति के बीच जाकर डिस्क पर लिखने और अन्य मेमोरी में फिर से पढ़ने की आवश्यकता होती है , मुझे लगता है कि ज्यादातर लोग हार्वर्ड को संशोधित नहीं करेंगे, हार्वर्ड को संशोधित नहीं करते हैं। (हालांकि संशोधित हार्वर्ड में केवल एल 1 को विभाजित करने से अधिक शामिल है) –
फिर से, मैं इस तथ्य पर वापस जाता हूं कि मार्क I बस बस में अलग नहीं था, यह पूरा हो गया था डेटा और निर्देशों के लिए अलग-अलग स्टोरों को अलग करें। शायद अधिकांश लोग * एक साझा रोम पर अभी भी "हार्वर्ड" पर विचार करेंगे, लेकिन मुझे नहीं। कारण यह है कि प्रश्न में हमला सफल होने में सक्षम था क्योंकि रोम साझा किया गया था। – avgvstvs