Systemy operacyjne

Bezpieczeństwo

Windows od zawsze narażony był na ataki szkodliwych programów. Nie była to jedynie prosta konsekwencja popularności, jak argumentowali zwolennicy Microsoftu. Producent bowiem dopuścił się szeregu zaniedbań w dziedzinie bezpieczeństwa, z których największym było utrudnienie (NT i następcy) lub uniemożliwienie (9x, Me) niedoświadczonemu użytkownikowi korzystania z konta o ograniczonych uprawnieniach. Windowsy z linii NT - w przeciwieństwie do 9x, zawsze dysponowały sporym wyborem kont użytkowników o zróżnicowanych możliwościach modyfikacji systemu. Niestety, każde konto użytkownika domyślnie obdarzone było uprawnieniami administratora. Dodatkowo Microsoft nie czynił wyraźnych kroków w celu zmuszenia programistów do zastosowania się do reguł programowania dla systemów wieloużytkownikowych - to znaczy zaniechania umieszczania zbiorów modyfikowanych przez użytkownika w obszarach systemowych (np. katalog Windows), bądź w obszarach współdzielonych przez wielu użytkowników (np. Program Files). W efekcie takiego braku zdecydowania, programy - nawet te niezmiernie drogie i profesjonalne - często wymagały specjalnych zabiegów w celu uruchomienia na koncie o ograniczonych prawach. Nie musimy chyba dodawać, że szkodliwe programy uruchamiane przez użytkownika maja taki poziom uprawnień, jaki przypisany jest do jego konta. Dlatego właśnie tak ogromne znaczenie ma zróżnicowanie poziomu dostępu do funkcji modyfikujących system operacyjny - po uprawnienia administratora powinniśmy sięgać tylko w momencie instalacji programów, bądź w razie potrzeby modyfikacji ważnych ustawień. Pisać artykuły, przeglądać Internet i pocztę można równie skutecznie (a o ileż bezpieczniej!) z konta ograniczonego.
           
Windows Vista dysponuje nowymi i ciekawymi z technicznego punktu widzenia rozwiązaniami bolesnej dla Microsoftu kwestii bezpieczeństwa. Na ile okażą się one skuteczne - zobaczymy w najbliższych miesiącach czy latach. Producenci oprogramowania zabezpieczającego wydają się być dość sceptyczni, trzeba jednak pamiętać, że po części jest to ich strategia marketingowa. Nie da się jednak odmówić racji przepowiedniom kolejnej zmiany trendów wśród producentów malware. Szkodliwe programy będą musiały radzić sobie z nowymi zabezpieczeniami Visty, na przykład dokonując swej szpiegowskiej czy niszczycielskiej działalności ze zmniejszonymi uprawnieniami, oraz stosując bardziej wyrafinowane metody infekcji niż obecnie.

UAC. User Account Control jest funkcją pozwalającą łatwo odróżnić czynności wymagające uprawnień administratora od zabiegów dozwolonych dla standardowego użytkownika. Microsoft bardzo stara się namówić użytkowników systemu Windows do korzystania z kont o zmniejszonych uprawnieniach. W Windows XP uruchomienie narzędzia konfiguracyjnego czy programu wymagającego wysokich uprawnień bez logowania się na konto administratora wymagało posłużenia się usługą Run As (Uruchom jako). Podobna funkcjonalność jest dostępna i w Viście, z tym, że system sam wyświetla odpowiednie okno informujące o potrzebie zwiększenia uprawnień. Co ciekawe, funkcja ta działa zarówno dla konta administratora, jak i użytkownika standardowego. W pierwszym przypadku wymaga tylko potwierdzenia, w drugim niezbędne jest wpisanie hasła administratora. UAC uaktywnia się na przykład wtedy, gdy próbujemy zainstalować jakiś program lub zmienić ustawienia sieci. Tym samym powinien wyświetlić prośbę o potwierdzenie przy instalacji wielu szkodliwych programów. Niestety, wiele programów, nie w pełni kompatybilnych z nową wersją Windows wywołuje ciągłe monity UAC - powoduje to uzasadnione obawy o losy tej funkcji u co bardziej niecierpliwych użytkowników, którzy zirytowani mogą ją po prostu wyłączyć.

            Skuteczność UAC jest więc w znacznym stopniu uzależniona od świadomości i dobrej woli użytkownika. Zdaniem piszącego te słowa, funkcja ta ma znaczne szanse na popularyzację bezpieczniejszego stylu pracy u przeciętnego "windowsiarza", którego zwykle przerasta bezpośrednie wykorzystanie usługi "Run As/Uruchom jako". Dodatkowo nie do przecenienia jest informacyjna rola UAC - w końcu nawet na koncie administratora widać, jakie czynności mogą wpłynąć na funkcjonowanie systemu (patrz obrazek powyżej).

            Krytykanci UAC mogą tę funkcję wyłączyć. Nie wydaje się to najlepszym pomysłem, zwłaszcza jeśli zdamy sobie sprawę z niewielkiego odsetka użytkowników mających jako takie pojęcie o tym, co się dzieje w ich komputerach. W takich właśnie warunkach obecność zabezpieczenia typu UAC wydaje się być nieodzowna. Nie będziemy ukrywać, że rozwiązania o analogicznej funkcjonalności od bardzo dawna obecne są  w systemach uniksopodobnych (Mac OS X, *BSD, GNU/Linux). Ważne jednak, że Microsoft podąża dobrą drogą. Warto również wspomnieć, że okno monitu UAC jest zabezpieczone przed interakcją z innymi uruchomionymi aplikacjami (tzw. tryb bezpiecznego pulpitu).

Windows Defender. Microsoft dla zapewnienia nabywcom swojego systemu przyzwoitej ochrony przed oprogramowaniem szpiegującym zakupił cieszącego się dobrą opinią Giant Antispyware. Program został przemianowany na Window Defender i udostępniony nieodpłatnie użytkownikom legalnych kopii Windows XP. Vista zawiera w domyślnej instalacji Defendera, który działa jako usługa systemowa i objawia swoja obecność jedynie w przypadku konieczności interakcji z użytkownikiem. Windows Defender nadal jest dość zasobożerny. Z doświadczenia wiemy, że skuteczność aplikacji antyszpiegowskich wciąż pozostawia wiele do życzenia, dlatego zalecamy nie rezygnować z dodatkowej ochrony klasycznego duetu Spybot Search & Destroy i Lavasoft Ad-Aware.

Randomizacja przestrzeni adresowej procesów. Wiele ataków polegających na nieuprawnionym wykonaniu złośliwego kodu wykorzystuje błąd przepełnienia bufora (buffer overflow). Upraszczając, błąd ten może pojawić się wtedy, gdy w przestrzeni o określonej pojemności zapisujemy dane nie kontrolując ich rozmiaru. Jeśli zdarzy się, że zapisywana ilość informacji przekracza rozmiar bufora, nadpisaniu ulegają kolejne dane w sposób niezaplanowany przez twórcę programu. Tym samym program może zacząć działać w sposób nieprzewidywalny. W ramach tej "nieprzewidywalności" może mieścić się też zamierzone przez twórcę złośliwego programu wykonanie szkodliwego kodu. Atakujący może wykorzystać taką słabość systemu operacyjnego, jeśli zna miejsce rezydowania w pamięci kodu podatnego na atak.

Podatność na ataki typu buffer overflow można zmniejszyć stosując odpowiednie techniki programistyczne (stosowanie funkcji sprawdzających, czy dane kopiowane do bufora nie przekraczają jego objętości) oraz wprowadzenie losowości w użytkowaniu pamięci. Losowość minimalizuje prawdopodobieństwo trafienia złośliwego kodu w miejsce, w którym mógłby zostać poprawnie wykonany, nie chroni natomiast przed zawieszeniem komputera na skutek nieuprawnionej podmiany zawartości pamięci. Techniki te owocują zwykle kilkuprocentowym narzutem na wydajność programu.
Vista dziedziczy nowość z  Windows XP jaką był DEP (Data Execution Prevention - do znudzenia opisywany przy okazji SP2 dla XP oraz wprowadza nowość, jaką jest ASLR (Adres Space Layout Randomization - randomizacja przestrzeni adresowej - więcej w  artykule M. Russinovicha. Znów musimy dodać, że obie te techniki znane są i w alternatywnych systemach operacyjnych (np. PaX w Linuksie). Wspominamy o tym, aby zdusić nieco huczną kampanię marketingowców z Microsoftu o nowatorstwie ich technik programistycznych. Niewątpliwie jednak należy pochwalić Microsoft za wykorzystanie nowoczesnych rozwiązań wzmacniających bezpieczeństwo.

PatchGuard (Kernel Patch Protection). Funkcja ta wzbudziła duże kontrowersje w środowisku twórców oprogramowania antywirusowego. Jest ona obecna w 64-bitowych wersjach Windows XP, 2003 oraz Visty. W 32-bitowej Viście również jej nie zaimplementowano. Skrótowo mówiąc PatchGuard zabezpiecza jądro systemowe przed modyfikacją. Modyfikacje jądra niejednokrotnie wprowadzane są przez oprogramowanie antywirusowe w celu polepszenia ochrony przed zagrożeniami (zwłaszcza stosującymi zaawansowane techniki ukrywania się w systemie, czy ochrony swoich procesów przed zamknięciem). Producenci oprogramowania obawiali się, czy ograniczenie dostępu do jądra nie postawi ich w trudnym położeniu względem twórców złośliwego oprogramowania, czy crackerów, którzy przecież nie zawracają sobie głowy obostrzeniami wprowadzonymi przez Microsoft. PatchGuard, nie spodobał się również Komisji Europejskiej, jako potencjalne narzędzie do promowania rozwiązań antywirusowych Microsoftu. Ostatecznie w ramach kompromisu Microsoft udostępnił w ograniczonym stopniu dostęp do jądra firmom trzecim. Nam, szarym użytkownikom oprogramowania wystarczy informacja, iż w 64-bitowych wersjach Windows XP, 2003 i Vista wprowadzono elementy ochrony przed nieuprawnioną modyfikacją jądra systemowego.

Tryb chroniony Internet Explorera. Domyślnie, nawet na koncie administratora, IE7 jest uruchamiany z obniżonymi uprawnieniami. Przeglądarka może zapisywać dane tylko w określonych lokacjach, nie powinna więc stanowić zagrożenia nawet dla dokumentów aktualnie zalogowanego i korzystającego z niej użytkownika. Znając niechlubną tradycję nieskończenie wielkiej liczby zagrożeń związanych z IE, nie sposób nie uznać tego za krok w dobrym kierunku.

Uprawnienia. Nie jest to co prawda nowość w systemach Windows linii NT, wydaje nam się jednak, że potencjalnych nabywców wersji Home Premium zainteresuje fakt, iż system nie blokuje nam dostępu do precyzyjnej zmiany uprawnień dla poszczególnych zbiorów na dysku. Wspominamy o tym pamiętając, jak irytujące (choć możliwe do obejścia) było to ograniczenie w XP Home.