Stara Uniksowa zasada "nieprzemakalnego płaszcza bezpieczeństwa" polega na pracy bez uprawnień administracyjnych. Windowsy też to powinny realizować, ale .... no właśnie. Najkrócej mówiąc dlaczego
praca jako administrator jest niebezpieczna i nie powinna mieć miejsca w codziennym użytku: szkodniki internetowe (trojany i inne malware) automatycznie dziedziczą uprawnienia użytkownika, więc będąc administratorem "przyzna się" im pełną kontrolę nad systemem. Gdyby każdy dostosował się do zasady używania konta limitowanego, można zamknąć dział Wirusy. Wstęp i opisy metod muszą być nieco rozbudowane by przeznaczenie aplikacji stało się w pełni jasne a użytkownicy z nich korzystający nie załatwili się niemożnością powtórnego logowania na swoje konto:
Unix - Unixy posiadają dwie komendy rozwiązujące sprawę bezpiecznej "bezadministracyjnej" pracy:
su (= substitute user / zamień użytkownika) oraz
sudo (= superuser do). Komenda su umożliwia przełączenie aktywnego użytkownika bez konieczności wylogowania się. Dla odmiany komenda sudo umożliwia wybranym użytkownikowi wywołanie zadania z podniesionymi uprawnieniami superuser, ale bez przełączania użytkownika i jego kontekstu.
Windows Vista - Posiada natywnie wbudowany system podnoszący bezpieczeństwo pracy w środowisku administratora, w postaci tzw.
UAC (User Account Control). Wariacja rozwiązana w taki sposób, iż użytkownik posiada konto administratora aczkolwiek domyślnie pracuje ono w środowisku standardowym a zadania typowo administracyjne wymagają zatwierdzenia. Niemniej UAC to nie jest sudo. Mylącą kwestią w tej materii jest tryb Admin Approval Mode (zapytanie o potwierdzenie swej tożsamości sugeruje sudo).
Windows 2000/XP/2003 - Imitacja su zrealizowana pod postacią opcji
Uruchom jako, która umożliwia uruchomienie programu przy użyciu innego konta i kontekstu zabezpieczeń niż te, których użytkownik użył do zalogowania się (oczywiście musimy znać hasło konta na które mamy przełączyć aplikację).
Sama praca z poziomu czystego konta limitowanego nastręcza różne trudności głównie z pracą programów, które nie chcą działać i wymagają uprawnień administracyjnych. By to usprawnić i zagwarantować, że limitowane konto będzie miało wszystkie potrzebne nam uprawnienia dla softów, jest wymagana żmudna procedura śledcza opisana w tym artykule MS:
Jak w praktyce stosować zasadę minimalnych uprawnień (na forum mały przykład:
klik). Dla przeciętnego użytkownika jest to awykonalne i wszyscy jadą na koncie o uprawnieniach administracyjnych, "bo tak jest wygodniej". Pod tym kątem można dobrać pomoce umożliwiające szybkie przestawienie uprawnień bez skomplikowanych procedur i faktycznej znajomości tematyki. Może się to odbywać w dwóch kierunkach:
1. Z konta administratora obniżanie uprawnień:
Mniej bezpieczny kierunek. Metoda opiera się na obniżeniu uprawnień dla wybranych przez nas "czułych" aplikacji, które mogą brać udział w narażaniu bezpieczeństwa komputera (typowo pod uwagę internetowe aplikacje: przeglądarki, klienty poczty, komunikatory...). Czyli jesteśmy administratorem, ale wybrane przez nas programy zostaną zastartowane jako limitowane. W potocznym nietechnicznym rozumieniu jest to zbliżone do Internet Explorer Protected Mode w Viście. Metoda nie narusza układu grup i nie przenosi naszego konta do innej grupy. Opiera się na wdrażaniu tzw.
Software Restriction Policy (aka SAFER) (Windows 2000 tego nie obsługuje, zaimplementowane dopiero od XP Pro w górę). Wywód skrócę tyle ile się da, wizualizując na przykładzie XP Pro (Home nie posiada przystawki secpol):
XP Pro / 2003:
Start >>> Uruchom >>> secpol.msc >>> Software Restriction Policies (Zasady ograniczeń oprogramowania) >>> Security Levels (Poziomy zabezpieczeń):
Domyślnie widać tu tylko dwa skrajne poziomy: Disallowed (Niedozwolone) i Unrestricted (Bez ograniczeń). W istocie poziomów jest więcej (ale są tu ukryte = jest trik rejestru to włączający na widoczne) i to one będą brały udział w naszym zadaniu. Te dodatkowe poziomy to:
Basic user / Użytkownik podstawowy - Zwykły limitowany użytkownik a nie administrator czy użytkownik zaawansowany.
Constrained / Z ograniczeniami - Kolejne zmniejszenie praw
Untrusted / Niezaufane - Kolejne zmniejszenie praw
Z punktu widzenia przydatności zalecane ustawienie to Użytkownik podstawowy (i to eksponuję w przykładach), programy powinny działać w miarę przyzwoicie. Kolejne poziomy w dół czynią aplikację coraz mniej użyteczną a nawet uniemożliwiają jej start. Tryb Niezaufane prawie bezużyteczny, większość aplikacji pada, nie chce startować nawet zwykły Notatnik.
W dalszej części tematu przedstawionych kilka aplikacji realizujących SAFER na tych właśnie pośrednich poziomach. Ogólnie czynią to wg dwóch metod: przez wywoływanie funkcji API (tak działają programy: DropMyRights i Process Explorer) lub przez statyczną zasadę secpol.msc (tak działa SetSAFER).
2. Z konta limitowanego podwyższanie uprawnień:
Zalecany kierunek, praca na koncie limitowanym z podwyższaniem uprawnień na życzenie. Zasady działania programów opiszę zbiorczo. Ogólnie rzecz biorąc są emulacją sudo Unixów, powiedzmy że są rozwiązaniem dla tych, którzy pragną posiadać coś a'la UAC Visty, choć jak zaznaczone wcześniej nie są to te same rzeczy. Narzędzia te opierają się na automatycznym utworzeniu nowej grupy użytkowników (zwykle nazwa Sudoers lub coś brzmiącego podobnie) i przypisanie tam naszego konta jako znak, że konto może stosować sudo. Program powinien dodać nasze konto automatycznie do Sudoerów poprzez pytanie o taką akcję albo przy instalacji albo przy pierwszej próbie użycia opcji. Ale jeśli to nie nastąpi jest wymagane ręczne przypisanie się do tej grupy (oczywiście siedząc jeszcze na koncie o uprawnieniach administracyjnych):
XP Pro / 2003:
Start >>> Uruchom >>> lusrmgr.msc >>> Grupy >>> dwuklik na nową grupę Su... i opcją Dodaj wprowadzić wszystkie konta, które mają dostać pozwolenie na korzystanie z sudo.
XP Home:
Nie posiada bezpośredniej możliwości ingerowania w grupy. Przypisanie do grupy trzeba wykonać z linii komend Start >>> Uruchom >>> cmd przez wpisanie polecenia:
net localgroup NazwaGrupySu "NazwaTwojegoKonta" /add
Po wylądowaniu w grupie Su... musimy się
przelogować, gdyż tylko w tym momencie Windows ładuje przynależność grupową. Z technicznego punktu widzenia nasze konto staje się kontem limitowanym. Oczywistym znakiem limitacji brak możliwości wywołania typowo administracyjnych narzędzi i brak trybu zapisu do system32, zobrazowane charakterystycznym błędem Odmowa dostępu. Reszta "mankamentów" wyjdzie na jaw przy uruchamianiu / instalowaniu niektórych aplikacji. Będąc takim "sudoerem", w przypadku konieczności wyegzekwowania programu / instalacji programu z uprawnieniami administratora, wywołujemy tylko stosowną opcję (a jaką to zależy już od programu), zostaniemy poproszeni o autoryzację (czyli wpisanie naszego
hasła = musimy mieć zahasłowane konto). Nie zawsze prośba o hasło będzie ponawiana w kółko - to już zależy od tego w jaki sposób programy zarządzają tym hasłem.
Trik, którym posługują się programy w trakcie podwyższania uprawnień, to czasowe przesuwanie użytkownika do grupy admin, a po ukończeniu tasku administracyjnego jego usunięcie z tejże grupy. Dzieje się to automatycznie i bez faktycznego opuszczania naszego konta i jego kontekstu, w przeciwieństwie do Windowsowej opcji Uruchom jako. Co to oznacza?
- Opcja Uruchom jako: Aplikacje widzą cudze środowisko, czyli Pulpit / Menu Start etc tego użytkownika na którego przełączyliśmy aplikację. Więc tworzone skróty lądują w innych ścieżkach (niedostępnych z poziomu naszego konta).
- Wywołanie przez "sudo": Aplikacje widzą prawidłowo środowisko konta czyli nasz Pulpit / Menu Start etc., skróty instalacyjne programów lądują w prawidłowych i spodziewanych ścieżkach dostępu. Soft zainstalowany metodą "sudo" jest "własnością" tego użytkownika i może być po instalacji konfigurowalny przez niego (i to nawet bez ponowienia sudo). Z tym, że tutaj są dość sprzeczne zalecenia: wygoda vs. maksymalne bezpieczeństwo. Pod kątem max zabezpieczeń należałoby jednak przekonfigurować ustawienie właściciela w taki sposób, by domyślnie właścicielem zostawała grupa administratorów a nie użytkownik korzystający z sudo.
W dalszej części tematu opisane trzy implementacje sudo dla Windows: SuRun, Sudowin, SuDown.
ANEKS - Dodatki o znaczeniu informacyjnym:
Dodatki do określonych aplikacji podające informacje w jakim stanie zabezpieczeń zostały uruchomione:
PrivBarPlatforma: Windows XP/2003/Vista 32-bit i 64-bit
Licencja: freewarePasek narzędziowy dla Windows Explorer i Internet Explorer podający aktualny status uprawnień. Montaż (wymaga uprawnień admina): rozpakować pobraną paczkę, zarejestrować plik PrivBar poprzez wpisanie w Start >>> Uruchom polecenia
regsvr32 "ścieżka dostępu do PrivBar.dll". Po tej akcji wystarczy tylko włączyć nowy pasek w Windows Explorer lub Internet Explorer w menu Widok >>> Paski narzędziowe >>> PrivBar. Windows 2003: należy uaktywnić dodatkową domyślnie wyłączoną opcję IE: Opcje internetowe >>> Zaawansowane >>> Włącz rozszerzenia przeglądarki innych firm.
Domyślnie pasek ląduje w nieszczególnej pozycji, ale można to wszystko skorygować odblokowując paski narzędzi i przesuwając sobie PrivBar w wybrane miejsce. Dodatkowy tip: wielokrotny klik na lewą krawędź paska ustawia kilka predefiniowanych rozmiarów. Kolorystyczna mapka uprawnień:
. Administrator . Użytkownik zaawansowany . Użytkownik podstawowy .. Z ograniczeniami Klik na kolorowe kółeczko uruchamia nowe okno ze szczegółowymi informacjami o przywilejach. Tam pokazuje się totalna miazga
IsAdminPlatforma: Windows XP/Vista
Licencja: freewareWtyczka do Firefoxa i Thunderbirda, wizualizująca poprzez ikonkę status uprawnień uruchomienia programu.
Natomiast co jeśli nie chcemy tego instalować, lub chcemy sprawdzić inne aplikacje? Jest jeszcze inny sposób zbadania czy program działa w trybie ograniczonym, za pomocą naszego doskonałego menedżera procesów
Process Explorer. Na liście procesów dwuklik na proces, przejść do zakładki Security, podświetlić grupę Administratorów. Jeśli widnieje tam
Deny a w Privilages tylko SeChangeNotifyPrivilege to proces jest uruchomiony w limitowany sposób. Jeśli brak Deny to proces pracuje na poszerzonych uprawnieniach.
Więcej informacji, sztuczek i opisów znajdziecie na tych stronach:http://blogs.msdn.com/aaron_margosis/default.aspxhttp://blogs.msdn.com/michael_howard/http://technet.microsoft.com/en-us/library/bb456992.aspxInne rozwiązania sudo-like plus kolekcja różnych narzędzi przydatnych z punktu widzenia pracy w środowisku limitowanym na tych stronach:http://nonadmin.editme.com/UsefulToolshttp://kareldjag.over-blog.com/article-6649283.html