CET & Shadow Stack

HackTricks का समर्थन करें

नियंत्रण प्रवाह प्रवर्तन प्रौद्योगिकी (CET)

CET एक सुरक्षा सुविधा है जो हार्डवेयर स्तर पर लागू की गई है, जो Return-Oriented Programming (ROP) और Jump-Oriented Programming (JOP) जैसे सामान्य नियंत्रण-प्रवाह हाइजैकिंग हमलों को रोकने के लिए डिज़ाइन की गई है। ये प्रकार के हमले कार्यक्रम के निष्पादन प्रवाह को बदलकर दुरुपयोगी कोड को निष्पादित करने या निष्पादित करने के लिए नेक कोड के टुकड़ों को एक ऐसे तरीके से जोड़ने के लिए होते हैं जो एक दुरुपयोगी कार्रवाई का कारण बनता है।

CET दो मुख्य विशेषताएँ पेश करता है: अप्रत्यक्ष शाखा ट्रैकिंग (IBT) और शैडो स्टैक

  • IBT सुनिश्चित करता है कि अप्रत्यक्ष जंप और कॉल केवल मान्य लक्ष्यों पर किए जाएं, जो अप्रत्यक्ष शाखाओं के लिए कानूनी गंतव्यों के रूप में स्पष्ट रूप से चिह्नित किए गए हों। यह एक नए इंस्ट्रक्शन सेट का उपयोग करके मान्य लक्ष्यों को चिह्नित करता है, इससे हमलावादियों को नियंत्रण प्रवाह को विचलित करने से रोका जाता है।

  • शैडो स्टैक एक तंतु स्टैक है जो केवल रिटर्न पतों को स्टोर करने के लिए उपयोग किया जाता है। यह सामान्य स्टैक के साथ काम करता है लेकिन सामान्य कार्यक्रम निष्पादन से सुरक्षित और छिपा होता है, जिससे हमलावादियों को इसमें हस्तक्षेप करना कठिन होता है। शैडो स्टैक का प्राथमिक लक्ष्य यह है कि सुनिश्चित किया जाए कि किसी भी साधारित स्टैक पर रिटर्न पतों में किए गए किसी भी संशोधन को उपयोग से पहले पहचाना जाए, जिससे ROP हमलों को सफलतापूर्वक कम किया जा सके।

शैडो स्टैक

शैडो स्टैक एक वापसी पतों को स्टोर करने के लिए केवल उपयोग किया जाने वाला एक विशेष स्टैक है। यह सामान्य स्टैक के साथ काम करता है लेकिन साधारित कार्यक्रम निष्पादन से सुरक्षित और छिपा होता है, जिससे हमलावादियों को इसमें हस्तक्षेप करना कठिन होता है। शैडो स्टैक का मुख्य लक्ष्य यह है कि सुनिश्चित किया जाए कि किसी भी साधारित स्टैक पर रिटर्न पतों में किए गए किसी भी संशोधन को उपयोग से पहले पहचाना जाए, जिससे ROP हमलों को सफलतापूर्वक कम किया जा सके।

CET और शैडो स्टैक हमलों को कैसे रोकते हैं

ROP और JOP हमले एक एप्लिकेशन के नियंत्रण प्रवाह को हाइजैक करने की क्षमता पर निर्भर करते हैं, जो उन्हें स्टैक पर पॉइंटर या रिटर्न पतों को ओवरराइट करने की अनुमति देती हैं। मौजूदा कोड गैजेट्स या रिटर्न-ओरिएंटेड प्रोग्रामिंग गैजेट्स के क्रमों की ओर निर्देशित करके हमलावादी विचारशील कोड निष्पादित कर सकते हैं।

  • CET की IBT विशेषता इन हमलों को काफी कठिन बनाती है जिससे सुनिश्चित किया जाता है कि अप्रत्यक्ष शाखाएं केवल उन पतों पर जाएं जो स्पष्ट रूप से मान्य लक्ष्यों के रूप में चिह्नित किए गए हैं। इससे हमलावादियों को बाइनरी में फैले अर्बिट्रे गैजेट्स को निष्पादित करना असंभव बना देता है।

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

HackTricks का समर्थन करें

Last updated