ΠŸΡƒΡΠΊΠ°Π½Π΅ Π½Π° Bubblewrap 0.6, слой Π·Π° създаванС Π½Π° ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ΠΈ срСди

ΠŸΡ€Π΅Π΄Π»Π°Π³Π° сС вСрсия Π½Π° инструмСнти Π·Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ΠΈ срСди Bubblewrap 0.6, ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ прилоТСния Π½Π° Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° Bubblewrap сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Flatpak ΠΊΠ°Ρ‚ΠΎ слой Π·Π° ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° прилоТСния, стартирани ΠΎΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π΅ написан Π½Π° C ΠΈ сС разпространява ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π· LGPLv2+.

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

АктивиранСто Π½Π° потрСбитСлски пространства ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π° Π² систСмата Π·Π° пространство ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΈ позволява Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ свой собствСн ΠΎΡ‚Π΄Π΅Π»Π΅Π½ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ, Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π°, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π² ΠΌΠ½ΠΎΠ³ΠΎ дистрибуции (Bubblewrap сС ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€Π° ΠΊΠ°Ρ‚ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° suid рСализация Π½Π° подмноТСство ΠΎΡ‚ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π·Π° потрСбитСлски пространства ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π° - Π·Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° всички ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈ Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ ΠΈ процСси ΠΎΡ‚ срСдата, с ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° тСкущия, сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Ρ€Π΅ΠΆΠΈΠΌΠΈΡ‚Π΅ 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, ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° страна, ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π° всички ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π΅Π΄ΠΈΠ½ изпълним Ρ„Π°ΠΉΠ», ΠΊΠΎΠ΅Ρ‚ΠΎ затруднява ΠΎΠ΄ΠΈΡ‚Π° ΠΈ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π΅Ρ‚ΠΎ Π½Π° сигурността Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎΡ‚ΠΎ Π½ΠΈΠ²ΠΎ.

Π’ Π½ΠΎΠ²Π°Ρ‚Π° вСрсия:

  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° систСмата Π·Π° сглобяванС Meson. ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ с Autotools Π΅ Π·Π°ΠΏΠ°Π·Π΅Π½Π° засСга, Π½ΠΎ Ρ‰Π΅ бъдС ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚Π° Π² Π±ΡŠΠ΄Π΅Ρ‰Π° вСрсия.
  • Π’Π½Π΅Π΄Ρ€Π΅Π½Π° Π΅ опцията β€ž--add-seccompβ€œ Π·Π° добавянС Π½Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ Π΅Π΄Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° seccomp. Π”ΠΎΠ±Π°Π²Π΅Π½ΠΎ Π΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, Ρ‡Π΅ Π°ΠΊΠΎ Π·Π°Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΎΡ‚Π½ΠΎΠ²ΠΎ опцията β€ž--seccompβ€œ, Ρ‰Π΅ сС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈ само послСдният ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€.
  • ΠžΡΠ½ΠΎΠ²Π½ΠΈΡΡ‚ ΠΊΠ»ΠΎΠ½ Π² git Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π΅ ΠΏΡ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½ Π½Π° main.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ частична ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° спСцификацията REUSE, която обСдинява процСса Π½Π° ΡƒΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° информация Π·Π° Π»ΠΈΡ†Π΅Π½Π· ΠΈ авторско ΠΏΡ€Π°Π²ΠΎ. Много ΠΊΠΎΠ΄ΠΎΠ²ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈΠΌΠ°Ρ‚ Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Π·Π°Π³Π»Π°Π²ΠΊΠΈ SPDX-License-Identifier. Π‘Π»Π΅Π΄Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° указанията Π·Π° REUSE улСснява Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎΡ‚ΠΎ опрСдСлянС ΠΊΠΎΠΉ Π»ΠΈΡ†Π΅Π½Π· сС отнася Π·Π° ΠΊΠΎΠΈ части ΠΎΡ‚ ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° стойността Π½Π° брояча Π½Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° командния Ρ€Π΅Π΄ (argc) ΠΈ Π΅ Π²Π½Π΅Π΄Ρ€Π΅Π½ Π°Π²Π°Ρ€ΠΈΠ΅Π½ ΠΈΠ·Ρ…ΠΎΠ΄, Π°ΠΊΠΎ Π±Ρ€ΠΎΡΡ‡ΡŠΡ‚ Π΅ Π½ΡƒΠ»Π°. ΠŸΡ€ΠΎΠΌΡΠ½Π°Ρ‚Π° ΠΏΠΎΠΌΠ°Π³Π° Π·Π° Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ със сигурността, ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅Π½ΠΈ ΠΎΡ‚ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° ΠΏΡ€Π΅Π΄Π°Π΄Π΅Π½ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ Π½Π° командния Ρ€Π΅Π΄, ΠΊΠ°Ρ‚ΠΎ CVE-2021-4034 Π² Polkit.

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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€