इससे पहले, हमने विंडोज और अनुप्रयोगों के लिए कुछ शमन तंत्रों के बारे में लिखा था जो माइक्रोसॉफ्ट ने नए ओएस की रिहाई के साथ लाने की कोशिश की थी। आमतौर पर, इस तरह के तंत्र निम्नलिखित वैचारिक दृष्टिकोणों पर आधारित होते हैं:
- ओएस संसाधनों ( उपयोगकर्ता खाता नियंत्रण , अखंडता स्तर ) के लिए एप्लिकेशन एक्सेस अधिकारों का अंतर। विस्टा +
- डीईपी और एएसएलआर मेमोरी के साथ काम करते समय विशेष शमन कारक। XP SP2 / Vista +। DEP सिस्टम सेटिंग्स द्वारा सेट किया गया है और विंडोज 8+ में सभी एप्लिकेशन (प्रोसेसर सपोर्ट) के लिए सक्रिय है। एएसएलआर अपने समर्थन के साथ संकलित अनुप्रयोगों के लिए काम करता है।
- कर्नेल ASLR / DEP, उन घटकों के लिए जो कर्नेल मोड में काम करते हैं। विस्टा SP1 +। ASLR / DEP कर्नेल-मोड मॉड्यूल के लिए डिफ़ॉल्ट रूप से सक्रिय है, किसी पूल में डेटा निष्पादित करने से DEP को NonPagedPoolNx (विंडोज 8+) से आवंटन की आवश्यकता होती है।
- OS स्तर (SEHOP) में SEH में फ़ंक्शन पॉइंटर्स को फिर से लिखने के खिलाफ सुरक्षा। विस्टा SP1 +। डिफ़ॉल्ट रूप से, केवल सर्वर संस्करणों के लिए सक्रिय है।
- नि: शुल्क ईएमईटी उपकरण (वी 4.1 अंतिम अद्यतन) कारनामों के कार्यों से प्रणाली की प्रतिरक्षा बढ़ाने के लिए। Windows XP + के लिए।
- AppContainer प्रक्रियाओं का विस्तारित अलगाव (उर्फ सैंडबॉक्सिंग, विस्तारित अखंडता स्तर)। विंडोज 8+। इंटरनेट एक्सप्लोरर 10+ और सभी आधुनिक यूआई उर्फ मेट्रो अनुप्रयोगों के लिए उपयोग किया जाता है।
- अविशिष्ट अनुप्रयोगों ( KASLR बाईपास शमन ) के लिए गिरी वस्तुओं के पते के बारे में जानकारी तक पहुंच को अवरुद्ध करना। विंडोज 8.1

अंतिम बिंदु विशेष ध्यान देने योग्य है, क्योंकि इस तरह के एक नवाचार को विंडोज 8.1 में MS द्वारा AppContainer मोड या इंटीग्रेशन स्तर के लिए एक एक्सटेंशन के रूप में जोड़ा गया था। अपेक्षाकृत बोलना, एक अविश्वसनीय उर्फ प्रतिबंधित कॉलर एप्लिकेशन (जिसका अखंडता स्तर <
मध्यम ) में कर्नेल मोड में विभिन्न वस्तुओं के पते के बारे में जानकारी प्राप्त करने का अधिकार नहीं है, जिसका अर्थ है केएएसएलआर प्रतिबंधों का वास्तविक समझौता और एलपीई (स्थानीय प्रिवीलेज एस्केलेशन) के बाद के संभावित संचालन। इस तरह की जानकारी का खुलासा करने के मुख्य कार्य, निश्चित रूप से, विभिन्न वर्गों के साथ,
NtQuerySystemInformation और साथ ही
NtQueryProcess विरूपण थे । यह इन कार्यों के लिए है कि संबंधित अनुप्रयोगों के लिए पहुंच प्रतिबंधित है।
NtQuerySystemInformation के मामले में
, निम्न अखंडता स्तर
वाला एक आवेदन STATUS_ACCESS_DENIED को वापस कर दिया जाएगा यदि यह निम्नलिखित वर्गों पर जानकारी का अनुरोध करता है:
- SystemModuleInformation / SystemModuleInformationEx - लोड किए गए ड्राइवरों के पते
- SystemLocksInformation - कर्नेल ऑब्जेक्ट्स (ERESOURCE) के पते
- SystemStackTraceInformation - कर्नेल मोड स्टैक पता
- SystemHandleInformation / SystemExtendedHandleInformation - कर्नेल ऑब्जेक्ट्स के पते
- SystemObjectInformation - कर्नेल ऑब्जेक्ट्स के पते
- SystemBigPoolInformation / SystemSessionBigPoolInformation - आवंटित सिस्टम मेमोरी के पते
- SystemProcessInformation / SystemExtendedProcessinformation / SystemFullProcessInformation - प्रक्रियाओं, थ्रेड्स और उनके ढेर के कर्नेल की वस्तुओं के पते।

अंजीर।
Ntoskrnl! NtQuerySystemInformation को एक्सेस करने का प्रयास कर रहे एप्लिकेशन के एक्सेस टोकन में इंटीग्रिटी लेवल चेक फ़ंक्शन के कॉल पॉइंट।
ntoskrnl! ExpQuerySystemInformation संबंधित वर्गों के लिए जानकारी एकत्र करने के लिए जिम्मेदार है, और यह
ntoskrnl! ExIsRestrictedCaller फ़ंक्शन को कॉल
करता है , जो स्वयं सत्यापन करता है।
NtQuerySystemInformation के अलावा
, एक्सेस
NtQueryInformationProcess फ़ंक्शन के लिए अवरुद्ध है, जिसके माध्यम से एप्लिकेशन विभिन्न ऑब्जेक्ट्स के पते तक पहुंच सकता है।
ProcessHandleTracing ,
ProcessWorkingSetWatch / ProcessWorkingSetWatchEx वर्गों के लिए, संबंधित त्रुटि स्थिति भी वापस आ जाती है।
www.alex-ionescu.com/?p=82