Zen+ اور Zen 2 مائیکرو آرکیٹیکچرز پر مبنی AMD پروسیسرز میں میلٹ ڈاؤن کلاس کی کمزوری دریافت ہوئی ہے۔

ڈریسڈن کی ٹیکنیکل یونیورسٹی کے محققین کے ایک گروپ نے Zen+ اور Zen 2020 مائیکرو آرکیٹیکچرز پر مبنی AMD پروسیسرز میں ایک کمزوری (CVE-12965-2) کی نشاندہی کی ہے، جو میلٹ ڈاؤن کلاس حملے کی اجازت دیتا ہے۔ ابتدائی طور پر یہ فرض کیا گیا تھا کہ AMD Zen+ اور Zen 2 پروسیسر میلٹ ڈاؤن کے خطرے سے دوچار نہیں ہیں، لیکن محققین نے ایک ایسی خصوصیت کی نشاندہی کی جو غیر کینونیکل ورچوئل ایڈریسز استعمال کرتے وقت محفوظ میموری والے علاقوں تک قیاس آرائی پر مبنی رسائی کا باعث بنتی ہے۔

AMD64 فن تعمیر ورچوئل ایڈریس کے صرف پہلے 48 بٹس کا استعمال کرتا ہے اور باقی 16 بٹس کو نظر انداز کرتا ہے۔ یہ واضح کیا گیا ہے کہ بٹس 48 سے 63 کو ہمیشہ بٹ 47 (سائن بٹ ایکسٹینشن) کی قدر کاپی کرنی چاہیے۔ اگر اس شرط کی خلاف ورزی کی جاتی ہے اور اوپری بٹس کی صوابدیدی اقدار کے ساتھ ایڈریس تک رسائی حاصل کرنے کی کوشش کی جاتی ہے تو، پروسیسر ایک استثنا پیدا کرتا ہے۔ اوپری بٹس کو بار بار بھرنے سے دستیاب ایڈریس اسپیس کو دو بلاکس میں تقسیم کیا جاتا ہے - ایک نچلا حصہ (0 سے 00007FFFFFFFFFFFFF)، جس میں اوپری بٹس 800000000000 پر سیٹ کیے جاتے ہیں، اور ایک اوپری بٹس (FFFF1 FFFF سے)، جس میں FFFFFFFFFFFFFFFFFFFFFFF تمام اوپری بٹس XNUMX پر سیٹ ہیں۔

مخصوص بلاکس کے اندر آنے والے پتے کینونیکل کہلاتے ہیں، اور اوپری بٹس کے صوابدیدی مواد والے غلط ایڈریس کو نان کینونیکل کہا جاتا ہے۔ کینونیکل پتوں کی نچلی رینج عام طور پر پراسیس ڈیٹا کے لیے مختص کی جاتی ہے، اور اوپری رینج کرنل ڈیٹا کے لیے استعمال ہوتی ہے (استحقاق علیحدگی کی سطح پر صارف کی جگہ سے ان پتوں تک رسائی مسدود ہے)۔

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

چونکہ قیاس آرائی پر عمل درآمد عام طور پر دی گئی ہدایات کی طرح کیشے کا استعمال کرتا ہے، اس لیے قیاس آرائی کے دوران یہ ممکن ہے کہ کیشے میں مارکر سیٹ کیے جائیں جو نجی میموری کے علاقے میں انفرادی بٹس کے مواد کی عکاسی کرتے ہیں، اور پھر عام طور پر عمل میں لائے گئے کوڈ میں وقت کے ذریعے ان کی قدر کا تعین کرنے کے لیے۔ تجزیہ کیشڈ اور نان کیشڈ ڈیٹا تک رسائی حاصل کرتا ہے۔

AMD Zen+ اور Zen 2 پروسیسرز کو متاثر کرنے والے نئے خطرے کی ایک خصوصیت یہ ہے کہ CPUs قیاس آرائی پر مبنی پڑھنے اور لکھنے کی کارروائیوں کی اجازت دیتے ہیں جو صرف اوپری 16 بٹس کو نظر انداز کرتے ہوئے غلط غیر کینونیکل ایڈریسز کا استعمال کرتے ہوئے میموری تک رسائی حاصل کرتے ہیں۔ اس طرح، قیاس آرائی پر مبنی کوڈ پر عمل درآمد کے دوران، پروسیسر ہمیشہ صرف نچلے 48 بٹس کا استعمال کرتا ہے، اور ایڈریس کی درستگی کو الگ سے چیک کیا جاتا ہے۔ اگر، ایسوسی ایٹو ٹرانسلیشن بفر (TLB) میں کسی فزیکل ایڈریس میں غیر کینونیکل ورچوئل ایڈریس کا ترجمہ کرتے وقت، ایڈریس کے کینونیکل حصے میں ایک مماثلت پائی جاتی ہے، تو قیاس آرائی پر مبنی لوڈ آپریشن مواد کو مدنظر رکھے بغیر قدر واپس کر دے گا۔ اوپری 16 بٹس، جو تھریڈز کے درمیان میموری شیئرنگ کو نظرانداز کرنے کی اجازت دیتا ہے۔ اس کے بعد، آپریشن کو غلط سمجھا جائے گا اور مسترد کر دیا جائے گا، لیکن میموری تک رسائی مکمل ہو جائے گی اور ڈیٹا کیش میں ختم ہو جائے گا.

تجربے کے دوران، FLUSH+RELOAD کیشے کے مواد کا تعین کرنے کی تکنیک کا استعمال کرتے ہوئے، محققین 125 بائٹس فی سیکنڈ کی رفتار سے پوشیدہ ڈیٹا کی منتقلی کے لیے ایک چینل ترتیب دینے میں کامیاب رہے۔ AMD چپس کے علاوہ، یہ مسئلہ تمام Intel پروسیسرز کو بھی متاثر کرتا ہے، جو کلاسک میلٹ ڈاؤن کے خطرے سے دوچار ہیں۔ وہی تکنیکیں جو میلٹ ڈاؤن حملوں کو روکنے میں مدد کرتی ہیں، جیسے کہ LFENCE ہدایات کا استعمال، اس نئی قسم کے حملے سے حفاظت کے لیے استعمال کیا جا سکتا ہے۔ مثال کے طور پر، اگر انٹیل پروسیسر میں میلٹ ڈاؤن کے خلاف ہارڈویئر پروٹیکشن شامل ہے یا سسٹم میں سافٹ ویئر پروٹیکشن فعال ہے، تو ایسی کنفیگریشن نئے اٹیک ویرینٹ کے لیے حساس نہیں ہیں۔

ایک ہی وقت میں، محققین نوٹ کرتے ہیں کہ، انٹیل پروسیسرز کے مقابلے میں، AMD پروسیسرز کا فن تعمیر حقیقی حملوں کو انجام دینے کے امکان کو محدود کرتا ہے، لیکن ان کی تاثیر کو بڑھانے کے لیے دوسرے مائیکرو آرکیٹیکچرل حملوں کے ساتھ مل کر ایک نئے طریقہ کے استعمال کو خارج نہیں کرتا ہے۔ خاص طور پر، مجوزہ حملہ کسی کو کرنل کے میموری ایریاز اور دیگر پروسیسز کے مواد کا تعین کرنے کی اجازت نہیں دیتا ہے، لیکن ایک ہی ورچوئل میموری اسپیس میں چلنے والے ایک ہی پروگرام کے دوسرے تھریڈز تک رسائی حاصل کرنے کی صلاحیت تک محدود ہے۔

چونکہ بغیر کسی خطرے کے پروگرام میں اپنے دھاگوں تک رسائی حاصل کرنے کی صلاحیت ہوتی ہے، اس لیے عملی نقطہ نظر سے یہ طریقہ دلچسپی کا حامل ہے کہ سینڈ باکس کی تنہائی کو نظر انداز کیا جائے اور ایسے پروگراموں میں دوسرے تھریڈز کے کام میں مداخلت کو منظم کیا جائے جو تھرڈ پارٹی کو انجام دینے کی اجازت دیتے ہیں۔ کوڈ، جیسے ویب براؤزرز اور JIT انجن۔ محققین نے حملہ کرنے کے لیے SpiderMonkey JavaScript انجن اور لینکس کرنل کی کمزوری کا جائزہ لیا، لیکن انھیں کمزور کوڈ کی ترتیب نہیں ملی جو حملہ کرنے کے لیے استعمال کی جا سکتی تھی۔ ایپلی کیشنز پر حملہ کرنے کے علاوہ، طریقہ کار کو دیگر مائیکرو آرکیٹیکچرل کمزوریوں کا استحصال کرتے ہوئے پروسیسر کے مائیکرو آرکیٹیکچرل عناصر کے درمیان ناقابل قبول ڈیٹا کے بہاؤ کو مجبور کرنے کے لیے بھی استعمال کیا جا سکتا ہے۔

ماخذ: opennet.ru

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