[devel] Q: пора разрешать privileged executables явно на уровне дистрибутивов?
Vladimir D. Seleznev
vseleznv на altlinux.org
Чт Янв 13 09:48:48 MSK 2022
On Thu, Jan 13, 2022 at 09:07:45AM +0300, Sergei Epiphanov wrote:
>
>
> Gleb Fotengauer-Malinovskiy <glebfm на altlinux.org> 13 января 2022 г.
> 01:18:29 написал:
>
> > Hi,
> >
> > On Thu, Jan 13, 2022 at 12:51:28AM +0300, Sergei Epiphanov wrote:
> >>
> >> "Dmitry V. Levin" <ldv на altlinux.org> 12 января 2022 г. 20:10:13 написал:
> >>
> >>> On Wed, Jan 12, 2022 at 04:34:06AM +0000, QA Team Robot wrote:
> >>>> 2 NEW bugs
> >>> [...]
> >>>> #41695 libgtop normal ---
> >>>> Содержит suid-бинарник
> >>>
> >>> Я думаю, есть смысл, чтобы ядро за этим следило.
> >>> Загружаешь ему список разрешённых privileged executables,
> >>> все остальные запрещены.
> >>
> >> Мне это не очень нравится.
> >> Во-первых, suid можно заменить на запуск через sudo или su.
> >
> > И это всяко лучше, чем использование непроверенных suid-ных программ, а
> > задача состоит именно в ограничении вреда от них.
>
> Здесь как раз и проблема. Пример я уже привёл. Приходится ставить на
> команду выполнение sudo без пароля, что позволяет пользователю самому
> рулить программой через sudo.
Так идея не в том, чтобы не позволять пользователю рулить системой
(совсем даже наоборот).
Если вы ставите команду на выполнение через sudo без пароля, вы это
делаете явно, и явно запускаете команду.
Проблема же произвольных suid-бинарников в том, что при правах доступа
не строже 4xx1 (*) любой пользователь может её запустить (в т.ч.
злонамеренный или скомпрометированный), тем самым повысив себе
привилегии. И даже если процесс сэндбоксится, сбрасывает привилегии,
всё-равно есть возможность пытаться сколь угодно долго (*) выполнить
произвольный код в привилегированном окружении до наступления успеха,
при этом эксплуатируемая ошибка не обязательно должна быть при этом
именно в запускаемом суидном бинарнике.
Но в любом случае решение, как управлять системой остаётся за
пользователем в зависимости от его модели угроз.
* В одном проекте была реализована функциональность, запрещающая на
некоторое время запускать suid-ные команды пользователю, у которого
анормально завершил работу setuid'ный процесс.
P.S. Re: sudo: why not?
https://www.openwall.com/lists/owl-users/2004/10/20/6
--
WBR,
Vladimir D. Seleznev
Подробная информация о списке рассылки Devel