CET & Shadow Stack
नियंत्रण प्रवाह प्रवर्तन प्रौद्योगिकी (CET)
CET एक सुरक्षा सुविधा है जो हार्डवेयर स्तर पर लागू की गई है, जो Return-Oriented Programming (ROP) और Jump-Oriented Programming (JOP) जैसे सामान्य नियंत्रण-प्रवाह हाइजैकिंग हमलों को रोकने के लिए डिज़ाइन की गई है। इन प्रकार के हमले कार्यक्रम के निष्पादन प्रवाह को बदलकर दुरुपयोगी कोड को निष्पादित करने या निष्पादित करने के लिए निर्दोष कोड के टुकड़ों को एक सामान्य तरीके से एक साथ जोड़ने के लिए उपयोग करते हैं।
CET दो मुख्य विशेषताएँ पेश करता है: अप्रत्यक्ष शाखा ट्रैकिंग (IBT) और शैडो स्टैक।
IBT सुनिश्चित करता है कि अप्रत्यक्ष जंप और कॉल केवल मान्य लक्ष्यों पर किए जाएं, जो अप्रत्यक्ष शाखाओं के लिए मान्य गंतव्यों के रूप में स्पष्ट रूप से चिह्नित किए गए हों। यह एक नए निर्देशिका सेट का उपयोग करके मान्य लक्ष्यों को चिह्नित करता है, इससे हमलावादियों को नियंत्रण प्रवाह को विचलित करने से रोका जाता है।
शैडो स्टैक एक तंतु स्टैक है जो केवल रिटर्न पतों को स्टोर करने के लिए उपयोग किया जाता है। यह नियमित स्टैक के साथ काम करता है लेकिन सामान्य कार्यक्रम निष्पादन से सुरक्षित और छिपा होता है, जिससे हमलावादियों को इसमें हस्तक्षेप करना कठिन होता है। शैडो स्टैक का मुख्य उद्देश्य यह है कि रिटर्न पतों पर किए गए किसी भी संशोधन को उपयोग से पहले पहचाना जाए, इससे ROP हमलों को सफलतापूर्वक कम किया जा सकता है।
शैडो स्टैक
शैडो स्टैक एक वापसी पतों को स्टोर करने के लिए केवल उपयुक्त स्टैक है। यह नियमित स्टैक के साथ काम करता है लेकिन सुरक्षित और छिपा होता है, जिससे हमलावादियों को हस्तक्षेप करना कठिन होता है। शैडो स्टैक का प्राथमिक उद्देश्य यह है कि वापसी पतों पर किए गए किसी भी संशोधन को उपयोग से पहले पहचाना जाए, जिससे वे उपयोग किए जाने से पहले डिटेक्ट हो सकें, ROP हमलों को प्रभावी रूप से कम करते हुए।
CET और शैडो स्टैक हमलों को कैसे रोकते हैं
ROP और JOP हमले एक एप्लिकेशन के नियंत्रण प्रवाह को हाइजैक करने की क्षमता पर निर्भर करते हैं, जो उन्हें स्टैक पर पॉइंटर या रिटर्न पतों को ओवरराइट करने की अनुमति देती है। मौजूदा कोड गैजेट्स या रिटर्न-ओरिएंटेड प्रोग्रामिंग गैजेट्स के क्रमों की ओर निर्देशित करके हमलावादी विचार को निष्पादित कर सकते हैं।
CET की IBT विशेषता इन हमलों को काफी कठिन बनाती है जिससे सुनिश्चित किया जाता है कि अप्रत्यक्ष शाखाएं केवल उन पतों पर जा सकती हैं जिन्हें स्पष्ट रूप से मान्य लक्ष्यों के रूप में चिह्नित किया गया है। इससे हमलावादियों को बाइनरी के विभिन्न हिस्सों में फैले अर्बिट्रे गैजेट्स को निष्पादित करना असंभव बना देता है।
दूसरी ओर, शैडो स्टैक सुनिश्चित करता है कि यदि एक हमलावादी सामान्य स्टैक पर एक रिटर्न पत को ओवरराइट कर सकता है, तो विसंगति को डिटेक्ट किया जाएगा जब एक फ़ंक्शन से वापस आते समय शैडो स्टैक में स्टोर किए गए सुरक्षित कॉपी के साथ भिन्नता की तुलना करते समय। यदि पते मेल नहीं खाते हैं, तो प्रोग्राम समाप्त हो सकता है या अन्य सुरक्षा उपाय ले सकता है, हमले को सफल नहीं होने देने के लिए।
Last updated