W szponach wirusa

Wirusy i trojany rozprzestrzeniają się w zawrotnym tempie na przekór ostrzeżeniom ze wszystkich stron świata. Na przekór próbom kamuflażu możesz przy odrobinie wiedzy demaskować i usuwać cyfrowe szkodniki.

Wirusy i trojany rozprzestrzeniają się w zawrotnym tempie na przekór ostrzeżeniom ze wszystkich stron świata. Na przekór próbom kamuflażu możesz przy odrobinie wiedzy demaskować i usuwać cyfrowe szkodniki.

Od wirusów o subtelnych metodach działania po prymitywne trojany o druzgocącej sile rażenia - 99 procent komputerowych szkodników uaktywniają sami użytkownicy. Napastnicy wykorzystują twoją niewiedzę, licząc, że popełnisz błąd, który otworzy im drogę do zasobów systemu. Zatem unikniesz problemów, trzymając się z dala od wykonywalnego kodu pochodzącego z obcych źródeł.

Tymczasem wcale nie tak łatwo odróżnić niegroźne zbiory od plików, które mogą zawierać potencjalne szkodniki. Jeszcze kilka lat temu grupa o zwiększonym ryzyku ograniczała się do skompilowanych programów (pliki z rozszerzeniami COM i EXE), a także plików wsadowych (rozszerzenie BAT). Z czasem dołączyło do niej wiele innych rodzajów plików. Na dodatek programiści wirusów starają się sięgać po wszystkie możliwe sztuczki, aby ukryć dzieła swej chorej wyobraźni pod maską nieszkodliwych obrazków czy plików tekstowych. Poniższy materiał przedstawia typy potencjalnie groźnych plików i opisuje typowe metody maskowania szkodników.

EXE i COM

1. Kod maszynowy

Internetowy adres czy plik wykonywalny? - Tym razem zamiast otworzenia witryny w przeglądarce kliknięcie adresu URL spowodowało przywołanie systemowego kalkulatora. Równie dobrze można w ten sposób ukryć wirus.

Internetowy adres czy plik wykonywalny? - Tym razem zamiast otworzenia witryny w przeglądarce kliknięcie adresu URL spowodowało przywołanie systemowego kalkulatora. Równie dobrze można w ten sposób ukryć wirus.

Formaty kodu maszynowego stanowią najsłabszy punkt plików pod względem bezpieczeństwa. Ich binarna postać sprawia, że nie dają się odczytać jak pliki zapisane w postaci tekstu. Zatem łatwo w nich ukryć szkodnika, który niezauważony może spokojnie siać zniszczenie wśród zasobów dyskowych. Wystarczy przywołać plik wykonywalny COM lub EXE, aby wrogi program dostał się do pamięci komputera. W ten sposób zostanie uaktywniony i uzyska pełną kontrolę nad systemem. Oprócz szkód, które wyrządzi w plikach zgromadzonych na dyskach, może działać w systemie nie tylko podczas bieżącej sesji. Kod maszynowy jest wykorzystywany do maskowania bardziej skomplikowanych wirusów i trojanów. Proste wirusy mogą się ukrywać w skryptach (patrz porada 3).

Rozszerzenie COM z założenia miało służyć do oznaczania programów asemblerowych o maksymalnym rozmiarze 64 KB. Obecnie za rozszerzeniem COM może się ukrywać każdy program DOS lub Windows, więc niesie ono takie samo zagrożenie, jak pliki EXE. Należy się spodziewać wirusów, które będą opatrywane wspomnianym rozszerzeniem. Ta metoda maskowania szkodników wydaje się prymitywna, ale jest bardzo skuteczna z psychologicznego punktu widzenia. Ilu użytkowników widzi na pierwszy rzut oka, że w załączniku www.myparty.yahoo.com kryje się kod maszynowy (zawierający np. wirus), a nie łącze do jednej z internetowych witryn? Mimo tej możliwości twórcy wirusów często rezygnują z maskowania, wierząc, że większość użytkowników da się nabrać na nazwę pliku (np. README.EXE czy PASSWORD.EXE).

PIF i SCR

2. Kod ukryty

Obecnie najwięcej wirusów ukrywa się w plikach z rozszerzeniami PIF i SCR. W zbiorze z rozszerzeniem SCR powinien się znajdować wygaszacz ekranu, lecz może tam być praktycznie każdy typ kodu maszynowego Win32 (np. EXE). Podobnie jest z plikami z rozszerzeniem PIF (Program Information File). Na przykład uda ci się uruchomić kalkulator systemu Windows, nawet gdy zmienisz nazwę pliku CALC.EXE na CALC.PIF. Rozszerzenie PIF ma dość charakterystyczną cechę. W odróżnieniu od omawianych wcześniej SCR, EXE i COM nie jest wyświetlane w oknach środowiska Windows. Osobliwe zachowanie systemu zainspirowało twórców wirusów do nadawania załącznikom pocztowym takich nazw, np. INSTRUKCJA.DOC.PIF. Odbiorca wiadomości zobaczy plik INSTRUKCJA.DOC i kliknie go, aby zapoznać się z treścią dokumentu. Jednak zamiast otworzyć dokument Worda, system uruchomi program EXE, a tym samym destrukcyjny kod wirusa.

VBS i HTM

3. Kod skryptów

W plikach z rozszerzeniami HTA, HTM, HTML, JS, JSE, VBS, VBE i WSF mieści się kod skryptowy w formacie tekstowym ANSI. Z wyjątkiem plików VBE i JSE (litera E oznacza "encoded" - zakodowany) wszystkie wymienione można podglądać w każdym edytorze tekstowym. Dzięki temu przynajmniej doświadczony użytkownik ma możliwość sprawdzenia kodu źródłowego przed przywołaniem pliku skryptowego. Zasięg działania skryptów, o których mowa, odpowiada mniej więcej zasięgowi makr VBA. Niemniej jednak stanowią znacznie większe zagrożenie dla systemu, ponieważ stosowny interpreter (Host skryptów lub Internet Explorer - zależnie od typu pliku) wykonuje je bez potwierdzenia użytkownika.

Wymienione typy plików nie różnią się między sobą istotnie poziomem zagrożenia, ponieważ wirusy w zbiorach HTA czy HTML stosują osadzone skrypty Visual Basica (VBS) lub Javy (JS). W ten sposób zapewniają sobie zdolności destrukcyjne. Co prawda, programista może ukryć kod HTA i HTML w pliku o każdym innym rozszerzeniu, jeśli uda mu się przekazać kod bezpośrednio przeglądarce internetowej (iexplore < plik_z_kodem_wirusa>). Tymczasem nie ma możliwości maskowania skryptów VBS i JS, ponieważ Host skryptów odpowiedzialny za ich wykonywanie nie akceptuje innych rozszerzeń. Decydując się na utworzenie wirusa tego typu, programista może polegać tylko na tym, że większość użytkowników nie wyłącza aktywnej domyślnie funkcji ukrywania rozszerzeń popularnych typów plików. Przedstawiony sposób działania użyto m.in. w wirusie Love-Letter-For-You.TXT.VBS, który swojego czasu dał się we znaki użytkownikom na całym globie.

DOC i XLS

4. Kod makr

Niebezpieczeństwo ze strony wirusów makr VBA w plikach DOC, XLS, PPT i MDB znacznie się zmniejszyło, gdy Microsoft wprowadził w aplikacjach pakietu Office ochronę przeciw wirusom tego typu (uaktywnia się ją za pośrednictwem menu Narzędzia | Makro | Zabezpieczenia). Zależnie od włączonego poziomu zabezpieczeń makra uruchamiające się samoczynnie zostają zablokowane (poziom: Wysokie) lub są wykonywane tylko po potwierdzeniu przez użytkownika (poziom: Średnie). Na dodatek w Office 2000 i XP nie można obejść zabezpieczeń przez przywołanie makra AutoOpen z poziomu szablonu (skojarzonego z danym makrem). Zabezpieczenie nie obejmuje jedynie globalnego szablonu edytora Word, zapisanego w pliku NORMAL.DOT, co nie budzi większych obaw, ponieważ wspomniany plik jest zapisany na lokalnym dysku użytkownika.

Zatem czy wspomniane zabezpieczenie zapewnia dokumentom Office'a wystarczającą ochronę? Powiedzmy, że pliki te są stosunkowo zabezpieczone. Wystarczy bowiem zaimportować niewielki plik REG do Rejestru, aby wyłączyć mechanizm zabezpieczający. Na przykład w przypadku edytora Word 2000 wystarczy wstawić wartość:

"Level"=dword:00000001

do klucza "HKEY_USERS\.DEFAULT\ SOFTWARE\Microsoft\Office9.0\Word\Security". Projektant wirusa musiałby więc zaimplementować dwie operacje. Najpierw wirus musiałby dokonać importu do Rejestru, aby zablokować ochronę dokumentów, potem zaś wczytać plik makra w stosownej aplikacji pakietu Office (w naszym przykładzie - Word 2000). Wprawdzie teoretycznie jest to możliwe, lecz w praktyce (a twórcy wirusów myślą w takich kategoriach) zapewne nie doczeka się realizacji.

Uwaga!

W pakiecie Office 2000 i nowszych aplikacje Word i Excel otrzymały szczególny przywilej. Gdy system trafia na plik o niezarejestrowanym rozszerzeniu, Eksplorator Windows sprawdza, czy jest on zapisany w formacie Worda lub Excela. Wówczas uruchamia stosowną aplikację i otwiera w niej zbiór (nawet ten, który może zawierać makrowirusa). Jeżeli w danej chwili jest ustawiony niski poziom zabezpieczeń, każdy plik o nieznanym rozszerzeniu stanowi potencjalne zagrożenie systemu.


Zobacz również