Компания Google опубликовала (https://github.com/google/capsicum-linux) свои наработки по портированию фреймворка Capsicum (http://www.cl.cam.ac.uk/research/security/capsicum/) для ядра Linux. Работа основана на коде Capsicum из состава FreeBSD 9 и начальной реализации для Linux, развиваемой (http://git.chromium.org/gitweb/?p=chromiumos/third_party/ker...) в прошлом году Маредидом Люффом (Meredydd Luff). Вариант Capsicum от Google базируется на ядре Linux 3.11, оформлен в виде LSM-модуля (Linux Security Module) и поддерживает работу на системах x86_64 или в user-mode Linux.Capsicum представляет собой фреймворк для организации изолированного выполнения приложений и ограничения использования приложениями определённых функций. Capsicum расширяет POSIX API и предоставляет несколько новых системных примитивов, нацеленных на поддержку модели безопасности через управление возможностями объектов ("object-capability") для Unix-систем. Capsicum нацелен на дополнение традиционного централизованного мандатного контроля доступа средствами для защиты отдельных приложений и активируется на стороне самого приложения. Используя Capsicum приложение можно запустить в режиме повышенной изоляции (sandbox), при котором программа сможет выполнять только ранее специфицированные штатные действия.
Capsicum вводит в обиход новый класс файловых дескрипторов - capability, который предоставляет ограниченный набор прав, ассоциированных с ним. Попытки выполнить действия с дескриптором данного типа, не разрешённые заданными правами, отклоняются с выводом ошибки ENOTCAPABLE. Новые полномочия могут определяться только иерархически, как подмножество уже заданных прав, привязанных к существующему capability-дескриптору. Предоставляется также специальный режим "capability", блокирующий обращение ко всем системным вызовам из которых возможен доступ к глобальному пространству имён. Комбинируя эти две возможности, использующее Capsicum приложение может эффективно изолировать себя в sandbox, определив права доступа для необходимых в работе файлов и сокетов, закрыв все остальные файловые дескрипторы и активировав режим capability, который не позволит открыть не подпадающие под созданные правила новые файловые дескрипторы.
URL: https://github.com/google/capsicum-linux
Новость: http://www.opennet.me/opennews/art.shtml?num=38138
что-то по описанию это напоминает sandbox selinux'а
Ну, там приложения ограничиваются внешними правилами.
А тут, судя по описанию, все функции по ограничению ложатся на само приложение. Захочет - ограничится, не захочет - не ограничится.
тогда скорее всего будет провал. И так capabilities почти никто не использует. Сомневаюсь, что с участием гугла что-то изменится.
> тогда скорее всего будет провал.Бсдшники это делали чисто из академического интереса, группа пиoнеров, работающих в гоогле, в свободное время спортировала это just4fun.
Нужно ли это кому-то - подумать как-то забыли.> И так capabilities почти никто не использует.
В федоре заставляют использоваться. Специально патчат демонов, чтобы они от рута не работали.
> Сомневаюсь, что с участием гугла что-то изменится.
Не факт, что эти пиoнеры действовали по корпоративной инициативе. Скорее - по личной.
> В федоре заставляют использоваться.Поэтому желающих пользоваться федорой не сильно много. Гемора с selinux много а результат не хуже можно достичь например простой резкой на контейнеры.
Не поэтому.
Селинух 100500-ый по списку. Просто сырое почти всё. Да ещё Похтеринги всякие, гномы3 (прибитые тееерь к системд и пульсу. На радость бсдишнегам и пр.)
> На радость бсдишнегам и пр.)Им с этого нифига не обломится - какая им с этого радость?
Не догадался поставить тэг <ирония>.
Думал народ продвинутый, так поймёт.
> Селинух 100500-ый по списку. Просто сырое почти всё. Да ещё Похтеринги всякие, гномы3 (прибитые тееерь к системд и пульсу. На радость бсдишнегам и пр.)Ну же, расскажи нам, как хорошо и привольно в убунточке!
Вам? Т.е. ты такой таббаки, а где-то там за тобой шерканчики толпой стоят? :D
Нам - это широкой общественности. Не только мне интересно узнать, как гентушники превращаются в идЭйных убантуводов.
> Поэтому желающих пользоваться федорой не сильно много. Гемора с selinux много а
> результат не хуже можно достичь например простой резкой на контейнеры.Типичный борец с федорой даже не знает о разнице между SELinux и POSIX capabilities.
Шикрано :)
>> Поэтому желающих пользоваться федорой не сильно много. Гемора с selinux много а
>> результат не хуже можно достичь например простой резкой на контейнеры.
> Типичный борец с федорой даже не знает о разнице между SELinux и
> POSIX capabilities.
> Шикрано :)сам бы читать научился -- где в словах "простой резкой на контейнеры" увидел POSIX capabilities
Где в словах "И так capabilities почти никто не использует." про простую резку на контейнеры?
> Где в словах "И так capabilities почти никто не использует." про простую
> резку на контейнеры?вон оно чё
my bad
>> Где в словах "И так capabilities почти никто не использует." про простую
>> резку на контейнеры?
> вон оно чё
> my badСогласен, урезание контекста (второго уровня цитирования) немного запутывает :)
> группа пиoнеров, работающих в гоогле, в свободное время спортировала это just4fun.Многие упорно забывают, что сам Линукс появился потому, что один мальчик решил реализовать UNIX API тоже just for fun.
Многим очень хочется это забыть, потому что у самих с их стремлением "only for profit" никак не получается сделать что-то лучше, что это некоторые делают "just for fun".
> Многие упорно забывают, что сам Линукс появился потому, что один мальчик решил
> реализовать UNIX API тоже just for fun.
> Многим очень хочется это забыть, потому что у самих с их стремлением
> "only for profit" никак не получается сделать что-то лучше, что это
> некоторые делают "just for fun".Но только некоторые.
Никто из них не задумывается, а нужно ли оно кому-то. Поэтому выстреливает только несколько проектов из тысячи.
Внезапно - существуют программы, которые сами дропают рут-привилегии и сами чрутаются в свой рабочий каталог. Они по-Вашему тоже провальные?
> Внезапно - существуют программы, которые сами дропают рут-привилегии и сами чрутаются в
> свой рабочий каталог. Они по-Вашему тоже провальные?Внезапно - существуют программы, которые этого не делают. И чо?
А то.
Не пользуйтесь такими программами.
Любой уважающий себя демон так делает. Это уже давно стало правилом хорошего тона в разработке.
А то, что программа должна быть изначально написана с мыслью о безопасности. Субж - один из инструментов для этого.
> Внезапно - существуют программы, которые сами дропают рут-привилегии и сами чрутаются в
> свой рабочий каталог. Они по-Вашему тоже провальные?Нет. Провальна идея заставить разработчиков всех программ так делать.
По описанию похоже на seccomp
а selinux по другому работает.
> По описанию похоже на seccomp
> а selinux по другому работает.и вообще лучше бы из linux выкинули лишние, а не тащили по 4 механизма защиты друг дружку дублирующих
>оформлен в виде LSM-модуляВо внутренностях одни и те же механизмы используются.
не собирай ненужные механизмы, кто заставляет
> и вообще лучше бы из linux выкинули лишние, а не тащили по
> 4 механизма защиты друг дружку дублирующихЗачем выкидиывать? Наоборот, лучше принимать новые!
Вон пару лет назад apparmor приняли, хотя он дублировал уже имеющийся tomoyo и даже уступал ему по фичам.
Очень мутно написано (хотя на офсайте capsicum еще мутнее).Речь идет только об ограничении операций с конкретными fd?
Нет.
Речь о разрешении только конкретных fd (сокетов и пр.) :D
> Нет.
> Речь о разрешении только конкретных fd (сокетов и пр.) :DФильтр на fopen syscall?
нет, например, чтобы на сокете нельзя было сделать bind, а только connect, нельзя было сделать write(), а только read(). или, например, запретить fchmod на дескриптор.
seccomp filter http://www.opennet.me/opennews/art.shtml?num=34387 уже есть и почти тоже самое.