„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

Comments (7)

  1. Anonymous says:

    A po co tak naprawdę to allow? Sprawdziłeś?

    Chodzi o decyzję czy ufasz danej sieci czy nie.

    W tak "świetnym" XP sprawa była prosta: bez praw admina nie mogłeś się podłączyć do żadnej sieci.

    Naprawdę było to lepsze??

  2. nexor says:

    "UAC powstał po to, żeby w miarę bezboleśnie zmusić do pracy w kontekście zwykłego użytkownika. Bez praw administratora. Użytkownicy prywatnych komputerów z Windows XP byli bogami"

    bullshit

    standardowa instalacja vista jest dokladnie identyczna jak w xp – zmusza (sic!) do zalozenia usera i automatycznie dodaje do grupy administratorow. co wiecej – konto admina jest zablokowane [zeby nie logowac sie pustym haslem, ktorego oczywiscie nigdzie standardowo nie prosi o zmiane].

    to w zaden sposob nie zmusza do pisania lepszego kodu, bo standardowo sprowadza sie do jednego denerwujacego klikniecia. a jak sie juz jest zmuszonym do korzystania z danej aplikacji to:

    "to może by tak zrobić na nich mały checkbox albo przycisk typu „pozwól i nie pytaj więcej o ten program, bo jemu zawsze chcę pozwalać”. Otóż NIE! To byłoby złe"

    moge rowniez podsumowac bullshit – bo nie dosc, ze jestem zmuszony do korzystania z tej zle napisanej aplikacji, to system nie jest na tyle mily, zeby mi pomoc to jakos zrekompensowac.

    instalacja systemu z wymuszeniem dzialania w kontexcie usera [a nie tak jak teraz – administratora by default] oraz run as – nie dosc, ze nie bylby kontrowersyjny, bylby realnym zmuszeniem programistow do pisania porzadnego kodu. skoro mozna zablokowac directx1o przez setkami tysiecy graczy, to mozna bylo rowniez wymusic prace w kontexcie zwyklego usera bardziej radykalnie. systemy sa testowane i udostepniane developerom na wiele miesiecy przed premiera, wiec zadne tlumaczenie o kompatybilnosci w tym przypadq nie ma zastosowania. na dzien dzisiejszy instalujac vista i tak trzeba miec na uwadze jej duza niekompatybilnosc. jest to wiec nazbyt skomplikowany polsrodek, ktory ma wiecej wad i zalet – a w najlepszym wypadq pozostaje kontrowersyjna cecha

  3. Grzesio says:

    standardowa instalacja vista jest dokladnie identyczna jak w xp – zmusza (sic!) do zalozenia usera i automatycznie dodaje do grupy administratorow. co wiecej – konto admina jest zablokowane [zeby nie logowac sie pustym haslem, ktorego oczywiscie
    nigdzie standardowo nie prosi o zmiane].

    No to chyba dobrze. W efekcie użytkownik komputera zmuszany jest do pracy na koncie innym niż administrator. Tak po mojemu to stare konto zostało tylko dla zgodności. Bo 99% użytkowników nie włącza go i jakoś żyje.

    A że ten założony użytkownik jest w grupie administrators? Co w tym złego, skoro dostaje token bez praw wynikających z tego faktu? Przynależność do grupy to jeszcze nie wszystko. W każdym razie w tym systemie.

    to w zaden sposob nie zmusza do pisania lepszego kodu, bo standardowo sprowadza sie do jednego denerwujacego klikniecia. a jak sie juz jest zmuszonym do korzystania z danej aplikacji to:

    "to może by tak zrobić na nich mały checkbox albo przycisk typu „pozwól i nie pytaj więcej o ten program, bo jemu zawsze chcę pozwalać”. Otóż NIE! To byłoby złe"

    moge rowniez podsumowac bullshit – bo nie dosc, ze jestem zmuszony do korzystania z tej zle napisanej aplikacji, to system nie jest na tyle mily, zeby mi pomoc to jakos zrekompensowac.

    A w zasadzie dlaczego system miałby Ci rekompensować fakt, że używasz marnych aplikacji? Ja dołożyłbym tam jeszcze parę ostrzeżeń, żebyś nie ufał aplikacjom pisanym przez programistów, którzy nawet podręcznika programowania nie umieją przeczytać. 😉

    instalacja systemu z wymuszeniem dzialania w kontexcie usera [a nie tak jak teraz – administratora by default] oraz run as – nie dosc, ze nie bylby kontrowersyjny, bylby realnym zmuszeniem programistow do pisania porzadnego kodu. skoro mozna
    zablokowac directx1o przez setkami tysiecy graczy, to mozna bylo rowniez wymusic prace w kontexcie zwyklego usera bardziej radykalnie. systemy sa testowane i udostepniane developerom na wiele miesiecy przed premiera, wiec zadne tlumaczenie o kompatybilnosci
    w tym przypadq nie ma zastosowania. na dzien dzisiejszy instalujac vista i tak trzeba miec na uwadze jej duza niekompatybilnosc. jest to wiec nazbyt skomplikowany polsrodek, ktory ma wiecej wad i zalet – a w najlepszym wypadq pozostaje kontrowersyjna cecha

    1. Przecież masz „Run As…”! Kto Ci broni go używać?

    2. Czemu piszesz, że teraz wymuszane jest działanie w kontekście administratora? To nieprawda! Działasz w kontekście użytkownika, administrator jest zablokowany, a przyznawany Ci security token nie daje uprawnień admina.

    3. Tłumaczenie o kompatybilności jest kluczowe. Programiści są leniami i mijają długie miesiące od premiery systemu nim ich oprogramowanie zaczyna działać w akceptowalny sposób. Wydaje mi się, że idea UAC jest słuszna. Zwrócić uwagę i nie dać się zignorować.
    Krzyczeć, że jest źle. Zbytnie rozluźnienie sprawiłoby, że w ogóle inne niż administrator konta przestałyby być używane. Zbytnie dociśnięcie reguł pracy unieruchomiłoby setki tysięcy komputerów i wstrzymało na lata migrację do nowszych systemów.

  4. Marc says:

    Zgadzam się całkowicie.

    UAC to dobra rzecz, i powinna być używana tylko w sytuacji krytycznej.

    Bo w czym jest problem, większość "wywołać" z UAC odnosi się do tego że np, genialny program chce zapisać plik tymczasowy na dysku c:.

    A nie wystarczy zapisać go do Document and Settings w folderze usera gdzie ma on uprawnienia ?.

    Pozdrawiam programistów 🙂

  5. Marcin Grzębski says:

    "Programiści są leniami i mijają długie miesiące od premiery systemu nim ich oprogramowanie zaczyna działać w akceptowalny sposób."

    Jeśli to uogólnienie, to rozumiem, że programiści Microsoftu także są leniami. Jeśli zaś to się tyczy "wszystkich innych" to muszę przyznać, że Grzegorz pewnie programistą nie jest. "Długie miesiące" niestety upływają i będą upływać, gdyż dobre oprogramowanie nie jest pisane przez tydzień.

    WG MNIE Vista jest systemem, który w wielu miejscach nie "przeskoczył" poziomu oczekiwań. I łatwiej jest zrzucić winę na "resztę świata" niż posprzątać we własnym ogródku.

    UAC sam w sobie nie jest zły, ale tych "marnych aplikacji" jest jeszcze sporo i działają one bez problemów na XP, a upgrade tych "aplikacji" nieraz kosztuje dużo więcej niż downgrade do XP.

  6. RazoRek says:

    Zgadzam się z Grzegorzem, UAC wydaje się być sposobem na programistów. Jeśli próbowaliście uzyskać logo "Certified for Windows Vista" to wiecie, że aplikacja NIE MOŻE pokazać żadnego ekranu UAC. A jeżeli musi pracować z prawami administratora to trzeba uzyskać specjalne pozwolenie od Microsoft przed uzyskaniem certyfikatu. Kiedy programiści uświadomią sobie, że komuniakt UAC w ich aplikacji świadczy o słabym kodzie, wtedy będzie nas czekać świat bezpieczniejszych programów.

  7. Albercik says:

    Ja tam programistą nie jestem. Jestem za to administratorem sieci i serwisantem. Jestem w dziesiątkach miejsc tygodniowo. Wiadomo – każde miejsce ma sieć skonfigurowaną po swojemu. Za każdym razem muszę zmieniać ustawienia połączenia sieciowego, a to wiąże się z koniecznością klikania conajmniej 4 razy dziennie na ten durny przycisk ‘Allow’. Szlag idzie człowieka trafić, szczególnie, kiedy jest jakiś problem. wtedy to tylko ‘Allow’, ‘Allow’, ‘Allow’….. A na moim laptopie nie da się zainstalować nic innego, jak Viśtę 🙁

    Takiego szajsu dawno nie widziałem, a m myślałem, że to ME było porażką. Teraz widzę, że ME było jednym z najbardziej udanych systemów (w porównaniu z szajs(v)istą)

Skip to main content