कीज कुकने लिनक्स कर्नल स्टॅक सुरक्षा सुधारित करण्यासाठी नवीन पॅच सादर केले

linux

कीज कुक, कर्नल.ऑर्ग येथील माजी मुख्य सिसॅडमीन आणि उबंटू सुरक्षा कार्यसंघाचा नेता, आता Android आणि ChromeOS चे संरक्षण करण्यासाठी Google वर कार्य करीत आहे, ने पॅचचा एक संच जारी केला आहे जो कर्नल स्टॅक ऑफसेटला यादृच्छिक बनवितो सिस्टम कॉल हाताळताना. पॅचेस स्टॅकचे स्थान बदलून कर्नलची सुरक्षा सुधारते, lकिंवा यामुळे स्टॅकचे हल्ले अधिक कठीण आणि कमी यशस्वी होतात

पॅचची मूळ कल्पना पॅक्स RANDKSTACK प्रोजेक्टची आहे. 2019 मध्ये, इंटेल अभियंता एलेना रेशेटोव्हा यांनी लिनक्स कर्नलच्या मुख्य मेकअपमध्ये समाविष्ट करण्यासाठी योग्य या कल्पनेची अंमलबजावणी तयार करण्याचा प्रयत्न केला.

त्यानंतर, पुढाकार की कुकने घेतला ज्याने कर्नलच्या मुख्य आवृत्तीसाठी योग्य अंमलबजावणी केली आणि ज्यांचे पॅच Linux च्या आवृत्ती 5.13 साठी नियोजित आहेत.

मोड डीफॉल्टनुसार अक्षम केला जाईल आणि सक्षम करण्यासाठी, कर्नल कमांड लाइन पॅरामीटर ऑफर केला जाईल "यादृच्छिक_कस्टॅक_ऑफसेट = चालू / बंद. आणि सेटिंग्ज CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT, याव्यतिरिक्त, मोड सक्षम करण्याच्या ओव्हरहेड अंदाजे 1% कामगिरी कमी झाल्याचा अंदाज आहे.

प्रत्येक सिस्टम कॉलवर रँडम स्टॅक ऑफसेट निवडणे प्रस्तावित संरक्षणाचे सार आहे, जे पुढच्या कॉलवर स्टॅकचा आधार पत्ता बदलेल म्हणून, अ‍ॅड्रेस माहिती प्राप्त झाली तरीही मेमरीमधील स्टॅक लेआउटच्या निर्धारणास जटिल करते.

च्या अंमलबजावणी विपरीत पॅक्स रॅंडकस्टॅक, कर्नलमध्ये समाविष्ट करण्याच्या प्रस्तावित पॅचमध्ये, प्रारंभिक टप्प्यावर यादृच्छिकरण केले जात नाही, परंतु pt_regs रचना सेट केल्यावर, जे दीर्घ-कालावधी सिस्टम कॉल दरम्यान यादृच्छिक ऑफसेट निश्चित करण्यासाठी ptrace- आधारित पद्धती वापरणे अशक्य करते.

लिनक्स कर्नल स्टॅक संरक्षणामध्ये सतत सुधारणा झाली आहे (संरक्षण पृष्ठे, व्हीएमपी-आधारित स्टॅक मॅपिंग, थ्रेड_इन्फो काढणे, स्टॅकक्लेक), हल्लेखोरांना त्यांचे शोषण कार्य करण्यासाठी नवीन मार्ग शोधावे लागले.

त्यांच्याकडे, आणि अशा परिस्थितीत, कर्नल स्टॅक निर्धारण वर अवलंबून आहे व्हीएमएपीपीएके आणि थ्रेड.एन.पी.ओ.एफ.ओ ते संबंधित नव्हते. उदाहरणार्थ, स्टॅक ऑफसेट सिस्टम कॉल दरम्यान निरोधक नसते तर पुढील अलीकडील हल्ले थांबविण्यात आले असते

यादृच्छिक_कस्टॅक_ऑफसेट कार्याचा हेतू यादृच्छिक ऑफसेट जोडणे आहे सिस्टम कॉल प्रक्रियेदरम्यान pt_regs स्टॅकवर ढकलले गेल्यानंतर आणि उर्वरित थ्रेड स्टॅक वापरण्यापूर्वी, आणि प्रत्येक वेळी जेव्हा सिस्टम कॉल कॉल करते तेव्हा त्यामध्ये बदल करा. यादृच्छिकतेचे स्त्रोत सध्या आर्किटेक्चरद्वारे परिभाषित केले आहे (परंतु x86 rdtsc () चे कमी बाइट वापरते).

एन्ट्रोपीच्या भिन्न स्त्रोतांसाठी भविष्यातील सुधारणा शक्य आहेत, परंतु या पॅचच्या व्याप्तीबाहेर आहेत. तसेच, अधिक अप्रत्याशितता जोडण्यासाठी, सिस्टम कॉलच्या शेवटी नवीन ऑफसेट निवडल्या जातात (सिस्टम कॉलच्या एंट्रीच्या वेळी वापरकर्त्याच्या जागेचे मोजमाप करणे कमी सोपे असावे) आणि त्या प्रति व्हेरिएबलमध्ये संग्रहित केल्या जातात. सीपीयू, जेणेकरून मूल्याचे आजीवन स्पष्टपणे एकाच कार्यावर बद्ध राहणार नाही.

X86 वर यासाठी कोणतेही दृश्यमान बदल नाहीत कारण संकलन युनिटसाठी स्टॅक सेव्हर आधीपासूनच बिनशर्त अक्षम आहे, परंतु आर्म 64 मध्ये बदल आवश्यक आहे. दुर्दैवाने, असे कोणतेही गुणधर्म नाहीत जे विशिष्ट फंक्शन्ससाठी स्टॅक सेव्हर अक्षम करण्यासाठी वापरले जाऊ शकतात. पॅक्स RANDKSTACK फंक्शनशी तुलना: RANDKSTACK फंक्शन स्टॅकच्या सुरूवातीच्या स्थानाचे यादृच्छिकरण करते (cpu_current_top_of_stack), म्हणजेच यात स्टॅकवरील pt_regs संरचनेचे स्थान समाविष्ट आहे.

सुरुवातीला, हा पॅच त्याच पध्दतीचा होता, परंतु अलीकडील चर्चेदरम्यान, हल्लेखोराला ptrace कार्यक्षमता उपलब्ध असल्यासारखे कमी महत्त्व दिले गेले आहे, आपण pt_regs संरचनेत भिन्न ऑफसेट वाचण्यासाठी / लिहिण्यासाठी, pt_regs प्रवेशांचे कॅशे वर्तन देखणे आणि शोधण्यासाठी PTRACE_PEEKUSR वापरू शकता. यादृच्छिक स्टॅक ऑफसेट.

शेवटी त्याचा उल्लेख आहे प्रारंभिक अंमलबजावणी एआरएम 64 आणि एक्स 86 / x86_64 प्रोसेसरला समर्थन देते.


आपली टिप्पणी द्या

आपला ई-मेल पत्ता प्रकाशित केला जाणार नाही. आवश्यक फील्ड चिन्हांकित केले आहेत *

*

*

  1. डेटासाठी जबाबदार: AB इंटरनेट नेटवर्क 2008 SL
  2. डेटाचा उद्देशः नियंत्रण स्पॅम, टिप्पणी व्यवस्थापन.
  3. कायदे: आपली संमती
  4. डेटा संप्रेषण: कायदेशीर बंधन वगळता डेटा तृतीय पक्षास कळविला जाणार नाही.
  5. डेटा संग्रहण: ओकेन्टस नेटवर्क (EU) द्वारा होस्ट केलेला डेटाबेस
  6. अधिकारः कोणत्याही वेळी आपण आपली माहिती मर्यादित, पुनर्प्राप्त आणि हटवू शकता.