SGX مالويئر: ڪئين ھلندڙ نئين انٽيل ٽيڪنالاجي کي ٻين مقصدن لاءِ استعمال ڪري رھيا آھن جن لاءِ اھو ارادو ڪيو ويو ھو

جئين توهان کي خبر آهي، انڪوليو ۾ جاري ڪيل ڪوڊ ان جي ڪارڪردگي ۾ سنجيده حد تائين محدود آهي. اهو سسٽم ڪالون نٿو ڪري سگهي. اهو I/O آپريشن نه ٿو ڪري سگهي. اهو ميزبان ايپليڪيشن جي ڪوڊ واري حصي جو بنيادي پتو نٿو ڄاڻي. اهو jmp يا ڪال ميزبان ايپليڪيشن ڪوڊ نٿو ڪري سگهي. ان کي ايڊريس اسپيس ڍانچي جي باري ۾ ڪا به خبر ناهي جيڪا هوسٽ ايپليڪيشن کي سنڀاليندي آهي (مثال طور، ڪهڙا صفحا ميپ ٿيل آهن يا انهن صفحن تي ڪهڙي قسم جي ڊيٽا موجود آهي). اهو آپريٽنگ سسٽم کان پڇي نٿو سگهي ته هوسٽ ايپليڪيشن جي ميموري جو هڪ ٽڪرو نقشو ان ڏانهن (مثال طور، ذريعي /proc/pid/maps). اڻ پڙهيل ڪوششون انڌي طريقي سان پڙهيل ڪوششون هڪ ميزبان ايپليڪيشن جي هڪ صوابديدي ياداشت واري علائقي کي، لکڻ جي ڪوششن جو ذڪر نه ڪرڻ، جلدي يا بعد ۾ (گهڻو ڪري اڳوڻو) انڪليو پروگرام جي جبري ختم ٿيڻ جو سبب بڻجندو. اهو تڏهن ٿئي ٿو جڏهن مجازي ايڊريس اسپيس علائقي جي درخواست ڪئي وئي آهي enclave ميزبان ايپليڪيشن تائين رسائي نه ٿي سگهي.

اهڙين سخت حقيقتن کي نظر ۾ رکندي، ڇا هڪ وائرس ليکڪ پنهنجي بدسلوڪي مقصدن کي حاصل ڪرڻ لاءِ SGX انڪلوز استعمال ڪري سگهندو؟

- پتو لڳائڻ لاءِ هيڪ ڏسو ته ڇا اهي پڙهي سگهجن ٿا
- تحرير جي صلاحيت لاءِ ايڊريس جي جاچ ڪرڻ لاءِ هيڪ
- هيڪ ڪنٽرول وهڪري کي ريڊائريڪٽ ڪرڻ لاء
- مٿي ڏنل ٽي هيڪس ولن کي ڇا ڏيندا آهن؟
- ڪيئن ولن اهي هيڪس استعمال ڪري ٿو رنزواري ٺاهڻ لاءِ

SGX مالويئر: ڪئين ھلندڙ نئين انٽيل ٽيڪنالاجي کي ٻين مقصدن لاءِ استعمال ڪري رھيا آھن جن لاءِ اھو ارادو ڪيو ويو ھو

مٿين سڀني جي بنياد تي، اهو عام طور تي قبول ڪيو ويو آهي ته انڪليو صرف ميزبان جي درخواست جي خدمت ڪرڻ جي قابل آهي، ۽ اهو انڪليو پنهنجي شروعات کي استعمال نٿو ڪري سگهي، بشمول بدڪاري وارا. هن جو مطلب آهي ته انڪلوز وائرس ليکڪن لاءِ عملي قدر نه آهن. هي جلدي مفروضو هڪ سبب آهي ڇو ته SGX تحفظ غير متناسب آهي: هوسٽ ايپليڪيشن ڪوڊ انڪليو ميموري تائين رسائي نٿو ڪري سگهي، جڏهن ته انڪليو ڪوڊ ڪنهن به ميزبان ايپليڪيشن ميموري ايڊريس تي پڙهي ۽ لکي سگهي ٿو.

تنهن ڪري، جيڪڏهن بدسلوڪي انڪليو ڪوڊ هوسٽ ايپليڪيشن جي طرفان ثالثي سسٽم ڪالون ڪرڻ جي قابل هوندو هو، پنهنجي طرفان ثالثي ڪوڊ تي عمل ڪرڻ، ميزبان ايپليڪيشن جي ميموري کي اسڪين ڪرڻ ۽ ان ۾ غلط ROP زنجير ڳولڻ جي قابل هوندو هو، اهو ميزبان ايپليڪيشن جي مڪمل ڪنٽرول تي قبضو ڪري سگهي ٿو. چوري موڊ. اهو نه صرف چوري ڪري سگهي ٿو ۽ صارف فائلن کي انڪرپٽ ڪري سگهي ٿو، پر صارف جي طرفان ڪم پڻ ڪري سگهي ٿو. مثال طور، هن جي طرفان فشنگ اي ميلون موڪليو يا DoS حملن کي منظم ڪريو. جديد حفاظتي ميکانيزم جي خوف کان سواءِ، جهڙوڪ اسٽيڪ ڪنريز ۽ ايڊريس صفائي.

اسان توهان کي ڪجهه هيڪس ڏيکارينداسين جيڪي حملي ڪندڙ مٿي بيان ڪيل حدن کي پار ڪرڻ لاءِ استعمال ڪندا آهن SGX جو فائدو وٺڻ لاءِ انهن جي پنهنجي بدنصيبي لاءِ: ROP حملا. يا ته ھوسٽ ايپليڪيشن جي عمل جي روپ ۾ اختصار واري ڪوڊ تي عمل ڪرڻ لاءِ (جھڙي پروسيس کي کولڻ، جيڪو اڪثر مالويئر پاران استعمال ڪيو ويندو آھي)، يا تيار ٿيل مالويئر کي لڪائڻ لاءِ (ان جي مالويئر کي اينٽي وائرسز ۽ ٻين دفاعي ميڪانيزم جي ظلم کان بچائڻ لاءِ).

هيڪ جاچ پتا لاءِ ڏسو ته ڇا اهي پڙهي سگهجن ٿا

جيئن ته انڪليو کي خبر ناهي ته ورچوئل ايڊريس اسپيس جون ڪهڙيون حدون ميزبان ايپليڪيشن تائين پهچن ٿيون، ۽ ڇاڪاڻ ته انڪليو کي ختم ڪرڻ تي مجبور ڪيو ويندو آهي جڏهن هڪ ناقابل رسائي ايڊريس پڙهڻ جي ڪوشش ڪئي ويندي آهي، حملي ڪندڙ کي غلطي جو رستو ڳولڻ جي ڪم سان منهن ڏيڻو پوندو آهي. برداشت سان ايڊريس اسپيس کي اسڪين ڪيو. دستياب ورچوئل ايڊريس نقشي لاءِ رستو ڳولھيو. ھلندڙ ھن مسئلي کي حل ڪري ٿو Intel جي TSX ٽيڪنالاجي کي غلط استعمال ڪندي. TSX جي ضمني اثرات مان ھڪڙو استعمال ڪري ٿو: جيڪڏھن ميموري رسائي جي فنڪشن کي TSX ٽرانزيڪشن ۾ رکيل آھي، پوء غلط ايڊريس تائين رسائي کان پيدا ٿيندڙ استثنا TSX پاران آپريٽنگ سسٽم تائين پھچڻ کان سواء دٻايو ويندو آھي. جيڪڏهن هڪ غلط ياداشت جي ايڊريس تائين رسائي حاصل ڪرڻ جي ڪوشش ڪئي وئي آهي، صرف موجوده ٽرانزيڪشن کي ختم ڪيو ويندو آهي، نه سڄي انڪليو پروگرام. اهو. TSX هڪ انڪليو کي اجازت ڏئي ٿو ته محفوظ طور تي ڪنهن به ايڊريس تائين رسائي جي ٽرانزيڪشن جي اندر - ختم ٿيڻ جي خطري کان سواءِ.

ته ڄاڻايل ايڊريس موجود آهي ميزبان ايپليڪيشن، TSX ٽرانزيڪشن اڪثر ڪري ڪامياب آهي. نادر ڪيسن ۾، اهو خارجي اثرن جي ڪري ناڪام ٿي سگھي ٿو جهڙوڪ مداخلت (جهڙوڪ شيڊولر مداخلت)، ڪيش بي دخل ڪرڻ، يا ڪيترن ئي عملن جي ذريعي ميموري جي جڳهه جي هڪ ئي وقت ۾ تبديلي. انهن ناياب ڪيسن ۾، TSX هڪ غلطي ڪوڊ واپس ڪري ٿو جيڪو ظاهر ڪري ٿو ته ناڪامي عارضي آهي. انهن حالتن ۾، توهان کي صرف ٽرانزيڪشن کي ٻيهر شروع ڪرڻ جي ضرورت آهي.

ته ڄاڻايل ايڊريس دستياب ناهي ميزبان ايپليڪيشن، TSX استثنا کي دٻائي ٿو جيڪو واقع ٿيو (OS کي اطلاع نه ڏنو ويو آهي) ۽ ٽرانزيڪشن کي ختم ڪري ٿو. هڪ غلطي ڪوڊ انڪليو ڪوڊ ڏانهن واپس ڪيو ويو آهي ته جيئن اهو حقيقت تي رد عمل ڪري سگهي ٿو ته ٽرانزيڪشن کي منسوخ ڪيو ويو آهي. اهي غلطي ڪوڊ ظاهر ڪن ٿا ته سوال ۾ پتو ميزبان ايپليڪيشن لاء دستياب ناهي.

SGX مالويئر: ڪئين ھلندڙ نئين انٽيل ٽيڪنالاجي کي ٻين مقصدن لاءِ استعمال ڪري رھيا آھن جن لاءِ اھو ارادو ڪيو ويو ھو

SGX مالويئر: ڪئين ھلندڙ نئين انٽيل ٽيڪنالاجي کي ٻين مقصدن لاءِ استعمال ڪري رھيا آھن جن لاءِ اھو ارادو ڪيو ويو ھو

TSX جو هي هٿرادو انڪليو جي اندر کان ولن لاءِ هڪ سٺي خاصيت آهي: ڇاڪاڻ ته اڪثر هارڊويئر پرفارمنس ڪائونٽر ان وقت اپ ڊيٽ نه ڪيا ويا آهن جڏهن انڪليو ڪوڊ تي عمل ڪيو ويندو آهي، انڪري اهو ناممڪن آهي ته TSX ٽرانزيڪشن کي ٽريڪ ڪرڻ انڪليو جي اندر تي عمل ڪيو وڃي. اهڙيء طرح، TSX جي بدسلوڪي ورهاڱي آپريٽنگ سسٽم تائين مڪمل طور تي پوشيده رهي ٿي.

اضافي طور تي، جيئن ته مٿيون هيڪ ڪنهن به سسٽم ڪالن تي ڀروسو نٿو ڪري، ان کي نه ئي ڳولي سگهجي ٿو ۽ نه ئي روڪي سگهجي ٿو صرف سسٽم ڪالن کي بلاڪ ڪرڻ سان؛ جيڪو عام طور تي هيرن جي شڪار جي خلاف جنگ ۾ مثبت نتيجو ڏئي ٿو.

ولن مٿي بيان ڪيل هيڪ استعمال ڪري ٿو ميزبان ايپليڪيشن ڪوڊ کي ڳولڻ لاءِ گيجٽس لاءِ مناسب ROP زنجير ٺاهڻ لاءِ. ساڳئي وقت، هن کي هر پتو جي تحقيق ڪرڻ جي ضرورت ناهي. ورچوئل ايڊريس اسپيس جي هر صفحي مان هڪ ايڊريس جي جاچ ڪرڻ ڪافي آهي. ميموري جي سڀني 16 گيگا بائيٽ جي تحقيق ڪرڻ ۾ لڳ ڀڳ 45 منٽ لڳن ٿا (هڪ Intel i7-6700K تي). نتيجي طور، ولن کي قابل عمل صفحن جي هڪ فهرست ملي ٿي جيڪي ROP زنجير جي تعمير لاءِ موزون آهن.

تحرير جي صلاحيت لاءِ پتي جي جاچ لاءِ هيڪ

ROP حملي جي هڪ انڪليو ورزن کي انجام ڏيڻ لاءِ، هڪ حملي آور کي ميزباني جي ايپليڪيشن جي لکڻ لائق غير استعمال ٿيل ميموري وارن علائقن کي ڳولڻ جي قابل هوندو. حملو ڪندڙ انهن ميموري جڳهن کي استعمال ڪري ٿو هڪ جعلي اسٽيڪ فريم کي انجڻ ۽ هڪ پيل لوڊ (شيل ڪوڊ) انجڻ ڪرڻ لاءِ. هيٺئين لائن اها آهي ته هڪ بدسلوڪي انڪليو پنهنجي لاءِ ميموري مختص ڪرڻ لاءِ هوسٽ ايپليڪيشن کي گهربل نه آهي، پر ان جي بدران هوسٽ ايپليڪيشن پاران مختص ڪيل ياداشت کي غلط استعمال ڪري سگهي ٿو. جيڪڏهن، يقينا، هو اهڙين علائقن کي ڳولڻ جو انتظام ڪري ٿو، بغير ختم ڪرڻ کان سواء.

ولن هن ڳولا کي TSX جي هڪ ٻئي طرفي اثر جو استحصال ڪندي ڪندي. پھريائين، جيئن پوئين صورت ۾، اھو پتو جانچي ٿو ان جي وجود لاءِ، ۽ پوءِ چيڪ ڪري ٿو ته ڇا ھن پتي سان لاڳاپيل صفحو لکڻ لائق آھي. هن کي ڪرڻ لاءِ، ولن هيٺ ڏنل هيڪ استعمال ڪري ٿو: هو TSX ٽرانزيڪشن ۾ لکڻ جي فنڪشن رکي ٿو، ۽ ان جي مڪمل ٿيڻ کان پوءِ، پر ان کان اڳ مڪمل ٿي چڪو آهي، هو زبردستي ٽرانزيڪشن کي ختم ڪري ٿو (واضح طور تي ختم ڪرڻ).

TSX ٽرانزيڪشن مان موٽڻ واري ڪوڊ کي ڏسڻ سان، حملو ڪندڙ سمجهي ٿو ته ڇا اهو لکڻ جي قابل آهي. جيڪڏهن اهو هڪ "واضح اسقاط حمل" آهي، ولن سمجهي ٿو ته رڪارڊنگ ڪامياب ٿئي ها جيڪڏهن هو ان جي پيروي ڪري ها. جيڪڏهن صفحو صرف پڙهڻ لاءِ آهي، ته پوءِ ٽرانزيڪشن ”واضح ابتڙ“ کان سواءِ ڪنهن غلطي سان ختم ٿئي ٿي.

SGX مالويئر: ڪئين ھلندڙ نئين انٽيل ٽيڪنالاجي کي ٻين مقصدن لاءِ استعمال ڪري رھيا آھن جن لاءِ اھو ارادو ڪيو ويو ھو

TSX جي هن ڦيرڦار ۾ هڪ ٻي خاصيت آهي جيڪا ولن لاءِ سٺي آهي (هارڊويئر پرفارمنس ڳڻپيندڙن ذريعي ٽريڪ ڪرڻ جي ناممڪنات کان علاوه): ڇاڪاڻ ته سڀئي ميموري لکڻ وارا ڪم صرف ان صورت ۾ ڪيا ويندا آهن جڏهن ٽرانزيڪشن ڪامياب آهي، ٽرانزيڪشن کي مڪمل ڪرڻ تي مجبور ڪرڻ کي يقيني بڻائي ٿو ته جاچ ٿيل ميموري. سيل باقي رهي ٿو.

هيڪ ڪنٽرول وهڪري کي ريڊائريڪٽ ڪرڻ لاء

جڏهن هڪ آر او پي حملي کي انجام ڏئي رهيو آهي هڪ انڪليو کان - روايتي ROP حملن جي برعڪس - حملو ڪندڙ حملو ٿيل پروگرام ۾ ڪنهن به بگ جي استحصال ڪرڻ کان سواءِ RIP رجسٽر تي ڪنٽرول حاصل ڪري سگهي ٿو (بفر اوور فلو يا انهي وانگر ڪجهه). هڪ حملو ڪندڙ اسٽيڪ تي محفوظ ڪيل RIP رجسٽر جي قيمت کي سڌو ڪري سگهي ٿو. خاص طور تي، اهو هن رجسٽر جي قيمت کي پنهنجي ROP زنجير سان تبديل ڪري سگهي ٿو.

بهرحال، جيڪڏهن ROP جو سلسلو ڊگهو آهي، ته پوءِ ميزبان ايپليڪيشن جي اسٽيڪ جي هڪ وڏي حصي کي ختم ڪرڻ سان ڊيٽا ڪرپشن ۽ غير متوقع پروگرام جي رويي جي ڪري ٿي سگھي ٿي. بدمعاش، جيڪو ڳجهي نموني پنهنجو حملو ڪرڻ چاهي ٿو، سو هن صورتحال مان مطمئن نه آهي. تنهن ڪري، اهو پاڻ لاء هڪ جعلي عارضي اسٽيڪ فريم ٺاهي ٿو ۽ ان ۾ پنهنجي ROP زنجير کي ذخيرو ڪري ٿو. جعلي اسٽيڪ فريم رکيل آهي بي ترتيب لکڻ جي قابل ميموري جي جڳهه تي، حقيقي اسٽيڪ کي برقرار رکندي.

SGX مالويئر: ڪئين ھلندڙ نئين انٽيل ٽيڪنالاجي کي ٻين مقصدن لاءِ استعمال ڪري رھيا آھن جن لاءِ اھو ارادو ڪيو ويو ھو

مٿي ڏنل ٽي هيڪس ولن کي ڇا ڏيندا آهن؟

(1) پهريون، بدسلوڪي انڪليو ذريعي هيڪ جاچ پتا لاءِ ڏسو ته ڇا اهي پڙهي سگهجن ٿا, - بدسلوڪي ROP گيجٽس لاءِ ميزبان ايپليڪيشن ڳولهي ٿو.

SGX مالويئر: ڪئين ھلندڙ نئين انٽيل ٽيڪنالاجي کي ٻين مقصدن لاءِ استعمال ڪري رھيا آھن جن لاءِ اھو ارادو ڪيو ويو ھو

(2) پوءِ لکڻ جي صلاحيت لاءِ پتي جي جاچ لاءِ هيڪ, - هڪ بدسلوڪي انڪليو ميزبان ايپليڪيشن جي ياداشت ۾ علائقن جي نشاندهي ڪري ٿو جيڪي هڪ پيل لوڊ انجڻ لاءِ موزون آهن.

SGX مالويئر: ڪئين ھلندڙ نئين انٽيل ٽيڪنالاجي کي ٻين مقصدن لاءِ استعمال ڪري رھيا آھن جن لاءِ اھو ارادو ڪيو ويو ھو

(3) اڳيون، انڪليو قدم (1) ۾ دريافت ڪيل گيجٽ مان هڪ ROP زنجير ٺاهي ٿو ۽ هن زنجير کي ميزبان ايپليڪيشن اسٽيڪ ۾ داخل ڪري ٿو.

SGX مالويئر: ڪئين ھلندڙ نئين انٽيل ٽيڪنالاجي کي ٻين مقصدن لاءِ استعمال ڪري رھيا آھن جن لاءِ اھو ارادو ڪيو ويو ھو

(4) آخرڪار، جڏهن ميزبان ايپليڪيشن اڳئين قدم ۾ ٺاهيل ROP زنجير سان منهن ڏئي ٿي، خراب پيل لوڊ عمل ڪرڻ شروع ٿئي ٿو - ميزبان ايپليڪيشن جي استحقاق ۽ سسٽم ڪال ڪرڻ جي صلاحيت سان.

ڪيئن هڪ ولن اهي هيڪس استعمال ڪري رنزواري ٺاهڻ لاءِ

ميزبان ايپليڪيشن کان پوءِ ECALLs مان هڪ ذريعي ڪنٽرول کي انڪليو ڏانهن منتقل ڪري ٿو (بغير شڪ جي ته هي انڪليو خراب آهي)، خراب ڪندڙ انڪليو ميزبان ايپليڪيشن جي ياداشت ۾ انجيڪشن ڪوڊ لاءِ خالي جاءِ ڳوليندو آهي (فري اسپيس جي طور تي کڻندي آهي انهن سيلن جي ترتيبن کي. جيڪو صفر سان ڀريل آهي). پوء ذريعي هيڪ جاچ پتا لاءِ ڏسو ته ڇا اهي پڙهي سگهجن ٿا, - انڪليو ميزبان ايپليڪيشن ۾ قابل عمل صفحن جي ڳولا ڪري ٿو ۽ هڪ ROP زنجير ٺاهي ٿو جيڪا موجوده ڊاريڪٽري ۾ "RANSOM" نالي هڪ نئين فائل ٺاهي ٿي (حقيقي حملي ۾، انڪليو موجود صارف فائلن کي انڪرپٽ ڪري ٿو) ۽ هڪ تاوان جو پيغام ڏيکاري ٿو. ساڳي ئي وقت، ميزبان ايپليڪيشن بيحد يقين رکي ٿي ته انڪليو صرف ٻه نمبر شامل ڪري رهيو آهي. هي ڪوڊ ۾ ڇا نظر اچي ٿو؟

سمجهه جي آسانيءَ لاءِ، اچو ته وصفن ذريعي ڪجهه يادگيريون متعارف ڪرايون:

SGX مالويئر: ڪئين ھلندڙ نئين انٽيل ٽيڪنالاجي کي ٻين مقصدن لاءِ استعمال ڪري رھيا آھن جن لاءِ اھو ارادو ڪيو ويو ھو

اسان RSP ۽ RBP رجسٽرن جي اصل قدرن کي محفوظ ڪريون ٿا ته جيئن پيلي لوڊ تي عمل ڪرڻ کان پوءِ ميزبان ايپليڪيشن جي عام آپريشن کي بحال ڪيو وڃي:

SGX مالويئر: ڪئين ھلندڙ نئين انٽيل ٽيڪنالاجي کي ٻين مقصدن لاءِ استعمال ڪري رھيا آھن جن لاءِ اھو ارادو ڪيو ويو ھو

اسان هڪ مناسب اسٽيڪ فريم ڳولي رهيا آهيون (ڏسو سيڪشن مان ڪوڊ ”هيڪ فار ريڊائريڪٽنگ ڪنٽرول فلو“).

مناسب ROP گيجٽ ڳولڻ:

SGX مالويئر: ڪئين ھلندڙ نئين انٽيل ٽيڪنالاجي کي ٻين مقصدن لاءِ استعمال ڪري رھيا آھن جن لاءِ اھو ارادو ڪيو ويو ھو

پيلي لوڊ ڪرڻ لاءِ جڳھ ڳولھيو:

SGX مالويئر: ڪئين ھلندڙ نئين انٽيل ٽيڪنالاجي کي ٻين مقصدن لاءِ استعمال ڪري رھيا آھن جن لاءِ اھو ارادو ڪيو ويو ھو

اسان هڪ ROP زنجير ٺاهي رهيا آهيون:

SGX مالويئر: ڪئين ھلندڙ نئين انٽيل ٽيڪنالاجي کي ٻين مقصدن لاءِ استعمال ڪري رھيا آھن جن لاءِ اھو ارادو ڪيو ويو ھو

اهو ڪيئن آهي Intel جي SGX ٽيڪنالاجي، بدسلوڪي پروگرامن کي منهن ڏيڻ لاءِ ٺهيل آهي، مخالف مقصدن حاصل ڪرڻ لاءِ ولن پاران استحصال ڪيو وڃي ٿو.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو