Separacja przywilejów

W programowaniu komputerów i bezpieczeństwie komputerowym separacja uprawnień jest jedną z technik opartych na oprogramowaniu do wdrażania zasady najmniejszych uprawnień . Dzięki separacji uprawnień program jest podzielony na części, które są ograniczone do określonych uprawnień , których wymagają do wykonania określonego zadania. Służy to do ograniczenia potencjalnych szkód wynikających z luki w zabezpieczeniach komputera.

Powszechną metodą wdrażania separacji uprawnień jest rozwidlenie programu komputerowego na dwa procesy . Program główny zrzuca uprawnienia , a mniejszy program zachowuje uprawnienia w celu wykonania określonego zadania. Następnie dwie połówki komunikują się za pośrednictwem gniazd . W ten sposób każdy udany atak na większy program uzyska minimalny dostęp, mimo że para programów będzie w stanie wykonywać uprzywilejowane operacje.

Separacja uprawnień jest tradycyjnie realizowana poprzez rozróżnienie rzeczywistego identyfikatora użytkownika / grupy od efektywnego identyfikatora użytkownika/grupy, przy użyciu metody setuid (2)/ setgid (2) i powiązanych wywołań systemowych , które zostały określone przez POSIX . Jeśli są one nieprawidłowo ustawione, luki mogą umożliwić powszechną penetrację sieci.

Wiele demonów usług sieciowych musi wykonać określoną uprzywilejowaną operację, taką jak otwarcie surowego gniazda lub gniazda internetowego w dobrze znanym zakresie portów. Narzędzia administracyjne mogą również wymagać określonych uprawnień w czasie wykonywania . Takie oprogramowanie ma tendencję do oddzielania uprawnień poprzez całkowite cofnięcie ich po zakończeniu sekcji krytycznej i zmianę użytkownika, na którym działa, na konto nieuprzywilejowane po wykonaniu tej czynności. Ta czynność jest znana jako upuszczanie roota w systemie Unix systemy operacyjne . Część nieuprzywilejowana jest zwykle uruchamiana z użytkownikiem „ nikt ” lub równoważnym oddzielnym kontem użytkownika.

Separację uprawnień można również przeprowadzić poprzez podział funkcjonalności pojedynczego programu na wiele mniejszych programów, a następnie przypisanie rozszerzonych uprawnień poszczególnym częściom za pomocą uprawnień systemu plików . W ten sposób różne programy muszą komunikować się ze sobą za pośrednictwem systemu operacyjnego, więc zakres potencjalnych luk jest ograniczony (ponieważ awaria w mniej uprzywilejowanej części nie może zostać wykorzystana do zdobycia uprawnień, a jedynie do spowodowania odmowy usługi atak ).

Separacja uprawnień jest jedną z głównych funkcji bezpieczeństwa OpenBSD . Implementacja Postfixa koncentrowała się na implementacji kompleksowej separacji uprawnień. Innym oprogramowaniem serwera poczty e-mail zaprojektowanym z myślą o separacji uprawnień i bezpieczeństwie jest Dovecot . Solaris implementuje osobny zestaw funkcji dla nawiasów uprawnień .

Zobacz też

Linki zewnętrzne