ΠΠΎΡΡΠ°ΠΏΠ½ΠΎ Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° Π°Π»Π°ΡΠΊΠΈ Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ ΡΡΠ΅Π΄ΠΈΠ½ΠΈ 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