ИздањС Π‘ΡƒΠ±Π±Π»Π΅Π²Ρ€Π°ΠΏ 0.4.0, слоја Π·Π° ΠΊΡ€Π΅ΠΈΡ€Π°ΡšΠ΅ ΠΈΠ·ΠΎΠ»ΠΎΠ²Π°Π½ΠΈΡ… ΠΎΠΊΡ€ΡƒΠΆΠ΅ΡšΠ°

Доступан Π½ΠΎΠ²Ρ‹ΠΉ выпуск инструмСнтария Π‘ΡƒΠ±Π±Π»Π΅Π²Ρ€Π°ΠΏ 0.4.0, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ Π² Linux ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Bubblewrap ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Flatpak Π² качСствС прослойки для изоляции запускаСмых ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Код ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° написан Π½Π° языкС Π‘ΠΈ ΠΈ дистрибуира ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ LGPLv2+.

Π—Π° ΠΈΠ·ΠΎΠ»Π°Ρ†ΠΈΡ˜Ρƒ сС користС Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π°Π»Π½Π΅ Π›ΠΈΠ½ΡƒΠΊ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡ˜Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»ΠΈΠ·Π°Ρ†ΠΈΡ˜Π΅ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π°, заснованС Π½Π° ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΡƒ цгроупс, имСнских простора, Π‘Π΅Ρ†Ρ†ΠΎΠΌΠΏ ΠΈ Π‘Π•Π›ΠΈΠ½ΡƒΠΊ. Π”Π° Π±ΠΈ сС ΠΈΠ·Π²Ρ€ΡˆΠΈΠ»Π΅ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΎΠ²Π°Π½Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ˜Π΅ Π·Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡΠ°ΡšΠ΅ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π°, Π‘ΡƒΠ±Π±Π»Π΅Π²Ρ€Π°ΠΏ сС ΠΏΠΎΠΊΡ€Π΅Ρ›Π΅ са Ρ€ΠΎΠΎΡ‚ ΠΏΡ€Π°Π²ΠΈΠΌΠ° (ΠΈΠ·Π²Ρ€ΡˆΠ½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° са ΠΎΠ·Π½Π°ΠΊΠΎΠΌ суид), Π° Π·Π°Ρ‚ΠΈΠΌ Ρ€Π΅ΡΠ΅Ρ‚ΡƒΡ˜Π΅ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ˜Π΅ Π½Π°ΠΊΠΎΠ½ ΡˆΡ‚ΠΎ сС ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ ΠΈΠ½ΠΈΡ†ΠΈΡ˜Π°Π»ΠΈΠ·ΡƒΡ˜Π΅.

Активация Π² систСмС пространств ΠΈΠΌΡ‘Π½ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (user namespaces), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ… собствСнный ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ трСбуСтся, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… дистрибутивах (Bubblewrap позиционируСтся ΠΊΠ°ΠΊ ограничСнная suid-рСализация подмноТСства возмоТностСй user namespaces β€” для ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ всСх ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ процСссов ΠΈΠ· окруТСния, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ€Π΅ΠΆΠΈΠΌΡ‹ CLONE_NEWUSER ΠΈ CLONE_NEWPID). Для Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ исполняСмыС ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ
Bubblewrap ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ PR_SET_NO_NEW_PRIVS, Π·Π°ΠΏΡ€Π΅Ρ‰Π°ΡŽΡ‰Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Ρ„Π»Π°Π³Π° setuid.

Π˜Π·ΠΎΠ»Π°Ρ†ΠΈΡ˜Π° Π½Π° Π½ΠΈΠ²ΠΎΡƒ систСма Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° сС постиТС ΠΊΡ€Π΅ΠΈΡ€Π°ΡšΠ΅ΠΌ Π½ΠΎΠ²ΠΎΠ³ простора ΠΈΠΌΠ΅Π½Π° Π·Π° ΠΌΠΎΠ½Ρ‚ΠΈΡ€Π°ΡšΠ΅ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½ΠΎ, Ρƒ ΠΊΠΎΠΌΠ΅ сС ΠΏΡ€Π°Π·Π½Π° Ρ€ΠΎΠΎΡ‚ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ˜Π° ΠΊΡ€Π΅ΠΈΡ€Π° ΠΏΠΎΠΌΠΎΡ›Ρƒ тмпфс-Π°. Ако јС ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ, СкстСрнС Π€Π‘ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ˜Π΅ су ΠΏΡ€ΠΈΠΊΡ™ΡƒΡ‡Π΅Π½Π΅ Π½Π° ΠΎΠ²Ρƒ ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ˜Ρƒ Ρƒ Ρ€Π΅ΠΆΠΈΠΌΡƒ β€žΠΌΠΎΡƒΠ½Ρ‚ β€”Π±ΠΈΠ½Π΄β€œ (Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°Π΄Π° сС ΠΏΠΎΠΊΡ€Π΅Π½Π΅ са ΠΎΠΏΡ†ΠΈΡ˜ΠΎΠΌ β€žΠ±Π²Ρ€Π°ΠΏ β€”Ρ€ΠΎ-Π±ΠΈΠ½Π΄ /уср /ΡƒΡΡ€β€œ, /уср ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ˜Π° сС ΠΏΡ€ΠΎΡΠ»Π΅Ρ’ΡƒΡ˜Π΅ ΠΈΠ· Π³Π»Π°Π²Π½ΠΎΠ³ систСма Ρƒ Ρ€Π΅ΠΆΠΈΠΌΡƒ само Π·Π° Ρ‡ΠΈΡ‚Π°ΡšΠ΅). ΠœΡ€Π΅ΠΆΠ½Π΅ могућности су ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π΅ Π½Π° приступ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜ΡΡƒ ΠΏΠΎΠ²Ρ€Π°Ρ‚Π½Π΅ ΠΏΠ΅Ρ‚Ρ™Π΅ са ΠΈΠ·ΠΎΠ»Π°Ρ†ΠΈΡ˜ΠΎΠΌ ΠΌΡ€Π΅ΠΆΠ½ΠΎΠ³ стСка ΠΏΡ€Π΅ΠΊΠΎ ΠΎΠ·Π½Π°ΠΊΠ° Π¦Π›ΠžΠΠ•_НЕВНЕВ ΠΈ Π¦Π›ΠžΠΠ•_НЕВУВБ.

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ΠΌ ΠΎΡ‚ ΠΏΠΎΡ…ΠΎΠΆΠ΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π€ΠΈΡ€Π΅Ρ˜Π°ΠΈΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ модСль запуска с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ setuid, являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² Bubblewrap прослойка для создания ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ возмоТностСй, Π° всС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для запуска графичСских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, взаимодСйствия с Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ столом ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ Pulseaudio, вынСсСны Π½Π° сторону Flatpak ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΡƒΠΆΠ΅ послС сброса ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ. Firejail ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ Π² ΠΎΠ΄Π½ΠΎΠΌ исполняСмом Ρ„Π°ΠΉΠ»Π΅ всС ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ услоТняСт Π΅Π³ΠΎ Π°ΡƒΠ΄ΠΈΡ‚ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ бСзопасности Π½Π° ΠΎΠ΄Π³ΠΎΠ²Π°Ρ€Π°Ρ˜ΡƒΡ›ΠΈ Π½ΠΈΠ²ΠΎ.

Новый выпуск ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»Π΅Π½ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ присоСдинСния ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… пространств ΠΈΠΌΡ‘Π½ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ (user namespaces) ΠΈ процСссов (pid namespaces). Для управлСния ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ пространств ΠΈΠΌΡ‘Π½ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Ρ„Π»Π°Π³ΠΈ Β«β€”usernsΒ», Β«β€”userns2Β» ΠΈ Β«β€”pidnsΒ».
Данная Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ setuid ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ примСнСния ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π±Π΅Π· получСния ΠΏΡ€Π°Π² root, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ
user namespaces Π² систСмС (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² Debian ΠΈ RHEL/CentOS) ΠΈ Π½Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ eksploatacije ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΡ˜Π°Π»Π½ΠΎ ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΡ…ΡΡ Ρ€Π°ΡšΠΈΠ²ΠΎΡΡ‚ΠΈ для ΠΎΠ±ΠΎΠ΄Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Β«user namespacesΒ». Из Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй Bubblewrap 0.4 Ρ‚Π°ΠΊΠΆΠ΅ отмСчаСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ сборки с Π‘ΠΈ-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ musl вмСсто glibc ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сохранСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ пространствах ΠΈΠΌΡ‘Π½ Π² Ρ„Π°ΠΉΠ» со статистикой Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON.

Π˜Π·Π²ΠΎΡ€: ΠΎΠΏΠ΅Π½Π½Π΅Ρ‚.Ρ€Ρƒ

Π”ΠΎΠ΄Π°Ρ˜ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€