ΠΠ° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡΡ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ΅ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π°Π»Π½Π΅ ΠΠΈΠ½ΡΠΊ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ Π²ΠΈΡΡΡΠ΅Π»ΠΈΠ·Π°ΡΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°, Π·Π°ΡΠ½ΠΎΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΡΠΈΡΡΠ΅ΡΡ ΡΠ³ΡΠΎΡΠΏΡ, ΠΈΠΌΠ΅Π½ΡΠΊΠΈΡ ΠΏΡΠΎΡΡΠΎΡΠ°, Π‘Π΅ΡΡΠΎΠΌΠΏ ΠΈ Π‘ΠΠΠΈΠ½ΡΠΊ. ΠΠ° Π±ΠΈ ΡΠ΅ ΠΈΠ·Π²ΡΡΠΈΠ»Π΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΎΠ²Π°Π½Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠ΅ Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°, ΠΡΠ±Π±Π»Π΅Π²ΡΠ°ΠΏ ΡΠ΅ ΠΏΠΎΠΊΡΠ΅ΡΠ΅ ΡΠ° ΡΠΎΠΎΡ ΠΏΡΠ°Π²ΠΈΠΌΠ° (ΠΈΠ·Π²ΡΡΠ½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΡΠ° ΠΎΠ·Π½Π°ΠΊΠΎΠΌ ΡΡΠΈΠ΄), Π° Π·Π°ΡΠΈΠΌ ΡΠ΅ΡΠ΅ΡΡΡΠ΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠ΅ Π½Π°ΠΊΠΎΠ½ ΡΡΠΎ ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΈΠ½ΠΈΡΠΈΡΠ°Π»ΠΈΠ·ΡΡΠ΅.
ΠΠΊΡΠΈΠ²Π°ΡΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ² ΠΈΠΌΡΠ½ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (user namespaces), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ
ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ², Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ
Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ
(Bubblewrap ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½Π°Ρ suid-ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ user namespaces β Π΄Π»Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Ρ
ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΈΠ· ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, ΠΊΡΠΎΠΌΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ΅ΠΆΠΈΠΌΡ CLONE_NEWUSER ΠΈ CLONE_NEWPID). ΠΠ»Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π·Π°ΡΠΈΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ
Bubblewrap ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ PR_SET_NO_NEW_PRIVS, Π·Π°ΠΏΡΠ΅ΡΠ°ΡΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ
ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΡΠ»Π°Π³Π° setuid.
ΠΠ·ΠΎΠ»Π°ΡΠΈΡΠ° Π½Π° Π½ΠΈΠ²ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΡΠ΅ ΠΏΠΎΡΡΠΈΠΆΠ΅ ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ΠΌ Π½ΠΎΠ²ΠΎΠ³ ΠΏΡΠΎΡΡΠΎΡΠ° ΠΈΠΌΠ΅Π½Π° Π·Π° ΠΌΠΎΠ½ΡΠΈΡΠ°ΡΠ΅ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π½ΠΎ, Ρ ΠΊΠΎΠΌΠ΅ ΡΠ΅ ΠΏΡΠ°Π·Π½Π° ΡΠΎΠΎΡ ΠΏΠ°ΡΡΠΈΡΠΈΡΠ° ΠΊΡΠ΅ΠΈΡΠ° ΠΏΠΎΠΌΠΎΡΡ ΡΠΌΠΏΡΡ-Π°. ΠΠΊΠΎ ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ, Π΅ΠΊΡΡΠ΅ΡΠ½Π΅ Π€Π‘ ΠΏΠ°ΡΡΠΈΡΠΈΡΠ΅ ΡΡ ΠΏΡΠΈΠΊΡΡΡΠ΅Π½Π΅ Π½Π° ΠΎΠ²Ρ ΠΏΠ°ΡΡΠΈΡΠΈΡΡ Ρ ΡΠ΅ΠΆΠΈΠΌΡ βΠΌΠΎΡΠ½Ρ βΠ±ΠΈΠ½Π΄β (Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°Π΄Π° ΡΠ΅ ΠΏΠΎΠΊΡΠ΅Π½Π΅ ΡΠ° ΠΎΠΏΡΠΈΡΠΎΠΌ βΠ±Π²ΡΠ°ΠΏ βΡΠΎ-Π±ΠΈΠ½Π΄ /ΡΡΡ /ΡΡΡβ, /ΡΡΡ ΠΏΠ°ΡΡΠΈΡΠΈΡΠ° ΡΠ΅ ΠΏΡΠΎΡΠ»Π΅ΡΡΡΠ΅ ΠΈΠ· Π³Π»Π°Π²Π½ΠΎΠ³ ΡΠΈΡΡΠ΅ΠΌΠ° Ρ ΡΠ΅ΠΆΠΈΠΌΡ ΡΠ°ΠΌΠΎ Π·Π° ΡΠΈΡΠ°ΡΠ΅). ΠΡΠ΅ΠΆΠ½Π΅ ΠΌΠΎΠ³ΡΡΠ½ΠΎΡΡΠΈ ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π΅ Π½Π° ΠΏΡΠΈΡΡΡΠΏ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡΡ ΠΏΠΎΠ²ΡΠ°ΡΠ½Π΅ ΠΏΠ΅ΡΡΠ΅ ΡΠ° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡΠΎΠΌ ΠΌΡΠ΅ΠΆΠ½ΠΎΠ³ ΡΡΠ΅ΠΊΠ° ΠΏΡΠ΅ΠΊΠΎ ΠΎΠ·Π½Π°ΠΊΠ° Π¦ΠΠΠΠ_ΠΠΠΠΠΠ’ ΠΈ Π¦ΠΠΠΠ_ΠΠΠΠ£Π’Π‘.
ΠΠ»ΡΡΠ΅Π²ΡΠΌ ΠΎΡΠ»ΠΈΡΠΈΠ΅ΠΌ ΠΎΡ ΠΏΠΎΡ
ΠΎΠΆΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΠΎΠ²ΡΠΉ Π²ΡΠΏΡΡΠΊ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»Π΅Π½ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ
ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ² ΠΈΠΌΡΠ½ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ (user namespaces) ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² (pid namespaces). ΠΠ»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ² ΠΈΠΌΡΠ½ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΡΠ»Π°Π³ΠΈ Β«βusernsΒ», Β«βuserns2Β» ΠΈ Β«βpidnsΒ».
ΠΠ°Π½Π½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ setuid ΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±Π΅Π· ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠ°Π² root, Π½ΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ
user namespaces Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Ρ Π² Debian ΠΈ RHEL/CentOS) ΠΈ Π½Π΅ ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ
ΠΠ·Π²ΠΎΡ: ΠΎΠΏΠ΅Π½Π½Π΅Ρ.ΡΡ