Intel SGX تي حملو حساس ڊيٽا ڪڍڻ يا انڪليو ۾ ڪوڊ تي عمل ڪرڻ لاءِ

پيپلز لبريشن آرمي ڊفينس سائنس اينڊ ٽيڪنالاجي يونيورسٽي، سنگاپور جي نيشنل يونيورسٽي ۽ اي ٽي ايڇ زيورخ جي محققن انٽيل SGX (سافٽ ويئر گارڊ ايڪسٽينشن) تي حملو ڪرڻ جو هڪ نئون طريقو تيار ڪيو آهي. حملي کي SmashEx سڏيو ويندو آهي ۽ انٽيل SGX لاءِ رن ٽائم اجزاء جي آپريشن دوران استثنا جي حالتن کي سنڀالڻ دوران ٻيهر داخلا جي مسئلن جي ڪري پيدا ٿئي ٿو. تجويز ڪيل حملي جو طريقو اهو ممڪن بڻائي ٿو، جيڪڏهن توهان وٽ آپريٽنگ سسٽم تي ڪنٽرول آهي، انڪليو ۾ موجود ڳجهي ڊيٽا کي طئي ڪرڻ، يا توهان جي ڪوڊ جي ڪاپي کي انڪليو جي ميموري ۾ منظم ڪرڻ ۽ ان تي عمل ڪرڻ.

انٽيل SGX SDK (CVE-2021-0186) ۽ Microsoft Open Enclave (CVE-2021-33767) جي بنياد تي رن ٽائم سان گڏ انڪلوز لاءِ استحصال پروٽوٽائپ تيار ڪيا ويا آهن. پهرين صورت ۾، HTTPS لاءِ ويب سرور تي استعمال ٿيل RSA ڪيچ کي ڪڍڻ جي صلاحيت جو مظاهرو ڪيو ويو، ۽ ٻئي ۾، اهو ممڪن هو ته حاصل ڪيل مواد جو تعين ڪرڻ CURL يوٽيليٽي طرفان انڪليو اندر هلندڙ. انٽيل SGX SDK 2.13 ۽ Open Enclave 0.17.1 جي رليز ۾ اڳ ۾ ئي خطرن کي پروگرام طور حل ڪيو ويو آهي. Intel SGX SDK ۽ Microsoft Open Enclave کان علاوه، خطرات گوگل Asylo SDK، EdgelessRT، Apache Teaclave، Rust SGX SDK، SGX-LKL، CoSMIX ۽ Veracruz ۾ پڻ ظاهر ٿئي ٿو.

اچو ته ياد رکون ته SGX (سافٽ ويئر گارڊ ايڪسٽينشن) ٽيڪنالاجي ڇهين نسل جي Intel ڪور پروسيسرز (Skylake) ۾ ظاهر ٿيو ۽ هدايتن جو هڪ سلسلو پيش ڪري ٿو جيڪو صارف جي سطح جي ايپليڪيشنن کي بند ٿيل ميموري علائقن کي مختص ڪرڻ جي اجازت ڏئي ٿو - انڪلوز، جن جو مواد پڙهي نٿو سگهجي ۽ تبديل ٿيل جيتوڻيڪ ڪرنل ۽ ڪوڊ پاران جاري ڪيل ring0، SMM ۽ VMM موڊس ۾. انڪليو ۾ ڪنٽرول کي ڪوڊ ۾ منتقل ڪرڻ ناممڪن آهي روايتي جمپ افعال استعمال ڪندي ۽ رجسٽر ۽ اسٽيڪ سان هيراڦيري - خاص طور تي ٺاهيل نيون هدايتون EENTER، EEXIT ۽ ERESUME استعمال ڪيون وينديون آهن ڪنٽرول کي انڪليو ۾ منتقل ڪرڻ لاءِ، جيڪي اٿارٽي چيڪ ڪندا آهن. ان صورت ۾، انڪليو ۾ رکيل ڪوڊ ڪلاسيڪي ڪالنگ طريقن کي استعمال ڪري سگھي ٿو انڪليو اندر ڪمن تائين رسائي حاصل ڪرڻ لاءِ ۽ خاص ھدايتون ٻاهرين ڪمن کي ڪال ڪرڻ لاءِ. انڪليو ميموري انڪريپشن کي هارڊويئر حملن کان بچائڻ لاءِ استعمال ڪيو ويندو آهي جيئن ته DRAM ماڊل سان ڳنڍڻ.

Intel SGX تي حملو حساس ڊيٽا ڪڍڻ يا انڪليو ۾ ڪوڊ تي عمل ڪرڻ لاءِ

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

Intel SGX تي حملو حساس ڊيٽا ڪڍڻ يا انڪليو ۾ ڪوڊ تي عمل ڪرڻ لاءِ

عام آپريشن لاءِ، SGX ٽيڪنالاجي اجازت ڏئي ٿي ته انڪليو جي عمل کي ترتيب ڏيڻ واري هارڊويئر استثناءَ سان مداخلت ڪئي وڃي. هي فيچر انڪليو رن ٽائم ماحوليات کي اجازت ڏئي ٿو ته انٽرا-انڪليو استثنا هينڊلنگ يا سگنل پروسيسنگ کي لاڳو ڪرڻ لاءِ، پر اهو پڻ ٿي سگهي ٿو ٻيهر داخل ٿيڻ واريون غلطيون. SmashEx حملو SDK ۾ خامين جي استحصال تي مبني آهي جنهن جي ڪري استثنيٰ هينڊلر کي ٻيهر سڏڻ جي صورتحال صحيح طريقي سان نه سنڀالي وئي آهي. اهو ضروري آهي ته ڪمزورين جو استحصال ڪرڻ لاءِ، حملي آور کي لازمي طور تي انڪليو جي عمل کي روڪڻ جي قابل هوندو، يعني. سسٽم ماحول جي آپريشن کي ڪنٽرول ڪرڻ گهرجي.

هڪ استثنا اُڇلائڻ کان پوءِ، حملي آور کي هڪ ننڍڙي ٽائيم ونڊو ملي ٿي جنهن دوران ان پٽ پيرا ميٽرز جي هٿرادو عمل جي سلسلي کي روڪي سگهجي ٿو. خاص طور تي، جيڪڏهن توهان وٽ سسٽم تائين رسائي آهي (انڪليو کان ٻاهر جو ماحول)، توهان انڪليو انٽري انسٽرڪشن (EENTER) تي عمل ڪرڻ کان پوءِ فوري طور تي هڪ نئون استثنا ٺاهي سگهو ٿا، جيڪو سسٽم تي ڪنٽرول واپس ڪندو ان مرحلي تي جڏهن اسٽيڪ سيٽ اپ. انڪلويو اڃا مڪمل نه ٿيو آهي، جنهن ۾ سي پي يو رجسٽرن جي حالت پڻ محفوظ آهي.

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

Intel SGX تي حملو حساس ڊيٽا ڪڍڻ يا انڪليو ۾ ڪوڊ تي عمل ڪرڻ لاءِ
Intel SGX تي حملو حساس ڊيٽا ڪڍڻ يا انڪليو ۾ ڪوڊ تي عمل ڪرڻ لاءِ


جو ذريعو: opennet.ru

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