Нашри Bubblewrap 0.8, қабат барои эҷоди муҳити ҷудошуда

Нашри асбобҳо барои ташкили кори муҳитҳои ҷудогона Bubblewrap 0.8 дастрас аст, ки одатан барои маҳдуд кардани барномаҳои инфиродии корбарони беимтиёз истифода мешавад. Дар амал, Bubblewrap аз ҷониби лоиҳаи Flatpak ҳамчун қабат барои ҷудо кардани замимаҳои аз бастаҳо оғозшуда истифода мешавад. Рамзи лоиҳа дар C навишта шудааст ва таҳти иҷозатномаи LGPLv2+ паҳн карда мешавад.

Барои ҷудокунӣ, технологияҳои анъанавии виртуализатсияи контейнерии Linux истифода мешаванд, ки дар асоси истифодаи гурӯҳҳо, фазоҳои номҳо, Seccomp ва SELinux истифода мешаванд. Барои иҷрои амалиёти имтиёзнок барои танзими контейнер, Bubblewrap бо ҳуқуқи реша (файли иҷрошаванда бо парчами suid) оғоз карда мешавад ва пас аз оғоз кардани контейнер имтиёзҳоро аз нав барқарор мекунад.

Фаъолсозии фазоҳои корбар дар системаи фазои номҳо, ки ба шумо имкон медиҳад маҷмӯи алоҳидаи идентификаторҳои худро дар контейнерҳо истифода баред, барои кор талаб карда намешавад, зеро он дар бисёр дистрибюторҳо ба таври нобаёнӣ кор намекунад (Bubblewrap ҳамчун амалисозии маҳдуди суиди зермаҷмӯи қобилиятҳои фазоҳои номи корбар - барои хориҷ кардани ҳама идентификаторҳои корбар ва раванд аз муҳит, ба истиснои ҳолати ҷорӣ, режимҳои CLONE_NEWUSER ва CLONE_NEWPID истифода мешаванд). Барои ҳифзи иловагӣ, барномаҳои дар зери Bubblewrap иҷрошуда дар реҷаи PR_SET_NO_NEW_PRIVS оғоз мешаванд, ки гирифтани имтиёзҳои навро манъ мекунад, масалан, агар парчами setuid мавҷуд бошад.

Ҷудокунӣ дар сатҳи системаи файлӣ тавассути эҷоди фазои нави васлкунӣ ба таври нобаёнӣ анҷом дода мешавад, ки дар он қисмати решаи холӣ бо истифода аз tmpfs сохта мешавад. Дар ҳолати зарурӣ, қисмҳои берунаи FS ба ин қисм дар реҷаи "mount —bind" замима карда мешаванд (масалан, ҳангоми ба кор андохтани опсияи "bwrap —ro-bind /usr /usr", қисмати /usr аз системаи асосӣ интиқол дода мешавад. дар ҳолати танҳо барои хондан). Имкониятҳои шабака бо дастрасӣ ба интерфейси бозгашт бо изолятсияи стек шабака тавассути парчамҳои CLONE_NEWNET ва CLONE_NEWUTS маҳдуданд.

Тафовути калидӣ аз лоиҳаи шабеҳи Firejail, ки модели оғозёбии setuid-ро низ истифода мебарад, дар он аст, ки дар Bubblewrap қабати эҷоди контейнер танҳо қобилиятҳои ҳадди ақали заруриро дар бар мегирад ва тамоми функсияҳои пешрафтаи барои иҷрои барномаҳои графикӣ, ҳамкорӣ бо мизи корӣ ва филтр кардани дархостҳо зарур аст. ба Pulseaudio, ба тарафи Flatpak интиқол дода мешавад ва пас аз барқарор кардани имтиёзҳо иҷро карда мешавад. Аз тарафи дигар, Firejail ҳамаи вазифаҳои марбутро дар як файли иҷрошаванда муттаҳид мекунад, ки аудит ва нигоҳ доштани амниятро дар сатҳи зарурӣ душвор месозад.

Дар нашри нав:

  • Добавлена опция «—disable-userns» отключающая создание в sandbox-окружении своего вложенного пространства идентификаторов пользователей (user namespace).
  • Добавлена опция «—assert-userns-disabled» для проверки, что при использовании опции » —disable-userns» задействовано существующее пространство идентификаторов пользователей.
  • Повышена информативность сообщений об ошибках, связанных с отключением в ядре настроек CONFIG_SECCOMP и CONFIG_SECCOMP_FILTER.

Манбаъ: opennet.ru

Илова Эзоҳ