ایس جی ایکس میلویئر: کس طرح ولن نئی انٹیل ٹکنالوجی کا استحصال کر رہے ہیں ان مقاصد کے علاوہ جن کے لیے اس کا مقصد تھا

جیسا کہ آپ جانتے ہیں، انکلیو میں نافذ کردہ کوڈ اپنی فعالیت میں سنجیدگی سے محدود ہے۔ یہ سسٹم کالز نہیں کر سکتا۔ یہ I/O آپریشن نہیں کر سکتا۔ یہ میزبان ایپلیکیشن کے کوڈ سیگمنٹ کا بنیادی پتہ نہیں جانتا ہے۔ یہ jmp یا میزبان ایپلیکیشن کوڈ کو کال نہیں کر سکتا۔ اسے ایڈریس اسپیس کے ڈھانچے کے بارے میں کوئی اندازہ نہیں ہے جو میزبان ایپلیکیشن کو کنٹرول کرتا ہے (مثال کے طور پر، کون سے صفحات میپ کیے گئے ہیں یا ان صفحات پر کس قسم کا ڈیٹا موجود ہے)۔ یہ آپریٹنگ سسٹم سے میزبان ایپلی کیشن کی میموری کے کسی ٹکڑے کو اس پر نقشہ بنانے کے لیے نہیں کہہ سکتا (مثال کے طور پر، /proc/pid/maps کے ذریعے)۔ ہوسٹ ایپلی کیشن کے صوابدیدی میموری والے علاقے کو آنکھیں بند کرکے پڑھنے کی سادہ لوح کوششیں، لکھنے کی کوششوں کا ذکر نہ کرنا، جلد یا بدیر (زیادہ تر ممکنہ طور پر سابقہ) انکلیو پروگرام کو جبری طور پر ختم کرنے کا باعث بنے گی۔ ایسا اس وقت ہوتا ہے جب انکلیو کے ذریعہ درخواست کردہ ورچوئل ایڈریس اسپیس ریجن میزبان ایپلیکیشن کے لیے ناقابل رسائی ہو۔

ایسی تلخ حقیقتوں کو دیکھتے ہوئے، کیا وائرس لکھنے والا اپنے بدنیتی پر مبنی اہداف کے حصول کے لیے SGX انکلیو کا استعمال کر سکے گا؟

- پتے کی جانچ کرنے کے لیے ہیک یہ دیکھنے کے لیے کہ آیا وہ پڑھے جا سکتے ہیں۔
- لکھنے کی اہلیت کے لئے پتے کی جانچ کرنے کے لئے ہیک کریں۔
- کنٹرول کے بہاؤ کو ری ڈائریکٹ کرنے کے لیے ہیک
- اوپر درج تین ہیکس ولن کو کیا دیتے ہیں؟
- کس طرح ولن ان ہیکس کو رینزمواری بنانے کے لیے استعمال کرتا ہے۔

ایس جی ایکس میلویئر: کس طرح ولن نئی انٹیل ٹکنالوجی کا استحصال کر رہے ہیں ان مقاصد کے علاوہ جن کے لیے اس کا مقصد تھا

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

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

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

پتے کی جانچ پڑتال کے لیے ہیک یہ دیکھنے کے لیے کہ آیا وہ پڑھے جا سکتے ہیں۔

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

اگر مخصوص ایڈریس دستیاب ہے میزبان ایپلی کیشن، TSX ٹرانزیکشن اکثر کامیاب ہوتا ہے۔ شاذ و نادر صورتوں میں، یہ بیرونی اثرات کی وجہ سے ناکام ہو سکتا ہے جیسے کہ انٹرپٹس (جیسے شیڈیولر انٹرپٹس)، کیشے کا اخراج، یا ایک سے زیادہ عمل کے ذریعے میموری کی جگہ کی بیک وقت تبدیلی۔ ان شاذ و نادر صورتوں میں، TSX ایک ایرر کوڈ واپس کرتا ہے جس سے ظاہر ہوتا ہے کہ ناکامی عارضی ہے۔ ان صورتوں میں، آپ کو صرف لین دین کو دوبارہ شروع کرنے کی ضرورت ہے۔

اگر مخصوص ایڈریس دستیاب نہیں ہے۔ میزبان ایپلی کیشن، TSX اس استثناء کو دباتا ہے جو پیش آیا تھا (OS کو مطلع نہیں کیا گیا ہے) اور لین دین کو ختم کر دیتا ہے۔ انکلیو کوڈ پر ایک ایرر کوڈ واپس کر دیا جاتا ہے تاکہ یہ اس حقیقت پر ردعمل ظاہر کر سکے کہ لین دین منسوخ ہو گیا ہے۔ یہ ایرر کوڈز بتاتے ہیں کہ زیر بحث ایڈریس میزبان ایپلیکیشن کے لیے دستیاب نہیں ہے۔

ایس جی ایکس میلویئر: کس طرح ولن نئی انٹیل ٹکنالوجی کا استحصال کر رہے ہیں ان مقاصد کے علاوہ جن کے لیے اس کا مقصد تھا

ایس جی ایکس میلویئر: کس طرح ولن نئی انٹیل ٹکنالوجی کا استحصال کر رہے ہیں ان مقاصد کے علاوہ جن کے لیے اس کا مقصد تھا

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

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

ولن اوپر بیان کردہ ہیک کو ROP چین بنانے کے لیے موزوں گیجٹس کے لیے میزبان ایپلیکیشن کوڈ کو تلاش کرنے کے لیے استعمال کرتا ہے۔ ایک ہی وقت میں، اسے ہر پتے کی تحقیقات کی ضرورت نہیں ہے. ورچوئل ایڈریس اسپیس کے ہر صفحے سے ایک ایڈریس کی چھان بین کرنا کافی ہے۔ تمام 16 گیگا بائٹس میموری کی جانچ کرنے میں تقریباً 45 منٹ لگتے ہیں (انٹیل i7-6700K پر)۔ نتیجے کے طور پر، ولن کو قابل عمل صفحات کی فہرست موصول ہوتی ہے جو ROP چین کی تعمیر کے لیے موزوں ہیں۔

لکھنے کی صلاحیت کے لئے پتوں کی جانچ کے لئے ہیک

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

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

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

ایس جی ایکس میلویئر: کس طرح ولن نئی انٹیل ٹکنالوجی کا استحصال کر رہے ہیں ان مقاصد کے علاوہ جن کے لیے اس کا مقصد تھا

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

کنٹرول کے بہاؤ کو ری ڈائریکٹ کرنے کے لیے ہیک کریں۔

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

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

ایس جی ایکس میلویئر: کس طرح ولن نئی انٹیل ٹکنالوجی کا استحصال کر رہے ہیں ان مقاصد کے علاوہ جن کے لیے اس کا مقصد تھا

اوپر درج تین ہیکس ولن کو کیا دیتے ہیں؟

(1) سب سے پہلے، بدنیتی پر مبنی انکلیو کے ذریعے یہ دیکھنے کے لیے کہ آیا وہ پڑھے جا سکتے ہیں۔, - قابل استعمال ROP گیجٹس کے لیے میزبان ایپلیکیشن کو تلاش کرتا ہے۔

ایس جی ایکس میلویئر: کس طرح ولن نئی انٹیل ٹکنالوجی کا استحصال کر رہے ہیں ان مقاصد کے علاوہ جن کے لیے اس کا مقصد تھا

(2) پھر بذریعہ لکھنے کی صلاحیت کے لئے پتوں کی جانچ کے لئے ہیک, – ایک بدنیتی پر مبنی انکلیو میزبان ایپلی کیشن کی میموری میں ان علاقوں کی نشاندہی کرتا ہے جو پے لوڈ لگانے کے لیے موزوں ہیں۔

ایس جی ایکس میلویئر: کس طرح ولن نئی انٹیل ٹکنالوجی کا استحصال کر رہے ہیں ان مقاصد کے علاوہ جن کے لیے اس کا مقصد تھا

(3) اگلا، انکلیو مرحلہ (1) میں دریافت کردہ گیجٹس سے ایک ROP چین بناتا ہے اور اس سلسلہ کو میزبان ایپلیکیشن اسٹیک میں داخل کرتا ہے۔

ایس جی ایکس میلویئر: کس طرح ولن نئی انٹیل ٹکنالوجی کا استحصال کر رہے ہیں ان مقاصد کے علاوہ جن کے لیے اس کا مقصد تھا

(4) آخر میں، جب میزبان ایپلیکیشن کا سامنا پچھلے مرحلے میں بنائے گئے ROP چین سے ہوتا ہے، نقصان دہ پے لوڈ پر عمل درآمد شروع ہو جاتا ہے - میزبان ایپلیکیشن کے مراعات اور سسٹم کال کرنے کی صلاحیت کے ساتھ۔

کس طرح ایک ولن ان ہیکس کو رنزواری بنانے کے لیے استعمال کرتا ہے۔

میزبان ایپلیکیشن ECALLs میں سے کسی ایک کے ذریعے کنٹرول کو انکلیو میں منتقل کرنے کے بعد (بغیر کسی شبہ کے کہ یہ انکلیو بدنیتی پر مبنی ہے)، بدنیتی پر مبنی انکلیو میزبان ایپلی کیشن کی یاد میں انجیکشن کوڈ کے لیے خالی جگہ تلاش کرتا ہے (خلیوں کی ان ترتیبوں کو خالی جگہ کے طور پر لے کر۔ جو صفر سے بھرا ہوا ہے)۔ پھر کے ذریعے یہ دیکھنے کے لیے کہ آیا وہ پڑھے جا سکتے ہیں۔, - انکلیو میزبان ایپلی کیشن میں قابل عمل صفحات کی تلاش کرتا ہے اور ایک ROP چین تیار کرتا ہے جو موجودہ ڈائریکٹری میں "RANSOM" کے نام سے ایک نئی فائل بناتا ہے (حقیقی حملے میں، انکلیو موجودہ صارف فائلوں کو خفیہ کرتا ہے) اور تاوان کا پیغام دکھاتا ہے۔ ایک ہی وقت میں، میزبان ایپلیکیشن کا خیال ہے کہ انکلیو صرف دو نمبروں کا اضافہ کر رہا ہے۔ یہ کوڈ میں کیسا لگتا ہے؟

ادراک میں آسانی کے لیے، آئیے تعریفوں کے ذریعے کچھ یادداشتوں کا تعارف کراتے ہیں:

ایس جی ایکس میلویئر: کس طرح ولن نئی انٹیل ٹکنالوجی کا استحصال کر رہے ہیں ان مقاصد کے علاوہ جن کے لیے اس کا مقصد تھا

ہم RSP اور RBP رجسٹروں کی اصل اقدار کو محفوظ کرتے ہیں تاکہ پے لوڈ کو انجام دینے کے بعد میزبان ایپلیکیشن کے معمول کے آپریشن کو بحال کیا جا سکے۔

ایس جی ایکس میلویئر: کس طرح ولن نئی انٹیل ٹکنالوجی کا استحصال کر رہے ہیں ان مقاصد کے علاوہ جن کے لیے اس کا مقصد تھا

ہم ایک مناسب اسٹیک فریم کی تلاش کر رہے ہیں ("کنٹرول فلو کو ری ڈائریکٹ کرنے کے لیے ہیک" سیکشن کا کوڈ دیکھیں)۔

مناسب ROP گیجٹ تلاش کرنا:

ایس جی ایکس میلویئر: کس طرح ولن نئی انٹیل ٹکنالوجی کا استحصال کر رہے ہیں ان مقاصد کے علاوہ جن کے لیے اس کا مقصد تھا

پے لوڈ لگانے کے لیے جگہ تلاش کرنا:

ایس جی ایکس میلویئر: کس طرح ولن نئی انٹیل ٹکنالوجی کا استحصال کر رہے ہیں ان مقاصد کے علاوہ جن کے لیے اس کا مقصد تھا

ہم ایک ROP چین بناتے ہیں:

ایس جی ایکس میلویئر: کس طرح ولن نئی انٹیل ٹکنالوجی کا استحصال کر رہے ہیں ان مقاصد کے علاوہ جن کے لیے اس کا مقصد تھا

اس طرح سے Intel کی SGX ٹیکنالوجی، جو بدنیتی پر مبنی پروگراموں کا مقابلہ کرنے کے لیے بنائی گئی ہے، کو مخالف مقاصد کے حصول کے لیے ولن استعمال کرتے ہیں۔

ماخذ: www.habr.com

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