Mozilla RLBox Library Isolation Technology تي عمل درآمد شروع ڪري ٿو

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

Mozilla ڪمپني منصوبا لينڪس ۾ RLBox استعمال ڪريو فائر فاڪس 74 جي بلڊز ۽ فائر فاڪس 75 جي macOS بلڊز ۾ لائبريري عمل کي الڳ ڪرڻ لاءِ گرافٽ, فونٽ رينجر ڪرڻ لاء ذميوار. بهرحال، RLBox Firefox لاءِ مخصوص نه آهي ۽ استعمال ڪري سگهجي ٿو ڪنهن به لائبريرين کي الڳ ڪرڻ لاءِ صوابديدي منصوبن ۾. ترقيات آر ايل باڪس ڦهلڻ MIT لائسنس جي تحت. RLBox في الحال لينڪس ۽ macOS پليٽ فارمن کي سپورٽ ڪري ٿو، ونڊوز سپورٽ سان بعد ۾ توقع ڪئي وئي.

ميزمزم RLBox جو ڪم هڪ الڳ ٿيل لائبريريءَ جي C/C++ ڪوڊ کي گڏ ڪرڻ لاءِ هيٺ اچي ٿو گھٽ-سطح جي وچولي WebAssembly ڪوڊ ۾، جنهن کي پوءِ WebAssembly ماڊل طور ٺاهيو ويو آهي، جنهن جون اجازتون صرف هن ماڊل جي حوالي سان مقرر ڪيون ويون آهن (مثال طور، هڪ لائبريري. پروسيسنگ اسٽرنگ لاء نيٽ ورڪ ساکٽ يا فائل کولڻ جي قابل نه هوندا). C/C++ ڪوڊ کي WebAssembly ۾ تبديل ڪرڻ استعمال ڪيو ويندو آهي wasi-sdk.

سڌي طرح عمل ڪرڻ لاءِ، WebAssembly ماڊل کي ڪمپيلر استعمال ڪندي مشين ڪوڊ ۾ مرتب ڪيو ويو آهي. لوسٽ ۽ ايپليڪيشن جي باقي ميموري کان الڳ الڳ ”نانوپروسيس“ ۾ هلندي آهي. Lucet compiler ساڳئي ڪوڊ تي ٻڌل آهي جيئن JIT انجڻ ڪرين ليفٽ, WebAssembly کي هلائڻ لاءِ فائر فاڪس ۾ استعمال ڪيو ويو.

گڏ ڪيل ماڊل هڪ الڳ ميموري واري علائقي ۾ هلندي آهي ۽ باقي ايڊريس اسپيس تائين رسائي نه هوندي آهي. جيڪڏهن لئبرريءَ ۾ هڪ ڪمزوريءَ جو استحصال ڪيو وڃي ٿو، حملو ڪندڙ محدود ٿي ويندو ۽ مکيه عمل جي يادگيري وارن علائقن تائين رسائي يا الڳ ٿيل ماحول کان ٻاهر ڪنٽرول منتقل ڪرڻ جي قابل نه هوندو.

Mozilla RLBox Library Isolation Technology تي عمل درآمد شروع ڪري ٿو

ڊولپرز لاء اعلي سطحي معلومات مهيا ڪئي وئي آهي API، جيڪو توهان کي اجازت ڏئي ٿو لائبريري جي ڪمن کي آئسوليشن موڊ ۾ ڪال ڪري. WebAssembly سنڀاليندڙن کي لڳ ڀڳ ڪنهن به اضافي وسيلن جي ضرورت ناهي ۽ انهن سان رابطو عام ڪمن کي سڏڻ کان گهڻو سست ناهي (لائبرري جا ڪم اصل ڪوڊ جي صورت ۾ ڪيا ويندا آهن، ۽ مٿيون قيمتون صرف تڏهن پيدا ٿينديون آهن جڏهن الڳ ٿيل ماحول سان رابطي دوران ڊيٽا کي نقل ڪرڻ ۽ چيڪ ڪرڻ). الڳ ٿيل لائبريري افعال کي سڌو سنئون نه ٿو سڏيو وڃي ۽ استعمال ڪرڻ لازمي آهي
پرت invoke_sandbox_function().

موڙ ۾، جيڪڏهن لائبريري مان خارجي افعال کي ڪال ڪرڻ ضروري آهي، انهن فنڪشن کي واضح طور تي register_callback طريقي سان استعمال ڪيو وڃي (ڊفالٽ طور، RLBox افعال تائين رسائي فراهم ڪري ٿو. معياري لائبريري). ميموري جي حفاظت کي يقيني بڻائڻ لاء، ڪوڊ جي عمل جي اڪيلائي ڪافي نه آهي ۽ واپسي ڊيٽا اسٽريمز کي به جانچڻ جي ضرورت آهي.

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

جو ذريعو: opennet.ru

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