Изоляциялоо үчүн класстарды, аттар мейкиндиктерин (ат мейкиндиктерин), Seccomp жана SELinux колдонууга негизделген салттуу Linux контейнердик виртуалдаштыруу технологиялары колдонулат. Артыкчылыктуу контейнерди орнотуу операцияларын аткаруу үчүн, Bubblewrap тамыр катары иштетилет (suid желекчеси менен аткарылуучу файл) менен контейнер инициализациялангандан кийин артыкчылыктар баштапкы абалга келтирилет.
Контейнерлерге идентификаторлордун өзүнчө топтомун колдонууга мүмкүндүк берген аттар мейкиндигинде колдонуучу мейкиндиктерин активдештирүү жумуш үчүн талап кылынбайт, анткени ал көп бөлүштүрүүдө демейки боюнча иштебейт (Bubblewrap колдонуучу аттары мейкиндиктеринин мүмкүнчүлүктөрү - учурдагыдан башка бардык колдонуучу жана процесс ID'лерин чөйрөдөн чыгаруу үчүн 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 желектери аркылуу тармактык стек изоляциясы менен кайра цикл интерфейсине жетүү менен чектелген.
Окшош долбоордон негизги айырмасы
Жаңы релиз колдонуучу идентификаторунун учурдагы мейкиндиктерин (колдонуучунун аттар мейкиндиктери) жана процесстерин (pid аттар мейкиндиктери) тиркөө үчүн колдоону ишке ашыруу менен айырмаланат. Ат мейкиндигине байланышты көзөмөлдөө үчүн "--userns", "--userns2" жана "--pidns" желектери кошулду.
Бул функция setuid режиминде иштебейт жана өзүнчө режимди колдонууну талап кылат, ал тамыр укуктарын албай эле иштей алат, бирок активдештирүү талап кылынат
тутумдагы колдонуучу аттар мейкиндиктери (Debian жана RHEL/CentOSда демейки боюнча өчүрүлгөн) жана бул мүмкүнчүлүктү жокко чыгарбайт
Source: opennet.ru