Π›Π΅Π½Π½Π°Ρ€Ρ‚ ΠŸΠΎΡ‚Ρ‚Π΅Ρ€ΠΈΠ½Π³ прСдставил run0, Π·Π°ΠΌΠ΅Π½Ρƒ sudo, ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π² systemd

Π›Π΅Π½Π½Π°Ρ€Ρ‚ ΠŸΠΎΡ‚Ρ‚Π΅Ρ€ΠΈΠ½Π³ прСдставил ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ run0, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ процСссы ΠΏΠΎΠ΄ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Новая ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° позиционируСтся ΠΊΠ°ΠΊ Π±ΠΎΠ»Π΅Π΅ бСзопасная Π·Π°ΠΌΠ΅Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ sudo, рСализованная Π² Ρ„ΠΎΡ€ΠΌΠ΅ надстройки Π½Π°Π΄ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ systemd-run ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ примСнСния исполняСмого Ρ„Π°ΠΉΠ»Π° с Ρ„Π»Π°Π³ΠΎΠΌ SUID. Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° run0 Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π² состав выпуска systemd 256, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится Π½Π° стадии ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Π° Π² Ρ€Π΅Π»ΠΈΠ·Ρ‹.

ΠžΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ смСна ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„Π»Π°Π³Π° SUID Π² sudo сопряТСна с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ рисками, связанными с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ SUID-процСсс наслСдуСт контСкст исполнСния, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ мноТСство свойств, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния, Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ дСскрипторы, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° ΠΈ привязки cgroup. Π§Π°ΡΡ‚ΡŒ ΠΈΠ· ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… свойств автоматичСски очищаСтся для SUID-процСссов ядром, Π° Ρ‡Π°ΡΡ‚ΡŒ — самим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π² слоТных SUID-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ sudo, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ рСгулярно Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ уязвимости, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Π΅ Π½Π΅Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ с внСшними Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π»ΠΈΡΡ‚ΡŒ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ.

Π’ run0 вмСсто использования SUID осущСствляСтся ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ систСмному ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρƒ с запросом запуска ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΈΠ»ΠΈ процСсса с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, создания Π½ΠΎΠ²ΠΎΠ³ΠΎ псСвдотСрминала (PTY) ΠΈ пСрСсылки Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠΌ (TTY). ПодобноС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ большС Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ запуск ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ssh, Ρ‡Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ классичСского sudo. ΠŸΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ процСсс запускаСтся Π² ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ контСкстС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пороТдаСтся процСссом PID 1, Π° Π½Π΅ процСссом ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ‚.Π΅. Π½Π΅ наслСдуСт свойства окруТСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ проброса ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния $TERM. ΠŸΡ€ΠΎΠ±Ρ€ΠΎΡ рСгулируСтся Ρ‡Π΅Ρ€Π΅Π· список явно Ρ€Π°Π·Ρ€Π΅ΡˆΡ‘Π½Π½Ρ‹Ρ… свойств, вмСсто ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ опасныС свойства (концСпция Π±Π΅Π»ΠΎΠ³ΠΎ списка, вмСсто Ρ‡Ρ‘Ρ€Π½ΠΎΠ³ΠΎ).

Для Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ опрСдСлСния возмоТностСй ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² run0 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Polkit. ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΉ язык описания ΠΏΡ€Π°Π²ΠΈΠ» (/etc/sudoers), примСняСмый Π² sudo, Π½Π΅ поддСрТиваСтся. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ для запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ привилСгиями встроСна Π² systemd-run, Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° run0 создаётся ΠΊΠ°ΠΊ символичСская ссылка Π½Π° systemd-run, ΠΏΡ€ΠΈ использовании ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ прСдоставляСтся схоТий с sudo интСрфСйс ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

Из Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй run0 выдСляСтся индикация Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½Ρ‹ΠΌΠΈ привилСгиями Ρ‡Π΅Ρ€Π΅Π· установку красноватого Ρ„ΠΎΠ½Π° Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ красной Ρ‚ΠΎΡ‡ΠΊΠΈ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΠΊΠ½Π°. ПослС прСкращСния выполнСния с ΠΈΠ½Ρ‹ΠΌΠΈ привилСгиями Ρ‚ΠΎΡ‡ΠΊΠ° исчСзаСт, Π° Ρ„ΠΎΠ½ мСняСтся Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, run0 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ всС ΠΎΠΏΡ†ΠΈΠΈ «systemd-run», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ «—property», Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ настройки сСрвисов systemd (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, «CPUWeight=200 MemoryMax=2G IPAccounting=yes»).

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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ