„nie pytaj ponownie” w UAC

Troche sprowokowany dziwnym odbiorem mojego wpisu sprzed kilku tygodni, troche meczony wlasnymi przemysleniami, postanowilem kontynuowac temat UAC. Bo UAC ciagle budzi sporo watpliwosci. Znaczaca wiekszosc uzytkowników uwaza, ze jest uciazliwy, niewygodny, przed niczym nie zabezpiecza, a ciagle komunikaty tylko oslabiaja czujnosc. Powszechnym mniemaniem jest, ze jezeli juz koniecznie sa wyskakujace pytania UAC (Secure Desktop Prompting) to moze by tak zrobic na nich maly checkbox albo przycisk typu „pozwól i nie pytaj wiecej o ten program, bo jemu zawsze chce pozwalac”. Otóz NIE! To byloby zle. Z wielu róznych powodów, na czele z glównym powodem, dla którego UAC powstal.
UAC nie jest zabezpieczeniem! UAC przed niczym nie chroni. Metod oszukania uzytkownika tak, zeby kliknal „yes” nie wiedzac, co naprawde czyni sa dziesiatki. UAC nie obroni przed zlosliwym kodem. Nie po to jest.
UAC powstal po to, zeby w miare bezbolesnie zmusic do pracy w kontekscie zwyklego uzytkownika. Bez praw administratora. Uzytkownicy prywatnych komputerów z Windows XP byli bogami. Kazdy ich ruch mógl zniszczyc komputer, ale i mógl go przywrócic do zycia. Instalacja byla prosta, aplikacje zawsze dzialaly, sprzet byl wyszukiwany automatycznie i komputer dzialal tak jak jego wlasciciel oczekiwal. Ograniczone uprawnienia byly przeznaczone dla mlodszego rodzenstwa, dziewczyny, rodziców albo innych komputerowo niepelnosprawnych. Tak, na wszelki wypadek, zeby za duzo nie popsuli.
W efekcie, programisci tez zazwyczaj pracowali z prawami administratora. I testerzy tez. Blizej nie wiadomo po co, ale tak wlasnie to wygladalo. Nie dzialal sterownik skanera? Aplikacja zglaszala glupi blad przy uruchomieniu? Nie dalo sie zapisac danych? Sprawa byla prosta. Wystarczylo w instrukcji obslugi napisac, ze uzytkownik musi miec lokalne prawa administratora i po klopocie. Efekt byl taki, ze kolejni uzytkownicy nadawali sobie te prawa, zeby móc normalnie korzystac z komputera. A to juz nie brzmi zbyt rozsadnie.
Microsoft postanowil troszke ograniczyc sytuacje, która sprowadzala dobrze od strony architektury zabezpieczony Windows XP do poziomu znanego z Windows95, gdzie kazdy mógl wszystko.
W tym celu zmusil (no bo tak to prawde mówiac w Windows Vista wyglada) uzytkownika, zeby pracowal bez praw administratora. Prawa te dostepne sa na wyciagniecie reki. Wystarczy twierdzaco odpowiedziec na pytanie zadane przez UAC w sytuacji, kiedy uprawnienia te staja sie niezbedne.
I co na to szanowni programisci? Ano nie maja wyjscia. Bo Windows Vista zaprojektowany jest tak, zeby uzytkownik za kazdym razem widzial, ze aplikacja jest slabo napisana. Za kazdym razem poza prostym pytaniem od UAC powinien dostac jeszcze na ekranie czerwony napis „twórca twojego oprogramowania nie umie programowac. Jezeli jestes pewny, ze chcesz uruchamiac marnie napisane aplikacje – kliknij YES”. Bo w praktyce wiekszosc zapytan od UAC pochodzi wlasnie od takich programów. To one najbardziej mecza, wkurzaja i sprawiaja, ze uzytkownicy uparcie szukaja drogi do wylaczenia tych „glupich” pytan, przynajmniej dla jednej aplikacji. Opcja trwalego wylaczenia sprawialaby, ze w praktyce UAC bylby wylaczony zawsze. Metod skompromitowania systemu powstalyby natychmiast cale masy. I tym razem metody te bylyby naprawde grozne i skuteczne.
Fakt, ze UAC pojawia sie w czynnosciach administracyjnych daje sie jakos zniesc. Dobrze skonfigurowany komputer nie wymaga codziennej rekonfiguracji. A nawet jak wymaga – daje sie to przezyc.
A UAC stopniowo coraz mocniej bedzie zawstydzal programistów i moze za pare lat aplikacje beda tak napisane, jak napisane byc powinny. I wtedy pewnie do lask powróci grupa „Power Users”, która w swoich zalozeniach w czasach Windows NT, wcale nie byla taka glupia.

Autor: Grzegorz Tworek