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

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

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

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

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

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

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

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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster