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

Wirusy klasyczne


Wirusy komputerowe można sklasyfikować według ich środowiska i metod rozprzestrzeniania. Środowiskiem jest aplikacja lub system operacyjny, którego pliki infekowane są przez danego wirusa. Metodami infekcji są techniki stosowane w celu umieszczenia kodu wirusa w danym obiekcie.

Środowisko

Większość wirusów wykrywanych jest w jednym z poniższych środowisk:

  • Systemy plików;
  • Sektory startowe;
  • Programy przetwarzające makra;
  • Programy przetwarzające skrypty.

W celu rozprzestrzeniania wirusy plikowe wykorzystują system plików danego systemu operacyjnego. Wirusy plikowe można podzielić na następujące kategorie:

  • Wirusy infekujące pliki wykonywalne (największa grupa wirusów);
  • Wirusy tworzące kopie plików (wirusy towarzyszące);
  • Wirusy tworzące własne kopie w różnych katalogach;
  • Wirusy wykorzystujące funkcje systemów plików (wirusy infekujące z wykorzystaniem odsyłaczy);

Wirusy sektora startowego zapisują się do sektora startowego lub do sektora MBR lub zastępują/usuwają aktywny sektor startowy. Wirusy te były bardzo popularne w latach 90. Po tym jak standardem stały się procesory 32-bitowe, a dyskietki wyszły z powszechnego użycia, wirusy te niemal całkowicie zniknęły ze sceny. Napisanie wirusów sektora startowego infekujących płyty CD i napędy USB jest technicznie możliwe, jak dotąd nie wykryto jednak takich szkodników.

Wiele edytorów tekstów, programów wykorzystywanych w księgowości oraz aplikacji pozwalających na tworzenie projektów posiada wbudowane wykorzystuje makra, które automatyzują często powtarzające się czynności. Wykorzystywane przez nie makrojęzyki są zazwyczaj złożone i obejmują szerokie spektrum poleceń. Makrowirusy często pisane są w makrojęzykach i infekują aplikacje z wbudowanymi makrami. Wykorzystując właściwości makrojęzyka makrowirusy przenoszą się z jednego zainfekowanego pliku na drugi.

Metody infekcji

Wymienione wyżej grupy wirusów można podzielić na podgrupy według wykorzystywanych przez nie technik infekowania obiektów.

Wirusy plikowe

Wirusy plikowe stosują następujące metody infekowania:

  • Nadpisywanie
  • Pasożytnictwo
  • Towarzyszenie
  • Odsyłacze
  • Moduły obiektowe (OBJ)
  • Kompilowanie bibliotek (LIB)
  • Kod źródłowy aplikacji

Nadpisywanie

Jest to najprostsza metoda infekowania: wirus zastępuje kod zainfekowanego pliku swoim własnym, usuwając jednocześnie kod pierwotny. Plik jest bezużyteczny i nie można przywrócić jego oryginalnej zawartości. Wirusy te są łatwe do wykrycia, ponieważ system operacyjny i zainfekowane aplikacje przestają działać niedługo po infekcji.

Pasożytnictwo

Wirusy pasożytnicze modyfikują kod zainfekowanego pliku. Zainfekowany plik pozostaje częściowo lub całkowicie sprawny.

Wirusy pasożytnicze można pogrupować według sekcji pliku, do której dopisują swój kod:

  • Wirusy dopisujące złośliwy kod na początek zainfekowanego pliku;
  • Wirusy dopisujące złośliwy kod na koniec zainfekowanego pliku;
  • Wirusy umieszczające złośliwy kod w środku zainfekowanego pliku.

Ta ostatnia grupa wirusów stosuje szeroki wachlarz metod w celu umieszczenia kodu w środku pliku. Szkodniki te przesuwają części oryginalnego pliku na koniec lub kopiują swój własny kod do pustych sekcji atakowanego pliku. Wirusy te nazywane są czasami wirusami "dziur".

Wirusy dopisujące złośliwy kod na początek zainfekowanego pliku

Wirusy te dopisują swój kod do infekowanych plików na dwa sposoby: w pierwszym przypadku, wirus przesuwa kod z początku infekowanego pliku na koniec i w wolną przestrzeń wpisuje swój własny kod; w drugim przypadku, wirus dodaje kod infekowanego pliku do własnego kodu.

W obu przypadkach, przy każdym uruchamianiu zainfekowanego pliku jako pierwszy wykonywany jest kod wirusa. Aby zachować integralność aplikacji, wirus może wyczyścić zainfekowany plik, ponownie go uruchomić, a po zakończeniu procesu skopiować się jeszcze raz na początek pliku. Niektóre wirusy wykorzystują pliki tymczasowe do przechowywania czystych wersji zainfekowanych plików. Część wirusów przywraca w pamięci kod aplikacji i resetuje niezbędne adresy w kodzie, podwajając tym samym obciążenie systemu operacyjnego.

Wirusy dopisujące złośliwy kod na koniec zainfekowanego pliku

Do tej kategorii należy większość wirusów. Wirusy te modyfikują zazwyczaj pliki (zmieniają punkt wejścia w nagłówku pliku) w taki sposób, aby polecenia zawarte w kodzie wirusa były wykonywane przed poleceniami zainfekowanych plików.

Wirusy umieszczające złośliwy kod w środku zainfekowanego pliku

Twórcy wirusów stosują szereg różnych metod w celu umieszczenia wirusów w środku pliku. Najprostszą metodą jest przesuwanie części kodu pliku na koniec lub wypychanie oryginalnego kodu, aby powstało miejsce dla szkodnika.

Metody te stosowane są przez tak zwane wirusy "dziur"; wirusy te wpisują swój kod do pustych sekcji plików. Na przykład, wirusy "dziur" mogą kopiować się do niewykorzystanej części nagłówków pliku, do przestrzeni między sekcjami plików EXE lub do obszarów tekstu popularnych kompilatorów. Niektóre z tych wirusów infekują tylko pliki, w których określony blok zawiera określony bajt. Wybrany blok zostanie nadpisany kodem wirusa.

Niektóre wirusy posiadają błędy i nadpisują sekcje kodu, które są niezbędne do funkcjonowania zainfekowanego pliku. Powoduje to nieodwracalne uszkodzenie pliku.

Wirusy wykorzystujące technologię przysłaniania punktu wejściowego (Entry Point Obscuring - EPO)

Można wyróżnić niewielką grupę wirusów pasożytniczych obejmującą zarówno wirusy dołączające swój kod na początek, jak i na koniec zainfekowanego pliku, które nie modyfikują punktu wejściowego adresu w nagłówkach plików EXE. Wirusy EPO zapisują do środka zainfekowanego pliku procedurę wskazującą na kod szkodnika. Kod wirusa jest wtedy uruchamiany tylko w przypadku, gdy przywoływana jest procedura zawierająca wirusa. Gdy procedura ta jest rzadko używana (np. występujące sporadyczne powiadomienie o błędach), wirus wykorzystujący technologię przysłaniania punktu wejściowego może pozostać uśpiony przez długi czas.

Twórcy wirusów muszą ostrożnie wybierać punkt wejścia: niewłaściwie wybrany punkt wejścia może uszkodzić plik lub spowodować, że wirus będzie uśpiony przez wystarczająco długi czas, aby można było usunąć zainfekowany plik.

Do znalezienia użytecznych punktów wejścia twórcy wirusów stosują różne metody:

  • Poszukiwanie ramek i nadpisywanie ich zainfekowanymi punktami wejścia;
  • Dezasemblacja kodu pliku;
  • Modyfikacja adresów funkcji importowania.

Wirusy towarzyszące

Wirusy towarzyszące nie modyfikują plików komputera. Zamiast tego, tworzą ich duplikaty zawierające szkodliwy kod. Po uruchomieniu zainfekowanego pliku jako pierwsza zostanie wykonana kopia zawierająca wirusa.

Kategoria ta obejmuje również wirusy, które tworzą kopię atakowanego pliku z inną nazwą i nadpisują oryginalny plik własnym kodem. Na przykład, wirus może zmienić nazwę pliku notepad.exe na notepad.exd i zapisać swój kod do pliku o nazwie notepad.exe. Za każdym razem, gdy użytkownik zaatakowanego komputera uruchomi notepad.exe, aktywowany zostanie kod wirusa, natomiast plik notepad.exd (zawierający oryginalny program) zostanie uruchomiony w drugiej kolejności.

Istnieją również inne rodzaje wirusów towarzyszących, które stosują oryginalne techniki infekcji lub wykorzystują luki w określonych systemach operacyjnych. Na przykład, wirusy Path-companion umieszczają swoje kopie w folderze systemowym Windows wykorzystując fakt, że folder ten znajduje się na pierwszym miejscu listy PATH. Przy uruchamianiu systemu operacyjnego wirus zostanie automatycznie załadowany z tego foldera. Wiele współczesnych robaków i trojanów stosuje te techniki automatycznego uruchamiania.

Inne techniki infekcji

Niektóre wirusy nie wykorzystują wykonywalnych plików do infekowania komputera. Zamiast tego, kopiują się do wielu folderów w nadziei, że wcześniej czy później uruchomi je użytkownik. Niektórzy twórcy wirusów nadają swoim wirusom nazwy takie jak install.exe lub winstart.bat, aby w ten sposób skłonić użytkownika do uruchomienia zainfekowanego pliku.

Inne wirusy kopiują się do skompresowanych plików w następujących formatach: ARJ, ZIP i RAR. Jeszcze inne tworzą plecenia uruchamiające zainfekowane pliki BAT.

Wirusy wykorzystujące odsyłacze również nie modyfikują plików. Zamiast tego, zmuszają system operacyjny do uruchomienia szkodliwego kodu przez zmodyfikowanie odpowiednich pól w systemie plików.

Wirusy sektora startowego

Wirusy sektora startowego infekują sektory startowe dyskietek i sektor startowy lub MBR dysku twardego. Wirusy te działają na podstawie algorytmu stosowanego do uruchamiania systemu operacyjnego przy włączaniu lub ponownym uruchamianiu komputera. Po wykonaniu niezbędnego sprawdzania pamięci, dysków itd. program startowy systemu odczytuje pierwszy fizyczny sektor dysku startowego (A:, C:, D:, CD-ROM itp., w zależności do parametrów skonfigurowanych BIOS-ie) i przekazuje temu sektorowi kontrolę.

Podczas infekowania dysków wirus sektora startowego umieszcza swój kod w miejsce kodu programu, który przejmuje kontrolę przy uruchamianiu systemu. W celu zainfekowania systemu wirus zmusza go przekazania kontroli nie do oryginalnego programu startowego, lecz do kodu wirusa.

Dyskietki mogą zostać zainfekowane tylko w jeden sposób. Wirus wpisuje swój kod w miejsce oryginalnego kodu sektora startowego dyskietki. Dyski twarde mogą być zainfekowane na trzy sposoby: wirus może wpisać swój kod w miejsce kodu sektora MBR lub w miejsce kodu sektora startowego dysku startowego, lub zmodyfikować adres aktywnego sektora startowego w tablicy partycji dysku znajdującej się w sektorze MBR.

W ogromnej większości przypadków, podczas infekcji dysku wirus przesuwa oryginalny sektor startowy (lub MBR) do innego sektora na dysku, często do pierwszego pustego. Jeżeli wirus jest dłuższy niż sektor, zainfekowany sektor będzie zawierał pierwszą część kodu wirusa, a pozostała część kodu zostanie umieszczona w innych sektorach, zazwyczaj w kolejnych wolnych.

Makrowirusy

Najbardziej rozpowszechnionymi makrowirusami są te przeznaczone dla aplikacji Microsoft Office (Word, Excel i PowerPoint), które zapisują informacje w formatach OLE2 (Object Linking and Embedding). Wirusy dla innych aplikacji są stosunkowo rzadkie.

Lokalizacja wirusa w pliku MS Office zależy od formatu pliku, co w przypadku produktów Microsoftu jest bardzo złożone. Każdy dokument aplikacji Word lub Excel składa się z sekwencji bloków danych (każdy ma własny format), które połączone są danymi serwisowymi. Ponieważ pliki Worda i Excela mają bardzo złożony format, lokalizację makrowirusa najlepiej ukaże diagram.

Niezainfekowany plik   Zainfekowany plik
Nagłówek pliku
Dane serwisowe (katalogi, FAT)
Tekst
Czcionki
Makra (jeżeli istnieją)
Inne dane
 
Nagłówek pliku
Dane serwisowe (katalogi, FAT)
Tekst
Czcionki
Makra (jeżeli istnieją)
Makra wirusa
Inne dane

Podczas pracy z dokumentami i tabelami MS Office wykonuje szereg różnych czynności: aplikacja otwiera dokument, zapisuje go, drukuje, zamyka itd. MS Word będzie wyszukiwał, a następnie uruchamiał odpowiednie wbudowane makra. Na przykład, użycie polecenia Plik/Zapisz wywoła makro FileSave, polecenie Plik/Zapisz jako wywoła makro FileSaveAs itd., pod warunkiem, że takie makra zostały zdefiniowane (skonfigurowane).

Istnieją również makra, które są automatycznie wywołane w szeregu różnych sytuacji. Na przykład, przy otwieraniu dokumentu MS Word, aplikacja sprawdza go w poszukiwaniu makr AutoOpen. Po znalezieniu takiego makra Word wykona go. Przy zamykaniu dokumentu Word wykona makro AutoClose, natomiast przy uruchamianiu Worda aplikacja wykona makro AutoExe itd. Makra te uruchamiane są automatycznie i nie wymagają żadnych czynności użytkownika, podobnie jak makra, które związane są z określoną funkcją albo z określoną godziną lub datą.

Makrowirusy infekujące pliki MS Office stosują z reguły jedną z opisanych wyżej technik. Wirusy zawierają makra wykonywane automatycznie lub modyfikują jedo (lub kilka) ze standardowych makr systemowych (związanych z obiektami menu). Ostatecznie, makrowirus może zostać wywołany po wciśnięciu określonego klawisza lub kombinacji klawiszy. Po przejęciu kontroli, makrowirus przekaże własny kod do innych plików. Będą to zazwyczaj pliki redagowane w danym momencie. Rzadziej, makrowirusy przeszukują dyski w celu znalezienia i zainfekowania innych plików.

Wirusy skryptowe

Wirusy skryptowe stanowią podgrupę wirusów plikowych, pisanych w wielu różnych językach skryptowych (VBS, JavaScript, BAT, PHP itd.). Wirusy te infekują inne skrypty, np. polecenia systemu Windows lub Linux i pliki usług (service file) lub stanowią część wirusa wieloskładnikowego. Wirusy skryptowe mogą infekować inne formaty plików, takie jak HTML, jeśli format pliku pozwala na wykonanie skryptów.