[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