नहीं
जैसा कि मूल रूप से वर्णित है, हमला कभी भी खतरा नहीं था। जबकि एक संकलक सैद्धांतिक रूप से ऐसा कर सकता है, वास्तव में हमले को दूर करने के लिए संकलक को प्रोग्रामिंग की आवश्यकता होगी
- पहचानें जब स्रोत कोड संकलित किया जा रहा है एक संकलक का है, और
- इसमें हैक डालने के लिए मनमाने स्रोत कोड को संशोधित करने का तरीका जानें।
यह पता लगाता है कि संकलक अपने स्रोत कोड से कैसे काम करता है, ताकि वह बिना टूट-फूट के इसे संशोधित कर सके।
उदाहरण के लिए, कल्पना करें कि लिंकिंग प्रारूप डेटा लंबाई या संकलित मशीन कोड की ऑफसेट को निष्पादन योग्य में कहीं संग्रहीत करता है। कंपाइलर को अपने लिए यह पता लगाना होगा कि इनमें से कौन सा अपडेट किया जाना है, और कहां, शोषण पेलोड डालते समय। संकलक के बाद के संस्करण (अहानिकर संस्करण) मनमाने ढंग से इस प्रारूप को बदल सकते हैं, इसलिए शोषण कोड को प्रभावी ढंग से इन अवधारणाओं को समझने की आवश्यकता होगी।
यह उच्च-स्तरीय स्व-निर्देशित प्रोग्रामिंग है, एक कठिन एआई समस्या (पिछली बार मैंने जांच की थी, कला की स्थिति कोड उत्पन्न कर रही थी जो व्यावहारिक रूप से इसके प्रकारों द्वारा निर्धारित होती है)। देखो: कुछ मनुष्य भी ऐसा कर सकते हैं; आपको प्रोग्रामिंग भाषा सीखनी होगी और पहले कोड-बेस को समझना होगा।
यहां तक कि अगर एआई समस्या हल हो जाती है, तो लोग अपने छोटे संकलक के परिणाम को बाइनरी में संकलित करने के साथ-साथ एक विशाल एआई लाइब्रेरी से जुड़े होने पर नोटिस करेंगे।
अनुरूप हमला: बूटस्ट्रैपिंग ट्रस्ट
हालांकि, हमले का एक सामान्यीकरण प्रासंगिक है। मूल मुद्दा यह है कि आपके भरोसे की श्रृंखला कहीं से शुरू होनी है, और कई डोमेन में इसका मूल हार्ड-टू-डिटेक्ट तरीके से पूरी श्रृंखला को हटा सकता है।
एक उदाहरण जो आसानी से वास्तविक जीवन में खींच लिया जा सकता है
आपका ऑपरेटिंग सिस्टम, उबंटू लिनक्स कहता है, रिपॉजिटरी के हस्ताक्षरित कुंजी (सार्वजनिक-कुंजी क्रिप्टोग्राफी का उपयोग करके) के खिलाफ डाउनलोड किए गए अपडेट पैकेजों की जांच करके अपडेट की सुरक्षा (अखंडता) सुनिश्चित करता है। लेकिन यह केवल अद्यतनों की प्रामाणिकता की गारंटी देता है यदि आप यह साबित कर सकते हैं कि हस्ताक्षरित कुंजी एक वैध स्रोत के स्वामित्व में है।
आपको साइनिंग कुंजी कहां से मिली? जब आपने पहली बार ऑपरेटिंग सिस्टम वितरण को डाउनलोड किया था।
आपको यह विश्वास करना होगा कि आपकी श्रृंखला का ट्रस्ट का स्रोत, यह हस्ताक्षर करने वाली कुंजी, बुराई नहीं है।
कोई भी जो आपके और उबंटू डाउनलोड सर्वर के बीच इंटरनेट कनेक्शन को MITM कर सकता है - यह आपका ISP हो सकता है, एक सरकार जो इंटरनेट एक्सेस को नियंत्रित करती है (जैसे चीन), या उबंटू के होस्टिंग प्रदाता- इस प्रक्रिया को हाईजैक कर सकते हैं:
- पता लगाएँ कि आप उबंटू सीडी छवि डाउनलोड कर रहे हैं। यह सरल है: देखें कि अनुरोध किसी भी (सार्वजनिक रूप से सूचीबद्ध) उबंटू दर्पण पर जा रहा है और आईएसओ छवि के फ़ाइल नाम के लिए पूछता है।
- उबंटू के बजाय हमलावर की सार्वजनिक कुंजी और रिपॉजिटरी स्थान वाली एक सीडी छवि देते हुए, अपने स्वयं के सर्वर से अनुरोध परोसें।
थेंसफोर्थ, आपको अपने अपडेट्स को हमलावर के सर्वर से सुरक्षित रूप से मिल जाएगा। अपडेट रूट के रूप में चलते हैं, इसलिए हमलावर का पूर्ण नियंत्रण होता है।
आप यह सुनिश्चित करके हमले को रोक सकते हैं कि मूल प्रामाणिक है। लेकिन इसके लिए आवश्यक है कि आप हैश का उपयोग करके डाउनलोड की गई सीडी की छवि को मान्य करें ( कुछ लोग वास्तव में ऐसा करते हैं ) -और हैश को स्वयं सुरक्षित रूप से डाउनलोड किया जाना चाहिए, जैसे HTTPS पर। और अगर आपका हमलावर आपके कंप्यूटर पर एक प्रमाण पत्र जोड़ सकता है (एक कॉर्पोरेट वातावरण में आम) या एक प्रमाणपत्र प्राधिकरण (जैसे चीन) को नियंत्रित करता है, तो भी HTTPS कोई सुरक्षा प्रदान नहीं करता है।