01 Wirusy komputeroweid 2974 ppt

background image

Wirusy komputerowe

Sieci komputerowe

Marek Pudełko

background image

2

Spis treści

• Definicja wirusa

komputerowego

background image

3

Wirus komputerowy

• Wirus komputerowy to program

komputerowy, który w sposób celowy
powiela się bez zgody użytkownika i
wykonuje destrukcyjne operacje.

• Wirus nie działa samodzielnie.

– Do swojej działalności wymaga nosiciela w

postaci programu komputerowego, poczty
elektronicznej, dokumentu itp.

background image

4

Charakterystyka wirusa

1. Możliwość samopowielania się,
2. Nie może działać samodzielnie,
3. Szkodliwe działanie

background image

5

background image

6

Szczególnie wrażliwe

miejsca

• programy wykonywalne typu EXE, COM
• pliki z rozszerzeniem OVL, BIN, SYS
• biblioteki DLL
• pliki systemowe COMMAND.COM, IBMBIO.COM,

IBMDOS.COM

• tablica partycji dysku stałego
• boot - sektor dysku lub dyskietki
• tablica partycji dysku twardego FAT
• sektory zaznaczone jako uszkodzone tzw. bad sectors
• zagubione klastery tzw. lost clusters
• dokumenty pakietu MICROSOFT OFFICE (każde

środowisko dopuszczające pisanie makropoleceń może

być inspirujące dla autorów wirusów).

• inne miejsca wymyślone przez komputerowych

terrorystów

background image

7

background image

8

background image

9

Podział wirusów ze względu na

sposób infekcji

Wirusy sektora ładowania /inicjującego/ (boot sector virus)

Zmieniają zawartość głównego sektora ładowania ( master boot sector) zwykle zastępując właściwą

zawartość swoją własną wersją. Oryginalna wersja modyfikowanego sektora jest na ogół

przechowywana w innym miejscu dysku tak , by wersja wirusowa była wykonywana jako pierwsza.

Zwykle ładuje ona pozostałą część kodu wirusa do pamięci, poprzedzając wykonanie oryginalnej wersji

sektora ładowania. W ten sposób wirus rezyduje na stałe w pamięci dopóki komputer jest włączony.

Wirusy sektora ładowania są rozpowszechniane przez fizyczną wymianę każdego nośnika , który może

być wykorzystany do uruchomienia systemu operacyjnego. Komputer zostaje zainfekowany wirusem

sektora ładowania tylko wtedy , gdy użytkownik zainicjuje działanie systemu z zainfekowanego dysku.

Całkowicie bezpieczne jest włożenie zainfekowanej dyskietki do kieszeni napędu i skopiowanie z niej

danych.

Pasożytnicze (plikowe)

Wirusy tego typu modyfikują zawartość plików wykonywalnych (COM , EXE , SYS i innych). Dołączają

się one do pliku pozostawiając nienaruszoną większość programu. Przebieg wykonywania programu

zostaje odwrócony w taki sposób , aby kod wirusa był wykonywany jako pierwszy. Po wykonaniu

programu wirusa następuje uruchomienie oryginalnego programu. Jedną z odmian wirusów

pasożytniczych są wirusy zamazujące. Infekując program zamazują jego początek własnym kodem.

Uruchomienie takiego programu powoduje , że wirus poszukuje następnej ofiary a oryginalny program

nigdy nie jest uruchamiany.

Wirusy pasożytnicze rozpowszechniają się za pomocą każdego nośnika , który może być użyty do

przechowywania lub przekazywania programu wykonywalnego np. dyskietki , taśmy , sieci itp.

Towarzyszące

Wykorzystują tę właściwość, że gdy w katalogu występują dwa programy o tej samej nazwie , to

system operacyjny wykonuje plik COM przed plikiem EXE. Wirus towarzyszący tworzy plik COM o tej

samej nazwie co plik EXE, umieszczając w nim własny kod. Gdy użytkownik poda nazwę programu

(bez rozszerzenia) do uruchomienia , system operacyjny wczyta COM , co spowoduje wykonanie kodu

wirusa i w następstwie , załadowanie i wykonanie pliku EXE.

Sprzęgające

Wirusy sprzęgające nie modyfikują żadnego pliku na dysku ale pomimo tego są bardzo żywotne i

szybko się mnożą. Wirusy sprzęgające działają przez dołączenie wskaźnika pierwszego JAP'a katalogu

zapisu każdego pliku wykonywalnego do pojedynczego JAP'a zawierającego kod wirusa.

Hybrydowe

Wirusy hybrydowe łączą w sobie jedne z powyższych metod. Daje to największe możliwości replikacji a

jednocześnie utrudnia leczenie zainfekowanego systemu.

background image

10

Podział wirusów ze względu na

zachowanie się po uzyskaniu

kontroli

• Rezydentne

Wirusy tego typu instalują się w pamięci jako rezydentne

programy usługowe TSR (Terminate and Stay

Resident). Przejmują jedno lub więcej przerwań i

infekują, gdy spełnione są określone warunki np.

uruchomienie programu.

• Nie rezydentne

Są aktywne jedynie wtedy , gdy jest wykonywany

zainfekowany program użytkowy. Wykonują one

całkowicie swój program na tym etapie i nie pozostają w

pamięci.

• Hybrydowe

Wykorzystują kombinacje powyższych metod. Możliwy jest

przykład gdy wirus jest nie rezydentny a po uzyskaniu

kontroli pozostawia w pamięci rezydentny fragment

swojego kodu.

background image

11

Inne typy programów

sabotażowych

• Bomba logiczna

– Złośliwy kod umieszczony w programie , który uaktywni się , gdy zostaną

spełnione określone warunki np. program załamania systemu po

usunięciu nazwiska autora z listy płac.

• Koń trojański

– Dowolny program , który zawiera kod realizujący funkcje inne niż te ,

których spodziewa się użytkownik lub deklarowanych w dokumentacji

systemu (programu). Obejmuje to również bomby logiczne. Koniem

trojańskim może być np. Norton Commander z dołączonym kodem który

sformatuje dysk twardy po obejrzeniu w oknach Norton'a 10.000 plików.

• Robak

– Program, który mnoży się w sposób nie kontrolowany w sieci

komputerowej.

• Królik

– Program wykorzystujący w pełni określone zasoby systemu na skutek nie

kontrolowanego powielania się.

• Wirus Makr

– Wirus Makr nie jest programem w dosłownym znaczeniu. Jest on

zbudowany z poleceń rozumianych przez konkretny program np. edytorski

i infekuje jedynie dokumenty tekstowe lub arkusze kalkulacyjne.

• Prowadzone były również próby nad innymi typami "programów"

sabotażowych takimi jak np. wirus plików wsadowych BAT oraz

bomby ANSI.

background image

12

Techniki stosowane przy tworzeniu wirusów:

* Wirusy wielopostaciowe (polimorficzne)

Od dawna twórcy wirusów marzyli aby ich "dzieła" były niewykrywalne przez skanery antywirusowe. Rozwiązanie było proste: wczesne skanery

antywirusowe posługiwały się próbką (łańcuchem bajtów charakterystycznych) ze złapanego i przeanalizowanego wirusa. Taki skaner przeszukując plik

porównywał jego strukturę ze składowanymi w swojej bazie próbkami. W razie wykrycia podobieństwa wszczynany był alarm. Wystarczyło stworzyć

wirusa z którego nie można było pobrać próbki. Aby było to możliwe wirus po każdym swoim powieleniu powinien wyglądać inaczej.

Początkowo wprowadzono procedury szyfrujące kod wirusa za pomocą stałego lub zmiennego klucza. Ta procedura zawsze wyglądała jednakowo i z

niej można było wyznaczyć bajty charakterystyczne. Następnie programiści poszli dalej. Aby "zamydlić oczy" skanerowi wprowadzono do kodu procedury

deszyfrującej dodatkowych , nieistotnych dla algorytmu instrukcji , zmienianych podczas każdej infekcji. W odpowiedzi na to autorzy skanerów

antywirusowych wprowadzili do swoich próbek tzw. znaki zastępcze (np. bajt ignorowany , przyjmujący dowolną wartość).

Kolejnym ruchem autorów wirusów było utworzenie algorytmów generujących od kilkudziesięciu do nawet 1 miliarda różnych postaci procedury

deszyfrującej. Przy procedurach które generują małą ilość wariantów możliwe jest wykrywanie przez zapisanie w bazie skanera wszystkich możliwych do

wygenerowania ciągów. Jednak przy dzisiejszych możliwościach autorów i ich wirusów ta metoda wykrywania nie zdaje egzaminu.

Autorzy nowoczesnych wirusów stosują metody : zastępowania i przestawiania instrukcji procedury deszyfrującej , mieszania instrukcji właściwego

kodu procedury z instrukcjami "jałowymi" np. NOP (nic nie rób) oraz rozsiewania kodu procedury deszyfrującej w kodzie nosiciela. Metoda szyfrowania

polimorficznego jest również stosowana dla kodu wirusa rezydującego w pamięci komputera. Utrudnia to jego identyfikację i obezwładnienie.

* Wirusy utajnione (ang. Stealth)

Jedną z metod uczynienia wirusa niewykrywalnym jest jego utajnienie. Na ogół kod wirusa jest widoczny w kodzie zarażonego programu. Możemy się o

tym przekonać oglądając zarażony program np. edytorem binarnym. Metoda utajniania polega na podsuwaniu programom czytającym zarażony plik ,

obrazu jego sprzed infekcji.

Wirus wykorzystujący technikę STEALTH przechwytuje odpowiednie przerwania i na żądanie odczytu odkaża nosiciela (wirusy plikowe) lub podsuwa

oryginalny kod ze swojej przechowalni (wirusy dyskowe). W przypadku wirusów plikowych plik odkażony po zamknięciu jest ponownie infekowany.

Wirusy dyskowe ukrywają swój kod na dysku również w inny sposób. Formatują sobie dodatkową ścieżkę na której umieszczają swój kod. Do tak

spreparowanej ścieżki system operacyjny nie ma dostępu i kod wirusa nie jest narażony na wykrycie. Wirusy typu STEALTH przekłamują odczyty

rozmiaru pliku , odejmując od oryginalnego rozmiaru wielkość wirusa. Użytkownik komputera nie zauważy więc faktu powiększenia się rozmiarów

zbiorów na skutek infekcji. Aby ukryć fakt rezydowania w pamięci komputera wirusy typu STEALTH podsuwają programom oryginalne adresy wektorów

przerwań oraz ukrywają zajęte przez siebie bloki pamięci oznaczając je najczęściej jako nie przydzielone.

* Wirusy opancerzone (ang. Armory)

Dobry wirus musi nie tylko się ukrywać ale również musi być odporny na jego analizę. Aby zapobiec de-asemblacji kodu wirusa , autorzy wstawiają do

jego kodu wiele pojedynczych bajtów dobranych w taki sposób , aby przy próbie przetłumaczenia go występowały przekłamania. Procesor wykonujący

rozkazy kodu wirusa w jednoznaczny sposób "wie" jakie rozkazy pobrał i ma wykonać , lecz program tłumaczący ten kod w mniejszym lub większym

stopniu nie jest w stanie zinterpretować instrukcji które zostały obstawione "lewymi bajtami".

Inną metodą analizy kodu wirusa jest jego śledzenie pod kontrolą programu śledzącego (ang. debugger).W tym trybie kod wirusa jest wykonywany

krok po kroku. Aby to było możliwe debugger wstawia w kodzie śledzonym specjalne bajty tzw. punkty zatrzymania (ang. breakpoint) .

background image

13

background image

14

background image

15

Języki do tworzenia wirusów

• Najlepsze niskopoziomowe języki

programowania - Asembler

– Generują zwięzły kod. Umożliwia dużą swobodę w

dostępie do pamięci i portów.

– Mogą jednak egzystować w obrębie jednej

rodziny komputerów.

• Języki wyższego poziomu - Pascal, C/C++

– Wirusy takie można wdrożyć na różne platformy.

Języki makr wbudowane w nowoczesne

edytory tekstów lub arkusze kalkulacyjne.

– Pozwalają na infekcję każdego otwieranego przez

program dokumentu lub arkusza. Wymarzone

narzędzie do tworzenia wirusów dla

początkujących programistów.

background image

16

Generatory wirusów

Generator wirusów to program umożliwiający

stworzenie wirusa w oparciu o gotowe procedury.

Nie wymaga nawet znajomości systemu czy

mechanizmów wykorzystywanych przez wirusy.

Programy korzystają z gotowych modułów w

asemblerze i umożliwiają stworzenie wirusa o

zadanych parametrach wybieranych zwykle przy

pomocy menu.

– Można w nim określić zakres infekowanych obiektów i

rodzaj efektów które ma on wywoływać.

Najbardziej znane generatory wirusów to:

IVP

- Instant Virus Production Kit

VCL - Virus Construction Laboratory

PS-MPC- Phalcon-Skism Mass Produced Code

Generator

G2

- G Squared

NRLG

- Nuke Randomic Life Generator

background image

17

background image

18

Czynniki sprzyjające

wirusom

• Brak wiedzy użytkowników
• Niefrasobliwość użytkowników
• Jednorodny sprzęt i oprogramowanie
• Systemy operacyjne podatne na wirusy
• Błędy w oprogramowaniu
• Korzystanie z nielegalnego

oprogramowania

background image

19

Ochrona przed wirusami

• Używać i regularnie aktualizować program

antywirusowy

• Niezwłocznie wgrywać wszystkie poprawki

systemu operacyjnego i oprogramowania

• Unikać niepewnego oprogramowania
• Niepewne programy uruchamiać w maszynie

wirtualnej

• Nieukrywanie rozszerzeń plików
• Nadawać nazwom katalogów rozszerzenia
• Pliki ustawiać w trybie „READ ONLY”
• W Biosie włączenie opcji VIRUS PROTECTION
• Nośniki typu dyskietka, pendrive zabezpieczać

przed zapisem.

background image

20

background image

21

Wirusy Linuksa

Marek Sell, twórca programu antywirusowego mks_vir, w

wywiadzie udzielonym tygodnikowi "Computerworld"

stwierdził: "Zdecydowanie wzrasta liczba wirusów linuxowych, obecnie przybywa ich 20-30 miesięcznie."

Ostatnie Felietony

Jądro wolnej kultury

Kowal zawinił...

Koniec strachu?

Opcja nuklearna

Przeszłość i przyszłość pakietowania

W pierwszej chwili nie zwróciłem uwagi na powyższe zdanie, doczytałem spokojnie do końca zadowolony, że po raz kolejny w "tygodniku menedżerów i informatyków" pojawia się słowo Linux. Dam sobie głowę uciąć, że

mniej wyczulonych na Linuksa czytaczy zdanie to zupełnie nie obeszło.

Zaciekawiony i lekko zaniepokojny, bo przecież o system na którym pracuję chodzi, rozpoczałem gorączkowe poszukiwania tych wszystkich krwiożerczych wirusów o których do tej pory nie miałem pojęcia.

Drżącymi rękami wklepałem w Netscape'a adres witryny Marka Sella: http://www.mks.com.pl/baza.html, i rozpocząłem szukanie wszystkiego co zwiera słowo "Linux". Wirusów i nie tylko znalazłem aż... 10, a są to:

Lion - znany również jako Linux.Lion, robak. Pełni on funkcję konia trojańskiego, umożliwiając zdalny dostęp do komputera oraz wykradając hasła.

Ramen - znany również jako Linux.Ramen, robak. Jego działanie polega na zamianie strony głównej serwera http.

PK14 - tzw. fałszywy alarm czyli email wysłany przez dowcipnisia. W treści emaila pojawia się Linux.

Pandemic - fałszywy alarm, jak wyżej.

Music Panel - fałszywy alarm, jak wyżej.

Cheese - robak, który łata dziury wykorzystywane przez Liona.

Jac - jest wirusem infekującym pliki w linuksowym formacie ELF, znajdujące się w tym samym katalogu.

Winux - jest wirusem jednocześnie infekującym pliki wykonywalne typu PE systemu Windows oraz pliki wykonywalne w linuksowym formacie ELF. Wirus ten jest jedynie prezentacją możliwości stworzenia mikroba

wieloplatformowego i nie zawiera żadnych procedur destrukcyjnych, a ponadto nie występuje na wolności.

Prolin - jest robakiem internetowym rozsyłającym się przy użyciu poczty elektronicznej. Z Linuksem ma tylko tyle wspólnego, że wyświetla komunikat "change atleast now to LINUX" - i pewnie ma rację. :)

MTX.Worm - to robak internetowy, dołącza się do emaila pod różnymi nazwami, jedna z nich to "Is_linux_good_enough!.txt.pif". [1]

Jak widać tylko 5 z nich rzeczywiście potrzebuje Linuksa, żeby siać spustoszenie lub... naprawiać szkody.

A przecież co miesiąc według Marka Sella, pojawia się ich conajmniej 20 sztuk! Może pan Sell jest tak bardzo zajęty ich łapaniem i analizą, że nie ma czasu na aktualizację bazy danych?

Jeśli tak, to z pewnością informacje o wirusach znajdę po prostu w Internecie gdzie aż roi się od serwisów poświęconych bezpieczeństwu. Warto też zajrzeć na strony firm produkujących oprogramowanie antywirusowe -

może byli pierwsi lub po prostu mają więcej czasu lub ludzi by uaktualnić dane? Sprawdźmy to.

Fraza "linux virus" daje 8.490 hitów w Googlach. Część linków to odwołania do HOWTO, część do tekstów Silvia Cesare poświęconych tworzeniu wirusów pod Linuksa, spora część to powtarzające się doniesienia prasowe.

Spróbowałem zawęzić krąg poszukiwań wyłączając znalezione już na stronach Marka Sella "wirusy". Kolejna fraza wyglądała więc tak:

"linux virus" -lion -ramen -pk14 -pandemic -cheese -prolin -winux -jac

Liczba trafień spadła o ponad 1100 co sugerowało, że jednak robali jest sporo. Ale wystarczyło pominąć strony zawierające słowo "HOWTO" by dostać o 3300 hitów mniej, "silvio cesare" to kolejne 460 mniej hitów.

Wyłączenie z szukania słowa "bliss" - nazwy najsłynniejszego i pierwszego wirusa linuksowego dało w efekcie prawie 1000 mniej hitów.

Ciężko idzie, może z innej mańki?

Ile jest stron z frazą '"linux virus" reported'? Tylko 470! Z czego część to takie kwiatki jak artykuł o tytule "First Successful Linux Virus Reported" z... 22 stycznia 2001, a jak pewnie wszystkim wiadomo Bliss, pierwszy wirus

na Linuksa, pojawił się w roku 1997. Całe 4 lata wcześniej. W co mam wierzyć? A raczej komu?

Sporo ze znalezionych stron odesłało mnie do domeny www.viruslist.com na której udało mi się znaleźć aż... 19 wzmianek o wirusach pod Linuksa z czego 4 to jednak wirusy windowsowe, a o 5 już wspomniałem wcześniej.

Nowych zatem znalazło się 9. Oto one:

Linux.Satyr - nie czyniący szkód nie-rezydent.

Linux.Zipworm - infekujący archiwa ZIP.

Linux.RST - infekujący binarki i dający root-shella.

Linux.Winter - również infekujący binarki lecz nie czyniący szkód.

Linux.Kagob - jak wyżej.

Linux.Nuxbee - jak wyżej.

Linux.Diesel - jak wyżej.

Linux.Vit.4096 - drugi po Blissie wirus linuksowy, atakujący binarki.

Linux.Bliss - dzierżący palmę pierwszeństwa.

Worm.Linux.Adm - po prostu kolejny robal.

Na stronach producentów programów antywirusowych również trudno znaleźć więcej niż kilkanaście wzmianek o wirusach linuksowych. Zmowa milczenia? [2]

Wrócę jeszcze na koniec do wypowiedzi pana Marka Sella. Po bliższym przyjrzeniu okazała się błędna. Jeśli nawet redakcja "Computerworlda" popełniła błąd dodając po jednym zerze do podawanych przez Sella liczb to i tak

nie ma to żadnego odzwierciedlenia w rzeczywistości. Od publikacji artykułu minął juz prawie miesiąc i nie słychać o nowych dwóch, trzech a tym bardziej trzydziestu wirusach. Linux ma się dobrze. [3]

Wygląda na to, że moda na Linuksa dotyknęła także firmy antywirusowe. Szkoda, że objawia się to też nierzetelnymi informacjami przez nie podawanymi.

Szkoda, że menedżerowie i informatycy do których "Computerworld" jest skierowany czytają takie informacje. Szczególnie teraz gdy Linux z systemu dla zapaleńców staje się dojrzałym systemem nieraz wykorzystywanym

w poważnych projektach informatycznych. To nie fair panie Sell!

[1] Opisy zaczerpnąłem ze stron firmy Marka Sella.

[2] Sprawdzałem Sophosa, Symanteca, Antivira, McAfee.

Co ciekawe Symantec listuje sporo wirusów z adnotacją "No additional information" - o co chodzi? Nie wiedzą jak działają ale program je wykrywa?

McAfee w swojej bibliotece wirusów ma aż 26 linuksowych lecz po bliższym sprawdzeniu okazuje się, że zjadują się tam konie trojańskie i exploity.

[3] Pomijam zupełnie fakt, że wszystkie prawdziwe wirusy na Linuksa bazują na głupocie administratorów i przy zastosowaniu podstawowych zasad bezpieczeństwa są groźne jedynie dla danych użytkowników. System może

stać się ich ofiarą jedynie z wydatną "pomocą" roota.

background image

22

• Marek Sell, twórca mks_vira,

wielokrotnie podkreślał, że antywirusy
różnią się od innych aplikacji
komercyjnych. "Program antywirusowy
jest bardziej usługą niż towarem. Tak
naprawdę ważne jest nie to, co
kupujemy, ale co dostajemy po kupnie,
czyli stała aktualizacja
" (dla
"Magazynu Internetowego WWW",
listopad 2002 r.).

background image

23

background image

24

background image

25

background image

26

Linki

http://pl.wikipedia.org/wiki/Wirus_komputerowy

http://wyborcza.pl/1,76842,4337762.html

http://jnaszkiewicz.wodip.opole.pl/

http://wirusykomputerowe.webpark.pl/

http://www.oeiizk.edu.pl/informa/jazdzewska/wirusy.

html

http://www.chip.pl/arts/archiwum/n/printversion/pri

ntversion_90615.html

http://www.viruslist.pl/

http://poradnik.2lo.elblag.pl/800/wirusy-pm/index.ht

ml

• http://technologie.gazeta.pl/technologie/5,85

155,5134590.html?i=0

http://en.wikipedia.org/wiki/Computer_virus

vx.netlux.org/lib/aps00.html

background image

27

Pytania powtórkowe

1. Podaj definicję wirusa komputerowego.
2. Jakie miejsca w systemie komputerowym mogą być

narażone na rozmnażanie wirusów?

3. Opisz fazy funkcjonowania wirusa komputerowego
4. Jak działają wirusy zwane końmi trojańskimi?
5. Na czym polega obrona bierna przed wirusami?
6. Na czym polega obrona aktywna przed wirusami?
7. Opisz rodzaje programów antywirusowych.
8. Podaj nazwę znanych polskich programów

antywirusowych.

9. Czy wirus może zarazić program umieszczony na

dyskietce zabezpieczonej mechanicznie przed zapisem?

10.Na czym polega różnica między usunięciem i

zamrożeniem wirusa?

11.Czy wirus komputerowy może przeskoczyć na człowieka?


Document Outline


Wyszukiwarka

Podobne podstrony:
01 E CELE PODSTAWYid 3061 ppt
10 Reprezentacja liczb w systemie komputerowymid 11082 ppt
01 standaryzacja IIIrokid 2944 ppt
WIRUSY KOMPUTEROWE
egzamin 01, Symulacja komputerowa
Wirusy Komputerowe Jak Je Robić
Wirusy komputerowe i profilaktyka antywirusowa, edukacja i nauka, Informatyka
01 wyklad1 (1) Flisid 3011 ppt
01 Algorytmy wprowadzenieid 2595 ppt
01 Epidemiologia nowotworowid 2608 ppt
01 MAKROEKONOMIA(1)id 2850 ppt
01 zagadnienia ogólneid 3022 ppt
01 Zagadnienia organizacyjneid 2680 ppt
Wirusy Komputerowe
01 Ewaluacja rozwoju dziecka ppt
11W sObligacje skarbowe 01 02 2008id 13126 ppt
01 Epidemiologia 2id 3063 ppt
01 HISTORIA CHIRURGIIid 2616 ppt

więcej podobnych podstron