ИзданиС Π½Π° систСмата Π·Π° изолация Π½Π° прилоТСния Firejail 0.9.60

Видях свСт Ρ€Π΅Π»ΠΈΠ· Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Firejail 0.9.60, Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° която сС Ρ€Π°Π·Π²ΠΈΠ²Π° систСма Π·Π° ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ΠΎ изпълнСниС Π½Π° Π³Ρ€Π°Ρ„ΠΈΡ‡Π½ΠΈ, ΠΊΠΎΠ½Π·ΠΎΠ»Π½ΠΈ ΠΈ ΡΡŠΡ€Π²ΡŠΡ€Π½ΠΈ прилоТСния. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Firejail позволява ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° риска ΠΎΡ‚ ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° основната систСма ΠΏΡ€ΠΈ стартиранС Π½Π° Π½Π΅Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΎ уязвими ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° Π΅ написана Π½Π° Π΅Π·ΠΈΠΊΠ° Π‘ΠΈ, сС разпространява ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π· GPLv2 ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π² любой дистрибутив Π½Π° Linux с ядро ΠΏΠΎ-старо ΠΎΡ‚ 3.0. Π“ΠΎΡ‚ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ с Firejail ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ deb (Debian, Ubuntu) ΠΈ rpm (CentOS, Fedora).

Π—Π° изолация Π² Firejail сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΈΠΌΠ΅Π½Π°Ρ‚Π° (namespaces), AppArmor ΠΈ Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° систСмни повиквания (seccomp-bpf) Π² Linux. Π‘Π»Π΅Π΄ стартиранС, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° ΠΈ всички Π½Π΅ΠΉΠ½ΠΈ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈ процСси ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ прСдставлСния Π½Π° рСсурситС Π½Π° ядрото, ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΡ€Π΅ΠΆΠΎΠ² стСк, Ρ‚Π°Π±Π»ΠΈΡ†Π° Π½Π° процСситС ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° ΠΌΠΎΠ½Ρ‚ΠΈΡ€Π°Π½Π΅. Π’Π·Π°ΠΈΠΌΠΎΡΠ²ΡŠΡ€Π·Π°Π½ΠΈΡ‚Π΅ прилоТСния ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΈ Π² Π΅Π΄Π½ΠΎ ΠΎΠ±Ρ‰ΠΎ ΠΏΡΡΡŠΡ‡Π½ΠΈΠΊ. ΠŸΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅, Firejail ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈ ΠΈ Π·Π° стартиранС Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ Docker, LXC ΠΈ OpenVZ.

Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠ΅ Π½Π° инструмСнтитС Π·Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Π° изолация, firejail Π΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ прост Π² конфигурацията ΠΈ Π½Π΅ изисква ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π½Π° систСмСн ΠΎΠ±Ρ€Π°Π· β€” ΡΡŠΡΡ‚Π°Π²ΡŠΡ‚ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° сС Ρ„ΠΎΡ€ΠΌΠΈΡ€Π° Π½Π° Π»Π΅Ρ‚Ρƒ Π½Π° основата Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° Π€Π‘ ΠΈ сС ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π° слСд Π·Π°Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΡΡ‚ сС гъвкави срСдства Π·Π° Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»Π° Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° систСма, ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈ Π΄ΠΎ ΠΊΠΎΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ ΠΈΠ»ΠΈ Π·Π°Π±Ρ€Π°Π½Π΅Π½ Π΄ΠΎΡΡ‚ΡŠΠΏ, Π΄Π° сС ΡΠ²ΡŠΡ€ΠΆΠ΅Ρ‚Π΅ Π·Π° Π΄Π°Π½Π½ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ Π€Π‘ (tmpfs), Π΄Π° сС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏΡŠΡ‚ Π΄ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈΠ»ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ само Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅, Π΄Π° сС ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Ρ‚ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Ρ‡Ρ€Π΅Π· bind-mount ΠΈ overlayfs.

Π—Π° голям Π±Ρ€ΠΎΠΉ популярни прилоТСния, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Firefox, Chromium, VLC ΠΈ Transmission, са ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ Π·Π° изолация Π½Π° систСмни повиквания. Π—Π° изпълнСниС Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π² Ρ€Π΅ΠΆΠΈΠΌ Π½Π° изолация Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π΄Π° сС ΡƒΠΊΠ°ΠΆΠ΅ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΊΠ°Ρ‚ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π½Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ‚Π° firejail, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€žfirejail firefoxβ€œ ΠΈΠ»ΠΈ β€žsudo firejail /etc/init.d/nginx startβ€œ.

Π’ Π½ΠΎΠ²ΠΎΡ‚ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅:

  • Уязвимостта, която позволява Π½Π° Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½ процСс Π΄Π° Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° систСмнитС повиквания, Π΅ отстранСна. Π‘ΡŠΡ‰Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° уязвимостта Π΅, Ρ‡Π΅ Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ‚Π΅ Seccomp сС ΠΊΠΎΠΏΠΈΡ€Π°Ρ‚ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° /run/firejail/mnt, Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Π·Π° запис Π² ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½Π°Ρ‚Π° срСда. Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ Π² Ρ€Π΅ΠΆΠΈΠΌ Π½Π° изолация Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈ процСси ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° промСнят Ρ‚Π΅Π·ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ‰Π΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ Π½ΠΎΠ²ΠΈΡ‚Π΅ процСси, стартирани Π² ΡΡŠΡ‰Π°Ρ‚Π° срСда, Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ изпълнСни Π±Π΅Π· ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° Ρ„ΠΈΠ»Ρ‚ΡŠΡ€Π° Π½Π° систСмнитС повиквания;
  • Π’ Ρ„ΠΈΠ»Ρ‚ΡŠΡ€Π° memory-deny-write-execute Π΅ осигурСна Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π½Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Β«memfd_createΒ»;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π½ΠΎΠ²Π° опция Β«private-cwdΒ» Π·Π° промяна Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½Π°Ρ‚Π° дирСктория Π·Π° jail;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ опция Β«β€”nodbusΒ» Π·Π° Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅ Π½Π° сокСтитС D-Bus;
  • Π’ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° CentOS 6;
  • ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‚Π΅Π½ΠΎ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ flatpak ΠΈ snap.
    Π£ΠΊΠ°Π·Π°Π½ΠΎ, Ρ‡Π΅ Π·Π° Ρ‚Π΅Π·ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ слСдва Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° тСхният собствСн инструмСнтарий;
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ са Π½ΠΎΠ²ΠΈ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ Π·Π° изолация Π½Π° 87 Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ, срСд ΠΊΠΎΠΈΡ‚ΠΎ mypaint, nano, xfce4-mixer, gnome-keyring, redshift, font-manager, gconf-editor, gsettings, freeciv, lincity-ng, openttd, torcs, tremulous, warsow, freemind, kid3, freecol, opencity, utox, freeoffice-planmaker, freeoffice-presentations, freeoffice-textmaker, inkview, meteo-qt, ktouch, yelp ΠΈ cantata.

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

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