« Отговор #7 -: Sep 08, 2009, 17:57 »
Ахъм, знам за това, в случаят селинукс прави системата по-уязвима, защото е още един вектор на атака (освен pulseaudio и/или директно мап-ване на паметта ако стойността на онова е 0). Това обаче е частен случай и по никакъв начин не означава, че селинукс е безсмислено начинание. После, това скоро ще бъде оправено така или иначе.
Обаче за confine-ване на десктопи както казах става ужасно сложно. Да разгледаме 2 случая: уеб сървър и уеб браузър.
Уеб сървъра (нека е апач) има сравнително малък списък с изисквания: трябва да може да отваря и да слухти на 80-ти порт, да може да си чете documentroot-a, конфигурациите, /var/run/..., директорията с апач модулите, евентуално ако ползва PHP има повече изисквания - да може да пипа в директорията със сесийните файлове, да чете от директорията с пхп библиотеките и в общи линии тези неща могат да се опишат лесно.
Уеб браузъра е съвсем различна бира. Първо там не можеш да кажеш: искам да може да се връзва само на 80-ти порт и на 52/udp. Защото може да ползваш прокси, можеш да отваряш уеб услуга на друг порт, можеш да отваряш фтп услуга примерно (а там е ужас).
Трябва да можеш да си четеш директорията дето се пазят временни файлове, кукита, плъгини и т.н. Обаче какво става ако потребителя реши да запише някой документ някъде? Ще има проблеми.
Друг случай: отваряш един pdf файл и искаш да го видиш направо с kpdf например, защо браузъра да има право да го изпълнява? Какво трябва да може да изпълнява и какво да не може, зависи от ужасно много неща.
Не казвам, че не може да се уреди всичко това, но ще е доста сложно и ще работи, докато потребителят не реши да прави нещо малко встрани от заложеното. Тогава ще има драми.
Та уеб сървъри успешно се confine-ват и правилата за това са част от targeted политиките, които идват с дистрибуциите, подържащи селинукс (дебиан или редхат например). Обаче за браузъри....става доста грубо. Не че не може, но това е решение за конкретен случай. Ще е ужасно сложно да се направи нещо, което да е работещо в масовия случай без прекалено много проблеми.
А иначе стандартните механизми са ужасно груби. ОК, ще си направиш друг потребител, с него ще ровиш из интернет, но това не е решение, поради ред причини.