Friday, March 2nd, 2007...12:55 am

UAC, IE i przypadÅ‚oÅ›ci …

Jump to Comments

Kontynuując temat UAC rozpoczęty kilka dni temu teraz może trochę bardziej technicznie. W zasadzie na początku to był jeden post, ale pomyślałem że może będzie trochę za długi.

Na tle tej caÅ‚ej dyskusji, ale nie tylko, pojawiÅ‚o siÄ™ w ostatnim czasie co najmniej kilka mniej lub bardziej krytycznych opisów dotyczÄ…cych Vista i UAC, w szczególnoÅ›ci dotyczÄ…cych bezpieczeÅ„stwa (udaÅ‚o mi siÄ™ przeczytać również jeden pozytywny w swoim przekazie opis Vista, chociaż nexor mówi że pozytywny to on nie jest, najwyżej nie krytyczny). Czy siÄ™ z nimi zgadzam czy nie to w zasadzie jest kwestia na osobny post … w szczególnoÅ›ci należy przyjąć że nie jestem specjalistÄ… zajmujÄ…cym siÄ™ stricte bezpieczeÅ„stwem systemów wiÄ™c może nie dostrzegam wszystkich aspektów, które pod uwagÄ™ biorÄ… autorzy takich publikacji. W szczególnoÅ›ci trudno pominąć milczeniem publikacje osób uznanych, takich jak chociażby Bruce Schneier (chociaż to może nie do koÅ„ca o bezpieczeÅ„stwie itp).

To jednak, co z chÄ™ciÄ… bym widziaÅ‚ w tego typu artykuÅ‚ach, to rzetelne podejÅ›cie do tematu. OczywiÅ›cie to nie jest tak, że wszystkie artykuÅ‚y sÄ… zÅ‚e, ale czÄ™sto można spotkać przypadki uogólniania lub podejÅ›cia na zasadzie “to z MS to musi być zÅ‚e.

Ostatnio wpadÅ‚ mi w rÄ™ce tego typu artykul z “The Register” z którym nie do koÅ„ca siÄ™ zgadzam. Moim skromnym zdaniem autor postawiÅ‚ sobie przed napisaniem tego artykuÅ‚u pewnÄ… tezÄ™, a potem staraÅ‚ siÄ™ jÄ… udowodnić, tudzież nie chciaÅ‚ siÄ™ zbytnio zagÅ‚Ä™biać w materiaÅ‚y, które sam cytuje, ponieważ mogÅ‚oby to:

  • źle wpÅ‚ynąć na przeprowadzany dowód,
  • niepotrzebnie niepokoić czytelnika szczegółami natury technicznej.

Zacznijmy od cytatu z tegoż artykułu:

(…)

However, IE7 on Vista does still write to parts of the registry in protected mode. And it appears to write to parts that MS says is won’t. The company says that “a low integrity process, such as Internet Explorer in Protected Mode, can create and modify files in low integrity folders”. We are assured that such low integrity processes “cannot gain write access to objects at higher integrity levels”. And again, MS emphasises that a low integrity process “can only write to low integrity locations, such as the Temporary Internet Files\Low folder or the HKEY_CURRENT_USER\Software\LowRegistry key”.

Sadly, IE7 is still stashing typed URLs in the registry, and not in the ..\LowRegistry location, either. I found them in HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs (if you want to fix this, navigate to the key in the left-hand pane of regedit and right click, and choose permissions. Deny permission for each account. That ought to delete all the entries and take care of all related keys in one go).

(…)

Autor wskazuje tutaj, jako źródÅ‚o informacji artykuÅ‚ “Understanding and Working in Protected Mode Internet Explorer” na MSDN, który opisuje dziaÅ‚anie IE w trybie chronionym (protected mode). W zasadzie wszystko jest OK, z tym że autor nie doczytaÅ‚ lub też nie chciaÅ‚ doczytać do paragrafu “Understanding Protected Mode”. W paragrafie tym możemy wyczytać, że oprócz tego, że podstawowy proces IE dziaÅ‚a na niskim (Low) poziomie integralnoÅ›ci to architektura tego trybu umożliwia wykonanie akcji użytkownika w odniesieniu do obiektów z wyższym poziomem integralnoÅ›ci poprzez dwa dodatkowe procesy:

  • IEUSER.EXE: pozwala na zarzÄ…dzanie danymi zwiÄ…zanymi z sesjÄ… użytkownika w odpowiednim kontekÅ›cie (profilu użytkownika), do czego sam IEXPLORER.EXE nie posiada uprawnieÅ„ (ze wzglÄ™du na przypisany mu poziom integralnoÅ›ci)
  • IEINSTALL.EXE: pozwala na zainstalowanie dodatków do IE itp. czyli wykonanie akcji z wysokimi przywilejami, po zaakceptowaniu przez użytkownika.

Sam proces IEXPLORER.EXE dziaÅ‚ajÄ…c w trybie chronionym otoczony jest warstwÄ… kompatybilnoÅ›ci, która przechwytuje odwoÅ‚ania samego procesu IEXPLORER.EXE do obiektów z poziomem integralnoÅ›ci “medium” i korzystajÄ…c z mechanizmów wirtualizacji Å›rodowiska procesu w ramach Vista ( o wirtualizacji może trochÄ™ nastÄ™pnym razem ) przekierowuje je do lokalizacji, do których posiada możliwość zapisu, czyli:

  • Documents and Settings\%userprofile%\LocalSettings\TemporaryInternet Files\Virtualized
  • HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\InternetRegistry

Jak można łatwo sprawdzić korzystając z narzędzie accesschk.exe obiekty te posiadają odpowiedni, czyli niski poziom integralności, dzięki czemu IEXPLORER.EXE ma prawo pisać w nich dane.

W trybie chronionym proces iexplorer.exe uruchamiany jest z poziomem integralnoÅ›ci “low”. W tym trybie powinien on mieć dostÄ™p do zapisu tylko do danych w folderach i rejestrze, dla których na poziomie ACL ustawiony zostaÅ‚ tryb zgodnoÅ›ci “low”. Autor wskazuje jednak przynajmniej jednÄ… z gaÅ‚Ä™zi rejestru, o wyższym trybie integralnoÅ›ci, do której IE zapisuje dane, czyli HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs.

Tak na marginesie, poziom integralnoÅ›ci dla danego procesu można sprawdzić korzystajÄ…c z Process Explorer. W ramach możliwych do wyÅ›wietlenia atrybutów procesu znajdziemy “integrity level”.


Jeżeli chcemy sprawdzić poziom integralności dla danego pliku lub klucza rejestru najwygodniej (przynajmniej dla mnie) jest posłużyć się narzędziem accesschk.exe.

Sprawdzając, więc poziom integralności dla klucza rejestru HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs:


widzimy, że ustawiony jest on na “Medium”.

Ponieważ iexplorer.exe dziaÅ‚a w trybie “low” nie powinien on móc zapisywać w tym kluczu. Po uruchomieniu przeglÄ…darki i szybkim sprawdzeniu przy pomocy regmon.exe widzimy, że wartoÅ›ci w tym kluczu zapisywane sÄ… przez proces iuser.exe, czyli proces uruchamiany z poziomem integralnoÅ›ci “Medium”, pozwalajÄ…cy na zapis danych powiÄ…zanych z sesjÄ… i profilem użytkownika, w przypisanych do użytkownika miejscach systemu.



Jak widać na zamieszczonym powyżej obrazku (jeżeli jest maÅ‚o czytelny polecam prawoklik i “View image”) proces iexplorer.exe odczytuje dane z tego klucza, ale ich nie modyfikuje. Zgodne jest to z zaÅ‚ożeniami obecnej implementacji poziomów integralnoÅ›ci i separacji przez niewprowadzane w Vista. W przyjÄ™tym modelu procesy z niższym poziomem integralnoÅ›ci posiadajÄ… uprawnienie do odczytu danych z obiektów o wyższym poziomie integralnoÅ›ci, jednak nie majÄ… możliwoÅ›ci zapisu danych w tych obiektach.


Czyli jak widać na powyższym przykładzie, nie jest tak jak autor artykułu sugeruje, że IE w trybie chronionym pozwala na zapis do obiektów, które posiadają wyższy poziom integralności niż sam proces. Wymagało to w zasadzie tylko przeczytania artykułu do końca, tudzież prostego sprawdzenia jak to się odbywa, które na potrzeby tego artykułu zajęło mi mniej niż 5 minut włącznie z wykonaniem zrzutów ekranu.


OczywiÅ›cie z punktu widzenia użytkownika można powiedzieć, że to Internet explorer pisze w tej lokalizacji, i że caÅ‚y mechanizm trybu chronionego w Vista nie dziaÅ‚a. Tylko, że faktycznie jest to trochÄ™ bardziej skomplikowane, z tym że tÅ‚umaczenie tego źle wpÅ‚yneÅ‚oby na odbiór artykuÅ‚u przez użytkownika. Jak dla mnie przesÅ‚anie pÅ‚ynÄ…ce z tej części artykuÅ‚u to, “IE jest zÅ‚y a Microsoft mija siÄ™ z prawdÄ… w swoich tekstach”. Faktycznie, przynajmniej moim zdaniem wyglÄ…da to trochÄ™ inaczej. Ale ile osób klika w linki i czyta znajdujÄ…ce siÄ™ pod nimi artykuÅ‚y.


W kontekście całego artykułu następny fragment brzmi, przynajmniej dla mnie, trochę niedorzecznie:

(…)

IE7 also has a handy menu for deleting your history, cookies, cache, and so on. This is similar to the Mickey Mouse privacy utility in Firefox. Remember that these data traces are not securely wiped, but merely deleted. They remain on your HDD until they happen to be overwritten. Firefox will let you delete all that stuff automatically each time you exit; IE won’t: you have to do it manually.

(…)


Jeżeli bÄ™dziemy stawiać przed przeglÄ…darkÄ… wymaganie bezpiecznego usuniÄ™cia danych z dysku i zamazania ich, a tak wedÅ‚ug mnie widzi to autor w kontekÅ›cie tego artykuÅ‚u, to nie wiem czy chciaÅ‚bym mieć takÄ… przeglÄ…darkÄ™ w swoim systemie. Chociaż tutaj może i nadinterpretuje sÅ‚owa autora (kto nie pamiÄ™ta pytania “Co autor miaÅ‚ na myÅ›li ? ” 🙂 )


OK, można powiedzieć, że się czepiam jednego szczegółu w artykule. Autor poświęcił temu szczegółowi 1/3 swojego tekstu. Ja chciałem tutaj tylko pokazać, że należy starać się zawsze zweryfikować to, co pisane jest we wszelkiego typu artykułach opisujących wady i zalety systemu. Czy to tych krytycznych, czy tych chwalących system.

PS #1. Coś się Vista-monotematycznie zrobiło, postaram się to zmienić w najbliższym czasie.

PS #2. Dyskusja otwarta

1 Comment

  • Szacunek!
    Jestem pełen podziwu, że chciało ci się tyle pisać (i jeszcze screen-y wklejać).
    Pozdrawiam

Leave a Reply