ИздавањС Π½Π° Bubblewrap 0.8, слој Π·Π° создавањС ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ΠΈ срСдини

Достапно Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° Π°Π»Π°Ρ‚ΠΊΠΈ Π·Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°ΡšΠ΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ΠΈ срСдини Bubblewrap 0.8, ΠΎΠ±ΠΈΡ‡Π½ΠΎ сС користи Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»Π½ΠΈΡ‚Π΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π° Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€Π°Π½ΠΈ корисници. Π’ΠΎ пракса, Bubblewrap сС користи ΠΎΠ΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ Flatpak ΠΊΠ°ΠΊΠΎ слој Π·Π° Π΄Π° сС ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π°Ρ‚ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈΡ‚Π΅ лансирани ΠΎΠ΄ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅. ΠšΠΎΠ΄ΠΎΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ Π΅ напишан Π²ΠΎ C ΠΈ сС дистрибуира ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Ρ†Π°Ρ‚Π° LGPLv2+.

Π—Π° ΠΈΠ·ΠΎΠ»Π°Ρ†ΠΈΡ˜Π°, сС користат Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π·Π° Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° Π½Π° ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ Π½Π° Linux, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π½Π° cgroups, имСнски простори, Seccomp ΠΈ SELinux. Π—Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€Π°Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€, Bubblewrap сС стартува со ΠΏΡ€Π°Π²Π° Π½Π° root (ΠΈΠ·Π²Ρ€ΡˆΠ½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° со Π·Π½Π°ΠΌΠ΅Π½Ρ†Π΅ suid) ΠΈ ΠΏΠΎΡ‚ΠΎΠ° Π³ΠΈ рСсСтира ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡ‚Π΅ ΠΎΡ‚ΠΊΠ°ΠΊΠΎ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΎΡ‚ ќС сС ΠΈΠ½ΠΈΡ†ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°.

ΠΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° кориснички имСнски простори Π²ΠΎ систСмот Π·Π° имСнски простор, ΡˆΡ‚ΠΎ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° користитС сопствСно мноТСство Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈ Π²ΠΎ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ, Π½Π΅ Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π°, бидСјќи Π½Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ стандардно Π²ΠΎ ΠΌΠ½ΠΎΠ³Ρƒ дистрибуции (Bubblewrap Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€Π°Π½ ΠΊΠ°ΠΊΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° сопствСна ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π½Π° подмноТСство Π½Π° моТности Π·Π° кориснички простори Π·Π° имиња - Π·Π° Π΄Π° сС исклучат ситС кориснички ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈ Π½Π° процСси ΠΎΠ΄ ΠΎΠΊΠΎΠ»ΠΈΠ½Π°Ρ‚Π°, освСн Ρ‚Π΅ΠΊΠΎΠ²Π½ΠΈΠΎΡ‚, сС користат Ρ€Π΅ΠΆΠΈΠΌΠΈΡ‚Π΅ CLONE_NEWUSER ΠΈ CLONE_NEWPID). Π—Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° Π·Π°ΡˆΡ‚ΠΈΡ‚Π°, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ‚Π΅ ΡˆΡ‚ΠΎ сС ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°Π°Ρ‚ ΠΏΠΎΠ΄ Bubblewrap сС стартуваат Π²ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠΎΡ‚ PR_SET_NO_NEW_PRIVS, кој Π·Π°Π±Ρ€Π°Π½ΡƒΠ²Π° ΡΡ‚Π΅ΠΊΠ½ΡƒΠ²Π°ΡšΠ΅ Π½ΠΎΠ²ΠΈ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π°ΠΊΠΎ Π΅ присутно Π·Π½Π°ΠΌΠ΅Ρ‚ΠΎ setuid.

Π˜Π·ΠΎΠ»Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅Ρ‡Π½ΠΈΠΎΡ‚ систСм сС постигнува со создавањС Π½ΠΎΠ² имСнски простор Π·Π° ΠΌΠΎΠ½Ρ‚ΠΈΡ€Π°ΡšΠ΅ ΠΏΠΎ Π΄ΠΈΡ„ΠΎΠ»Ρ‚, Π²ΠΎ кој сС ΠΊΡ€Π΅ΠΈΡ€Π° ΠΏΡ€Π°Π·Π½Π° root ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ˜Π° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ tmpfs. Π”ΠΎΠΊΠΎΠ»ΠΊΡƒ Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ, Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ½ΠΈΡ‚Π΅ FS ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΠΈ сС ΠΏΡ€ΠΈΠΊΠ°Ρ‡Π΅Π½ΠΈ Π½Π° ΠΎΠ²Π°Π° ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ˜Π° Π²ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠΎΡ‚ β€žmount β€”bindβ€œ (Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π° сС стартува со ΠΎΠΏΡ†ΠΈΡ˜Π°Ρ‚Π° β€žbwrap β€”ro-bind /usr /usrβ€œ, ΠΏΠ°Ρ€Ρ‚ΠΈΡ†ΠΈΡ˜Π°Ρ‚Π° /usr сС ΠΏΡ€Π΅ΠΏΡ€Π°ΡœΠ° ΠΎΠ΄ Π³Π»Π°Π²Π½ΠΈΠΎΡ‚ систСм Π²ΠΎ Ρ€Π΅ΠΆΠΈΠΌ само Π·Π° Ρ‡ΠΈΡ‚Π°ΡšΠ΅). ΠœΡ€Π΅ΠΆΠ½ΠΈΡ‚Π΅ моТности сС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈ Π½Π° пристап Π΄ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜ΡΠΎΡ‚ Π·Π° Π²Ρ€Π°ΡœΠ°ΡšΠ΅ Π½Π° Ρ˜Π°ΠΌΠΊΠ°Ρ‚Π° со ΠΈΠ·ΠΎΠ»Π°Ρ†ΠΈΡ˜Π° Π½Π° ΠΌΡ€Π΅ΠΆΠ½ΠΈΠΎΡ‚ стСк ΠΏΡ€Π΅ΠΊΡƒ Π·Π½Π°ΠΌΠ΅Π½Ρ†Π°Ρ‚Π° CLONE_NEWNET ΠΈ CLONE_NEWUTS.

ΠšΠ»ΡƒΡ‡Π½Π°Ρ‚Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΠ΄ сличниот ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Firejail, кој исто Ρ‚Π°ΠΊΠ° Π³ΠΎ користи ΠΌΠΎΠ΄Π΅Π»ΠΎΡ‚ Π·Π° Π»Π°Π½ΡΠΈΡ€Π°ΡšΠ΅ setuid, Π΅ Ρ‚ΠΎΠ° ΡˆΡ‚ΠΎ Π²ΠΎ Bubblewrap ΡΠ»ΠΎΡ˜ΠΎΡ‚ Π·Π° создавањС ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ Π³ΠΈ Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π° само ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈΡ‚Π΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ моТности ΠΈ ситС Π½Π°ΠΏΡ€Π΅Π΄Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ΠΎΠΏΡ…ΠΎΠ΄Π½ΠΈ Π·Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π³Ρ€Π°Ρ„ΠΈΡ‡ΠΊΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ, ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ†ΠΈΡ˜Π° со Ρ€Π°Π±ΠΎΡ‚Π½Π°Ρ‚Π° ΠΏΠΎΠ²Ρ€ΡˆΠΈΠ½Π° ΠΈ Π±Π°Ρ€Π°ΡšΠ°Ρ‚Π° Π·Π° Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°ΡšΠ΅ Π½Π° Pulseaudio, ΠΏΡ€Π΅Ρ„Ρ€Π»Π΅Π½ Π½Π° страната Flatpak ΠΈ ΠΈΠ·Π²Ρ€ΡˆΠ΅Π½ ΠΎΡ‚ΠΊΠ°ΠΊΠΎ ќС сС рСсСтираат ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡ‚Π΅. Firejail, ΠΎΠ΄ Π΄Ρ€ΡƒΠ³Π° страна, Π³ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π° ситС ΠΏΠΎΠ²Ρ€Π·Π°Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΎ Π΅Π΄Π½Π° ΠΈΠ·Π²Ρ€ΡˆΠ½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°, ΡˆΡ‚ΠΎ Π³ΠΎ ΠΎΡ‚Π΅ΠΆΠ½ΡƒΠ²Π° Ρ€Π΅Π²ΠΈΠ·ΠΈΡ˜Π°Ρ‚Π° ΠΈ ΠΎΠ΄Ρ€ΠΆΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° бСзбСдноста Π½Π° соодвСтно Π½ΠΈΠ²ΠΎ.

Π’ΠΎ Π½ΠΎΠ²ΠΎΡ‚ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅:

  • Π”ΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΎΠΏΡ†ΠΈΡ˜Π°Ρ‚Π° β€ž--disable-usernsβ€œ Π·Π° Π΄Π° сС ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° сопствСн Π²Π³Π½Π΅Π·Π΄Π΅Π½ кориснички имСнски простор Π²ΠΎ ΠΎΠΊΠΎΠ»ΠΈΠ½Π°Ρ‚Π° со пСсок.
  • Π”ΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΎΠΏΡ†ΠΈΡ˜Π°Ρ‚Π° β€ž--assert-userns-disabledβ€œ Π·Π° Π΄Π° сС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈ Π΄Π°Π»ΠΈ сС користи постоСчки кориснички ID простор ΠΊΠΎΠ³Π° сС користи ΠΎΠΏΡ†ΠΈΡ˜Π°Ρ‚Π° β€ž--disable-usernsβ€œ.
  • Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½Π°Ρ‚Π° содрТина Π½Π° ΠΏΠΎΡ€Π°ΠΊΠΈΡ‚Π΅ Π·Π° Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΏΠΎΠ²Ρ€Π·Π°Π½ΠΈ со ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π°ΡšΠ΅ Π½Π° поставкитС CONFIG_SECCOMP ΠΈ CONFIG_SECCOMP_FILTER Π²ΠΎ Ρ˜Π°Π΄Ρ€ΠΎΡ‚ΠΎ Π΅ Π·Π³ΠΎΠ»Π΅ΠΌΠ΅Π½Π°.

Π˜Π·Π²ΠΎΡ€: opennet.ru

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