Bye bye, suid
Wychodząc naprzeciw trendowi „jeden komputer — jeden użytkownik”,
od następnej wersji Fedory będzie w systemie tylko konto root
.
Dzięki temu możliwe stanie się wyeliminowanie programów z suidami.
A tak na poważnie, eliminacja polega na zastąpieniu
suid-rootów odpowiednimi capabilities
. Program, który
wymaga tylko uprawnień do zmiany czasu lub używania portów sieciowych
poniżej 1024, dostanie uprawnienia tylko do tego. Do tej pory wszystkie
możliwości roota były przyznawane.
Wcześniej temu wyzwaniu podołał OpenWall Linux. Przez przerobienie niektórych
mechanizmów pozbyto się konieczności uruchamiania przez użytkownika
programów jako root. Przykładowo, zmiana powłoki, opisu, hasła czy innych
pól w bazie użytkowników /etc/passwd wymagała uprawnień
do modyfikacji tego pliku, a więc superużytkownika. W OWL każdy użytkownik
ma swój plik w /etc/tcb
, którego jest właścicielem i
którego edycja nie wymaga superusera.
W Fedorze wysiłki zmierzają do konkretnego nadawania uprawnień. W sieci można znaleźć przykłady użycia setpcap. Jest to proces dość żmudny i niekoniecznie zakończy się powodzeniem, już w tej chwili idzie dość opornie. Rozwiązanie z OWL wygląda lepiej i bardziej przypadło mi do gustu.
Tak jak wcześniej ACL'e rozszerzyły uprawnienia plikowe rwx
,
tak teraz capabilities rozszerzają ideę rootowego suida. Admini, którzy
do tej pory zwlekali z uzupełnieniem swojej wiedzy mają kolejną szansę na pobudkę
z ręką w nocniku.
Archived comments:
Stanisław 'dozzie' Klekot 2011-01-01 18:40:01
> Admini, którzy do tej pory zwlekali z uzupełnieniem swojej wiedzy mają kolejną szansę na pobudkę z ręką w nocniku.
Znaczy tego, no. Zdajesz sobie sprawę że naprawdę niewiele usług potrafi skorzystać z POSIX 1003.1e ACLs? W żadnym wypadku nieznajomość POSIX 1003.1e ACLs nie powoduje problemów, a i znajomość stosunkowo niewiele pomaga.
Podobnie pewnie będzie z capabilities.
ickon 2011-01-01 19:49:40
poczekamy - zobaczymy, jak się przyjmie to zerknę dokładniej ...
zdz 2011-01-02 11:28:44
dozzie; prawda, niewiele aplikacji bezpośrednio korzysta. Ale jak już to robią, to ma to zazwyczaj większy impact, jak np. udev-acl rozdające uprawnienia do plików w /dev.
Problem widzę raczej w ,,starej gwardii'', która uważa, że "ls -l" wystarczy do sprawdzenia kto ma dostęp do pliku lub jakie uprawenienia ma program po uruchomieniu.
spinus 2011-01-03 18:00:00
Hm, a to nie jest tak, że ta ,,stara gwardia'' to ludzie, którzy lubią KISS? Łatwo szybko i przyjemnie, natomiast ACLe i podobne wynalazki zabierają dużo czasu na najprostsze zadania, jak np sprawdzenie listy dostępu czy inne mechanizmy? W Windowsie takie rozwiązanie istnieje od dawna i często widze jak koledzy z tych systemów klą na te mechanizmy. Ale być może to kwestia braku dobrych narzędzi do obsługi mechanizmów?
Comments
Comments powered by Disqus