ИзданиС Π½Π° Bubblewrap 0.4.0, прослойка Π·Π° създаванС Π½Π° ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ΠΈ срСди

Π”ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Π½ΠΎΠ²ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° инструмСнти Bubblewrap 0.4.0, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ Π·Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π² ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ΠΈ срСди Π² Linux ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π° Π½Π° Π½ΠΈΠ²ΠΎ прилоТСния Π½Π° Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° Bubblewrap сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Flatpak ΠΊΠ°Ρ‚ΠΎ посрСдник Π·Π° изолация Π½Π° прилоТСния, изпълнявани ΠΎΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π΅ написан Π½Π° C ΠΈ сС разпространява Π΅ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π· LGPLv2+.

Π—Π° изолация сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ Π·Π° Linux Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Π°Ρ‚Π° виртуализация, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° cgroups, пространства Π½Π° ΠΈΠΌΠ΅ (namespaces), Seccomp ΠΈ SELinux. Π—Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ настройка Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Bubblewrap сС стартира с ΠΏΡ€Π°Π²Π° Π½Π° root (ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ Ρ„Π°ΠΉΠ» с suid-Ρ„Π»Π°Π³) с послСдващо ΠΎΡ‚Π½Π΅ΠΌΠ°Π½Π΅ Π½Π° ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡ‚Π΅ слСд ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° инициализацията Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.

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

Π˜Π·ΠΎΠ»Π°Ρ†ΠΈΡΡ‚Π° Π½Π° Π½ΠΈΠ²ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° систСма сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Ρ‡Ρ€Π΅Π· създаванС ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° Π½ΠΎΠ²ΠΎ пространство Π½Π° ΠΈΠΌΠ΅ Π·Π° Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° ΠΌΠΎΠ½Ρ‚Π°ΠΆ (mount namespace), Π² ΠΊΠΎΠ΅Ρ‚ΠΎ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° tmpfs сС създава ΠΏΡ€Π°Π·Π΅Π½ ΠΊΠΎΡ€Π΅Π½ΠΎΠ² дял. Π’ Ρ‚ΠΎΠ·ΠΈ дял ΠΏΡ€ΠΈ нСобходимост сС прикрСпят дяловС ΠΎΡ‚ Π²ΡŠΠ½ΡˆΠ½Π°Ρ‚Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π° систСма Π² Ρ€Π΅ΠΆΠΈΠΌ "mount β€”bind" (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ стартиранС с опция "bwrap β€”ro-bind /usr /usr" Π΄ΡΠ»ΡŠΡ‚ /usr сС ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Ρ ΠΎΡ‚ основната систСма Π² Ρ€Π΅ΠΆΠΈΠΌ само Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅). ΠœΡ€Π΅ΠΆΠΎΠ²ΠΈΡ‚Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ сС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π°Ρ‚ Π΄ΠΎ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ loopback-интСрфСйса с изолация Π½Π° мрСТовия стСк Ρ‡Ρ€Π΅Π· Ρ„Π»Π°Π³ΠΎΠ²Π΅Ρ‚Π΅ CLONE_NEWNET ΠΈ CLONE_NEWUTS.

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

Новото ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ с Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΏΡ€ΠΈΡΡŠΠ΅Π΄ΠΈΠ½ΡΠ²Π°Π½Π΅ Π½Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈ пространства Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈ Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ (user namespaces) ΠΈ процСситС (pid namespaces). Π—Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° пространствата Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ са Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Ρ„Π»Π°Π³ΠΎΠ²Π΅Ρ‚Π΅ Β«β€”usernsΒ», Β«β€”userns2Β» ΠΈ Β«β€”pidnsΒ».
Π’Π°Π·ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌ setuid ΠΈ изисква ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΡ‚Π΄Π΅Π»Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π±Π΅Π· ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡ€Π°Π²Π° root, Π½ΠΎ изисква Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π΅
Π½Π° user namespaces Π² систСмата (ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ΠΈ Π² Debian ΠΈ RHEL/CentOS) ΠΈ Π½Π΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Сксплоатация ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΎ Π΄Π° останат. уязвимости Π·Π° Ρ€ΡŠΠ±Π° Π½Π° ограничСнията Π½Π° «потрСбитСлскитС пространства». ΠžΡ‚ Π½ΠΎΠ²ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° Bubblewrap 0.4 сС отбСлязва Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ със Π‘ΠΈ-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° musl вмСсто glibc ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° информация Π·Π° пространствата Π² Ρ„Π°ΠΉΠ» със статистика Π² JSON Ρ„ΠΎΡ€ΠΌΠ°Ρ‚.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster