LINUX.ORG.RU

Мамкин кулхацкер mode on: запретить доступ к некоторым файлам для всех процессов, кроме <...>

 , ,


2

2

Приветствую.

Как известно, стандартная модель прав POSIX работает только в том случае, когда мы хотим защитить файлы от процессов, работающих с другими учётными данными.

А что делать, если мы хотим защититься «от себя», т. е. от недоверенных программ, запущенных с теми же user/group?

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

В идеале я бы хотел некую команду (требующую права рута, например), которая запускала бы специальный шелл — от моего имени, но имеющий доступ к этим файлам. А остальные процессы пусть получают -EACCES.

Возможно ли такое? SELinux?

Clarification. На самом деле SELinux — это последний вариант, потому что в арче придётся полсистемы пересобрать с ним, включая ядро. Тем, кто компетентен в SELinux, я лучше задам конкретный вопрос: можно ли его настроить так, чтобы не приходилось переписывать политику для каждого нового установленного приложения? Иными словами, в режиме «всем всё можно, кроме вот этой директории — в неё нельзя вообще никому, кроме помеченных в рантайме PID'ов».

★★★★★

А что делать если и рут не должен иметь доступ к данным? вот в чем вопрос (:

anonymous ()

Странно, я думал systemd это уже умеет.

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

На самом деле SELinux — это последний вариант, потому что в арче придётся полсистемы пересобрать с ним, включая ядро. Хотя это уже нытьё. Я лучше задам конкретный вопрос: его можно настроить неинвазивно, т. е. так, чтобы политика имела размер O(1) от количества установленных приложений?

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

Можно попробовать это сделать через неймспейсы.

omnomnomnus ()

Любой другой MAC: AKARI, SMACK, AppArmor. Думаю, во всех это возможно с минимальными усилиями. SELinux это круто, но слишком хардкорно.

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

SMACK посмотри в первую очередь, у него простой дизайн.

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

Да, SMACK выглядит как то, что нужно. Благодарствую.

intelfx ★★★★★ ()

Гм... А что мешает дать этим файлам другие права?

intelfx:intelfx       /home/intelfx/<bogus-stuff>
cool-stuff:cool-stuff /home/intelfx/<cool-stuff>

Ну и банальное

sudo -u cool-stuff <your-favourite-shell>
kirk_johnson ★☆ ()
Последнее исправление: kirk_johnson (всего исправлений: 4)
Ответ на: комментарий от kirk_johnson

Сейчас так и сделано, но мне кажется, что это костыль. Всякие редакторы запускаются с умолчальными настройками, шелл тоже. А ещё из такого шелла недоступен мой основной хомяк, потому что rwX------.

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

Сейчас так и сделано, но мне кажется, что это костыль. Всякие редакторы запускаются с умолчальными настройками, шелл тоже...

sudo -p :) Это если твои редакторы не пишут, а только читают, конечно же. Если что-то более сложное чем доступ к паре файлов, то плюсую SMACK.

kirk_johnson ★☆ ()
Последнее исправление: kirk_johnson (всего исправлений: 1)

Я пошёл по пути наименьшего сопротивления и просто запускаю недоверенные программы под другим пользователем (и группой). Ну и umask настроен. Кстати, у того пользователя (точнее его группы) ещё и интернет перекрыт через iptables, а когда от него надо запустить стим (то, чему я не доверяю, но что не имеет смысла без интернета), я просто делаю это через sg (то есть, меняя группу на другую, а пользователь тот же). Через SELinux может и правильнее это было бы сделать, менее костыльно, но что-то мне сильно лень с этим заморачиваться, нашёл такое вот простое и очевидное решение.

Psych218 ★★★★★ ()

Смотрю в сторону SELinux, но распрекрасные маны и детские раскраски - это одно, а реалии и личные потребности - это очень другое, и увязать это трудно, и даже на #selinux почти нереально добиться ответов, а если и получаешь ответы, то они совсем не те, которых ты ожидал. Пока что я договорился на #gentoo-hardened с человеком по имени perfinion о платных консультациях. Пока в процессе.

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

А где можно посмотреть описания жизненных примеров работы со SMACK? А то сам проект, похоже, не очень активно шевелится, на офсайте увидел только ссылки на разнородные презентации (которые не только про примеры применения).

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

Да хрен знает, я как-то раз его пинал, но это было давно. У меня тогда работало нормально.

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

Не, в рамках обычной POSIX-модели всё жутко неудобно, особенно без ACL'ей. А вот SMACK с двумя метками и двумя правилами выглядит как то что надо (хотя ядро всё равно надо пересобирать).

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

Северо-корейцы дописали в ядро модуль который не дает вообще узнать о существовании некоторых файлов. (А если вдруг с файлом что-то не то - отсутствует либо размер поменялся - ребутит систему сразу... в т.ч. выполняет эту проверку при загрузке ОС). Т.е. пересобрать нужно только ядро и/или модуль, не пол системы.

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

Не, в рамках обычной POSIX-модели всё жутко неудобно, особенно без ACL'ей.

Зависит, на самом деле.

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