موزیلا نے RLBox لائبریری آئسولیشن ٹیکنالوجی کا نفاذ شروع کر دیا۔

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

موزیلا کمپنی منصوبے لائبریری کے عمل کو الگ کرنے کے لیے فائر فاکس 74 کی لینکس بلڈز اور فائر فاکس 75 کی میکوس بلڈز میں RLBox کا استعمال کریں گریفائٹ، فونٹس رینڈرنگ کے لئے ذمہ دار ہے۔ تاہم، RLBox Firefox کے لیے مخصوص نہیں ہے اور اسے صوابدیدی منصوبوں میں کسی بھی لائبریری کو الگ تھلگ کرنے کے لیے استعمال کیا جا سکتا ہے۔ ترقیات آر ایل باکس۔ پھیلاؤ MIT لائسنس کے تحت. RLBox فی الحال لینکس اور macOS پلیٹ فارم کو سپورٹ کرتا ہے، ونڈوز سپورٹ کے ساتھ بعد میں متوقع ہے۔

میکانزم RLBox کا کام ایک الگ تھلگ لائبریری کے C/C++ کوڈ کو نچلے درجے کے انٹرمیڈیٹ WebAssembly کوڈ میں مرتب کرنے پر آتا ہے، جسے پھر WebAssembly ماڈیول کے طور پر ڈیزائن کیا جاتا ہے، جس کی اجازتیں صرف اس ماڈیول (مثال کے طور پر، لائبریری) کے سلسلے میں مقرر کی جاتی ہیں۔ پروسیسنگ سٹرنگز کے لیے نیٹ ورک ساکٹ یا فائل نہیں کھول سکے گا)۔ C/C++ کوڈ کو WebAssembly میں تبدیل کرنا استعمال کرتے ہوئے کیا جاتا ہے۔ wasi-sdk.

براہ راست عمل درآمد کے لیے، WebAssembly ماڈیول کو کمپائلر کا استعمال کرتے ہوئے مشین کوڈ میں مرتب کیا جاتا ہے۔ لوسیٹ اور ایپلیکیشن کی بقیہ میموری سے الگ تھلگ ایک الگ "نینو پروسیس" میں چلتا ہے۔ لوسیٹ کمپائلر اسی کوڈ پر مبنی ہے جس پر جے آئی ٹی انجن ہے۔ کرینیلٹ، Firefox میں WebAssembly کو چلانے کے لیے استعمال کیا جاتا ہے۔

اسمبل شدہ ماڈیول ایک الگ میموری ایریا میں کام کرتا ہے اور اسے ایڈریس کی باقی جگہ تک رسائی نہیں ہے۔ اگر لائبریری میں کسی کمزوری کا فائدہ اٹھایا جاتا ہے، حملہ آور محدود ہو جائے گا اور مرکزی عمل کے میموری علاقوں تک رسائی یا الگ تھلگ ماحول سے باہر کنٹرول منتقل کرنے کے قابل نہیں ہو گا۔

موزیلا نے RLBox لائبریری آئسولیشن ٹیکنالوجی کا نفاذ شروع کر دیا۔

ڈویلپرز کے لیے اعلیٰ سطح کی معلومات فراہم کی جاتی ہیں۔ API، جو آپ کو لائبریری کے فنکشنز کو آئسولیشن موڈ میں کال کرنے کی اجازت دیتا ہے۔ WebAssembly ہینڈلرز کو تقریباً کسی اضافی وسائل کی ضرورت نہیں ہوتی ہے اور ان کے ساتھ تعامل عام فنکشنز کو کال کرنے سے زیادہ سست نہیں ہوتا ہے (لائبریری کے فنکشنز کو مقامی کوڈ کی شکل میں انجام دیا جاتا ہے، اور اوور ہیڈ اخراجات صرف اس وقت پیدا ہوتے ہیں جب الگ تھلگ ماحول کے ساتھ تعامل کے دوران ڈیٹا کو کاپی اور چیک کیا جاتا ہے)۔ الگ تھلگ لائبریری فنکشنز کو براہ راست نہیں بلایا جا سکتا ہے اور اس کا استعمال کرتے ہوئے ان تک رسائی حاصل کی جانی چاہیے۔
پرت invoke_sandbox_function()۔

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

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

ماخذ: opennet.ru

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