خود کفیل پیکجوں کے سسٹم کی ریلیز فلیٹ پیک 1.12.0

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

Flatpak 1.12 برانچ میں اہم اختراعات:

  • سٹیم گیم ڈیلیوری سروس کے لیے کلائنٹ کے ساتھ فلیٹ پیک پیکج میں استعمال ہونے والے نیسٹڈ سینڈ باکس ماحول کا بہتر انتظام۔ نیسٹڈ سینڈ باکسز میں، /usr اور /app ڈائریکٹریز کے الگ الگ درجہ بندی کی تخلیق کی اجازت ہے، جو Steam میں اپنے /usr پارٹیشن کے ساتھ ایک الگ کنٹینر میں گیمز لانچ کرنے کے لیے استعمال ہوتی ہے، جو Steam کلائنٹ کے ساتھ ماحول سے الگ تھلگ ہے۔
  • ایک ہی ایپلیکیشن شناخت کنندہ (app-ID) کے ساتھ تمام پیکیج کی مثالیں /tmp اور $XDG_RUNTIME_DIR ڈائریکٹریز کا اشتراک کرتی ہیں۔ اختیاری طور پر، "-allow=per-app-dev-shm" پرچم کا استعمال کرتے ہوئے، آپ /dev/shm مشترکہ ڈائریکٹری کے استعمال کو فعال کر سکتے ہیں۔
  • ٹیکسٹ یوزر انٹرفیس (TUI) ایپلی کیشنز جیسے کہ gdb کے لیے بہتر سپورٹ۔
  • آرکائیو موڈ میں ریپوزٹریز کے ساتھ کام کرنے کے لیے بہتر بنایا گیا، بلڈ اپ ڈیٹ ریپو یوٹیلیٹی میں "اوسٹری پرون" کمانڈ کا تیز تر نفاذ شامل کیا گیا ہے۔
  • پورٹل میکانزم کے نفاذ میں CVE-2021-41133 کی کمزوری، جو کہ seccomp کے قواعد میں بڑھتے ہوئے پارٹیشنز سے متعلق نئے سسٹم کالز کو بلاک نہ کرنے سے وابستہ ہے، کو طے کر دیا گیا ہے۔ کمزوری نے ایپلیکیشن کو "پورٹل" تصدیقی میکانزم کو نظرانداز کرنے کے لیے ایک نیسٹڈ سینڈ باکس بنانے کی اجازت دی جو کنٹینر سے باہر کے وسائل تک رسائی کو منظم کرنے کے لیے استعمال ہوتے ہیں۔

    نتیجے کے طور پر، ایک حملہ آور، ماؤنٹنگ سے متعلقہ سسٹم کالز انجام دے کر، سینڈ باکس آئسولیشن میکانزم کو نظرانداز کر سکتا ہے اور میزبان ماحول کے مواد تک مکمل رسائی حاصل کر سکتا ہے۔ کمزوری کا صرف ان پیکجوں میں فائدہ اٹھایا جا سکتا ہے جو ایپلی کیشنز کو AF_UNIX ساکٹ تک براہ راست رسائی فراہم کرتے ہیں، جیسے کہ Wayland، Pipewire، اور pipewire-pulse کے ذریعے استعمال ہونے والے۔ ریلیز 1.12.0 میں، خطرے کو مکمل طور پر ختم نہیں کیا گیا تھا، لہذا اپ ڈیٹ 1.12.1 کو اس کی ایڑیوں پر گرم کر دیا گیا۔

ہم آپ کو یاد دلاتے ہیں کہ Flatpak ایپلیکیشن ڈویلپرز کو ہر تقسیم کے لیے علیحدہ اسمبلیاں بنائے بغیر ایک یونیورسل کنٹینر تیار کرکے اپنے پروگراموں کی تقسیم کو آسان بنانے کی اجازت دیتا ہے جو معیاری تقسیم کے ذخیروں میں شامل نہیں ہیں۔ سیکورٹی کے بارے میں شعور رکھنے والے صارفین کے لیے، Flatpak آپ کو ایک کنٹینر میں قابل اعتراض ایپلیکیشن چلانے کی اجازت دیتا ہے، جس سے صرف نیٹ ورک کے فنکشنز اور ایپلی کیشن سے وابستہ صارف فائلوں تک رسائی حاصل ہوتی ہے۔ نئی مصنوعات میں دلچسپی رکھنے والے صارفین کے لیے، Flatpak آپ کو سسٹم میں تبدیلیوں کی ضرورت کے بغیر تازہ ترین ٹیسٹ اور ایپلی کیشنز کی مستحکم ریلیز انسٹال کرنے کی اجازت دیتا ہے۔ مثال کے طور پر، Flatpak پیکیجز LibreOffice، Midori، GIMP، Inkscape، Kdenlive، Steam، 0 AD، Visual Studio Code، VLC، Slack، Skype، Telegram Desktop، Android Studio، وغیرہ کے لیے بنائے گئے ہیں۔

پیکیج کے سائز کو کم کرنے کے لیے، اس میں صرف ایپلیکیشن کے لیے مخصوص انحصار شامل ہیں، اور بنیادی نظام اور گرافکس لائبریریاں (GTK، Qt، GNOME اور KDE لائبریریاں، وغیرہ) کو پلگ ان معیاری رن ٹائم ماحول کے طور پر ڈیزائن کیا گیا ہے۔ Flatpak اور Snap کے درمیان اہم فرق یہ ہے کہ Snap مرکزی نظام کے ماحول کے اجزاء اور فلٹرنگ سسٹم کالز کی بنیاد پر تنہائی کا استعمال کرتا ہے، جبکہ Flatpak سسٹم سے الگ ایک کنٹینر بناتا ہے اور بڑے رن ٹائم سیٹوں کے ساتھ کام کرتا ہے، پیکیجز کو انحصار کے طور پر نہیں، بلکہ معیاری فراہم کرتا ہے۔ ones سسٹم کے ماحول (مثال کے طور پر، GNOME یا KDE پروگراموں کے آپریشن کے لیے ضروری تمام لائبریریاں)۔

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

رن ٹائم اور ایپلیکیشن کنٹینرز OSTree ٹیکنالوجی کا استعمال کرتے ہوئے بنائے گئے ہیں، جس میں گٹ نما ذخیرے سے تصویر کو جوہری طور پر اپ ڈیٹ کیا جاتا ہے، جو تقسیم کے اجزاء پر ورژن کنٹرول کے طریقوں کو لاگو کرنے کی اجازت دیتا ہے (مثال کے طور پر، آپ سسٹم کو تیزی سے رول بیک کر سکتے ہیں۔ پچھلی حالت)۔ RPM پیکجوں کا ترجمہ OSTree ریپوزٹری میں ایک خاص rpm-ostree پرت کا استعمال کرتے ہوئے کیا جاتا ہے۔ کام کرنے والے ماحول میں پیکجوں کی علیحدہ تنصیب اور اپ ڈیٹ تعاون یافتہ نہیں ہے؛ سسٹم کو انفرادی اجزاء کی سطح پر نہیں، بلکہ مجموعی طور پر، جوہری طور پر اس کی حالت کو تبدیل کرتے ہوئے اپ ڈیٹ کیا جاتا ہے۔ ہر اپ ڈیٹ کے ساتھ تصویر کو مکمل طور پر تبدیل کرنے کی ضرورت کو ختم کرتے ہوئے، بتدریج اپ ڈیٹس کو لاگو کرنے کے لیے ٹولز فراہم کرتا ہے۔

تیار کردہ الگ تھلگ ماحول استعمال شدہ تقسیم سے مکمل طور پر آزاد ہے اور، پیکج کی مناسب ترتیبات کے ساتھ، صارف یا مرکزی نظام کی فائلوں اور عمل تک رسائی نہیں ہے، ڈی آر آئی کے ذریعے آؤٹ پٹ کے استثناء کے ساتھ، آلات تک براہ راست رسائی نہیں کر سکتا، اور نیٹ ورک سب سسٹم کو کال کرتا ہے۔ گرافکس آؤٹ پٹ اور ان پٹ تنظیم کو Wayland پروٹوکول یا X11 ساکٹ فارورڈنگ کے ذریعے لاگو کیا جاتا ہے۔ بیرونی ماحول کے ساتھ تعامل DBus پیغام رسانی کے نظام اور ایک خصوصی پورٹلز API پر مبنی ہے۔

تنہائی کے لیے، ببل ریپ پرت اور روایتی لینکس کنٹینر ورچوئلائزیشن ٹیکنالوجیز استعمال کی جاتی ہیں، جو cgroups، نام کی جگہ، Seccomp اور SELinux کے استعمال پر مبنی ہیں۔ پلس آڈیو کا استعمال آواز کو آؤٹ پٹ کرنے کے لیے کیا جاتا ہے۔ اس صورت میں، تنہائی کو غیر فعال کیا جا سکتا ہے، جسے بہت سے مقبول پیکجز کے ڈویلپرز فائل سسٹم اور سسٹم میں موجود تمام آلات تک مکمل رسائی حاصل کرنے کے لیے استعمال کرتے ہیں۔ مثال کے طور پر، GIMP، VSCodium، PyCharm، Octave، Inkscape، Audacity، اور VLC ایک محدود تنہائی کے موڈ کے ساتھ آتے ہیں جو ہوم ڈائریکٹری تک مکمل رسائی چھوڑ دیتا ہے۔

اگر پیکیج کی تفصیل میں "سینڈ باکسڈ" لیبل کی موجودگی کے باوجود، ہوم ڈائریکٹری تک رسائی والے پیکجوں سے سمجھوتہ کیا جاتا ہے، تو حملہ آور کو اپنے کوڈ پر عمل کرنے کے لیے صرف ~/.bashrc فائل کو تبدیل کرنے کی ضرورت ہوتی ہے۔ ایک الگ مسئلہ پیکجوں میں تبدیلیوں کا کنٹرول اور پیکج بنانے والوں پر اعتماد ہے، جو اکثر مرکزی پروجیکٹ یا تقسیم سے وابستہ نہیں ہوتے ہیں۔

ماخذ: opennet.ru

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