[devel] Q: пора разрешать privileged executables явно на уровне дистрибутивов?

Vladimir D. Seleznev vseleznv на altlinux.org
Чт Янв 13 08:45:14 MSK 2022


On Thu, Jan 13, 2022 at 02:12:53AM +0300, Dmitry V. Levin wrote:
> On Wed, Jan 12, 2022 at 09:23:03PM +0300, Vladimir D. Seleznev wrote:
> > On Wed, Jan 12, 2022 at 09:07:23PM +0300, Dmitry V. Levin wrote:
> > > On Wed, Jan 12, 2022 at 09:00:49PM +0300, Vladimir D. Seleznev wrote:
> > > > On Wed, Jan 12, 2022 at 08:10:10PM +0300, Dmitry V. Levin wrote:
> > > > > On Wed, Jan 12, 2022 at 04:34:06AM +0000, QA Team Robot wrote:
> > > > > > 	2 NEW bugs
> > > > > [...]
> > > > > > #41695	libgtop         	normal  	 ---
> > > > > > Содержит suid-бинарник
> > > > > 
> > > > > Я думаю, есть смысл, чтобы ядро за этим следило.
> > > > > Загружаешь ему список разрешённых privileged executables,
> > > > > все остальные запрещены.
> > > > 
> > > > Лучше сопровождать белый список suid-бинарников, которые можно собирать
> > > > в репозитории (с привязкой к пакетам, в которых они упакованы). И
> > > > дополнять этот список только после вычитки кода инженером безопасности.
> > > 
> > > Белый список для всего репозитория получается недостаточно гибким.
> > > Допустим, ты делаешь какой-нибудь дистрибутив и не можешь не включить
> > > туда какой-нибудь суидный файл, например, тот же pkexec, хотя на localhost
> > > ты бы такой суидный файл и за версту бы не подпустил.
> > 
> > Одно другому вроде не должно мешать.
> 
> Любой белый список suid executables на уровне репозитория будет создавать
> ощущение ложной безопасности, и вряд ли принесёт какую-нибудь пользу,
> за исключением фильтрации совсем уж случайных suid executables.

Ну, как сказать.

На срезе Сизифа от 13 января 2022 года архитектуры x86_64 явно упаковано
116 suid-бинарников в 74 пакетах (и только в 9 из них упакованы
control'ы), собранных из 67 исходников, и только 39 из этих бинарников
запрещены от исполнения для others.

При этом, это явно не все suid-бинарники, т.к. некоторые выставляют
suid-бит в postinstall-скриптах, но автоматизировать их выявление
возможно установкой каждого пакета.

Абсурдная ситуация: более доверенные исполняемые файлы покрыты
control'ами или защищены от исполнения через группу-владельца, а менее
доверенные — нет.

> Зато его придётся мантейнить, будут непрекращающиеся споры.  Зачем?

А это плохо? Может, споров будет и не так много?

Сходу, взглянув на список, мне кажется, что некоторые suid-биты
поставлены избыточно, по ошибке или по не знанию. Например, для
бинарников, реализующих/монтирующих файловые системы через fuse, на
самом деле не нужен suid-бит (его достаточно на fusermount).

> Вот что можно было бы полезного сделать на уровне репозитория, так это
> запретить такие suid executables, которые по умолчанию доступны для
> запуска всем без исключения.
> 
> > по-умолчанию, то это может нарушить принцип наименьшего удивления, хотя
> > сама идея, чтобы это контролировалось ядром, мне нравится (altha это
> > умеет).
> 
> Ну так использовать надо, раз умеет.  Хотя я бы предпочёл какое-нибудь
> более простое решение.

-- 
   WBR,
   Vladimir D. Seleznev


Подробная информация о списке рассылки Devel