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