Czy uważasz, że dobrą praktyką jest wdrożenie możliwości umożliwienia administratorowi zalogowania się jako inny użytkownik, z pominięciem hasła? Można to zaimplementować za pomocą hasła głównego lub funkcji w administracji użytkownika „Zaloguj się jako ten użytkownik”.
Administratorzy proszą, aby taka funkcja mogła na przykład spróbować odtworzyć zgłoszony problem lub sprawdzić, czy granty są w porządku.
security
problem-solving
Dan McGrath
źródło
źródło
Odpowiedzi:
Nie, wcale nie. Narusza to podział obowiązków.
Powoduje to również spustoszenie w poleganiu na dziennikach w celu pokazania działań użytkownika.
Jeśli naprawdę musisz sprawdzić takie rzeczy, administrator powinien również mieć fikcyjne konta testowe skonfigurowane tak, jak użytkownicy. W ten sposób mogą potwierdzić granty itp. Najpierw działają poprawnie na użytkowniku testowym.
Nawiasem mówiąc, użytkownicy administracyjni nie zawsze powinni mieć wszystkie prawa, które posiada użytkownik. Na przykład użytkownik może mieć ważne powody, aby przeglądać numery kart kredytowych w systemie. Administrator nie powinien; te dane nie są częścią ich pracy. Ponownie sprowadza się to do podziału obowiązków.
Zminimalizuj swoją ekspozycję, minimalizując przyznawanie niewłaściwych praw. Powinno to obejmować również administratorów ...
źródło
Z punktu widzenia bezpieczeństwa i zasad czystego programowania nie jest to dobry pomysł. Ale może być ogromną wygodą w codziennej pracy dla administratora, dlatego jestem za to, jeśli jest dobrze zaimplementowany.
Dla mnie poprawna implementacja musiałaby spełniać następujące wymagania:
System loguje się jako użytkownik, o którym mowa, ale pomija uwierzytelnianie hasła, jeśli jesteś zalogowany jako administrator.
System rozpoznaje za pomocą flagi, że nie jest to użytkownik x, ale administrator zalogował się jako użytkownik x. Każda funkcja rejestrowania odzwierciedlałaby różnicę.
Nie ma sposobu na „wyrwanie się” z logowania użytkownika z powrotem na poziom administratora.
Może to faktycznie poprawić bezpieczeństwo, ponieważ administrator nie musi sprawdzać i używać poświadczeń użytkowników, co w rzeczywistości często dzieje się tak z powodów, o których wspomina OP: Coś musi zostać sprawdzone, przetestowane itp. Na koncie użytkownika .
źródło
Jak zawsze ... to zależy. Nie ma łatwej odpowiedzi i oba systemy są używane w praktyce (np. Windows: Administrator nie może zalogować się jako użytkownik bez zresetowania hasła vs. Linux: Administrator może zalogować się jako użytkownik lokalny
su
).Oczywiście, nie zezwalanie administratorowi na logowanie się jako inny użytkownik jest bezpieczniejszą opcją, więc musisz zdecydować, czy dodatkowy komfort (możliwość debugowania problemów, które występują tylko dla określonego użytkownika) przeważa nad ryzykiem. Jeśli zdecydujesz się wdrożyć taką opcję, upewnij się, że istnieje rygorystyczne logowanie, aby administrator (lub ktoś, kto otrzymał hasło administratora) nie mógł ukryć swoich śladów.
Alternatywnie możesz użyć wzorca używanego przez system Windows: Administrator nie może zalogować się jako inny użytkownik, ale administrator może zresetować hasło użytkownika. W ten sposób administrator może uzyskać dostęp, ale użytkownik zawsze będzie wiedział, że ktoś uzyskał dostęp do jego konta.
źródło
sudo
nie loguje się jako użytkownik lokalny, po prostu uruchamia jeden proces jako użytkownik („Uruchom jako użytkownik” w systemie Windows). Aby zalogować się jako użytkownik lokalny, użyjsu
. W przeciwnym razie zgadzam się.sudo -i
.sh
zachowuje się plik wykonywalny, niż z tym, jakie uprawnienia są przyznawane.su - user
isudo -u user sh
przyznać ten sam dostęp; różnica polega na tym, żesh
działają różne skrypty startowe.Cóż, phpBB3 ma funkcję „Testuj uprawnienia użytkownika” dla administratorów, co jest naprawdę pomocne. Ponadto tak naprawdę nie pozwala ci to ingerować w to konto użytkowników, ale naprawdę po prostu czerpać z ich doświadczenia w oparciu o ich uprawnienia.
Ale w rzeczywistości logowanie się jako ktoś inny wiąże się z wieloma problemami, jak wspomniali inni.
źródło
Tak, taka funkcjonalność może być problematyczna, ale czasami nie ma innej drogi, więc może być konieczna.
Kilka przykładów:
su - <username>
co daje taki sam efekt jak logowanie się jako ten użytkownik, ale nie wymaga hasła do roota)Jak wskazano, jeśli złożone ustawienia zależą od zalogowanego użytkownika (zmienne środowiskowe, ścieżki, ustawienia osobiste w aplikacji), często nie ma innego praktycznego sposobu debugowania problemu użytkownika.
Jeśli chodzi o rejestrowanie / audyt: korzystanie z tej funkcji powinno oczywiście być rejestrowane. Poza tym musisz zaufać swojemu administratorowi, że go nie wykorzysta. Ale dotyczy to ogólnie administratorów.
Jeśli chcesz bardziej ograniczyć administratorów, potrzebujesz systemu MAC (obowiązkowej kontroli dostępu), bez „prawdziwego” administratora. Jest to możliwe, ale o wiele bardziej skomplikowane, więc jest to kompromis.
źródło