LINUX.ORG.RU

Новый системный вызов в OpenBSD — tame(2)

 ,


4

5

nicm@ и deraadt@ представили новый системный вызов, позволяющий максимально просто добавить в приложение возможность отказаться от излишних привилегий. Новый механизм призван дополнить недавно портированный и более сложный в использовании capsicum(4), а также ранее существовавший systrace(4).

Самое интересное то, что новый системный вызов позволяет четко отделить фазу инициализации процесса от его основной части, и наложить более строгие ограничения на последнюю. Ведь известно, что во время инициализации используется гораздо больше привилегий. Доступные флаги ограничений выбраны как разумный компромисс между гранулярностью и простотой использования на основе тщательного аудита устройства программного обеспечения из base system а также портов, наборы оптимизированы под наиболее популярные паттерны. Более сложным приложениям стоит посмотреть в сторону вышеупомянутого capsicum.

К объявлению также прилагаются патчи для 29-ти компонентов базовой системы, которые демонстрируют использование tame(2). Вот, например, diff для нового системного вызова для одного из демонов bgpd (он разделен на части по модели privsep, которые общаются между собой с использованием фреймворка imsg):

+#include <sys/tame.h>
…
+	tame(TAME_MALLOC | TAME_UNIX | TAME_CMSG);

Такой подход позволяет разработчикам максимально просто и быстро ограничить потенциальный вред от уязвимостей в своем софте, соответственно, есть шансы что он будет использоваться более часто и широко, чем гораздо более сложные для программиста capsicum и правильный privsep, или в определенном смысле менее гибкие и непростые в администрировании selinux/systrace и co.

>>> Подробности

★★★★★

Проверено: Pinkbyte ()
Последнее исправление: Klymedy (всего исправлений: 6)

привелегий

дело Шомы живет

anonymous
()
Ответ на: комментарий от tailgunner

В этой новости не хватает комментов про песенку.

LamerOk ★★★★★
()
Ответ на: комментарий от tailgunner

не могу понять это сарказм или нет, но на всякий случай http://www.cl.cam.ac.uk/research/security/capsicum/ и https://en.wikipedia.org/wiki/Privilege_separation, http://leaf.dragonflybsd.org/mailarchive/kernel/2012-04/msg00006.html, http://www.openbsd.org/papers/ven05-deraadt/mgp00034.html и следующиe 2 слайда, http://www.openbsd.org/papers/linuxtag06-network/mgp00008.html.

val-amart ★★★★★
() автор топика
Последнее исправление: val-amart (всего исправлений: 1)
Ответ на: комментарий от val-amart

не могу понять это сарказм или нет

Это не сарказм. По основной ссылке есть отсылка к privsep, который выглядит гораздо интереснее.

tailgunner ★★★★★
()
Ответ на: комментарий от Stil

А линуксах такое будет? Или шерето-да-и-фиг-с-ним?

Вряд ли. IIUC tame не имеет смысла без privsep, а privsep требует модификации приложений для собственно sep.

Но в Linux есть seccomp - на его основе можно построить свой tame с БД и Ш, если заморочиться.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

старый seccomp — это абсолютно тот же tame, только можно разрешить только один набор операций, что весьма не гибко и не покрывает толком ни одного типичного юз-кейса. чтобы решить эту проблему, внедрили seccomp-bpf, вот только писать для него правила по мнению Тео та еще наркомания, и я с ним согласен, — это годится, с натяжкой, для проектов с гигантскими ресурсами и запросами, типа Хрома и Файрфокса. tame это middle ground, который дает уже много преимуществ сэндбоксинга без сложной акробатики правил типа bpf. Я кстати не пойму почему ты считаешь что он бесполезен без privsep. Конечно, с ним намного лучше, бесспорно, только и сам по себе он дает немало, особенно по сравнению с отсутствием чего-либо. Патчи в том письме — отличные примеры.

val-amart ★★★★★
() автор топика
Ответ на: комментарий от val-amart

старый seccomp — это абсолютно тот же tame, только можно разрешить только один набор операций

Если можно разрешить только один набор операций - это уже не tame (ну и дурацкое же название, btw).

внедрили seccomp-bpf, вот только писать для него правила по мнению Тео та еще наркомания

Я именно о seecomp с BPF. Писать правила BPF, конечно, так себе удовольствие, но это уже фундамент, на котором можно построить tame.

Я кстати не пойму почему ты считаешь что он бесполезен без privsep

Скажем, за 10 минут знакомства я смысла не увидел. По духу похоже на capabilities в Linux - зачем второй механизм?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

По духу похоже на capabilities в Linux - зачем второй механизм?

в отличии от, можно задавать различные требования до и после инициализации. таким образом tame куда более полезный имхо, в этом основная фича.

смоделировать tame на seccomp-bpf, безусловно, можно. и это нужно сделать, потому что такая технология должна быть доступна большему количеству разработчиков.

val-amart ★★★★★
() автор топика
Ответ на: комментарий от tailgunner

БД и Ш

С базой данных и шрифтами?

Deleted
()

они только добавляют аналог линуксового capset()? знатное решето

anonymous
()
Ответ на: комментарий от Stil

As of Linux 2.2, the power of the superuser (root) has been partitioned into a set of discrete capabilities

anonymous
()

Бесполезный дырявый костыль при наличии поддержки аппаратной виртуализации и trusted base на всех современных процессорах, такая же бесполезная хрень как кооперативная многозадачность. Бздуны барахтаются в прошлом тысячелетии.

anonymous
()
Ответ на: комментарий от val-amart

По духу похоже на capabilities в Linux - зачем второй механизм?

в отличии от, можно задавать различные требования до и после инициализации

capabilities тоже можно понемногу сбрасывать.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

capabilities тоже можно понемногу сбрасывать.

К capabilities это вообще никак не относится, так как они только для привелегированных операций, а этот - для всех остальных.

anonymous
()

пиздос, 21 век на дворе, вместо того чтобы заняться многопоточностью pf (которое сейчас на 1ом ядре обрабатывается)- занимаются какими-то методами секурности

init_ ★★★
()
Ответ на: комментарий от fidaj

нет, не путает, не многопоточный. во фре да, в опене нет.

но во-первых над этим работают, а во-вторых, это полный кретинизм, при чем тут это вообще.

val-amart ★★★★★
() автор топика
Ответ на: комментарий от anonymous

расскажи мне больше про нагрузку для которой оно годно, лол

val-amart ★★★★★
() автор топика

nicm@ и deraadt@ представили новый системный вызов,
позволяющий максимально просто добавить в приложение
возможность отказаться от излишних привилегий.

Вообще-то 4.2. Тут привелегии вообще не при чём. Кто писал новость?

anonymous
()
Ответ на: комментарий от anonymous

я писал. как это не при чем? tame позволяет отказаться от возможности выполнять все системные вызовы кроме завайтлищеных

val-amart ★★★★★
() автор топика

Что такое

гранулярность

?
Это как чай со вкусом гранулярности ?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.