Тусгаарлагдсан орчин үүсгэх давхарга болох Bubblewrap 0.6-ийг гаргалаа

Тусгаарлагдсан орчны ажлыг зохион байгуулах хэрэгслүүдийн хувилбар Bubblewrap 0.6 байдаг бөгөөд ихэвчлэн эрх мэдэлгүй хэрэглэгчдийн хувийн хэрэглээг хязгаарлахад ашигладаг. Практикт Bubblewrap-ийг Flatpak төсөл багцуудаас эхлүүлсэн програмуудыг тусгаарлах давхарга болгон ашигладаг. Төслийн код нь C хэл дээр бичигдсэн бөгөөд LGPLv2+ лицензийн дагуу түгээгддэг.

Тусгаарлахын тулд бүлгүүд, нэрийн орон зай, Seccomp, SELinux ашиглахад суурилсан уламжлалт Линуксийн контейнер виртуалчлалын технологийг ашигладаг. Контейнерийг тохируулах давуу эрхтэй үйлдлүүдийг гүйцэтгэхийн тулд Bubblewrap-г root эрхээр (suid туг бүхий гүйцэтгэгдэх файл) ажиллуулж, дараа нь контейнерыг эхлүүлсний дараа эрхийг сэргээнэ.

Нэрийн орон зайн систем дэх хэрэглэгчийн нэрийн талбарыг идэвхжүүлэх нь олон түгээлтэд анхдагч байдлаар ажиллахгүй тул контейнерт өөрийн тусдаа таниулбаруудыг ашиглах боломжийг олгодог бөгөөд энэ нь ажиллахад шаардлагагүй юм (Bubblewrap нь програмын хязгаарлагдмал нийцтэй хэрэгжүүлэлт хэлбэрээр байрладаг. хэрэглэгчийн нэрийн орон зайн чадамжийн дэд хэсэг - одоогийнхоос бусад бүх хэрэглэгч болон процессын танигчийг орчноос хасахын тулд CLONE_NEWUSER болон CLONE_NEWPID горимуудыг ашигладаг). Нэмэлт хамгаалах үүднээс Bubblewrap-ийн дагуу гүйцэтгэсэн программуудыг PR_SET_NO_NEW_PRIVS горимд ажиллуулдаг бөгөөд энэ нь жишээлбэл setuid туг байгаа тохиолдолд шинэ эрх олж авахыг хориглодог.

Файлын системийн түвшинд тусгаарлах нь анхдагчаар tmpfs ашиглан хоосон root хуваалтыг үүсгэсэн шинэ холбох нэрийн орон зайг үүсгэснээр хийгддэг. Шаардлагатай бол гадаад FS хуваалтыг "mount —bind" горимд хавсаргасан болно (жишээлбэл, "bwrap —ro-bind /usr /usr" сонголтоор эхлүүлэх үед /usr хуваалтыг үндсэн системээс дамжуулдаг. зөвхөн унших горимд). Сүлжээний чадавхи нь CLONE_NEWNET болон CLONE_NEWUTS тугуудаар дамжуулан сүлжээний стек тусгаарлалт бүхий давталтын интерфэйс рүү хандахад хязгаарлагддаг.

Setuid эхлүүлэх загварыг ашигладаг ижил төстэй Firejail төслөөс гол ялгаа нь Bubblewrap-д контейнер үүсгэх давхарга нь зөвхөн шаардлагатай хамгийн бага чадамж, график програмуудыг ажиллуулах, ширээний компьютертэй харилцах, хүсэлтийг шүүх зэрэгт шаардлагатай бүх дэвшилтэт функцуудыг агуулдаг. Pulseaudio руу шилжүүлж, Flatpak тал руу шилжүүлж, давуу эрхүүдийг дахин тохируулсны дараа гүйцэтгэнэ. Нөгөө талаас Firejail нь холбогдох бүх функцийг нэг гүйцэтгэгдэх файлд нэгтгэдэг бөгөөд энэ нь аудит хийх, аюулгүй байдлыг зохих түвшинд байлгахад хэцүү болгодог.

Шинэ хувилбарт:

  • Добавлена поддержка сборочной системы Meson. Поддержка сборки при помощи Autotools пока сохранена, но будет удалена в одном из следующих выпусков.
  • Реализована опция «—add-seccomp» для добавления более чем одной программы seccomp. Добавлено предупреждение о том, что при повторном указании опции «—seccomp» будет применён только последний параметр.
  • Ветка master в git-репозитории переименована в main.
  • Добавлена частичная поддержка спецификации REUSE, унифицирующей процесс указания сведений о лицензиях и авторских правах. Во многие файлы с кодом добавлены заголовки SPDX-License-Identifier. Следование рекомендациям REUSE позволяет упростить автоматическое определение какая лицензия применяется к каким из частей кода приложения.
  • Добавлена проверка значения счётчика аргументов командной строки (argc) и реализован экстренный выход в случае если счётчик равен нулю. Изменение позволяет блокировать проблемы с безопасностью, вызванные некорректной обработкой передаваемых аргументов командной строки, такие как CVE-2021-4034 в Polkit.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх