ΠΡΠΎΠ΅ΠΊΡ Landrun Π½Π°ΡΠ°Π» ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π΄Π»Ρ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ»Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ LSM-ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΄ΡΠ° Linux Landlock, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π±Π΅Π· Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ sandbox-ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ. ΠΠΎ ΡΠ²ΠΎΠΈΠΌ Π·Π°Π΄Π°ΡΠ°ΠΌ Landrun Π±Π»ΠΈΠ·ΠΎΠΊ ΠΊ ΡΡΠΈΠ»ΠΈΡΠ΅ Firejail, Π½ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΠΎΡΡΡΡ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ΄ ΠΎΠ±ΡΡΠ½ΡΠΌ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π±Π΅Π· ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ Ρ ΡΠ»Π°Π³ΠΎΠΌ suid. ΠΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠ·ΡΠΊΠ΅ Go ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ GPLv2.
ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Landlock ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠ΄ΡΠ° Linux, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΡΠΎΠΊΠ΅ΡΡ ΠΈ ioctl. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ² ΠΈΠΌΡΠ½ ΠΈ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ ΡΠ΄ΡΠΎΠΌ Linux Π² ΡΠΎΡΠΌΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΡ Π½Π°Π΄ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠΎΠΌ. ΠΠ»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Landlock Π² ΡΡΠΈΠ»ΠΈΡΠ΅ landrun ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° go-landlock ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² LandLock.
Landrun ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ½ΠΈΠ·ΠΈΡΡ ΡΠΈΡΠΊ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠ°ΡΠΈΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Π½Π΅ Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ Π΄ΠΎΠ²Π΅ΡΠΈΡ ΠΈΠ»ΠΈ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΡΠ·Π²ΠΈΠΌΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΎΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²ΡΠ±ΠΎΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ², ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ° ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ ΠΊ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΌΠΈ ΠΏΡΡΡΠΌ (ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π·Π°ΠΏΡΠ΅Ρ ΡΡΠ΅Π½ΠΈΡ, Π·Π°ΠΏΠΈΡΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ) ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ ΠΏΡΠΈΡΠΌΠΎΠΌ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Landrun ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ Π·Π°ΠΏΡΡΠΊ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ Π·Π°ΠΏΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ c Π΄Π°Π½Π½ΡΠΌΠΈ, Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ»ΡΡΠ°ΡΡΠΈΡ ΡΠΎΠΊΠ΅ΡΠΎΠ² Π΄Π»Ρ ΠΏΡΠΈΡΠΌΠ° ΡΠ΅ΡΠ΅Π²ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΈ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΡΠ΅ΡΠ΅Π²ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ TCP-ΠΏΠΎΡΡΡ. Π ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄Π»Ρ Π·Π°ΠΏΡΠ΅ΡΠ° Π·Π°ΠΏΠΈΡΠΈ, Π·Π°ΠΏΡΡΠΊΠ° ΠΈ ΡΠ΅ΡΠ΅Π²ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Β«landrun βro /Β», Π° Π΄Π»Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ nginx ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ: landrun βrox /usr/bin βro /lib,/lib64,/var/www βrwx /var/log βbind-tcp 80,443 /usr/bin/nginx
Π ΠΏΠ»Π°Π½Π°Ρ Π½Π° Π±ΡΠ΄ΡΡΠ΅Π΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΊ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° UDP ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ². ΠΠ»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΡΠ΄ΡΠΎ Linux 5.13, Π° Π΄Π»Ρ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ β 6.8.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π² ΠΊΠΎΠ΄ΠΎΠ²ΡΡ Π±Π°Π·Ρ Firejail ΡΠΆΠ΅ ΠΏΡΠΈΠ½ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΄ΡΠ° Landlock Π΄Π»Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ Π±Π΅Π· suid-Π±ΠΈΡΠ° ΠΈ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ, Π½ΠΎ ΡΠ΅Π»ΠΈΠ· Ρ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ Π΅ΡΡ Π½Π΅ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru