گوگل براؤزر میں جاوا اسکرپٹ کو چلا کر سپیکٹر کی کمزوریوں کے استحصال کا مظاہرہ کرتا ہے

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

مجوزہ پروٹوٹائپ کو لینکس اور کروم 7 والے ماحول میں Intel Core i6500-88U پروسیسرز والے سسٹمز پر حملہ کرنے کے لیے ڈیزائن کیا گیا ہے۔ دوسرے ماحول کے لیے استحصال کو استعمال کرنے کے لیے، ترمیم کی ضرورت ہے۔ استحصال کا طریقہ انٹیل پروسیسرز کے لیے مخصوص نہیں ہے - مناسب موافقت کے بعد، استحصال کو دوسرے مینوفیکچررز کے سی پی یو کے ساتھ سسٹمز پر کام کرنے کی تصدیق کی گئی، بشمول ایپل M1 ARM فن تعمیر پر مبنی۔ معمولی ایڈجسٹمنٹ کے بعد، استحصال دوسرے آپریٹنگ سسٹمز اور کرومیم انجن پر مبنی دوسرے براؤزرز میں بھی قابل عمل ہے۔

معیاری کروم 88 اور Intel Skylake پروسیسرز پر مبنی ماحول میں، موجودہ کروم ٹیب (رینڈرر پروسیس) میں 1 کلو بائٹ فی سیکنڈ کی رفتار سے ویب مواد کی پروسیسنگ کے لیے ذمہ دار عمل سے ڈیٹا کا لیک ہونا ممکن تھا۔ مزید برآں، متبادل پروٹو ٹائپس تیار کی گئی ہیں، مثال کے طور پر، ایک استحصال جو استحکام کو کم کرنے کی قیمت پر، 8 مائیکرو سیکنڈ (5 ملی سیکنڈ) کی درستگی کے ساتھ Performance.now() ٹائمر استعمال کرتے وقت لیک کی شرح کو 0.005kB/s تک بڑھانے کی اجازت دیتا ہے۔ )۔ ایک ایسا ورژن بھی تیار کیا گیا جو ایک ملی سیکنڈ کے ٹائمر کی درستگی کے ساتھ کام کرتا تھا، جسے تقریباً 60 بائٹس فی سیکنڈ کی رفتار سے کسی دوسرے عمل کی میموری تک رسائی کو منظم کرنے کے لیے استعمال کیا جا سکتا تھا۔

شائع شدہ ڈیمو کوڈ تین حصوں پر مشتمل ہے۔ پہلا حصہ CPU ہدایات کے قیاس آرائی کے نتیجے میں پروسیسر کیشے میں باقی ڈیٹا کو بحال کرنے کے لیے درکار کارروائیوں کے عمل کے وقت کا تخمینہ لگانے کے لیے ٹائمر کیلیبریٹ کرتا ہے۔ دوسرا حصہ جاوا اسکرپٹ سرنی کو مختص کرتے وقت استعمال ہونے والی میموری لے آؤٹ کا تعین کرتا ہے۔

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

مجوزہ استحصالی تکنیک کارکردگی.now() API کے ذریعے دستیاب اعلیٰ درستگی والے ٹائمرز کے بغیر، اور SharedArrayBuffer قسم کے تعاون کے بغیر کرنا ممکن بناتی ہے، جو مشترکہ میموری میں ارے بنانے کی اجازت دیتی ہے۔ اس استحصال میں اسپیکٹر گیجٹ شامل ہے، جو کوڈ کے کنٹرول شدہ قیاس آرائی پر عمل درآمد کا سبب بنتا ہے، اور ایک سائیڈ چینل لیک اینالائزر، جو قیاس آرائی کے دوران حاصل کردہ کیشڈ ڈیٹا کا پتہ لگاتا ہے۔

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

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

خطرے کو کم کرنے کے لیے، سائٹ کے مالکان کی حوصلہ افزائی کی جاتی ہے کہ وہ حال ہی میں نافذ کردہ ہیڈرز کراس اوریجن اوپنر پالیسی (COOP)، کراس اوریجن ایمبیڈر پالیسی (COEP)، کراس اوریجن ریسورس پالیسی (CORP)، میٹا ڈیٹا کی درخواست، X-Frame- کو استعمال کریں۔ آپشنز، X -Content-Type-Options اور SameSite Cookie۔ یہ میکانزم حملوں سے براہ راست تحفظ نہیں دیتے ہیں، لیکن یہ آپ کو سائٹ کے ڈیٹا کو رساو سے الگ کرنے کی اجازت دیتے ہیں جس میں حملہ آور کے جاوا اسکرپٹ کوڈ کو عمل میں لایا جا سکتا ہے (لیک موجودہ عمل کی یادداشت سے ہوتا ہے، جو حملہ آور کے کوڈ کے علاوہ ہوتا ہے۔ ، اسی ٹیب میں کھولی گئی دوسری سائٹ سے ڈیٹا پر بھی کارروائی کر سکتا ہے)۔ مرکزی خیال یہ ہے کہ سائٹ کوڈ کے عمل کو مختلف عملوں میں غیر معتبر ذرائع سے موصول ہونے والے فریق ثالث کوڈ سے الگ کیا جائے، مثال کے طور پر، ایک iframe کے ذریعے شامل کیا جائے۔



ماخذ: opennet.ru

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