کروم میں سپیکٹر کی کمزوریوں سے فائدہ اٹھانے کے لیے نئی تکنیک

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

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

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

محققین نے ایک استحصال کا ایک پروٹو ٹائپ شائع کیا ہے جو CPUIntel i89-7K اور i6700-7U والے سسٹمز پر کروم 7600 میں کام کرتا ہے۔ استحصال تخلیق کرتے وقت، گوگل کے ذریعہ پہلے شائع کردہ JavaScript کوڈ کے پروٹو ٹائپس کو سپیکٹر کلاس حملے کرنے کے لیے استعمال کیا جاتا تھا۔ واضح رہے کہ محققین Intel اور Apple M1 پروسیسرز پر مبنی سسٹمز کے لیے کام کرنے والے کارنامے تیار کرنے کے قابل تھے، جس سے میموری ریڈنگ کو 500 بائٹس فی سیکنڈ کی رفتار سے اور 96% کی درستگی کو منظم کرنا ممکن ہوتا ہے۔ یہ فرض کیا جاتا ہے کہ طریقہ AMD پروسیسرز پر بھی لاگو ہوتا ہے، لیکن مکمل طور پر فعال استحصال تیار کرنا ممکن نہیں تھا۔

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

ہدایات کے قیاس آرائی سے متعلق براؤزر پر مبنی حملوں سے بچانے کے لیے، کروم ایڈریس اسپیس سیگمنٹیشن کو لاگو کرتا ہے - سینڈ باکس آئسولیشن JavaScript کو صرف 32 بٹ پوائنٹرز کے ساتھ کام کرنے کی اجازت دیتا ہے اور ہینڈلرز کی میموری کو 4GB کے ڈھیروں میں شیئر کرتا ہے۔ پورے عمل کے ایڈریس اسپیس تک رسائی فراہم کرنے اور 32 بٹ کی حد کو نظرانداز کرنے کے لیے، محققین نے ٹائپ کنفیوژن نامی تکنیک کا استعمال کیا، جو جاوا اسکرپٹ انجن کو کسی غلط قسم کے ساتھ کسی چیز پر کارروائی کرنے پر مجبور کرتا ہے، جس سے 64 بٹ کی تشکیل ممکن ہوتی ہے۔ دو 32 بٹ اقدار کے امتزاج پر مبنی پوائنٹر۔

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

نتیجے کے طور پر، پروسیسر قیاس آرائی کے ساتھ تیار کردہ 64 بٹ پوائنٹر تک رسائی حاصل کرتا ہے اور ناکام پیشین گوئی کا تعین کرنے کے بعد ریاست کو رول بیک کرتا ہے، لیکن عمل درآمد کے نشانات مشترکہ کیشے میں رہتے ہیں اور سائیڈ چینل کیشے کا پتہ لگانے کے طریقوں کا استعمال کرتے ہوئے بحال کیا جا سکتا ہے جو تبدیلیوں کا تجزیہ کرتے ہیں۔ کیش شدہ اور غیر محفوظ شدہ ڈیٹا تک رسائی کے اوقات۔ جاوا اسکرپٹ میں دستیاب ٹائمر کی ناکافی درستگی کے حالات میں کیش کے مواد کا تجزیہ کرنے کے لیے، گوگل کی طرف سے تجویز کردہ ایک طریقہ استعمال کیا جاتا ہے، جو پروسیسرز میں استعمال ہونے والی Tree-PLRU کیشے کی بے دخلی کی حکمت عملی کو دھوکہ دیتا ہے اور سائیکلوں کی تعداد میں اضافہ کرکے، اجازت دیتا ہے۔ وقت کے فرق کو نمایاں طور پر بڑھائیں جب کوئی قدر کیشے میں موجود اور غیر موجود ہو۔

ماخذ: opennet.ru

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