سسٹم کالز کے لیے لینکس کرنل اسٹیک پتوں کو بے ترتیب کرنے کے لیے متعارف کرائے گئے پیچ

Kees Cook، kernel.org کے سابق چیف سسٹم ایڈمنسٹریٹر اور Ubuntu سیکیورٹی ٹیم کے لیڈر، جو اب Google میں Android اور ChromeOS کو محفوظ بنانے پر کام کر رہے ہیں، نے سسٹم کالز پر کارروائی کرتے وقت کرنل اسٹیک میں آفسیٹس کو بے ترتیب بنانے کے لیے پیچ کا ایک سیٹ شائع کیا۔ پیچ اسٹیک پلیسمنٹ کو تبدیل کرکے کرنل سیکیورٹی کو بہتر بناتے ہیں، اسٹیک پر حملوں کو زیادہ مشکل اور کم کامیاب بناتے ہیں۔ ابتدائی نفاذ ARM64 اور x86/x86_64 پروسیسرز کو سپورٹ کرتا ہے۔

پیچ کا اصل خیال PaX RANDKSTACCK پروجیکٹ سے تعلق رکھتا ہے۔ 2019 میں، انٹیل کی ایک انجینیئر ایلینا ریشیٹووا نے مرکزی لینکس کرنل میں شامل کرنے کے لیے موزوں اس آئیڈیا پر عمل درآمد کرنے کی کوشش کی۔ بعد میں، پہل Kees Cook نے کی، جس نے دانا کے مرکزی ورژن کے لیے موزوں ایک نفاذ پیش کیا۔ پیچ کو 5.13 ریلیز کے حصے کے طور پر شامل کرنے کا منصوبہ ہے۔ موڈ بطور ڈیفالٹ غیر فعال ہو جائے گا۔ اسے فعال کرنے کے لیے، کرنل کمانڈ لائن پیرامیٹر "randomize_kstack_offset=on/off" اور CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT ترتیب تجویز کی گئی ہے۔ موڈ کو فعال کرنے کے اوور ہیڈ کا تخمینہ تقریباً 1% کارکردگی کے نقصان پر لگایا گیا ہے۔

مجوزہ تحفظ کا خلاصہ یہ ہے کہ ہر سسٹم کال کے لیے بے ترتیب اسٹیک آفسیٹ کا انتخاب کیا جائے، جس سے ایڈریس ڈیٹا حاصل کرنے کے بعد بھی میموری میں اسٹیک لے آؤٹ کا تعین کرنا مشکل ہو جاتا ہے، کیونکہ اگلی سسٹم کال اسٹیک کا بنیادی پتہ تبدیل کر دے گی۔ PaX RANDKSTACK کے نفاذ کے برعکس، کرنل میں شامل کرنے کے لیے تجویز کردہ پیچ میں، randomization ابتدائی مرحلے (cpu_current_top_of_stack) پر نہیں، بلکہ pt_regs ڈھانچہ ترتیب دینے کے بعد کی جاتی ہے، جس کی وجہ سے بے ترتیب آفسیٹ کا تعین کرنے کے لیے ptrace پر مبنی طریقے استعمال کرنا ناممکن ہو جاتا ہے۔ طویل عرصے سے چلنے والی سسٹم کال کے دوران۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں