FreeBSD uchun plegde va unveilga o'xshash izolyatsiya mexanizmi ishlab chiqilmoqda

FreeBSD uchun OpenBSD loyihasi tomonidan ishlab chiqilgan plegde va unveil tizim chaqiruvlarini eslatuvchi ilovalarni izolyatsiyalash mexanizmini amalga oshirish taklif etiladi. Plegde-da izolyatsiyaga ilovada ishlatilmaydigan tizim qo'ng'iroqlariga kirishni taqiqlash va ochilishda faqat dastur ishlashi mumkin bo'lgan alohida fayl yo'llariga kirishni tanlab ochish orqali erishiladi. Ilova uchun tizim qo'ng'iroqlari va fayl yo'llarining oq ro'yxati shakllantiriladi va boshqa barcha qo'ng'iroqlar va yo'llar taqiqlanadi.

FreeBSD uchun ishlab chiqilayotgan plegde analogi va unveil o'rtasidagi farq ilovalarni kodiga o'zgartirishlar kiritmasdan yoki minimal o'zgarishlar bilan izolyatsiya qilish imkonini beruvchi qo'shimcha qatlamni taqdim etishdan kelib chiqadi. Eslatib o'tamiz, OpenBSD-da plegde va unveil asosiy muhit bilan qattiq integratsiyaga qaratilgan va har bir ilovaning kodiga maxsus izohlar qo'shish orqali foydalaniladi. Himoyani tashkil qilishni soddalashtirish uchun filtrlar individual tizim qo'ng'iroqlari darajasida tafsilotlarsiz bajarishga va tizim qo'ng'iroqlari sinflarini boshqarishga imkon beradi (kirish / chiqish, fayllarni o'qish, fayllarni yozish, rozetkalar, ioctl, sysctl, jarayonni ishga tushirish va boshqalar). . Kirishni cheklash funksiyalari ilova kodida chaqirilishi mumkin, chunki ma'lum harakatlar bajariladi, masalan, kerakli fayllarni ochish va tarmoq ulanishini o'rnatishdan so'ng rozetkalar va fayllarga kirishni rad etish mumkin.

FreeBSD uchun plegde va ochish portining muallifi ilovalarga alohida faylda belgilangan qoidalarni qo'llash imkonini beruvchi parda yordam dasturi taklif qilingan ixtiyoriy ilovalarni izolyatsiya qilish imkoniyatini taqdim etish niyatida. Taklif etilayotgan konfiguratsiya tizim qo'ng'iroqlari sinflarini va ma'lum ilovalarga xos bo'lgan odatiy fayl yo'llarini (ovoz bilan ishlash, tarmoq o'zaro ta'siri, ro'yxatga olish va boshqalar) belgilaydigan asosiy sozlamalarga ega faylni, shuningdek, muayyan ilovalar uchun kirish qoidalariga ega faylni o'z ichiga oladi.

Parda yordam dasturi ko'pgina o'zgartirilmagan yordamchi dasturlarni, server jarayonlarini, grafik ilovalarni va hatto butun ish stoli seanslarini ajratish uchun ishlatilishi mumkin. Parda Jail va Capsicum quyi tizimlari tomonidan taqdim etilgan izolyatsiya mexanizmlari bilan birgalikda ishlatilishi mumkin. Bundan tashqari, ishga tushirilgan ilovalar ota-ilova uchun o'rnatilgan qoidalarni meros qilib olgan holda, ularni individual cheklovlar bilan to'ldirgan holda, ichki izolyatsiyani tashkil qilish mumkin. Ba'zi yadro operatsiyalari (disk raskadrovka moslamalari, POSIX/SysV IPC, PTYs) qo'shimcha ravishda joriy yoki asosiy jarayon tomonidan yaratilmagan yadro ob'ektlariga kirishni oldini oluvchi to'siq mexanizmi bilan himoyalangan.

Jarayon curtainctl-ga qo'ng'iroq qilish yoki OpenBSD-da topilganlarga o'xshash libcurtain-ning plegde() va unveil() funksiyalaridan foydalanish orqali o'z izolyatsiyasini sozlashi mumkin. Ilova ishlayotgan vaqtda qulflarni kuzatish uchun sysctl ‘security.curtain.log_level’ taqdim etiladi. X11 va Wayland protokollariga kirish pardani ishga tushirishda “-X”/”-Y” va “-W” opsiyalarini belgilash orqali alohida yoqilgan, ammo grafik ilovalarni qo‘llab-quvvatlash hali yetarli darajada barqarorlashtirilmagan va bir qator hal etilmagan muammolarga ega ( muammolar asosan X11 dan foydalanganda paydo bo'ladi va Wayland qo'llab-quvvatlashi ancha yaxshi amalga oshiriladi). Foydalanuvchilar mahalliy qoidalar fayllarini (~/.curtain.conf) yaratish orqali qo'shimcha cheklovlar qo'shishlari mumkin. Masalan, Firfox-dan faqat ~/Yuklashlar/ katalogiga yozishga ruxsat berish uchun siz “~/Yuklashlar/ : rw +” qoidasi bilan “[firefox]” boʻlimini qoʻshishingiz mumkin.

Amalga oshirish majburiy kirishni boshqarish uchun mac_curtain yadro modulini (MAC, majburiy kirishni boshqarish), kerakli ishlov beruvchilar va filtrlarni amalga oshirish bilan FreeBSD yadrosi uchun yamoqlar to'plamini, ilovalarda plegde va ochish funktsiyalaridan foydalanish uchun libcurtain kutubxonasini o'z ichiga oladi. parda yordam dasturi, misol konfiguratsiya fayllari, foydalanuvchi maydonidagi ba'zi dasturlar uchun testlar va yamoqlar to'plami (masalan, vaqtinchalik fayllar bilan ishlashni birlashtirish uchun $TMPDIR dan foydalanish uchun). Mumkin bo'lgan hollarda, muallif yadro va ilovalarga yamoqlarni talab qiladigan o'zgarishlar sonini kamaytirish niyatida.

Manba: opennet.ru

a Izoh qo'shish