LINUX.ORG.RU

Canonical повторила попытку интегрировать AppArmor в основную ветку ядра Linux

 , , , ,


0

0

Компания Canonical, продвигающая AppArmor в Ubuntu в роли более простого в настройке аналога системы определения политик безопасности SELinux, предприняла повторную попытку инициировать процесс интеграции AppArmor в основную ветку Linux. Прошлая попытка была осуществлена в 2007 году компанией Novell, но привела лишь к критике со стороны некоторых авторитетных разработчиков ядра.

Основные претензии сводились к недостаточной совместимости с интерфейсом LSM (Linux Security Modules) и привязке к именам файлов вместо реализации через ассоциированные с объектом метки (как в SELinux). Разработчики из проекта Ubuntu учли высказанные ранее замечания и подготовили улучшенный вариант AppArmor, переработанный в плане использования стандартных хуков LSM (задействовали security_path вместо vfs), что повышает привлекательность патча для включения в основное ядро.

Изначально AppArmor представлял собой проприетарный продукт компании Immunix, которая была поглощена компанией Novell в 2005 году. Год спустя исходные тексты AppArmor были открыты компанией Novell под лицензией GPL и интегрированы в дистрибутив openSUSE. В 2007 году основатель проекта и команда разработчиков AppArmor покинула компанию Novell и развитие технологии почти остановилось. Novell сохранила в своих продуктах поддержку AppArmor, но интегрировала в дистрибутив и поддержку SELinux, позиционируя данную технологию как более перспективную. Отказался от AppArmor и дистрибутив Mandriva, перешедший на использование интегрированного в Linux 2.6.30 фреймворка TOMOYO. Единственным оплотом AppArmor остался проект Ubuntu, разработчики которого продолжают развивать технологию и, например, недавно добавили в парсер AppArmor поддержку кэширования правил, что позволило значительно ускорить процесс инициализации во время загрузки.

>>> Взято с OpenNet



Проверено: anonymous_incognito ()
Последнее исправление: lodin (всего исправлений: 1)

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

>ну как бы selinux вот я не осилил, а apparmor у меня работает. но таки tomoyo выглядит по документации лучше аппармора...

Только по документации или функционалу?

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

>А в чем проблема тем же AppArmor'ом не разрешать создание жестких ссылок?

недавно столкнуля со случаем, когда для работы программы нужна была именно жесткая ссылка

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

>Мое утверждение было доказано вами как минимум в двух случаях: 1. Когда вы спросили, как сделать хардлинк без шелла. Любой начинающий саппорт, имея лишь FTP и HTTP-доступ в обычному хостинговому серверу с пыхом, прекрасно сделает на нем хардлинк без использования шелла. Предлагаю вам подумать, как :)

Да ну - это подмена понятий, ну и что, что в PHP нет букв SH? файлы писать может? может. а там хоть в /proc заглядывай.

Я вот только не пойму разве в AppArmor только пути указаны? Там нельзя поставить ограничения на системные вызовы и блокировать их?

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

не нужен

АппАрмор в убунте ненужен

anonymous
()

ну зачем такое на главную то? в толксах обсудить пытались уже

а по теме - да армор настраивать сильно сильно проще и гуЁвней, но блин обходится ведь, если правильно помню на хардлинках (это вроде самое тривиальное). в selinux, как только напишешь какой либо сервис и положишь его еще в нестандартное место, долго будешь матерясь выравнивать контексты от SE, но эффект зато поражающий моск хомячка :)))

и зачем вставлять в основную ветку? только для пузомерки какой нибудь. кому надо, осилят патчи наложить, нормальная Ъ практика (хотя не, наверное у убунтоидов сие не Ъ ;))

p.s. не годуэ по поводу копипасты один в один с opennet, можно было бы хоть слов добавить от себя

real_maverick ★★★
()

Где есть нормальный cookbook по selinux?
Ну к примеру как запретить всем кроме pidgin читать файлы из .purple?

Да, я неосилятор,но не знаю за что даже взяться подступаясь к selinux

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

>Пруф на то, что apparmor сейчас работает на механизме, независимом от путей, либо признание вами того факта, что вы идиот.

Чересчур толсто.

oguretz
()
Ответ на: комментарий от APM
Ответ на: комментарий от nnz

убунтовод, превым делом прописал параметр загрузки ядра без этого г, вторым снес его через эптитьюд, третьим пересобрал ядро без него.

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

>Да ну - это подмена понятий, ну и что, что в PHP нет букв SH? файлы писать может? может. а там хоть в /proc заглядывай.

Тот анонимус наивно полагал, что если не давать пользователю доступ по SSH, то пользователь не сможет создать жесткую ссылку. Я привел простой пример, показывающий неправильность такой точки зрения.

Я вот только не пойму разве в AppArmor только пути указаны? Там нельзя поставить ограничения на системные вызовы и блокировать их?


Нет, возможности apparmor не ограничиваются только разрешениями на доступ к файлам. Еще он может разрешать/запрещать определенные режимы работы с сетью (например, network inet tcp разрешает TCP), а также кастовать POSIX capabilities (ну, мало ли, кто-то libcap-bin не осилил). Но привязывается это все к конкретным бинарникам... правильно, через те же пути :)

nnz ★★★★
()

Если сейчас AppArmor нормально работает в юзерспейсе, объясните, нафига его пихать в ядро??

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

>Чересчур толсто.

Чего толстого-то? Люди спокойно себе обсуждают, взвешивают, понимаете ли, плюсы и минусы, а тут приходит этот бледный (в красную крапинку) юноша и начинает хамить.
А также делать необоснованные утверждения. Всю жизнь apparmor на путях работал, у него вся архитектура на них завязана (попробуйте переписать его конфиги так, чтобы они не зависели от путей). Если бы сие из него убрали, об этом на каждом углу кричали бы.

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

>Если сейчас AppArmor нормально работает в юзерспейсе, объясните, нафига его пихать в ядро??

:D

Нормальные системы MAC не могут работать в юзерспейсе по определению, иначе их можно было бы обойти на раз-два.

В настоящее время apparmor существует только ядрах дистрибутивов-«энтузиастов» (SuSE и ubuntu, причем суся как основной механизм все равно использует SELinux). Эти ядра собираются со специальными патчами.

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

>Только по документации или функционалу?

я имел в виду, что по тому, как оно в документации описано, ибо tomoyo даже не тестировал :-)

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

>любой начинающий саппорт, имея лишь FTP и HTTP-доступ в обычному хостинговому серверу с пыхом, прекрасно сделает на нем хардлинк без использования шелла. Предлагаю вам подумать, как :)

ну раз Вы намека не поняли, что понты квалификации не добавляют, поясняю- вот это как раз таки аппармором и ограничивается. подумайте как :-)

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

>Тот анонимус наивно полагал, что если не давать пользователю доступ по SSH, то пользователь не сможет создать жесткую ссылку. Я привел простой пример, показывающий неправильность такой точки зрения.

типичный пример так называемого вранья :-) или, точнее говоря, того как понты пересиливают разум ;-)

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

> недавно столкнуля со случаем, когда для работы программы нужна была именно жесткая ссылка

В AppArmor можно задать правило, что программа может создавать жесткие ссылки на конкретные файлы.

man 5 apparmor.d

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

> Там нельзя поставить ограничения на системные вызовы и блокировать их?

Там можно забирать у процессов лишние capabilities

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

> Когда вы спросили, как сделать хардлинк без шелла. Любой начинающий саппорт, имея лишь FTP и HTTP-доступ в обычному хостинговому серверу с пыхом, прекрасно сделает на нем хардлинк без использования шелла. Предлагаю вам подумать, как :)

Я не начинающий саппорт, но не знаю, как сделать хардлинк через http+ftp. Можно поподробнее?

«пыхом» не владею.

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от legolegs

>В какой программе дырка? В апаче? Так и без селинукса хомяк в безопасности. Или дырка в sshd? и что тут сделает селинукс? libastral в поставку входит?

Браузер, торрент-клиенты, быдло-IM, локальные повышения привелегий.

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

>еще раз- selinux я не смог осилить

apparmor у меня работает в продуктиве

если Вы что-то не осилили - это не проблемы продукта :) Если программист не способен осилить метапрограммирование на с++ это разве проблема с++ и разве из-за этого нужно писаль вИлосипед ?

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

> Я не начинающий саппорт, но не знаю, как сделать хардлинк через http+ftp. Можно поподробнее?

Очень просто.

Залить такой вот php-файл:

<?php link('/bin/bash', '/some/path/my-bash'); ?>

и открыть его через браузер.

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

Только тут, скорее всего, будет большой облом: клиентские домашние каталоги обычно живут на отдельном разделе (смонтированном с nodev,noexec,nosuid), а жесткая ссылка не может ссылаться на файл на другом разделе.

Так что при грамотной настройке такой сценарий не сработает.

sjinks ★★★
()

А можно заодно попросить убрать из Ubuntu PolicyKit, PAM, dbus, hald, upstart и Gnome? Волшебная система получилась бы. Почти Slackware...

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

> disable_functions = link в php.ini и никаких selinux не надо.

К слову, disable_functions обходится на ура через interruped execution (детали у Стефана Эссера, а объяснять слишком долго).

Если по-хорошему, то запрещать функции нужно либо через Suhosin, либо ставить хук на zend_execute_internal, проверять ((zend_internal_function*)execute_data_ptr->function_state.function)->function_name и делать zend_bailout(), если функция запрещена.

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

>А можно заодно попросить убрать из Ubuntu PolicyKit, PAM, dbus, hald, upstart и Gnome? Волшебная система получилась бы. Почти Slackware...

И Python.

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

> Эксплойта нет.

Который обходит disable_functions? В паблике может и нет. Я проверял на Core Globals (которые CG()) в 5.2.10, работало (правда, я заранее знал адрес, поэтому мне было проще). Хотя цели очистить disabled_functions у меня не было.

В любом случае я бы рисковать не стал.

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

>типичный пример так называемого вранья :-) или, точнее говоря, того как понты пересиливают разум ;-)

Ну вот, сначала ляпнем не подумавши, а потом отпираемся, и других во вранье обвиняем.

Вы, мой юный лживый друг, прямо и недвусмысленно заявили «ага, ну создайте хард-линк, если шелла нет :-)». Пожалуйста, идите давить прыщи дальше и не лезьте в разговоры взрослых дядек.

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

> так я их не знаю заранее. Сегодня мне надо картинку отправить, завтра

- кусок скрипта или патч. Один фиг придется разрешать всё.


И эти люди еще намекают что они уберкуладмины :):):) Палимся на тему профнепригодности :):):)

Секурити в таких случаях делается разнесением ролей / разнесением идентити. Если внутри одного юзера то, например, делаем несколько профайлов броузера(это если у вас есть скрипт который разным профалам связанным с разными PID прописывает разные секурити контексты). Или несколько инсталляций броузера - тогда можно просто метки(например SE Linux) вешать на разные инсталляции. Если можно завести разных пользователей это тоже вариант, но не факт что более удобный - кому как. Соответственно в зависимости от желаний можно этот момент разделения углубить - завести разные емейлы, jabber ID ну и тп. При желании конечно.

Ну и соотвественно админим и читаем доки в одном броузере, бумажки заполняем по работе(и общаемся с коллегами-соратниками) в другом, общаемся с друзьями вконтакте, бугога, в еще одном, смотрим порево в третьем еще что-то делаем в четвертом. Для повышенной безопасности обмениваемся информацией между контекстами секурными способами - хоть емейлом пересылаем. Или еще как.
Соотвественно для повышения уровня безопасности нужно правильно разбить логику работы на сегменты, которые штатно не должны быть связаны.

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

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

>Не влане что он делает,

Влане читает лор

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

Остается только один вопрос: нафиг в этой схеме SE Linux, если хватит просто нескольких UID.

// капча rather includes явно на что-то намекает

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

>И эти люди еще намекают что они уберкуладмины
молодой человек, запишитесь к дохтору на прием, проверьте зрение

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

Залить такой вот php-файл:

<?php link('/bin/bash', '/some/path/my-bash'); ?>

и открыть его через браузер.

И откроется он, как обычный текстовый файл?
Или вы его сможете по ftp (который, к слову,
делает chroot анонимусам), подсунуть в
каталог скриптов?

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

И откроется он, как обычный текстовый файл?

Хотя слишком много чести ему текстом
открываться - небось, binary/octet-stream
какой-нить будет, и всё. :)

anonymous
()

Privilege separation

Я один использую несколько учётных записей для разных приложений?

vi@vi-notebook:~$ ls /home/vi/home/
firefox icedove java konqueror    mathematica6 noinet opera    psi soffice wine xchat
flex    itransition k3b mathematica mplayer nonet packettracer qemu vil    wireshark

Capabilities + ACL => более менее удобная работа (редко когда нужно из root'а поправить права).
Плюс можно легко запустить программу в режиме «без сети вообще» или «без доступа в интернет».
Управляет хозяйством специальный вело-sudo-костыль, который первым делом проверяет, что он запущен пользователем «vi».

P.S. Не судите строго за набор программ.

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

> скажите необразованому, зачем нужен этот лисапед? не проще ли прикрутить как надстройку над SELinux (с карточными играми и девушками легкого поведения?)

Значит нужен...

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

> И откроется он, как обычный текстовый файл?

По условиям задачи на хостинге установлен PHP. Так что если пользователь зальет этот файл по фтп к себе на сайт, файл будет выполнен. Собственно, пользователи так свои скрипты и заливают, разве нет?

sjinks ★★★
()

AppArmor няшка и нужен :3

Приятно лишний раз в security рассылке прочитать «xxx даёт в очко^W^W записать в память, но AppArmor нас бережёт».

И, да, SELinux УГ.

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

> молодой человек, запишитесь к дохтору на прием, проверьте зрение

Вы выше постом долго разглагольствовали про взрослых дядь обсуждающих серьезные вопросы ;) А потом палитесь как не знающий таких элементарных вещей, то есть сами нек подпадаете под категорию взрослых дядь :)

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

> Остается только один вопрос: нафиг в этой схеме SE Linux, если хватит

просто нескольких UID.


SELinux это ОДИН ИЗ возможных механизмов обеспечения этого. Но я так понимаю вы из тех многочисленных анонимов которые чуть что кричат «не нужен» :):):)

Можно настроить гораздо гибче и секурней с SELinux чем без. И тем более что может сложится ситуация когда selinux (точнее спецсофт на его базе) будет, а возможности делать много логинов - нет. Логины это разделение разных физических людей, а профайлы разных виртуальных, не путайте мух с котлетами.

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

>Вы выше постом долго разглагольствовали про взрослых дядь обсуждающих серьезные вопросы
у тебя точно проблемы со зрением. Ничего подобного я тоже не писал.

А потом палитесь как не знающий таких элементарных вещей

да я как бы и не скрываю, что не особо разбираюсь в selinux и подобных технологиях. Поэтому и задаю вопросы по теме.

то есть сами нек подпадаете под категорию взрослых дядь

у тебя комплекс школоты и везде тролли мерещатся? Я не админ, с секретными данными не работаю. И нигде ничего подобного я не писал.

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

значит я верно диагностировал проблемы со зрением :)

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