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ż
- Bezpieczeństwo oparte na możliwościach
- Zdezorientowany zastępca problem
- Eskalacja uprawnień
- Cofnięcie przywileju (przetwarzanie danych)
- Programowanie obronne
- Piaskownica (bezpieczeństwo komputera)
Linki zewnętrzne
- Theo de Raadt : Exploit Mitigation Techniques w slajdach OpenBSD
- Niels Provos , Markus Friedl, Peter Honeyman: Artykuł dotyczący zapobiegania eskalacji przywilejów
- Niels Provos : Projekt OpenSSH z separacją uprawnień
- Trusted Solaris Developer's Guide: Skuteczne uprawnienia w nawiasach