Wirusy komputerowe
Ciekawostki | Dvd,Mp3 | Ebiznes | Gry komputerowe | Internet | Kościół i Internet | Oprogramowanie | Sprzęt | Wirusy, poradyDo roku 1999 atak w skali światowej następował mniej więcej raz do roku. Linię zapoczątkowaną przez dosowe i bootsektorowe wirusy jak Brain, Jerusalem, Tequila czy Form, z których każdy powodował globalną epidemię, kontynuowały wirusy makr takie jak Concept, Laroux i CAP. Zainfekowały miliony komputerów, ale ich użytkownicy mieli wystarczająco dużo czasu między atakami, żeby naprawić zniszczone zasoby i zastąpić popsute programy nowymi. Teraz pojawiają się prawie co miesiąc. W styczniu 1999 roku mieliśmy życzenia noworoczne od Happy99 (aka SKA) (wirus ciągle je składa), w marcu była Melissa i jej taniec w Internecie, w kwietniu katastrofę spowodował wirus CIH, w maju i czerwcu robaki PrettyPark i ZippedFiles (aka ExploreZip) wyżerały kanaliki w sieciowych "jabłkach". Nie jest to pełna lista szkodników, które pojawiły się w 1999 roku i na pewno w chwili publikowania tego artykułu społeczność internetowa ma kolejne problemy z wirusami. Wspomniane wirusy zwróciły wagę nie tylko ekspertów czy administratorów systemów, ale i milionów użytkowników komputerów. Trafiły na pierwsze strony gazet, stały się tematem dnia w radiu i telewizji nie dlatego, że media nie miały innych sensacji w sezonie ogórkowym, lecz dlatego, że spowodowały rzeczywiste straty, które dosięgły miliony stacji roboczych. Skutkiem ich działania były zniszczone dane i zawieszone tysiące sieci lokalnych, w tym sieci w Dużych Firmach znanych z nazwy każdemu. Jeżeli ten trend się utrzyma, pod koniec roku można oczekiwać pojawienia się nowych wirusów, które będą debiutować, infekować i niszczyć przynajmniej raz na tydzień, a rok później poranne wiadomości oprócz doniesień sportowych i prognozy pogody będą zawierały informacje o wirusach komputerowych, w tym nazwy nowych i powody, dla których nie należy danego dnia pod żadnym pozorem czytać poczty elektronicznej. Administratorzy systemów będą musieli odłączać swoje sieci od Internetu, a użytkownicy przestać czytać i redagować listy elektroniczne w swoich stacjach roboczych. Warto odnotować, że tylko około 0,1 procent (jeden promil) wszystkich odnotowanych wirusów jest znany na całym świecie. Tylko jeden wirus na tysiąc staje się tak popularny, że firmy zajmujące się zwalczaniem wirusów i ochroną danych otrzymują na jego temat raporty z różnych krajów. Element przypadkowości decyduje o tym, dlaczego niektóre szkodniki trafiają na forum publiczne, a inne umierają zapomniane w laboratoryjnych kolekcjach. Jest jednak bardzo prawdopodobne, że wypuszczony wirus się rozprzestrzeni, szczególnie gdy zostanie skierowany do grup dyskusyjnych albo gdy sam może wysyłać swoje kopie do Internetu. Gdy takie "wirusy internetowe" pojawiają się w Sieci, niebawem (często już po kilku minutach) można je znaleźć w dowolnym miejscu świata. To z tego powodu robaki i wirusy komputerowe używające Internetu "w aktywny sposób" wymagają największej uwagi. Są najgroźniejsze. Pozostała część artykułu jest poświęcona właśnie tego typu szkodliwym programom. Dlaczego rozprzestrzeniają się tak szybko? Wirusy popularne za czasów DOS-u rozprzestrzeniały się bardzo wolno w porównaniu z nowoczesnymi. Był jeden bardzo ważny powód: wirusy te nie używały Internetu ani żadnych innych sieci jako kanałów komunikacyjno-rozprowadzających - nie działały aktywnie, lecz pasywnie. Musiały być przenoszone ręcznie - za pośrednictwem dyskietek. Żeby doszło do ogólnoświatowej epidemii jakiegoś wirusa, trzeba było długo czekać, aż jego egzemplarze się powielą. W przypadku na przykład wirusa CIH zajęło to jeden miesiąc. O ile wiem, do rozpanoszenia się tego gagatka bardzo się przyczyniły zainfekowane internetowe witryny z grami. Nowoczesne robaki internetowe rozprzestrzeniają się jak pożar lasu, ponieważ posługują się aktywnymi metodami internetowymi. Aby skopiować się do innego (odległego) komputera, wirus internetowy nie musi czekać na to, by jego kopie zostały przypadkiem dołączone do listu i wysłane. Dba o to sam - aktywnie, nie biernie. Po wypuszczeniu do Sieci natychmiast zaczyna wysyłać swoje kopie, używając zabawnych lub podrabianych listów zachęcających do otwierania i czytania. Ktoś klika załącznik, żeby go otworzyć - i to wszystko: wirus lub koń trojański przeniesiony. Problemy laboratoriów wirusowych Inny problem to czas reakcji firm antywirusowych, których zadaniem jest ochrona użytkowników Internetu przed nieproszonymi gośćmi. W przypadku szybko rozprzestrzeniających się robaków internetowych powinny one wydawać wznowione wersje swoich narzędzi możliwie najszybciej, najlepiej tydzień przed pojawieniem sie wirusa. Ten czas jest potrzebny po to, aby użytkownicy mogli zmodernizować pakiety antywirusowe, a administratorzy systemów zdążyli zaktualizować oprogramowanie w sieciach i przeszkolić pracowników. Niestety, widać tendencję odwrotną - najpierw odbywa się inwazja wirusa, potem laboratoria antywirusowe sprzedają antidotum, następnie użytkownicy zainfekowanych systemów pobierają szczepionki (przez Internet, jeśli mają jeszcze sprawne połączenie, bo w przeciwnym razie muszą otrzymać dyskietkę pocztą zwykłą lub kurierską). Ile czasu upływa między "najpierw" i "potem" w powyższym zdaniu, między początkiem rozprzestrzeniania się nowego robala a momentem udostępnienia antidotum przez firmę antywirusową? Niestety, nie jest to czas zerowy. Przez pewien okres sieci i stacje robocze pozostają niezabezpieczone (zakładając nawet, że stacje robocze użytkowników są aktualizowane w chwili uzyskania antidotum, a tak nie jest). Rzeczywista wielkość tej niezerowej wartości zależy głównie od dwóch czynników. Pierwszy to czynnik ludzki. Nie ma zbyt wielu ekspertów od wirusów, którzy są w stanie przeanalizować kod dużego i skomplikowanego wirusa, zrozumieć wszystkie metody jego rozprzestrzeniania i zablokować wszystkie jego gałęzie w bazie danych zawierającej informacje o sposobach wykrywania i unieszkodliwiania. Te elementy są niezbędne do wydania uaktualnionej wersji programu antywirusowego. Wirusolodzy są również ludźmi. Też potrzebują snu, weekendów i wakacji. Drugi czynnik wiąże się z samymi wirusami. Zbudowanie procedury wykrywającej i unieszkodliwiającej większość wirusów jest stosunkowo proste; było tak w przypadku Melissy i ZippedFiles. W obu sytuacjach do wykrywania zarażonych plików można użyć stałej maski. Łatwo było zauważyć, że nie ma innych odmian, tylko wirus główny. Wystarczy dodać maskę sygnaturową (lub wzorzec) do bazy danych skanera, przetestować program i wydać nową wersję. Dziesięć minut pracy. No, może dwadzieścia. Tyle czasu trzeba, by klienci mogli otrzymać szczepionkę - brawa i kwiaty dla lekarzy komputerów. Niestety, wszystkie znane obecnie wirusy typu internetowego są pod tym względem do siebie podobne. Eksperci spędzają dużo więcej czasu na analizowaniu i próbach zrozumienia ich struktury, niż na powiększeniu bazy danych programu antywirusowego o metodę ich wykrywania i unieszkodliwiania (oczywiście bazy są gotowe, zanim eksperci przeprowadzą pełną analizę). No dobrze, ale załóżmy, że następnym razem trafimy na ogromnie złożony, polimorficzny wirus, dla którego bardzo trudno napisać procedurę wykrywającą. Po dziesięciu latach badań nad wirusami uważam się za dość doświadczonego analityka, mimo to czasem potrzebuję kilku dni na napisanie dodatku wykrywającego i unieszkodliwiającego. Pamiętam trzy rodziny wirusów: nad każdą spędziłem tydzień, pracując po 12 godzin dziennie! W dwóch wypadkach chodziło o wirusa opartego na systemie DOS, a w trzecim - o wirusa atakującego Windows 95/98 i, co ciekawe, również pliki systemu pomocy Windows (HLP). Nie trzeba dodawać, że wszystkie automatyczne czy półautomatyczne narzędzia analizujące, których używają obecnie firmy antywirusowe, nie dawały żadnych rezultatów. Wirusy tego typu muszą być badane ręcznie przez ekspertów najwyższej klasy, a nawet przez grupę badaczy. Wyobraźmy sobie, że pojawia się jakiś superskomplikowany wirus internetowy i że opracowanie dla niego niezawodnej metody wykrywania zajmuje tydzień pracy w laboratoriach. W ciągu tego tygodnia użytkownicy pozostają bezbronni. Taki scenariusz jest bardzo prawdopodobny. Z technicznego punktu widzenia z analizą wirusów wiąże się kilka złożonych problemów. Przede wszystkim współczesne systemy i sieci zupełnie nie ograniczają wielkości programów wykonywalnych (wirusów). Przesyłanie plików 200 KB (taki rozmiar miał na przykład robak ZippedFiles) czy nawet 1 MB przy dzisiejszych możliwościach komunikacyjnych i pojemnościach pamięci masowej nie przedstawia żadnego problemu. Niestety, wzrostowi możliwości technicznych współczesnych komputerów i sieci nie towarzyszy wzrost mocy obliczeniowej umysłów analityków wirusowych. Moc ta pozostaje na niezmiennym poziomie od dziesięciu lat. Na dodatek czas analizy zależy od rozmiaru kodu nie liniowo, lecz wykładniczo. Jeżeli analiza 1 KB zajmuje na przykład 5 minut, to analiza 2 KB - 20 minut, a 4 KB - przynajmniej godzinę. Analiza programu ZippedFiles (kod 200 KB napisany w Delphi, około 10 KB "czystego" kodu wirusa po usunięciu wszystkich danych i funkcji RTL Delphi) zajęła mi około 6 godzin. Problem również w tym, że wirusy mogą mieć ogromną liczbę formatów - można je pisać w asemblerze, Delphi, Basicu itd. Niewiele narzędzi potrafi wydobyć z programu "czysty" kod czy usunąć elementy specyficzne dla poszczególnych środowisk programistycznych, szczególnie wówczas, gdy są one dodatkowo kompresowane jednym z narzędzi do kompresji kodu wykonywalnego (ostatnio bardzo popularnych w podziemiu informatyków). Należy pamiętać, że analiza kodu wirusa i opracowanie niezawodnego antidotum jest w niektórych przypadkach czasochłonna i w tym okresie użytkownicy powinni albo powstrzymać się od korzystania z Internetu, albo stosować tymczasowe zabezpieczenia - no i czekać na profesjonalną pomoc od producentów programów antywirusowych. Na szczęście do takiej sytuacji jeszcze nie doszło, a antidotum pojawia się jeszcze tego samego dnia, kiedy wirus zadebiutuje w Internecie. Ale co nas czeka jutro...? Wejścia, przez które mogą atakować wirusy Wszystkie znane wirusy internetowe rozprzestrzeniają się takimi samymi drogami. Przejmują kontrolę nad przychodzącą i wychodzącą pocztą albo dostają się bezpośrednio do pocztowej bazy danych, pozyskują stamtąd adresy pocztowe i wysyłają pod nie listy. Używają dość sprytnych metod zwodzenia odbiorców: jeśli ktoś otrzymuje od zaufanej osoby list z informacją w stylu "musisz koniecznie to zobaczyć" albo z plikiem o nazwie Happy99 (czytaj: szczęśliwego nowego roku 1999), trudno mu się powstrzymać i nie otworzyć załącznika czy dokumentu pakietu Microsoft Office. Większość osób ufa swoim znajomym. Po kilku incydentach związanych z wirusami Happy99, Melissa i ZippedFiles nie ufamy już załącznikom - oczywiście, gdy się ich nie spodziewamy. Ale kto powstrzyma wirusy od wysyłania swoich kopii w listach, które już zawierają załączniki? Dla wirusa dołączenie się do istniejącego załącznika jest bardzo proste - program musi wykryć plik EXE w załączniku listu znajdującego się w skrzynce nadawczej, zainfekować ten plik i dodać element "towarzyszący". Jeśli w załączniku znajduje się dokument, wirus może się przenieść przez makro. Nietrudno przekształcić program wykonywalny w makro, które z kolei przekształci się z powrotem w oryginalny plik EXE i uruchomi. W przypadku pliku wykonywalnego dołączanego do listów elektronicznych łatwo dodać nowy kod, który zainstaluje wszystkie pozostałe komponenty robaka w komputerze ofiary (mam nadzieję, że nie czytają tego potencjalni twórcy wirusów). Czy są inne sposoby rozprzestrzeniania wirusów z zainfekowanego systemu i proliferacji w zdalnych komputerach i sieciach, które nie wymagają czytania podrabianych listów poczty elektronicznej z załącznikami? Tak, są. Bramy Microsoftu Gdy przyjrzyjmy się poprawkom opublikowanym w zeszłym roku przez Microsoft, zauważymy, że są przynajmniej dwie łaty, które zamknęły drzwi w systemie bezpieczeństwa pakietu Microsoft Office. Pierwsza luka w systemie ochrony jest znana jako "Excel CALL Vulnerability", druga pozwalała na ściąganie szablonów Microsoft Worda ze zdalnych źródeł. Mechanizm naruszeń bezpieczeństwa w pierwszym wypadku opierał się na możliwości wykonywania zewnętrznego programu z poziomu arkusza Microsoft Excela bez wyświetlania okna ostrzegającego o wirusach makr (zabezpieczającego przed makrowirusami) - program ten mógł być uruchamiany z formuł arkusza, bez konieczności posługiwania się makrem. Trik opiera się na tym, że Microsoft Excel umożliwiał korzystanie z instrukcji CALL w formułach arkusza. Parametrem instrukcji CALL mógł być na przykład ciąg KERNEL32 WinExec FORMAT.COM C:. Istniała możliwość tworzenia opartych na tej właściwości koni trojańskich i wirusów, które byłyby uruchamiane w niezauważalny sposób, czyli bez wywoływania ostrzeżenia o wirusach makr Excela. Druga poprawka załatała w systemie ochrony Microsoft Worda lukę, umożliwiającą przedostawanie się do komputera wirusów z odległych źródeł (z Internetu) z ominięciem komunikatu o wirusach makr - wadliwe wersje Microsoft Worda nie wykrywały programów makr w szablonach dodatkowych, nawet jeśli ich źródłem były zasoby spoza komputera. Tak więc można było ściągnąć wolny od makr dokument, który uaktywniał odległy szablon zawierający (potencjalnie) złośliwe makra. Stosując jedną z powyższych metod, można do odpowiednio spreparowanej wiadomości w formacie HTML wpuszczać wirusy komputerowe w listach poczty elektronicznej nie zawierających załączników. Trik z HTML-em opiera się na pewnej właściwości tego języka. Jest takie polecenie HTML-u, które otwiera dokument Worda lub Excela, również dokument zdalny (z Internetu). System zabezpieczeń Internet Explorera nie wykryje w tym przypadku nic podejrzanego - bo jest przekonany, że, nawet jeśli dokument (w tym arkusz kalkulacyjny) będzie zawierał jakieś złośliwe makra, użytkownik otrzyma ostrzeżenie generowane przez Worda lub Excela. W tym przypadku jednak ochrona przed wirusami makr zawodzi. Wskazany plik zostanie ściągnięty i uaktywniony niepostrzeżenie. Otrzymujesz więc list elektroniczny zredagowany w formacie HTML i bez załączników. Otwierasz go bez obaw w przeglądarce. No i od tej chwili wirus może swobodnie penetrować twój komputer. Rzeczywiście jest więc możliwe uaktywnienie się kodu wirusa przez otwarcie listu w czytniku poczty elektronicznej obsługującym HTML, pod warunkiem korzystania z zainstalowanego pakietu Microsoft Office. To samo dotyczy przeglądarek - przetwarzają one strony HTML tak samo jak czytniki poczty. Więc facecje w stylu "Good time" i "Join the Crew" mogą wkrótce stać się rzeczywistymi szkodliwymi wirusami. Nie sądź, że wszystkie luki w ochronie są już załatane - czy wszystkie komputery w Twojej firmie miały zainstalowane odpowiednie pakiety serwisowe? Jeśli nie, wrota do całej firmy są otwarte. Wystarczy, że zakażony zostanie jeden komputer w sieci. Niedługo po zarażeniu wirus może się pojawić we wszystkich komputerach (jeśli w firmie nie obowiązują drakońskie reguły bezpieczeństwa sieciowego). Nie sądź też, że skoro zaktualizowałeś wszystkie komputery w sieci, to jesteś bezpieczny - a czy nie ma innych luk? Jeśli nie jesteś pewny, lepiej monitoruj jakieś konferencje poświęcone bezpieczeństwu w Internecie i grupy dyskusyjne, aby znać bieżące informacje o wykrytych lukach. Nie ociągaj się ze stosowaniem kolejnych łat opracowanych przez Microsoft. Instaluj pakiety serwisowe, zanim podziemie komputerowe zacznie robić użytek z nowo wykrytych luk i zaatakuje Twoją sieć. Bardzo aktywny X (rzecz o ActiveX) Przyjrzyj się opcjom bezpieczeństwa swojej przeglądarki, szczególnie opcjom związanym z kontrolkami ActiveX i wtyczkami. Jeśli masz zablokowane kontrolki ActiveX, możesz przejść do kolejnej części tego tekstu. Jeśli nie, czytaj dalej. Może poniższe informacje spowodują, że niezwłocznie zablokujesz niektóre funkcje swojej przeglądarki. Standardowe przeglądarki używane do wczytywania stron WWW mogą ściągać i wykonywać dodatkowe kontrolki (będące w istocie programami) lub wykorzystywać kontrolki już zainstalowane w systemie. Dzięki kontrolkom uzyskuje się animacje stron, efekty specjalne itp. (czasem możliwe jest to również z poziomu czytników poczty elektronicznej, jeśli e-mail jest napisany w języku HTML). Same kontrolki to standardowe programy wykonywalne Windows, pliki EXE, mogą więc równie dobrze jak inne programy okazać się wirusami albo końmi trojańskimi. Preinstalowane kontrolki są z pewnością bezpieczne - są produktem firm, które nie mogą sobie pozwolić na dystrybucję złośliwego kodu do milionów komputerów. W celu ochrony użytkowników przed złośliwymi kontrolkami z Internetu (oferowanymi ze stron WWW), opracowano standard podpisów cyfrowych: jeśli kontrolka jest napisana przez "dobrą" firmę i przez nią podpisana, przeglądarka WWW (o domyślnych ustawieniach) uruchomi ją, wyświetliwszy okno ostrzegającego (albo w ogóle bez ostrzeżenia). Kontrolek niepodpisanych przeglądarka nie ściągnie i nie uruchomi. Ewentualnie zrobi to, wystosowując jednak standardowe ostrzeżenie o możliwości naruszenia bezpieczeństwa systemu. Tak więc podejrzane kontrolki są odrzucane automatycznie lub użytkownik otrzymuje możliwość podjęcia decyzji (ryzyka), a kontrolki "dobre" są wykonywane bez pytania (jeśli użytkownik dopuszcza korzystanie w swoim systemie ze zdalnych kontrolek). Wszystko wydaje się działać poprawnie. Ale czy rzeczywiście bezpiecznie jest korzystać z kontrolek dostarczanych przez firmy software'owe razem z oprogramowaniem komercyjnym? Albo czy rzeczywiście można ufać kontrolkom podpisanym cyfrowo i wpuszczać je do swojego systemu? Niestety, nie. Przede wszystkim w przypadku zdalnych kontrolek nie jest bezpieczna sama procedura uzyskiwania cyfrowego podpisu. Wprowadzając do komputera podpisane kontrolki, musisz ufać temu podpisowi (nie musisz go czytać - przeglądarka jest na tyle sprytna, że zajmie się wszystkim za Ciebie). Tak więc Twoje zaufanie jest oparte tylko na podpisie. "Zaufaj mi", powiedział Kaa do Maugli. Maugli zaufał mu i, niestety, został zjedzony - Kaa był bardzo dużym i brzydkim, ale dobrym robakiem. A co z małymi robakami ? Ponadto źródłem zagrożenia jest to, że kontrolki umożliwiają wykonywanie w komputerze pewnych zadań. Zadania te są bezpieczne i użyteczne albo przynajmniej nieszkodliwe, jeżeli funkcje zawarte w kontrolce są prawidłowo używane. Ale czy można za pomocą pojedynczej, preinstalowanej, zaufanej kontrolki albo kilku kolejno uruchamianych kontrolek (a ściślej za pomocą zawartych w nich funkcji) zniszczyć dane lub nawet wpuścić do systemu wirusa? Przyjrzyjmy się trzem milutkim programom. Pierwszy z nich wypisuje tekst "C:" i symuluje naciśnięcie klawisza [Enter], drugi wypisuje słowo "MAT", a trzeci słowo "FOR". Uruchomimy je w innej kolejności: najpierw trzeci, potem drugi a na końcu pierwszy. Pozostaniemy z czystym twardym dyskiem, pełnym wolnego miejsca. Powyższa dykteryjka to tylko przykład ilustrujący mechanizm. Prawdziwa opowieść brzmi podobnie. Rozważmy dwa użyteczne narzędzia: pierwsze wysyła komunikat ze standardowego wejścia (z klawiatury) pod adres internetowy, używając adresu internetowego jako argumentu linii poleceń. Drugie narzędzie wyświetla ustawienia dostępu do Internetu, nazwy kont i hasła (przydatne wówczas, gdy się je zapomni). Oba narzędzia są potrzebne, ale jeśli zmieni się im nazwy na A.EXE i B.EXE i połączy w małym skrypcie typu "A bandyta@konto.pocztowe.com B", można ukraść komuś hasła. Nie testowałem tego szczegółowo i nie prowadziliśmy tego typu badań w laboratorium AVP, ale bardzo prawdopodobne są tego typu wypadki z użyciem całkowicie legalnych i zaufanych kontrolek ActiveX. Używając ich w wyrafinowany i sprytny sposób, można się dostać się do Rejestru Windows i odczytać ustawienia systemu bezpieczeństwa (na przykład w celu przetarcia drogi do systemu wirusowi, który zainstaluje dalszą część złośliwego oprogramowania), wykonać plik znajdujący się w systemie (przy okazji: czy masz w swojej zmiennej środowiskowej PATH katalog z plikami FORMAT.COM i DELTREE.EXE?) albo zaszkodzić w inny sposób. Podsumujmy. Istnieją niebezpieczne kontrolki ActiveX (nawet w produktach Microsoftu - niektóre z nich zostały poprawione, o czym można było przeczytać w biuletynach informacyjnych tej firmy poświęconych zagadnieniom bezpieczeństwa). Używając kontrolek w bardziej lub mniej wyrafinowany sposób, można uzyskać dostęp do plików znajdujących się na dysku komputera i otworzyć drzwi internetowym robakom. Dlaczego więc jeszcze żyjemy? To dobre pytanie. Sam zadawałem je sobie wiele razy. Istnieją niezbyt skomplikowane sposoby umożliwiające napastnikom pokonanie zabezpieczeń sieciowych. Naprawdę możliwe jest pojawienie się internetowej Godzilli miażdżącej sieciowe miasta. Dlaczego więc jeszcze żyjemy - my i nasze komputery? Odpowiedź jest prosta: większość wirusów pisana jest przez nieprofesjonalnych, niedoświadczonych i słabo motywowanych programistów. Wirusy piszą głównie nastolatki zaczynające eksplorację architektur komputerowych i poznające dopiero języki programowania. Nie dysponują wystarczającą wiedzą ani doświadczeniem, by opracować naprawdę groźny, przebiegły i wytrawny program. Są to mali chłopcy, którzy niegrzecznie się bawią, ale nie rozumieją jeszcze konsekwencji swoich czynów. Zdecydowana większość twórców szkodliwego oprogramowania to osoby przechodzące specyficzny etap w życiu (między dojrzewaniem a pełnym rozwojem intelektualnym). Okres ten trwa z reguły kilka miesięcy lub lat - za krótko, by zmienić początkującego programistę w wytrawnego profesjonalistę. Istnieją, niestety, wyjątki: autorzy Morrisa (robak internetowy Morris Virus sparaliżował sieci w Stanach Zjednoczonych w 1989 roku), autorzy Melissy czy Black Barona (czy pamiętasz wirusy SMEG, panoszące się w Wielkiej Brytanii w 1994 roku?). Mimo przekroczenia trzydziestki ludzie ci zostali profesjonalnymi twórcami wirusów, promując niejako tę niepoważną działalność i deprawując młodzież. Którymi drzwiami wejdą kolejne ? Takie pytanie warto zadać nam, ekspertom od wirusów komputerowych. Powinniśmy przewidzieć przyszłe typy wirusów, robaków i koni trojańskich. Pytania jednak zadaje się łatwo, gorzej z odpowiadaniem na nie. Na to konkretnie naprawdę trudno odpowiedzieć. Mogę stwierdzić tylko tyle, że wirusy nie znikną, będą zarażać komputery, rozprzestrzeniać się przez sieci i niszczyć dane zainfekowanych systemów. Nie jestem w stanie przewidzieć, jak będą to robić. W listopadzie 1998 roku postanowiłem się zająć tym problemem i określić, skąd najprawdopodobniej nadejdą kolejne ataki wirusów. Obecnie pojawiły się już pierwsze wirusy HTML-owe. Podstawowa metoda ich działania opiera się na łamaniu zabezpieczeń internetowych i przedostawaniu się do komputerów z odległych stron WWW (zajrzyj na przykład do opisu wirusa HTML-owego "NoWam"). W laboratorium AVP postanowiliśmy zbadać metodę rozprzestrzeniania się tego wirusa, żeby się przygotować na ewentualne dalsze incydenty tego typu. I co się stało? Mniej więcej tydzień po rozpoczęciu prac odkryliśmy wspomnianą wyżej lukę bezpieczeństwa w Excelu (z instrukcją CALL), jakiś czas później poinformowaliśmy o luce Worda (pozwalającej na ściąganie zdalnych szablonów). Nabraliśmy wówczas pewności (i ciągle ją mamy), że produkty pakietu Microsoft Office zawierają więcej takich niespodzianek. To pomogło nam odpowiedzieć na postawione wyżej pytanie: kolejną generację będą tworzyły wirusy internetowe, wykorzystując luki bezpieczeństwa pakietu Microsoft Office. Pierwsza część tej odpowiedzi była poprawna (teraz to wiemy), ale druga nie. Twórcy wirusów nie zaczęli używać tych możliwości do infekowania zdalnych systemów, ale zaczęli wykorzystywać "czynnik ludzki" - proponowali otwarcie uruchomienie załącznika lub skłaniali użytkownika do tego. Udawało im się mimo istnienia przynajmniej dwóch dobrze znanych metod, których zastosowanie eliminuje potrzebę interwencji użytkownika. Dlaczego? Istnieją skuteczne sposoby propagowania wirusów w Internecie. Dlaczego autorzy wirusów nie wykorzystują ich przy pisaniu robaków? Może dlatego, że twórcy Melissy, PrettyPark i ZippedFiles nie znali tych metod. Może. Ale przecież jedna ze stron WWW poświęconych wymianie wirusów prezentowała przykładową lukę bezpieczeństwa pakietu Microsoft Office, a nawet wykorzystywała ją do rozpowszechniania makrowirusa? Moim zdaniem, bardziej prawdopodobne jest, że nie mieli wystarczająco dużo czasu, by zaimplementować posiadaną wiedzę. O wiele łatwiej jest wymyślić głupi temat i tekst e-maila, aby nakłonić użytkownika do otwarcia załącznika i zainfekowania systemu, niż opracować procedurę tworzącą dodatkowe zainfekowane pliki Office'a, zlokalizować i zainfekować serwery WWW itd. Metody tego typu są możliwe do zaimplementowania, ale nikt nie zrealizował wirusa na ich podstawie - na razie. Wnioskuję, że moja zdolność przewidywania przyszłości wirusów jest skuteczna w 50 procentach, czyli nie lepsza od rzutu monetą. Opinia monety będzie bardziej poprawna, jeśli potrzebujemy odpowiedzi dotyczącej przyszłych wirusów komputerowych z punktu widzenia obecnie używanych systemów operacyjnych i aplikacji. Przyszłe typy i możliwości wirusów zależą od osobistej aktywności i doświadczenia ich autorów, a także od konsekwencji prawnych. Kilka spraw kończących się w więzieniu mogłoby ostudzić zapały wielu początkujących autorów wirusów. Byłaby to lepsza ochrona na przyszłość niż dzisiejsze czy przyszłe supertechnologie skanowania wirusów. Co nas czeka pojutrze? Co stanie się pojutrze i jak długo wirusy będą w ogóle istniały? Aby odpowiedzieć na to pytanie, trzeba stwierdzić, gdzie i w jakich warunkach pojawiają się wirusy. Do masowego panoszenie się wirusów w komputerach niezbędne są, moim zdaniem, następujące czynniki: podatny system operacyjny, szeroka dostępność pełnych dokumentacji systemów operacyjnych i urządzeń, duża popularność systemów operacyjnych i pewnych urządzeń. Należy dodać, że moja definicja systemu operacyjnego jest ogólniejsza, niż się powszechnie przyjmuje. Na przykład dla wirusa makr systemem operacyjnym jest program Microsoft Word czy Microsoft Excel, ponieważ właśnie te programy stanowią platformę zasobów niezbędnych do funkcjonowania wirusów (konkretnie programów w Basicu). Jeśli system operacyjny zawiera metody ochrony danych, a prawie każdy system operacyjny je ma, wirusowi jest znacznie trudniej przedostać się do komputera, ponieważ musi pokonać struktury zabezpieczeń (hasła, ograniczenia dostępu itp.). Dlatego tworzenie wirusów dostępne jest tylko profesjonalistom wysokiej klasy (przykładem niech będzie wirus Morrisa napisany do komputera VAX). Wydaje mi się jednak, że spora część profesjonalistów to ludzie porządniejsi niż ich produkty, dlatego liczba nowych wirusów maleje. Do masowego produkowania wirusów niezbędna jest też odpowiednia jakość informacji o środowisku. Ilu programistów systemowych pracujących przy minikomputerach z systemem UNIX, VMS itd. zna system zarządzania procesami w pamięci operacyjnej, kompletną specyfikację formatów plików wykonywalnych i boot sektorów dyskietek? A to są informacje niezbędne do tworzenia wirusów. Ilu z nich może więc stworzyć krwiożerczą, dojrzałą bestię? Inny przykład wiąże się z systemem operacyjnym Novell NetWare, który jest bardzo popularny, ale słabo udokumentowany. Nie znam żadnych wirusów zarażających pliki wykonywalne systemu NetWare, mimo iż było wiele zapowiedzi ich napisania. Istnieje pewne niebezpieczeństwo uzależnienia inwazji wirusów od popularności systemu operacyjnego: spośród każdego tysiąca programistów tylko stu jest w stanie napisać wirus, a tylko jeden rzeczywiście go napisał. Teraz pomnóżmy tę proporcję przez liczbę wszystkich programistów. Oto wyniki: 20-30 tysięcy wirusów do komputerów kompatybilnych z IBM (nie licząc odmian generowanych przez narzędzia do tworzenia wirusów) z jednej strony i kilkaset wirusów działających w komputerach Apple Macintosh z drugiej strony. Taką samą proporcję można przedstawić dla Windows (kilkadziesiąt) i dla OS/2 (kilka). Wspomniane wyżej trzy warunki sukcesu wirusa komputerowego są spełnione w wielu systemach operacyjnych wyprodukowanych przez Microsoft (DOS, Windows 3.x, Windows95/98/NT i Microsoft Office), więc istnieje wiele rodzajów wirusów infekujących pliki i makra. Powyższe warunki spełnia też specyfikacja podziału twardego dysku na partycje, czego skutkiem jest mnogość wirusów gnieżdżących się w boot sektorach i zarażających system w momencie rozruchu. Aby oszacować czas trwania inwazji wirusów komputerowych na dany system operacyjny, należałoby zmierzyć lub przewidzieć czas współistnienia wymienionych trzech warunków koniecznych. To raczej oczywiste, że w najbliższej przyszłości IBM i Apple nie zamierzają oddać masowego rynku konkurencji (ku radości programistów z tych firm). Nie jest również możliwe zmniejszenie dostępności informacji o najpopularniejszych systemach, ponieważ zmniejszyłaby się liczba istniejących dla nich aplikacji, co zmniejszyłoby obroty ze sprzedaży. Pozostaje tylko zabezpieczanie systemów operacyjnych, ale obudowywanie ich odpowiednimi mechanizmami (kontami, hasłami itp.) powoduje dodatkowe niedogodności dla użytkowników. Dlatego uważam za mało prawdopodobną popularność bezpiecznych systemów operacyjnych wśród sekretarek, księgowych, użytkowników domowych itd. Inna możliwość to zlekceważenie przez użytkowników funkcji bezpieczeństwa już na etapie instalacji. Podsumowując, możemy tylko stwierdzić, że wirusy skutecznie wdzierają się w codzienne życie komputerów i nie zamierzają go opuścić w przewidywalnej przyszłości. Dlaczego atakują głównie produkty Microsoftu? Po dotychczasowej lekturze tego tekstu ktoś mógłby zaproponować, by nazwę "wirusy komputerowe" zmienić na "wirusy Microsoftu". To zrozumiałe, ale nie do końca słuszne. Nie można powiedzieć, że źródłem wirusów komputerowych jest Seattle. Jeśli jakiś system operacyjny staje się popularny, rośnie prawdopodobieństwo, że będą go atakować wirusy komputerowe - nie można tego uniknąć. Jeśli jakieś konkurencyjne systemy operacyjne (na przykład Linux) staną się kiedyś tak popularne jak obecnie Microsoft Windows, wirusy zaatakują również komputery z Linuksem i ich użytkownicy będą się borykać z tymi samymi kłopotami co obecni posiadacze Windows. Może będzie nieco trudniej pisać wirusy dla takiego systemu - ale to bez znaczenia, i tak będą powstawały. Teza, że za współczesne wirusy komputerowe odpowiedzialny jest Microsoft, jest równie absurdalna jak pogląd, że za wypadki samochodowe odpowiedzialny jest Ford. Microsoft jest odpowiedzialny jedynie po części - mógłby opracować dodatkowe zabezpieczenia i lepiej ostrzegać użytkowników o niebezpieczeństwach pobierania plików z Internetu (tak robi Sun w odniesieniu do apletów Javy). Mógł też (i nadal może) wbudować w Microsoft Office lepsze zabezpieczenia przed wirusami makr. Niech będą uruchamiane w bezpiecznym środowisku, jak aplety Javy - niech wyświetla się komunikat, gdy program makra tworzy lub modyfikuje inny program makra, sięga do pliku na dysku albo po funkcję jądra Windows. Nie wyeliminuje to problemów całkowicie, lecz spowoduje na pewno, że wirusy makr opuszczą pierwszą dziesiątkę czarnej listy przebojów - podobnie wirusy skryptowe (HTML) działają w bezpiecznym środowisku i nigdy nie przedostają się na wolność. Wirusy będą istniały tak czy owak, niezależnie od działań Microsoftu. Podobnie jak dozwolone prędkości na autostradach będą przekraczane niezależnie od tego, co zrobi firma Ford. Czy klienci kupią samochody o maksymalnej prędkości 90 kilometrów na godzinę? Raczej nie. Reguły dla sieci firm Wirusów komputerowych nie da się więc uniknąć, nie ma co marzyć. Co więc robić, aby chronić się przed złośliwym oprogramowaniem. Jedynym rozsądnym i bezpiecznym sposobem, jaki wymyśliłem, byłby powrót do antycznych komputerów typu mainframe. Kiedy jednak spoglądam na śliczne i kolorowe komputery w jaskrawych, przezroczystych obudowach, myślę, że to niemożliwe. A poważnie: żeby chronić sieć, trzeba ją badać i analizować drogi, którymi wirusy komputerowe mogą się do niej dostać. Jeśli sieć jest wolna od wirusów i nie ma połączenia ze światem zewnętrznym, wirusy nie będą w stanie się do niej dostać (chyba, że któryś z jej użytkowników utworzy własny). Aby ochronić całą sieć, należy wyeliminować lub sprowadzić do niezbędnego minimum kanały, którymi z zewnątrz dostają się dane (i ewentualnie wirusy). Usuń wszystkie stacje dyskietek i CD-ROM-ów (również z komputerów Twojego i Twojego szefa). Wkładaj je tylko wówczas, gdy są niezbędne i tylko do tych komputerów, które nie są podłączone do sieci. Odinstaluj Microsoft Office i inne programy używające makr (API Pro, Corel Draw itd.). Używaj tych aplikacji tylko wtedy, gdy naprawdę musisz i tylko w komputerach niepodłączonych do sieci. Zerwij absolutnie wszystkie łącza z Internetem. Odinstaluj wszystkie rodzaje programów i usuń wszystkie urządzenia, za pomocą których można uzyskać dostęp do Internetu. Jeśli nie możesz żyć bez Internetu, zainstaluj dodatkowy komputer do połączeń z nim, ale absolutnie nie pozostawiaj go w sieci lokalnej i wymontuj z niego stacje dyskietek. Przestrzegając powyższych zasad, ochronisz się przed wirusami komputerowymi teraz i w przyszłości. Efektem ubocznym będzie to, że Twoja firma przestanie funkcjonować. Żeby znów mogła pracować, zainstaluj ponownie wszystko, wprowadź odpowiednie procedury i... módl się, żeby do Twojej sieci nie przedostały się żadne Melissy czy Morrisy. opr. JU/PO |