wirusy komputerowe
Wirusy komputerowe
1. Wstęp
Każdy użytkownik komputera na pewno słyszał, lub co gorsza "osobiście" miał do czynienia z wirusem. Jednak niewielu z nich zna zasadę ich działania, gdyż w tej dziedzinie, tak jak w wielu innych dziedzinach naszego życia, panują ustalone stereotypy. Są one wynikiem zarówno braku wiedzy przeciętnego użytkownika, jak i dezinformacji, lub raczej braku poprawnych i pożytecznych informacji, ze strony mediów i producentów oprogramowania antywirusowego. Niniejsza praca ma na celu przybliżenie problematyki wirusów i "wyprostowanie" wszelkich błędnych opinii na ich temat.
2. Czym jest wirus?
Wirus komputerowy to kod, który wskutek braku systemowej ochrony zasobów w jednoprogramowych systemach operacyjnych komputerów osobistych dokonuje zaprogramowanych przez jego autora, niepożądanych zmian w środowisku systemowym, uszkadzając dane, programy, zmieniając sposób działania sprzętu itp. W uproszczeniu wirus jest obcym fragmentem kodu, dołączonym do programu. Wykonanie tego kodu po uruchomieniu programu powoduje odnajdywanie na dysku innych, “nie zarażonych” programów i dołączanie do nich kodu wirusa. W ten sposób wirus zaraża coraz to więcej programów w komputerze, a “zainfekowane” nim programy, przenoszone na dyskietkach lub przesyłane siecią niszczą zasoby innych komputerów. Wirus może też atakować sektor rozruchowy dyskietki lub dysku. Skutki powodowane przez wirusy mają znamiona przestępstwa polegającego na naruszeniu dóbr chronionych prawem.
3. Podział wirusów komputerowych
Podziałów wirusów komputerowych jest bardzo dużo. Od strony użytkownika komputera, najważniejsze wydają się podziały ze względu na:
· sposób przenoszenia wirusa
· działanie podejmowane przez wirusa po zainfekowaniu systemu operacyjnego.
Ze względu na sposób przenoszenia można wyróżnić następujące rodzaje wirusów:
· wirusy przenoszące się za pomocą nośników: dyskietki, CD-ROM-y, dyski twarde.
· wirusy doklejające się do programów wykonywalnych: programy systemowe, narzędziowe, czy nawet komercyjne aplikacje.
· wirusy przenoszące się poprzez sieć komputerową: aplety Java, wirusy atakujące usługi sieciowe czy też najbardziej rozpowszechnione robaki internetowe przenoszone przez pocztę elektroniczną.
Ze względu na działania podejmowane po infekcji rozróżniamy:
· niegroźne wirusy wyświetlające zabawne, dowcipne lub głupawe informacje na ekranie komputera,
· wirusy niszczące informacje zawarte w dokumentach użytkownika i same dokumenty,
· wirusy niszczące wszelkie informacje zawarte na dysku (w tym system operacyjny),
· wirusy powodujące wykasowanie procedur BIOS-u komputera,
· wirusy powodujące uszkodzenie sprzętu komputerowego.
4. Rodzaje wirusów komputerowych
1. Wirusy - niewielki program, powielający się poprzez zarażanie zbiorów wykonywalnych, jednostek alokacji plików lub sektora startowego nośnika danych (HDD, FDD) oraz dokumentów stworzonych za pomocą pakietów biurowych takich jak MS Office,
2. Konie trojańskie - wirusy te ukrywają się w pożytecznym (na pozór) oprogramowaniu, jak np. program antywirusowy (!) czy przeglądarka plików graficznych. Program tego typu po jego uruchomieniu oprócz wykonywania swoich "oficjalnych" zadań dokonuje także spustoszenia w systemie,
3. Bomby logiczne - rodzaj wirusa, który może pozostać w ukryciu przez długi czas. Jego aktywacja następuje w momencie nadejścia określonej daty lub wykonania przez użytkownika określonej czynności, takiej jak np. skasowanie określonego pliku,
4. Robaki (worms) - małe, ale bardzo szkodliwe wirusy. Do prawidłowego funkcjonowania nie potrzebują nosiciela. Rozmnażają się samoistnie i w sposób ciągły, powodując w bardzo krótkim czasie wyczerpanie zasobów systemu. Wirusy tego typu są zdolne w bardzo krótkim czasie sparaliżować nawet dość rozległą sieć komputerową.
5. Szczegółowa klasyfikacja wirusów
1. Wirusy plikowe (tzw. "zwykłe", file viruses):
Wirusy plikowe to najstarsza rodzina tych programów. Każdy wirus przed dokonaniem szkód najpierw ulega replikacji, dlatego rozwój "przemysłu" wirusowego wiąże się z wynajdywaniem nowych nosicieli. Początkowo na atak wirusów tego typu narażone były tylko pliki wykonywalne (*.exe, .com) oraz wsadowe (*.bat). Rozwój technologii wirusów powiększył grono zagrożonych plików o zbiory zawierające fragmenty kodu, biblioteki, sterowniki urządzeń (*.bin, *.dll, *.drv, *.lib, *.obj, *.ovl, *.sys, *.vxd).
Zasada działania:
Infekcja następuje poprzez dopisanie kodu wirusa na końcu pliku (wirusy starsze) lub modyfikację jego początku i dopisanie kodu w środku lub na końcu (wirusy nowsze, atakujące niewykonywalne pliki). Załadowanie zainfekowanego pliku do pamięci jest równoznaczne z uaktywnieniem wirusa. Wiele wirusów nie niszczy zaatakowanego pliku, dzięki czemu może po aktywacji wykonać program nosiciela, tak że użytkownik niczego nie podejrzewa.
2. Wirusy sektora startowego dysku (wirusy boot sektora, boot sector viruses):
Innym nosicielem wirusa może być sektor startowy nośnika danych, takiego jak dysk twardy (MBR - Master Boot Record) czy dyskietka (Boot sector). Wirusy tego typu są szczególnie groźne. Wynika to z faktu, iż po uruchomieniu komputer próbuje wczytać system, który jest zapisany w pierwszym sektorze dysku lub dyskietki. Należy mieć świadomość, że każda sformatowana dyskietka, nawet nie zawierająca plików systemowych, posiada boot sektor, a więc jako taka może zawierać wirusa.
Zasada działania:
Wirus tego typu może ulokować się w MBR i np. zniszczyć jego zawartość, uniemożliwiając tym samym dostęp do dysku. W innym przypadku wirus przenosi kod inicjujący system z sektora startowego w inny obszar dysku i zajmuje jego miejsce, co powoduje jego załadowanie jeszcze przed (!) startem systemu, a więc także przed uruchomieniem jakiegokolwiek oprogramowania antywirusowego. Działanie tego typu umożliwia wirusom przejęcie kontroli nad oprogramowaniem przeznaczonym do ich zwalczania.
3. Wirusy FAT (wirusy tablicy alokacji plików, link/FAT viruses):
Do replikacji wirusy mogą także wykorzystywać jednostki alokacji plików (JAP), na jakie tablica FAT dzieli DOS-ową partycję dysku twardego. W celu uzyskania dostępu do pliku DOS odszukuje w FAT numer jego pierwszej jednostki alokacji, po czym kolejno (zgodnie z FAT) wczytuje wszystkie jednostki zajmowane przez plik.
Zasada działania:
Wirusy atakujące JAP zmienia wartość pierwszej JA jednego lub wielu plików na numer wskazujący JA kodu wirusa. Wczytanie takiego pliku powoduje uruchomienie wirusa, który w dalszej kolejności może, ale nie musi, załadować właściwy program (w tym celu musi zapamiętać oryginalny numer jego pierwszej JAP).
4. Makrowirusy:
Makrowirusy należą do najmłodszej rodziny wirusów. Ich powstanie związane jest z wprowadzeniem do pakietów biurowych (np. MS Office, Lotus SmartSuite czy Corel WordPerfect)języków pozwalających na tworzenie makr, takich jak np. Visual Basic for Applications (VBA).
Zasada działania:
Większość makrowirusów Worda wykorzystuje fakt, że szablony dokumentów mogą zawierać makra. Wirus uaktywnia się w chwili otwarcia zainfekowanego dokumentu, po czym zaraża zdrowe zbiory z rozszerzeniem *.doc i zapisuje je jako szablony (dokumenty nie mogą zawierać makr). W ostatnim kroku jedno lub kilka automatycznie wykonywanych makr zostaje zastąpionych kodem wirusa.
5. Wirusy typu stealth i wirusy polimorficzne (stealth&polymorphic viruses):
W zasadzie wszystkie wymienione wcześniej wirusy mogą (choć nie muszą) należeć do tej grupy. Ich powstanie związane jest z postępem w dziedzinie ich wykrywania. W pierwszych latach obecności wirusów każdy miał swoją sygnaturę (charakterystyczny tylko dla siebie ciąg bajtów). Sytuacja zmieniła się, gdy Bułgar o pseudonimie Dark Avenger opracował metodę pozwalającą tworzyć wirusy samomutujące się.
Wirusy polimorficzne nie mają stałej sygnatury, ponieważ ich kod zmienia się samoczynnie przy każdej infekcji.
Wirusy stealth są to wirusy, które podczas próby dostępu do zarażonego pliku lub sektora dysku przez program antywirusowy potrafią "w locie", chwilowo naprawić uszkodzone dane i zatuszować swą obecność.
6. Skutki zarażenia wirusem
Działalność wirusa może mieć różne skutki, zależnie od jego typu i przeznaczenia. Najbardziej "nieszkodliwe" są wirusy wypisujące na ekranie niegroźny komunikat czy wykorzystujące system tylko i wyłącznie do rozmnażania się. Znacznie gorsze skutki to uszkodzenie pojedynczych plików, zniszczenie całego dysku twardego, a nawet uszkodzenie komponentów komputera takich jak płyta główna czy karty rozszerzeń(!).
Za bardzo szkodliwe powszechnie uchodzą wirusy napisane przez niedoświadczonych programistów. Ich wirusy, z założenia mające być "nieszkodliwe", mogą wyrządzić wiele szkód spowodowanych błędami w kodzie źródłowym.
7. Jak się bronić?
Podstawową zasadą jest posiadanie dobrego pakietu antywirusowego. Piszę "pakietu", gdyż obecnie większość tego typu programów składa się z wielu modułów o różnych funkcjach. Przy wyborze oprogramowania antywirusowego należy zwracać uwagę, czy posiada ono następujące elementy:
1. Skaner użytkownika (tzw. "ręczny", On-demand scanner) - podstawowy moduł, występujący we wszystkich typach oprogramowania. Umożliwia skanowanie plików przez użytkownika w wybranym przez niego momencie. Standardem jest kontrola zbiorów skompresowanych.
2. Skaner rezydentny - skaner, który pracuje w tle przez cały czas. Do jego zadań należy bieżąca kontrola wszystkich uruchamianych plików, otwieranych dokumentów czy wkładanych dyskietek. Powinien posiadać funkcję skanowania plików ściąganych z Internetu.
3. Terminarz - pozwala na zaprogramowanie pakietu tak, aby szukał wirusów o określonej porze, np. w nocy.
Dodatkowo oprogramowanie antywirusowe powinno umożliwiać generowanie raportów z bieżącej pracy. Bardzo ważne jest także, aby skaner wykorzystywał najnowsze metody wyszukiwania, takie jak np. heurystyczna metoda wykrywania wirusów (Chroni przed wirusami polimorficznymi, polega na analizie kodu pliku i symulacji jego wykonania. Pozwala na wykrycie operacji charakterystycznych dla wirusów, takich jak np. próba bezpośredniego dostępu do dysku.), czy sumy kontrolne.
8. Podsumowanie
Powyższa praca przedstawia problematykę wirusów w sposób bardzo skrótowy, ze względu na ogrom informacji, które są dostępne w internecie, książkach, itd. Nie chciałem w moim referacie poruszać spraw typowo technicznych, choćby szczegółowa zasada działania skanera antywirusowego. Moim celem było przybliżenie informacji na temat wirusów: jak się przed nimi bronić, jakie są ich rodzaje, skutki zarażenia.