Π—Π° FreeBSD сС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π·Π° изолация, ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° plegde ΠΈ unveil

Π—Π° FreeBSD сС ΠΏΡ€Π΅Π΄Π»Π°Π³Π° внСдряванС Π½Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π·Π° ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° прилоТСния, напомнящ Π½Π° систСмнитС повиквания plegde ΠΈ unveil, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° OpenBSD. Π˜Π·ΠΎΠ»Π°Ρ†ΠΈΡΡ‚Π° Π² plegde сС постига Ρ‡Ρ€Π΅Π· Π·Π°Π±Ρ€Π°Π½Π° Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ° Π΄ΠΎ систСмни извиквания, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, Π° Π² unveil Ρ‡Ρ€Π΅Π· сСлСктивно отварянС Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏ само Π΄ΠΎ ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ ΠΏΡŠΡ‚ΠΈΡ‰Π°, с ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ. Π—Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ сС Ρ„ΠΎΡ€ΠΌΠΈΡ€Π° Π½Π΅Ρ‰ΠΎ ΠΊΠ°Ρ‚ΠΎ бял списък със систСмни повиквания ΠΈ ΠΏΡŠΡ‚Π΅ΠΊΠΈ към Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Π° всички останали повиквания ΠΈ ΠΏΡŠΡ‚ΠΈΡ‰Π° са Π·Π°Π±Ρ€Π°Π½Π΅Π½ΠΈ.

Π Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π°Π½Π°Π»ΠΎΠ³Π° Π½Π° plegde ΠΈ unveil, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½ Π·Π° FreeBSD, сС свСТда Π΄ΠΎ прСдоставянСто Π½Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ слой, ΠΊΠΎΠΉΡ‚ΠΎ Π²ΠΈ позволява Π΄Π° ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Ρ‚Π΅ прилоТСния, Π±Π΅Π· Π΄Π° ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² тСхния ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ. Π‘ΠΏΠΎΠΌΠ½Π΅Ρ‚Π΅ си, Ρ‡Π΅ Π² OpenBSD, plegde ΠΈ unveil са насочСни към тясна интСграция с основната срСда ΠΈ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Ρ‡Ρ€Π΅Π· добавянС Π½Π° спСциални Π°Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ към ΠΊΠΎΠ΄Π° Π½Π° всяко ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π—Π° Π΄Π° опроститС организацията Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π°Ρ‚Π°, Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ‚Π΅ Π²ΠΈ позволяват Π΄Π° сС ΠΎΡ‚ΠΊΠ°ΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ подробности Π½Π° Π½ΠΈΠ²ΠΎ ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ систСмни повиквания ΠΈ Π΄Π° ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π°Ρ‚Π΅ класовС систСмни повиквания (Π²Ρ…ΠΎΠ΄/ΠΈΠ·Ρ…ΠΎΠ΄, Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, писанС Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, сокСти, ioctl, sysctl, стартиранС Π½Π° процСс ΠΈ Ρ‚.Π½.) . Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·Π²ΠΈΠΊΠ°Π½ΠΈ Π² ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ дСйствия, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄ΠΎΡΡ‚ΡŠΠΏΡŠΡ‚ Π΄ΠΎ сокСти ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΎΡ‚ΠΊΠ°Π·Π°Π½ слСд отварянС Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ установяванС Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²Π° Π²Ρ€ΡŠΠ·ΠΊΠ°.

ΠΠ²Ρ‚ΠΎΡ€ΡŠΡ‚ Π½Π° ΠΏΠΎΡ€Ρ‚Π° Π½Π° plegde ΠΈ unveil Π·Π° FreeBSD Π²ΡŠΠ·Π½Π°ΠΌΠ΅Ρ€ΡΠ²Π° Π΄Π° прСдостави Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ прилоТСния, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° ΠΏΠΎΠΌΠΎΡ‰Π½Π°Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° curtain, която Π²ΠΈ позволява Π΄Π° ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°, Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ Π² ΠΎΡ‚Π΄Π΅Π»Π΅Π½ Ρ„Π°ΠΉΠ» към прилоТСния. ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π°Ρ‚Π° конфигурация Π²ΠΊΠ»ΡŽΡ‡Π²Π° Ρ„Π°ΠΉΠ» с основни настройки, ΠΊΠΎΠΈΡ‚ΠΎ опрСдСлят класовС систСмни повиквания ΠΈ Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ ΠΏΡŠΡ‚ΠΈΡ‰Π°, спСцифични Π·Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ прилоТСния (Ρ€Π°Π±ΠΎΡ‚Π° със Π·Π²ΡƒΠΊ, взаимодСйствиС с ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°, Π»ΠΎΠ³Π²Π°Π½Π΅ ΠΈ Ρ‚.Π½.), ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Ρ„Π°ΠΉΠ» с ΠΏΡ€Π°Π²ΠΈΠ»Π° Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΈ прилоТСния.

ΠŸΠΎΠΌΠΎΡ‰Π½Π°Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° curtain ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ Π½Π΅ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ΠΈ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ, ΡΡŠΡ€Π²ΡŠΡ€Π½ΠΈ процСси, Π³Ρ€Π°Ρ„ΠΈΡ‡Π½ΠΈ прилоТСния ΠΈ Π΄ΠΎΡ€ΠΈ Ρ†Π΅Π»ΠΈ сСсии Π½Π° работния ΠΏΠ»ΠΎΡ‚. ЗавСсата ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π°Π΅Π΄Π½ΠΎ с ΠΈΠ·ΠΎΠ»Π°Ρ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ, прСдоставСни ΠΎΡ‚ подсистСмитС Jail ΠΈ Capsicum. Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΅ възмоТно Π΄Π° сС ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π° Π²Π»ΠΎΠΆΠ΅Π½Π° изолация, ΠΊΠΎΠ³Π°Ρ‚ΠΎ стартиранитС прилоТСния наслСдяват ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π°, Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ Π·Π° родитСлското ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠ°Ρ‚ΠΎ Π³ΠΈ Π΄ΠΎΠΏΡŠΠ»Π²Π°Ρ‚ с ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»Π½ΠΈ ограничСния. Някои ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° ядрото (ΡΡŠΠΎΡ€ΡŠΠΆΠ΅Π½ΠΈΡ Π·Π° отстраняванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ, POSIX/SysV IPC, PTY) са Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ Π·Π°Ρ‰ΠΈΡ‚Π΅Π½ΠΈ ΠΎΡ‚ Π±Π°Ρ€ΠΈΠ΅Ρ€Π΅Π½ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ, ΠΊΠΎΠΉΡ‚ΠΎ прСдотвратява Π΄ΠΎΡΡ‚ΡŠΠΏΠ° Π΄ΠΎ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ Π½Π° ядрото, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ са създадСни ΠΎΡ‚ тСкущия ΠΈΠ»ΠΈ родитСлския процСс.

ΠŸΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π° своя собствСна изолация, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ° curtainctl ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ plegde() ΠΈ unveil() Π½Π° libcurtain, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π° Ρ‚Π΅Π·ΠΈ Π² OpenBSD. Π—Π° прослСдяванС Π½Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π²Π°Π½ΠΈΡ, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ, Π΅ прСдоставСн sysctl 'security.curtain.log_level'. Π”ΠΎΡΡ‚ΡŠΠΏΡŠΡ‚ Π΄ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈΡ‚Π΅ X11 ΠΈ Wayland сС Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ Ρ‡Ρ€Π΅Π· ΡƒΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΎΠΏΡ†ΠΈΠΈΡ‚Π΅ β€ž-X”/”-Y” ΠΈ β€ž-W” ΠΏΡ€ΠΈ стартиранС Π½Π° завСса, Π½ΠΎ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π·Π° Π³Ρ€Π°Ρ„ΠΈΡ‡Π½ΠΈ прилоТСния всС ΠΎΡ‰Π΅ Π½Π΅ Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ стабилизирана ΠΈ ΠΈΠΌΠ° Ρ€Π΅Π΄ΠΈΡ†Π° Π½Π΅Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ( ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ сС появяват Π³Π»Π°Π²Π½ΠΎ ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° X11, Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° Wayland Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅). ΠŸΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° добавят Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ограничСния Ρ‡Ρ€Π΅Π· създаванС Π½Π° Π»ΠΎΠΊΠ°Π»Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ с ΠΏΡ€Π°Π²ΠΈΠ»Π° (~/.curtain.conf). НапримСр, Π·Π° Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚Π΅ писанС ΠΎΡ‚ Firfox само Π² дирСкторията ~/Downloads/, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Ρ€Π°Π·Π΄Π΅Π» β€ž[firefox]β€œ с ΠΏΡ€Π°Π²ΠΈΠ»ΠΎΡ‚ΠΎ β€ž~/Downloads/ : rw +β€œ.

ВнСдряванСто Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΌΠΎΠ΄ΡƒΠ»Π° Π½Π° ядрото mac_curtain Π·Π° Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π΅Π½ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ° (MAC, Mandatory Access Control), Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΏΠ°Ρ‡ΠΎΠ²Π΅ Π·Π° ядрото Π½Π° FreeBSD с внСдряванС Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈ ΠΈ Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈ, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° libcurtain Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ plegde ΠΈ unveil Π² прилоТСнията, ΠΏΠΎΠΌΠΎΡ‰Π½Π°Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π·Π° завСса, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ тСстовС ΠΈ ΠΏΠ°Ρ‡ΠΎΠ²Π΅ Π·Π° някои ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ Π² потрСбитСлското пространство (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° $TMPDIR Π·Π° уСднаквяванС Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅). ΠšΡŠΠ΄Π΅Ρ‚ΠΎ Π΅ възмоТно, Π°Π²Ρ‚ΠΎΡ€ΡŠΡ‚ Π²ΡŠΠ·Π½Π°ΠΌΠ΅Ρ€ΡΠ²Π° Π΄Π° свСдС Π΄ΠΎ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ броя Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ изискват ΠΊΠΎΡ€Π΅ΠΊΡ†ΠΈΠΈ Π½Π° ядрото ΠΈ прилоТСнията.

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

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