Stan zagrożeń w internecie znajduje się obecnie na poziomie standardowym. Nie występują duże epidemie a eksperci z Kaspersky Lab nie zanotowali żadnych poważnych incydentów związanych z bezpieczeństwem. Poziom zagrożenia: 1

Vista versus wirusy

Tagi:

Alisa Shevchenko
Analityk wirusów, Kaspersky Lab

Windows Vista, najnowszy system operacyjny firmy Microsoftu, pozycjonowany jest jako produkt zapewniający zwiększoną ochronę. Jednak, zanim jeszcze udostępniono wersję beta, społeczność komputerowa zastanawiała się, na ile realistyczne są twierdzenia o zwiększonym bezpieczeństwie Visty. Czym dokładnie wyróżniają się funkcje, które mają zapewnić użytkownikowi bezpieczeństwo? Jak skuteczne okażą się w rzeczywistości? Czy to prawda, że po opublikowaniu Visty oprogramowanie antywirusowe nie będzie już potrzebne? Artykuł ten zawiera odpowiedzi na kilka z tych pytań.

Cieszymy się, że twórca najbardziej rozpowszechnionego systemu operacyjnego dla komputerów PC poważnie potraktował kwestię bezpieczeństwa użytkowników. Instalując Vistę możemy być przynajmniej pewni, że twórcy produktu podjęli wspólny wysiłek zintegrowania ochrony przed cyberzagrożeniami oraz, że będą kontynuowali to w przyszłości. Jednak funkcje bezpieczeństwa zaimplementowane obecnie w Viście nie są tak wszechstronne, aby użytkownicy mogli pożegnać się z innymi programami służącymi do zapewnienia bezpieczeństwa. (Więcej na ten temat napisała Natalya Kaspersky w artykule Bezpieczeństwo od Microsoftu - drzwi do nowego wspaniałego świata?).

Główną innowacją pod względem bezpieczeństwa w Viście jest User Account Control (ograniczający prawa użytkownika), PatchGuard (system przeznaczony do ochrony jądra) oraz funkcje bezpieczeństwa przeglądarki Internet Explorer 7. Inne, mniej istotne, funkcje bezpieczeństwa, do których należy: Address Space Layer Randomization (ASLR), Network Access Protection, Windows Service Handling oraz ochrona przed przepełnieniem bufora, nie zostaną omówione w tym artykule. Pominiemy również dodatkowe komponenty, takie jak Windows Defender, zintegrowane rozwiązanie zawierające zaporę ogniową i narzędzie antyspamowe. Są to standardowe rozwiązania - aby ocenić ich użyteczność w zapewnianiu bezpieczeństwa systemu, należy porównać je z podobnymi rozwiązaniami innych producentów.

User Account Control (UAC)

User Account Control, jak wskazuje nazwa, ogranicza prawa użytkownika. Działa zgodnie z następującymi zasadami:

  1. Każdy użytkownik logujący się do systemu (łącznie z administratorem) będzie posiadał minimalne prawa, tj. prawa przyznawane "Standardowemu Użytkownikowi".
  2. Konto "Standardowego Użytkownika" ma nieco większe uprawnienia w porównaniu z poprzednimi wersjami systemu Windows.
  3. Jeśli użytkownik lub uruchomiona przez niego aplikacja próbuje wykonać czynność wykraczającą poza uprawnienia dla konta "Standardowego Użytkownika", system albo poprosi użytkownika o potwierdzenie tej czynności (jeśli użytkownik jest zalogowany jako "Administrator") lub o dostarczenie hasła administratora (jeśli użytkownik jest zalogowany jako "Standardowy").

Do czynności wykraczających poza uprawnienia "Standardowego Użytkownika" należy instalacja aplikacji i sterowników, tworzenie plików w folderach systemowych, modyfikowanie konfiguracji systemowej itd.

Każdy, kto zajmuje się tworzeniem aplikacji służących do ochrony przed złośliwym kodem, miał do czynienia z czynnością, która na pewno jest podejrzana, nie wiadomo jednak, czy szkodliwa. Taka czynność może być szkodliwa w określonym kontekście, dlatego należy ją zablokować lub powiadomić użytkownika. Jednak w innym kontekście ta sama czynność może być wykonywana przez legalną aplikację. Takie sytuacje występują często: istnieje dość spora liczba nieszkodliwych aplikacji wykonujących czynności, które z punktu widzenia bezpieczeństwa można uznać za podejrzane. Gdyby o każdej z tych czynności trzeba było zawiadamiać użytkownika z prośbą o potwierdzenie lub podanie hasła, użytkownik dostałby nerwicy lub bardzo szybko wyłączyłby funkcje bezpieczeństwa.

Z tego powodu nie mogę poważnie traktować User Account Control jako ochrony przed złośliwymi programami. Istnieje duże prawdopodobieństwo, że funkcja, która drażni użytkownika, zostanie wyłączona. Użytkownik kliknie "zezwól" lub bez namysłu wprowadzi hasło administratora.

Z drugiej strony, User Account Control zapewnia dodatkowy poziom bezpieczeństwa użytkownikom z przywilejami "Administratora". Gdy aplikacja nie wymaga dużych przywilejów, zostanie uruchomiona z minimalnymi przywilejami, nawet z konta "Administratora". Luka w takiej aplikacji będzie mniej krytyczna niż luka w aplikacji działającej z dużymi przywilejami.

Inną rzeczą przemawiającą na korzyść User Account Control jest to, że istnieje niewielka liczba wirusów, które przechwytują ostrzeżenia zapory ogniowej lub innego rozwiązania służącego do zapewnienia bezpieczeństwa o podejrzanym zachowaniu. Złośliwe programy tego typu "klikają" odpowiedni przycisk, w wyniku czego rozwiązanie zezwala na takie czynności. Okno wyświetlane jest na ekranie tak szybko, że użytkownik nie zdąży go zauważyć. Microsoft oferuje ochronę przed takimi zagrożeniami w postaci Secure Desktop: okno wymagające większych uprawnień przyjmuje tylko hasło wprowadzone przez użytkownika jako potwierdzenie zezwolenia na wykonanie czynności.

Nie wolno zapominać, że każdy rodzaj ochrony można obejść, dlatego też zalety tej nowej warstwy ochrony zależą od warunków, i jak pokazuje praktyka, mają charakter tymczasowy. Istnieje kilka oczywistych i dość niebezpiecznych sposobów na obejście User Account Control, których z oczywistych względów nie będziemy tutaj opisywać.

Ochrona jądra systemu Vista

1. PatchGuard

Jądro Visty (tylko dla platform 64-bitowych) jest, jak twierdzą twórcy, zabezpieczone przed modyfikacjami. Ma to ogromne znaczenie, biorąc pod uwagę fakt, że rootkity w trybie jądra stają się coraz bardziej rozpowszechnione.

Rootkit w trybie jądra to złośliwy program, który ukrywa swoją obecność w systemie poprzez modyfikowanie danych jądra, lub zbiór narzędzi, które umożliwiają maskowanie obecności innego programu.

Funkcja PatchGuard monitoruje modyfikacje tablicy usług i tablicy deskryptora jądra. Na pierwszy rzut oka wydaje się, że rozwiązuje to problem trojanów maskujących swoją obecność w systemie. Jednak, w przypadku PatchGuard trudno mówić o "poważnej" ochronie przed rootkitami. Funkcja ta z samej swej natury zawiera słabe punkty, o czym świadczą udokumentowane metody wyłączenia ochrony. Główna "słabość" PatchGuard dotyczy architektury: kod, który ma zapewniać ochronę, wykonywany jest na tym samym poziomie co kod, który ma być chroniony oraz kod, przed którym PatchGuard ma chronić. Ochrona ta ma te same uprawnienia co potencjalna osoba atakująca i można ją obejść lub wyłączyć. Sposoby wykorzystania lub wyłączenia PatchGuard są już znane.

Oprócz tego, że PatchGuard zapewnia wątpliwą ochronę przed rootkitami modyfikującymi jądro, istnieją jeszcze inne rodzaje rootkitów, przed którymi ochrona ta nie oferuje zabezpieczenia. Monitorowanie PatchGuard odnosi się do statycznych struktur jądra o znanej zawartości (SST, IDT oraz GDT), nie może natomiast chronić struktur dynamicznych, tzn. wszystkiego, co nie znajduje się na poziomie jądra. Przykładem rootkita, który modyfikuje struktury dynamiczne, jest dobrze znany rootkit FU. Rootkity wykorzystujące technologię wirtualną będą zlokalizowane "głębiej" niż poziom jądra, dlatego nie będą dostępne poprzez jądro.

Podstawowa słabość PatchGuard wynika z faktu, że funkcjonuje on na tym samym poziomie, który ma chronić. To oznacza, że jeśli złośliwa aplikacja zdoła załadować swój sterownik, będzie mogła wyłączyć PatchGuard. Naturalnie przy założeniu, że znana jest lokalizacja odpowiedniej funkcji monitorującej.

Zapobieganie modyfikacjom jądra jest z pewnością użyteczne, ponieważ legalne oprogramowanie nie będzie mogło modyfikować jądra do własnych celów. Będzie to miało pozytywny wpływ na stabilność i ogólne bezpieczeństwo systemu.

Podjęte przez Microsoft próby zwiększenia ogólnej stabilności systemu powodują skutki uboczne. Chroniąc dostęp do jądra przed wszystkimi i wszystkim Microsoft uniemożliwił producentom rozwiązań bezpieczeństwa zaimplementowanie pewnych funkcji w ich produktach. W rezultacie, nie można teraz wykorzystać szeregu różnych skutecznych narzędzi rozwijanych przez producentów antywirusowych. Dotyczy to nie tylko technologii służących do zwalczania rootkitów, ale również technologii ochrony proaktywnej wykorzystywanych do wykrywania nieznanych zagrożeń, które zostały zaimplementowane w produktach dla poprzednich wersji systemu operacyjnego. Pod pewnymi względami twórcy wirusów znajdują się obecnie w lepszym położeniu - PatchGuard może bez problemu zostać wyłączony przez rootkity.

Mówiąc o ochronie jądra Visty należy podkreślić, że zarówno PatchGuard, jak i podpisywanie sterowników to funkcje dostępne tylko w 64-bitowym sprzęcie. Minie trochę czasu, zanim platforma ta stanie się tak powszechna jak platforma 32-bitowa. Vista x86 nie posiada dedykowanej ochrony przed rootkitami.

2. Mandatory Kernel Mode i Driver Signing

Drugim komponentem bezpieczeństwa jądra systemu Windows Vista dla platform 64-bitowych jest obowiązkowy podpis cyfrowy dla każdego modułu lub sterownika na poziomie jądra.

Istnieje kilka udokumentowanych metod wyłączania sprawdzania podpisu. Wśród nich znajdują się metody stworzone w celu uproszczenia procesu rozwijania i testowania sterowników. Wynika to z faktu, że praktycznie niemożliwe jest uzyskiwanie cyfrowego podpisu dla kolejnych wersji sterownika tworzonych w celach testowych jeszcze przed opublikowaniem wersji ostatecznej. Z tego powodu dostępne są następujące metody wyłączenia sprawdzania podpisu:

  1. Podłączenie debugera systemowego
  2. Wybranie z menu startowego trybu, który nie kontroluje/monitoruje sterowników (łącznie z modyfikowaniem boot.ini)
  3. Włączenie w konfiguracji bezpieczeństwa obsługi podpisów testowych. Microsoft dostarcza narzędzie służące do tworzenia podpisów testowych.

Te trzy udokumentowane sposoby wyłączenia ochrony stwarzają duże pole do eksperymentowania. Oprócz tego, poszukuje się odpowiednich luk w zabezpieczeniach. Sześć miesięcy temu Joanna Rutkowska przedstawiła własny wariant exploita. W wersji RC2 systemu Vista luka ta została usunięta, nie zmienia to jednak faktu, że został ustanowiony precedens.

Najprawdopodobniej pojawi się wiele różnych metod obejścia ochrony modułu jądra poprzez ładowanie nieoznaczonych komponentów: wykorzystywanie udokumentowanych metod wyłączania ochrony, tworzenie exploitów podobnych do tego, o którym wspominaliśmy wyżej, zdobywanie przywilejów na poziomie jądra bez użycia sterowników oraz wykorzystywanie oznaczonego sterownika z legalnego produktu w szkodliwych celach (analogicznie do wykorzystywania przez niektóre wirusy komponentów legalnych urządzeń do wyszukiwania haseł w celu kradzieży poufnych informacji).

Tak więc, według nas, funkcja ta chroni system operacyjny przed złośliwym kodem, ale nie jest tak skuteczna, jak twierdzą twórcy systemu.

Funkcje bezpieczeństwa IE7

Funkcje bezpieczeństwa przeglądarki IE7 powinny, w teorii, chronić komputer przed exploitami umieszczanymi na stronach www, które następnie wykonują złośliwy kod lub instalują trojana w systemie.

  1. W trybie chronionym (Protected Mode) kod przeglądarki uruchamiany jest z najniższymi przywilejami, ograniczonym dostępem do systemu plików, rejestru itd.

Użytkownik może włączyć lub wyłączyć tryb chroniony dla każdej oddzielnej strefy. Domyślnie włączony jest dla węzłów, które znajdują się na liście Trusted Zone (strefa zaufana). Dodatkowo, Microsoft oferuje zestaw funkcji API do tworzenia narzędzi zarządzania, które są kompatybilne z trybem chronionym. Jest to całkowicie nowa funkcja, która nie została jeszcze przetestowana, dlatego istnieje duże prawdopodobieństwo, że posiada wiele słabych punktów.

  1. ActiveX Opt-in jest funkcją blokującą wszystkie narzędzia zarządzające ActiveX oprócz tych, na które wyraźnie zezwolili użytkownicy.

Trudno powiedzieć, co jest zaletą tej funkcji. W przeglądarce IE zawsze istniała możliwość wyłączenia ActiveX. Jedyna różnica polega na tym, że w IE7 funkcja ta jest automatycznie włączona. Dodatkowo, jak pokazują doświadczenia z poprzednimi wersjami IE, użytkownicy niechętnie wyłączają ActiveX. Dlaczego? Ponieważ jeśli to zrobią, to albo nie będą mogli oglądać animacji flashowych na stronach www, albo podczas każdego oglądania takiej animacji system bezpieczeństwa będzie wyświetlał irytujące okienka wyskakujące. Na tej podstawie łatwo można dojść do wniosku, że "ucierpiała" na tym użyteczność przeglądarki. Jeśli chodzi o wykonywanie nieznanych formantów ActiveX - już wcześniej było to dozwolone i nadal będzie.

  1. Funkcja Cross-Domain Scripting Attack Prevention ma zapobiegać interakcji skryptów między różnymi strefami, a przez to chronić przed atakami typu phishing.

Należy podkreślić, że ataki typu phishing, które wykorzystują wykonywanie skryptów między różnymi strefami zabezpieczeń, stanowią tylko niewielki odsetek znanych nam ataków.

Funkcje bezpieczeństwa przeglądarki IE7 nie ograniczają się tylko do trzech wyżej wymienionych. Można do nich zaliczyć również Phishing Filter, Security Status Bar i inne.

Niedostatki funkcji bezpieczeństwa, takich jak: UAC, PatchGuard oraz IE Protected Mode

Weźmy hipotetyczną zaporę ogniową, która stanowi najbardziej oczywisty przykład ochrony za pomocą barier. Naturalnie, jest to "inteligentny" firewall, który nie ogranicza się do wykorzystywania list dozwolonych i blokowanych programów, ale uwzględnia również zdarzenia systemowe.

Gdy program próbuje przekazywać informacje do sieci, stanowi to zagrożenie dla bezpieczeństwa. Firewall może zareagować na jeden z dwóch sposobów: (1) może zablokować daną czynność zgodnie z polityką bezpieczeństwa (którą mógł skonfigurować użytkownik) lub (2) zapytać użytkownika, czy należy zezwolić na taką czynność. W pierwszym przypadku, nie da się uniknąć sytuacji, gdy zablokowane zostaną legalne programy, co może okazać się nieco uciążliwe. Użytkownik będzie musiał znaleźć odpowiedź na pytanie, dlaczego program nie działa i dodać go do białej listy zapory ogniowej. W drugim przypadku, wyskoczy ogromna liczba okienek, na które użytkownik będzie musiał zareagować. Trudno powiedzieć, co w tej sytuacji jest mniejszym złem.

W przypadku firewalla, który śledzi aktywność aplikacji, możliwe jest zmniejszenie liczby ostrzeżeń poprzez stopniowe rozszerzanie białych list. Jednak z punktu widzenia bezpieczeństwa jest to nieefektywne. Zagrożenia są liczne i nieprzewidywalne, a reakcja na nie powinna być zbyt rygorystyczna, ponieważ w ten sposób możemy znów znaleźć się w punkcie (1). Jeśli jednak reakcja nie będzie rygorystyczna, będzie irytująca.

Bezpieczeństwo oparte na restrykcjach oznacza bezpieczeństwo kosztem użyteczności.

Co stanie się z wirusami?

Vista dla platform 64-bitowych to cios wymierzony przede wszystkim w trojany, które wykorzystują sterowniki i modyfikują dane jądra. Jednak tylko do czasu, gdy autorzy tych trojanów znajdą sposoby na ominięcie tych ograniczeń. Ta konkretna klasa trojanów nie jest bardzo liczna i stanowi prawdopodobnie niecałe 5% wszystkich wirusów atakujących system Windows. Vista dla popularniejszej platformy 32-bitowej nie jest wyposażona w tryb ochrony jądra, dlatego nie oferuje specjalnej ochrony przed trojanami z tej klasy.

User Account Control jest wbudowany w Vistę niezależnie od platformy. Do pewnego stopnia funkcja ta powstrzyma znaczny odsetek trojanów, które wymagają przywilejów na poziomie administratora (takich jak tworzenie plików w folderze systemowym, modyfikowanie rejestru, konfigurowanie automatycznego uruchamiania itd.). Użyłam wyrażenia "do pewnego stopnia", po pierwsze dlatego, że według mnie User Account Control nie zapewnia poważnej ochrony przed wirusami (patrz wyżej), po drugie, złośliwe programy zawsze mogą spowodować pewne szkody, bez względu na to, jak restrykcyjne jest środowisko, w którym funkcjonują. Na przykład, robak, który rozprzestrzenia się poprzez sieci P2P, nie wykonuje żadnych "nielegalnych" czynności: tworzy jedynie własną kopię w folderach, które wykorzystywane są do współdzielenia plików. Przykładem prostego, ale niebezpiecznego wirusa jest Virus.Win32.Gpcode, o którym było głośno z powodu jego szkodliwej funkcji: wirus ten szyfrował dokumenty użytkownika, a następnie żądał okupu w zamian za ich odszyfrowanie.

Trudno przewidzieć, jaki będzie wpływ funkcji bezpieczeństwa IE7 na wirusy, które instalują się poprzez strony www. Prawdopodobnie żaden, szczególnie gdy weźmiemy pod uwagę dłuższy okres czasu oraz fakt, że bardzo niewielu użytkowników będzie chciało korzystać z przeglądarki, w której każda czynność jest zabroniona lub blokowana.

Podsumowując: czy Vista jest bezpieczna?

Czy Vista jest tak bezpieczna jak twierdzą reklamy? Bez wątpienia Vista jest bezpieczniejsza niż wcześniejsze systemy operacyjne Microsoftu. System skonfigurowany w taki sposób, aby blokował wszystko z wyjątkiem dostępu do określonych stron, można uznać za całkowicie bezpieczny.

Jednak większość użytkowników uzna, że daleko idące ograniczenia nałożone na czynności - skutecznie sterylizujące system - są nie do przyjęcia. Chodzi tu o ciągłe żądania potwierdzenia lub wprowadzenia hasła w odniesieniu do czynności, którą system określa jako "potencjalnie niebezpieczną". W efekcie, "prawie całkowicie bezpieczny" system może stać się "bardziej podatny na ataki".

Nie możemy również zapominać, że najsłabszym ogniwem systemu bezpieczeństwa jest człowiek. Robaki pocztowe nadal istnieją i rozprzestrzeniają się mimo że specjaliści ds. bezpieczeństwa nieustannie ostrzegają przed otwieraniem załączników do podejrzanych wiadomości e-mail. Biorąc pod uwagę fakt, że ich wypowiedzi nie powstrzymują większości użytkowników przed uruchamianiem załączników, czy możemy oczekiwać, że żądanie wprowadzenia hasła administratora tak naprawdę coś zmieni? Jak już wspomniałam wcześniej, częste okienka wyskakujące będą prawdopodobnie do tego stopnia irytowały użytkownika, że albo wyłączy tę funkcję, albo po prostu nie będzie traktował jej poważnie.

Ponieważ systemy firmy Microsoft są bardzo popularne, cyberprzestępcy zawsze będą szukali luk w ich zabezpieczeniach. Ani jakość, ani ilość barier chroniących przed hakerami nie ma większego znaczenia. W rzeczywistości, jest zupełnie na odwrót: bariery te stymulują tylko zainteresowanie określonej grupy podziemia komputerowego. Nie ma wątpliwości, że hakerzy i twórcy wirusów będą szukać luk. A jeśli zaczną szukać, to na pewno znajdą.

Wniosek filozoficzny

Bezpieczeństwo, oparte na jakiejkolwiek zasadzie z wyjątkiem otwartości, zawsze stanowi broń obosieczną. Bezpieczeństwo zbudowane wokół restrykcji zawsze będzie miało negatywną stronę: będą nią same restrykcje, które mogą spowodować, że system okaże się bezużyteczny.

Pozostaje pytanie, co lepsze - "fundamentalnie bezpieczny" system, który nie pozwala użytkownikowi robić tego, co chce, czy posiadający słabe punkty, ale funkcjonalny system, wyposażony w specyficzne usługi do zwalczania określonych rodzajów zagrożeń?

Wolność stwarza zagrożenia, natomiast restrykcje zmniejszają wygodę. Im więcej restrykcji, tym mniej przyjazny dla użytkownika będzie system.

Można zastosować tu następującą analogię: jeśli jesteś zazdrosny o swojego partnera, możesz zabronić mu wychodzić samemu, a nawet zamknąć go w domu. Oczywiście im więcej restrykcji, tym mniejsze prawdopodobieństwo, że do twojego związku "wedrze się" ktoś trzeci. Jednak im więcej restrykcji, tym mniej szczęśliwy będzie twój partner. Czy naprawdę chciałbyś mieć nieszczęśliwego partnera?

Nawet jeśli uda się znaleźć idealną równowagę między restrykcyjnością a użytecznością, historia bezpieczeństwa pokazuje, że jeśli tylko ktoś chce, każdą barierę ochronną da się w jakiś sposób pokonać lub obejść.

Przywiązywanie zbyt wielkiego znaczenia do roli, jaką w systemie bezpieczeństwa odgrywają restrykcje, daje następujący efekt: częste bóle głowy i wiele okienek ostrzegawczych w przypadku użytkowników i programistów; wiele łamigłówek związanych ze złośliwymi programami i stosunkowo mniej częste bóle głowy w przypadku hakerów i twórców wirusów. Przynajmniej na razie.

Odsyłacze:

  1. Authentium blog, Microsoft Patchguard
  2. Joanna Rutkowska, "Introducing Stealth Malware Taxonomy"
  3. Joanna Rutkowska, "Subverting Vista Kernel for Fun and Profit"
  4. Windows Vista Security Guide
Źródło:
Kaspersky Lab