Wirusy Komputerowe Autor: Damian Miłosz
Pojęcie „wirus komputerowy” Wirus komputerowy – najczęściej prosty program komputerowy, który w sposób celowy powiela się bez zgody użytkownika. Wirus komputerowy w przeciwieństwie do robaka komputerowego do swojej działalności wymaga nosiciela w postaci programu komputerowego, poczty elektronicznej itp. Wirusy wykorzystują słabość zabezpieczeń systemów komputerowych lub właściwości systemów oraz niedoświadczenie i beztroskę użytkowników. Często wirusami komputerowymi mylnie nazywane są wszystkie złośliwe programy. Do zwalczania, usuwania i zabezpieczania się przed wirusami używane są programy antywirusowe.
Pojęcie „wirus komputerowy” Każdy wirus ma zdolność samopowielania. Jest to warunek konieczny, aby dany program można było nazywać wirusem. Wirusy przenoszone są przeważnie w zainfekowanych wcześniej plikach (wirusy plikowe) lub w pierwszych sektorach fizycznych (na zerowej ścieżce) dysku twardego (wirusy dyskowe). Proces infekcji polega na odpowiedniej modyfikacji struktury plików lub sektorów. Zainfekowaną ofiarę nazywa się nosicielem, a proces samopowielania replikacją.
Rozmiar wirusa Rozmiar wirusa zależy od czynników takich jak: umiejętności programistyczne twórcy wirusa – wirus lepszego programisty napisany w tym samym języku będzie mniejszy lub będzie miał więcej funkcji; użyty język programowania – wirus o podobnej funkcjonalności napisany w języku maszynowym (asembler) zwykle będzie mniejszy niż w języku skryptowym czy języku wysokiego poziomu; przewidywana funkcjonalność wirusa – prosty wirus będzie mniejszy od szkodnika wykonującego wiele różnych czynności; najmniejsze wirusy potrafią tylko się powielać; wykorzystanie cech środowiska operacyjnego – wirus napisany jako maksymalnie niezależny musi mieć wbudowane wszystkie potrzebne biblioteki, wirus korzystający w pełni ze środowiska ma tylko minimum kodu niezbędne do wywołania dostępnych w tym środowisku funkcji.
Zadania Wirusów Od programisty zależą także efekty, jakie wirus będzie wywoływał po zainfekowaniu systemu, na przykład: kasowanie i niszczenie danych rozsyłanie spamu dokonywanie ataków na serwery internetowe kradzież danych (hasła, numery kart płatniczych, dane osobowe) wyłączenie komputera wyświetlanie grafiki lub odgrywanie dźwięków uniemożliwienie pracy na komputerze umożliwienie przejęcia kontroli nad komputerem osobie nieupoważnionej tworzenie botnetu
Generatory Wirusów Istnieje wiele programów umożliwiających stworzenie własnego wirusa, nawet bez znajomości systemu czy mechanizmów wykorzystywanych przez wirusy. Można je bez problemu znaleźć w Internecie. Korzystają one z gotowych modułów w asemblerze i umożliwiają stworzenie wirusa o zadanych parametrach wybieranych zwykle przy pomocy przyjaznego użytkownikowi menu. Można w nim określić zakres infekowanych obiektów oraz rodzaj efektów które ma on wywoływać. Oprócz kodu wynikowego wirusa, generatory tworzą także źródła w asemblerze, co umożliwia zainteresowanemu pisaniem wirusów użytkownikowi dokształcenie się w tej dziedzinie. 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
Rodzaje Wirusów Wirusy można podzielić według wielu kryteriów. Przykładowy podział ze względu na infekowany obiekt: wirusy dyskowe, infekujące sektory startowe dyskietek i dysków twardych wirusy plikowe, które infekują pliki wykonywalne danego systemu operacyjnego wirusy skryptowe makrowirusy, których kod składa się z instrukcji w języku wysokiego poziomu, wykonywane przez interpreter. wirusy komórkowe, na razie rzadkie ale być może w przyszłości mogą stanowić istotne zagrożenie w związku z rozwojem oprogramowania dla telefonów komórkowych i dostępnych usług. Przykładem może być wirus Cabir napisany w 2004 roku.
Wirusy Pasożytnicze Większość z istniejących wirusów to tzw. wirusy pasożytnicze. Charakteryzują się one tym, że wykorzystują swoje ofiary do transportu. Modyfikują ich strukturę wewnętrzną i oczywiście nie naprawiają jej. Plik użyty do transportu jest uszkodzony. Jedynym dla niego ratunkiem może być użycie szczepionki lub kopii zapasowych dla zainfekowanych plików. Ze względu na miejsce zajmowane w zainfekowanych plikach wirusy pasożytnicze dzielimy na: Wirusy lokujące się na końcu pliku (ang. end of file infectors). Dopisują kod wirusa na koniec pliku, a następnie modyfikują początek pliku tak, aby wywołanie pliku uruchamiało wirusa Wirusy nadpisujące. Lokują się na początku pliku, zwykle nie zapamiętują poprzednich danych w pliku i nieodwracalnie go niszczą
Wirusy Pasożytnicze Wirusy nagłówkowe (ang. header infectors). Lokują się w nagłówkach plików EXE przeznaczonych dla systemu DOS. Ich nagłówek jest zawsze standardowo ustawiany przez programy linkujące na wielokrotność jednego sektora (512 bajtów). Wirusy te nie przekraczają rozmiaru jednego sektora Wirusy lokujące się w pliku w miejscach gdzie jest jakiś pusty obszar. Obszar ten wypełniony jest ciągiem zer i można go nadpisać nie niszcząc pliku. Są to cave infectors Wirusy lokujące się w dowolnym miejscu pliku. Są bardzo rzadkie i trudne do napisania, to tzw. surface infectors Wirusy wykorzystujące część ostatniej JAP (Jednostki Alokacji Pliku). Korzystają z faktu, iż plik rzadko zajmuje dokładnie wielokrotność jednej JAP. Są to tzw. slack space infector
Wirusy Towarzyszące Wirusy te zwykle tworzone są w językach wysokiego poziomu. Wykorzystują hierarchię stosowaną przez system DOS, dotyczącą kolejności uruchamiania programów o tych samych nazwach a innych rozszerzeniach. Jeśli w jednym katalogu jest kilka programów o tej samej nazwie ale o różnych rozszerzeniach (EXE, COM, BAT), to w przypadku podania nazwy programu bez rozszerzenia, w pierwszej kolejności poszukiwany jest plik o rozszerzeniu COM, potem EXE, a na końcu BAT. Wirusy towarzyszące wykorzystują tę właściwość systemu DOS. Jeśli program ma rozszerzenie COM to wirus towarzyszący nie dokona infekcji. Jeśli natomiast program ma rozszerzenie EXE lub BAT, to plik z wirusem będzie miał rozszerzenie COM i może zostać omyłkowo uruchomiony nawet przez samego użytkownika systemu. Próba uruchomienia programu bez podania rozszerzenia w pierwszej kolejności uruchomi plik COM zawierający kod wirusa. Następnie wirus po uaktywnieniu się przekaże sterowanie do programu macierzystego.
Wirusy Towarzyszące Sprytnym rozszerzeniem tej techniki jest sposób infekcji wykorzystujący zmienną środowiskową PATH. Zmienna ta definiowana jest w pliku autoexec.bat i określa listę katalogów przeszukiwanych przez system DOS podczas uruchamiania programu. Wirus wykorzystujący tę technikę tworzy plik zawierający kod wirusa w dowolnym katalogu którego ścieżka znajduje się w zmiennej PATH przed katalogiem, w którym znajduje się zarażana ofiara.
Wirusy Plików Wsadowych Są to tzw. batchviruses, gdyż pliki wsadowe to pliki o rozszerzeniu BAT. Wirusy te wykorzystują do transportu właśnie pliki BAT. Potrafią wbrew pozorom być bardzo niebezpieczne i infekować również pliki COM oraz EXE, a nawet tablice partycji dysku. Po uruchomieniu zainfekowanego pliku wsadowego tworzony jest plik uruchamialny COM lub EXE, który zawiera właściwy kod infekujący pliki BAT. Plik BAT jest następnie kasowany, a plik wykonywalny jest uruchamiany.
Makrowirusy Makrowirusy nie zarażają programów uruchamialnych lecz dokonują destrukcji dzięki wykonywaniu swojego kodu zapisanego w plikach dokumentów Microsoft Office (doc, xls). W programie Microsoft Word jest to język WordBasic, a w programie Microsoft Excel jest to Visual Basic for Applications. Są to wirusy bardzo łatwo wykrywalne, a ponadto ich działanie może zostać zablokowane przez macierzyste aplikacje. Od chwili, gdy aplikacje Microsoft Office ostrzegają o istnieniu makr, wirusy tego typu nie są bardzo groźne, nie powstają także nowe. Wirusy tego typu mogą działać w programach Microsoft Office w środowisku Macintosh, pojawiały się jeszcze w pierwszych latach XXI wieku, ale nie były szczególnie groźne ani powszechne.
Inne Programy o Działaniu Destrukcyjnym Obok powyżej opisanych rodzajów wirusów, istnieje szereg programów które często uważane są za wirusy, lecz nimi nie są, gdyż ich sposób działania jest niezgodny z definicją wirusa. Owszem, ich działanie jest szkodliwe dla użytkownika systemu, lecz programy te nie doczepiają się do innych plików. Są to: robaki bomby logiczne króliki fałszywki zakraplacz programy szpiegujące
Inne Programy o Działaniu Destrukcyjnym Robaki – programy, których działanie polega na tworzeniu własnych duplikatów. Nie atakują one żadnych obiektów jak to czynią wirusy, a jedynie same się powielają. Oprócz zajmowania miejsca na dysku niekiedy wywołują również negatywne skutki uboczne. Robaki są najbardziej popularne w sieciach, gdzie mają do dyspozycji różne protokoły transmisji sieciowej dzięki którym mogą się rozprzestrzeniać. Konie trojańskie – Program będący koniem trojańskim, po uruchomieniu wykonuje normalną pracę i użytkownikowi wydaje się że uruchomił zwykły program bądź grę. Jednak dodatkowo wykonywane są operacje szkodliwe, niezauważalne dla użytkownika. Konie trojańskie najłatwiej podrzucić w plikach udających nowe, popularne programy bądź gry.
Inne Programy o Działaniu Destrukcyjnym Bomby logiczne – różnią się od konia trojańskiego tym, że ukryte operacje nie są wykonywane od razu po ich uruchomieniu, lecz dopiero w odpowiednim czasie. Może to być zajście określonego zdarzenia w systemie bądź wielokrotne uruchomienie danego programu. Często uruchomienie ukrytych operacji następuje automatycznie po upłynięciu określonej liczby dni od momentu uruchomienia bomby. Króliki, określane są również jako bakterie. To programy, które nie niszczą plików. Ich jedynym celem jest samokopiowanie. Typowy program w rodzaju bakterii lub królika może na przykład jednocześnie uruchomić kilka swoich kopii w systemach wieloprogramowych, lub stworzyć dwa nowe pliki z których każdy jest kopią oryginalnego pliku źródłowego bakterii. Oba programy mogą następnie skopiować się podwójnie i w ten sposób mogą rozmnożyć się do bardzo dużej liczby. Bakterie reprodukują się wykładniczo, zabierając całą moc obliczeniową procesora. Ten rodzaj ataku jest jedną z najstarszych form zaprogramowanych zagrożeń.
Inne Programy o Działaniu Destrukcyjnym Fałszywki, zwane hoaxy, to inaczej ostrzeżenia przed nieistniejącymi wirusami. Cechą charakterystyczną fałszywego ostrzeżenia jest prośba o przesłanie go do możliwie dużej liczby osób – rzekomo w trosce o ich bezpieczeństwo. Początkujący internauci rozsyłają fałszywe alarmy do kogo się tylko da, co pozwala fałszywkom krążyć po Internecie całymi miesiącami w milionach egzemplarzy, doprowadzając do wściekłości osoby, które otrzymują je po raz n-ty. Możemy również otrzymać e-maila z wiadomością, że plik o podanej nazwie jest wirusem i można się go pozbyć jedynie poprzez usunięcie go. W rzeczywistości plik ten nie jest wirusem i może być nawet częścią systemu operacyjnego, a jego usunięcie może spowodować nieprzewidziane skutki. Jeśli trafi do nas takie ostrzeżenie, najlepiej wejść na stronę dowolnego producenta programów antywirusowych i sprawdzić czy nie jest to fałszywka. Z punktu widzenia memetyki fałszywki należy uznać za wirusy umysłu, infekujące nie komputery jako takie, lecz umysły użytkowników, wykorzystując ich naiwność lub niedoświadczenie jak lukę w systemie.
Podział wirusów ze względu na ich działanie WIRUSY NIEREZYDENTNE Wirusy te są najprostszą odmianą wirusów zarażających pliki wykonywalne. Po uruchomieniu pliku nosiciela wirus poszukuje kolejnego obiektu, który może zarazić. Jeśli takowego nie znajdzie, sterowanie oddawane jest do nosiciela, a jeśli znajdzie to kolejny obiekt jest infekowany. Sposób poszukiwania ofiary może być różny. Zwykle przeszukiwany jest bieżący katalog oraz podkatalogi bieżącego katalogu, a także katalog główny oraz katalogi określone w zmiennej środowiskowej PATH. Wirusy nierezydentne posiadają dwie zasadnicze wady. Pierwszą z nich jest to, że poszukiwanie ofiar po uruchomieniu pliku nosiciela wiąże się ze sporym opóźnieniem w uruchomieniu właściwego programu, oraz z łatwo zauważalną przez użytkownika wzmożoną aktywnością przeszukiwanego nośnika. Drugą wadą jest to, iż zarażają one inne pliki tylko i wyłącznie po uruchomieniu nosiciela, a więc nie mogą efektywnie infekować plików ani też skutecznie maskować swej obecności w systemie, tak jak czynią to wirusy rezydentne. Wirusy nierezydentne są najczęściej tworzone przez początkujących twórców wirusów. Bardzo łatwo jest stworzyć prostego wirusa nierezydentnego w asemblerze.
Podział wirusów ze względu na ich działanie WIRUSY REZYDENTNE Można powiedzieć, że wirusy nierezydentne są dość ograniczone, gdyż łatwo je wykryć. Stąd też wzięły się poszukiwania aby odkryć coś nowego. Za czasów systemu DOS trzeba było wynaleźć jakiś mechanizm, który pozwalałby w typowo jednozadaniowym środowisku stworzyć mechanizm sztucznej wielozadaniowości. Tak powstały wirusy rezydentne. Ich zasada działania polega na zainstalowaniu się w pamięci operacyjnej komputera i przejęciu odpowiednich odwołań do systemu w sposób podobny do tego, w jaki czynią to programy typu TSR (ang. Terminate but Stay Resident). Wirus rezydentny to w zasadzie program TSR, który po zainstalowaniu ukrywa swój kod przed programami przeglądającymi pamięć. Będąc jednocześnie aktywnym i ukrytym w pamięci ma o wiele szersze pole działania niż wirusy nierezydentne. Używa on techniki tzw. stealth do ukrywania się. Zawładnięcia systemem dokonuje poprzez przejęcie odpowiednich przerwań sprzętowych i funkcji obsługiwanych przez ogólnie dostępne przerwania programowe. Ze względu na szybkość mnożenia się wirusy rezydentne dzielimy na szybkie infektory i wolne infektory.
Profilaktyka antywirusowa Najlepszą metodą ustrzeżenia się przed wirusami jest ochrona prewencyjna, która opiera się na domyślnym odrzucaniu wszystkich plików, które docierają do naszego komputera. Niekiedy nawet pliki od zaufanych osób mogą zawierać wirusy, a osoby te mogą o tym po prostu nie wiedzieć. Ważnym elementem działań zapobiegawczych jest regularne tworzenie kopii awaryjnych dla najważniejszych plików, programów bądź dokumentów. Trzeba również regularnie tworzyć kopie zapasowe danych. W przypadku zainfekowania komputera nie należy od razu w panice formatować dysku twardego. Co więcej, wykonanie formatowania dysku wcale nie oznacza pozbycia się wirusa z systemu (np. w przypadku Viruta).
Ochrona przed wirusami plików wykonywalnych Pliki wykonywalne można, oprócz sprawdzenia programem antywirusowym, dodatkowo można przeanalizować przy użyciu strony analizującej pliki pod kątem ich zainfekowania (np. virustotal.com). Dzięki temu rozwiązaniu można mieć pewność, że dany plik jest/nie jest zainfekowany.
Ochrona przed bombami logicznymi i końmi trojańskimi Konie trojańskie i bomby logiczne ze względu na sposób działania są trudne do wykrycia, gdyż właściwy, destrukcyjny kod może być umieszczony w dowolnym miejscu programu i trudno go odnaleźć. Niekiedy jest to wręcz niemożliwe. Z pomocą przychodzi tu technika heurystyczna. Polega ona na wykrywaniu potencjalnych agresorów na podstawie charakterystycznych sekwencji kodu. Programy poszukujące koni trojańskich w podejrzanych plikach najczęściej szukają w nich instrukcji wywołań przerwań programowych. Są to przerwania 13h lub 26h, używane do odczytywania i zapisywania sektorów. Ze względu na swe działanie, przerwania te występują bardzo rzadko w typowym oprogramowaniu użytkowym, gdyż normalne programy nie korzystają z bezpośrednich operacji zapisu na sektorach. Potencjalnymi końmi trojańskimi są także najnowsze wersje typowych i często używanych programów użytkowych, programów kompresujących czy nawet antywirusowych, zatem należy się z nimi obchodzić bardzo ostrożnie i przed uruchomieniem ich wypada je przeskanować. Dobrym rozwiązaniem, pozwalającym uchronić się przed większością koni trojańskich i bomb, może być zainstalowanie monitora antywirusowego. Konie trojańskie są zwykle pisane przez początkujących programistów, którzy do przeprowadzania destrukcji używają przerwań programowych, a te mogą być łatwo przechwytywane i kontrolowane przez monitor.
Ochrona przed makrowirusami Bez programu antywirusowego trudno jest wykryć wirusy w plikach dokumentów DOC czy XLS, ale istnieją metody aby zminimalizować szansę zainfekowania systemu. Można w tym celu: wyłączyć wszystkie makra automatyczne przy pomocy własnoręcznie napisanego makra: SUB MAIN DisableAutoMacros 1 END SUB aby przy uruchamianiu Worda wyłączyć makro AutoExec należy uruchamiać aplikację z parametrem m: WINWORD.EXE /M podczas wczytywania plików trzymać wciśnięty klawisz SHIFT, co spowoduje zablokowanie automatycznego makra AutoOpen od czasu do czasu przeglądać listę makr zawartych w szablonie NORMAL.DOT. Jeżeli zawiera ona jakieś makra automatyczne lub makra o dziwnych, niespotykanych nazwach, możliwe, iż szablon jest zainfekowany. Makra można przeglądać za pomocą opcji wybieranych z menu Worda PLIK/SZABLONY/ORGANIZATOR/MAKRA, bądź też NARZĘDZIA/MAKRO ze względu na to, iż wirus może nie przejmować żadnego makra automatycznego, lecz tylko podmieniać polecenia menu (najczęściej menu PLIK/ZACHOWAJ, PLIK/ZACHOWAJ JAKO), powyższe środki mogą okazać się całkowicie nieskuteczne.
Program Antywirusowy Program antywirusowy (antywirus) – program komputerowy, którego celem jest wykrywanie, zwalczanie i usuwanie wirusów komputerowych. Współcześnie najczęściej jest to pakiet programów chroniących komputer przed różnego typu zagrożeniami.
Program Antywirusowy Programy antywirusowe często są wyposażone w dwa niezależnie pracujące moduły (uwaga: różni producenci stosują różne nazewnictwo): skaner – bada pliki na żądanie lub co jakiś czas; służy do przeszukiwania zawartości dysku monitor – bada pliki ciągle w sposób automatyczny; służy do kontroli bieżących operacji komputera
Program Antywirusowy Program antywirusowy powinien również mieć możliwość aktualizacji definicji nowo odkrytych wirusów, najlepiej na bieżąco, przez pobranie ich z Internetu, ponieważ dla niektórych systemów operacyjnych codziennie pojawia się około trzydziestu nowych wirusów.
Program Antywirusowy Widoczna jest tendencja do integracji narzędzi do ochrony komputera. Kiedyś był to jedynie skaner, który wyszukiwał wirusy, początkowo na podstawie sygnatur znanych wirusów, a potem także typujący pliki jako zawierające podejrzany kod za pomocą metod heurystycznych. Trzeba dodać, że współcześnie programy antywirusowe jako jedyna linia obrony nie wystarczają, Obecnie poza skanerem, monitorem i modułem do aktualizacji sygnatur z sieci, pakiet antywirusowy zawiera często także zaporę sieciową, moduły kontroli przesyłek poczty elektronicznej i plików pobieranych z sieci, moduł wykrywania i zapobiegania włamaniom, skaner pamięci i strażnika MBR. Wszystkie te moduły posiadają programy typu internet security - np. Kaspersky Internet Security, jednak można je zainstalować oddzielnie, co według licznych testów laboratoriów antywirusowych, oferują znacznie wyższy poziom ochrony przed malware niż pakiety bezpieczeństwa.
Moduły programów antywirusowych Skanery Monitory Szczepionki Programy autoweryfikujące Programy zliczające sumy kontrolne
Skanery Skanery to najstarszy i najprostszy sposób ochrony antywirusowej. Ich działanie polega na wyszukiwaniu określonej sekwencji bajtów w ciągu danych. W większości wirusów można wyróżnić unikalną sekwencję bajtów, tzw. sygnaturę, dzięki której możliwe jest odnalezienie wirusa w pamięci lub w zarażonej ofierze. Skuteczność skanera antywirusowego zależy od tego, jak bardzo charakterystyczna jest dana sekwencja. Najlepiej, jeżeli wirus zawiera w sobie jakiś bardzo specyficzny napis lub ciąg bajtów. Wraz z pojawieniem się wirusów polimorficznych znaczenie skanerów trochę zmalało, jednak nadal jest to najważniejsza metoda walki z wirusami. Wirusy polimorficzne są trudne do wykrycia, gdyż ich różne próbki nie wyglądają tak samo. Często dwie próbki danego wirusa nie mają ze sobą nic wspólnego. Polimorfizm może być osiągnięty poprzez zakodowanie ciała wirusa. W przypadku tych wirusów również używa się skanera, choć dopiero w późniejszej fazie wykrywania.
Monitory Monitor to program antywirusowy zainstalowany jako TSR (ang. Terminate and Stay Resident) lub sterownik SYS, który – poprzez monitorowanie odpowiednich funkcji DOS i BIOS – pozwala na wykrywanie wszystkich wykonywanych za pomocą tych funkcji odwołań do dysków. To, czy monitor będzie działał prawidłowo zależy często od momentu, w którym przejął on kontrolę nad systemem (przed działaniem wirusa, czy już po) oraz od tego, jak głęboko wnika on w system operacyjny. Jak widać autorzy programów antywirusowych muszą korzystać z metod podobnych do tych, które stosują twórcy wirusów. Dużą wadą programów monitorujących jest to, że powodują one często fałszywe alarmy. Niekiedy zdarza się tak, że użytkownik po kolejnym potwierdzeniu jakiejś zwykłej operacji dyskowej staje się mniej uważny i nawet usuwa program antywirusowy z pamięci[3].
Szczepionki Są to programy skierowane przeciwko konkretnym wirusom. Na podstawie posiadanego czy wykrytego egzemplarza wirusa można, po odpowiedniej analizie jego kodu, zdefiniować tzw. sygnatury, na podstawie których wykrywa się kolejne kopie wirusa w systemie. Dokładna analiza kodu wirusa pozwala niekiedy odnaleźć w nim oryginalne wartości pewnych parametrów, które mogą posłużyć do wyleczenia plików. Większość z istniejących szczepionek to rozbudowane programy, które potrafią wykryć i usunąć kilka tysięcy określonych wirusów. Tylko w przypadkach nowych wirusów szczepionki nie są efektywne.
Programy autoweryfikujące Programy te służą do sprawdzania czy dany program nie został w jakiś sposób zmieniony przez wirusa. Sprawdzanie to jest możliwe poprzez dodanie do wskazanego pliku określonego, krótkiego programu. Dodawany kod dopisuje się do pliku wykorzystując te same mechanizmy co wirusy, i pozwala on na autoweryfikację, czyli automatyczne sprawdzanie czy dany program nie został zmodyfikowany. Niestety, programy tego typu najczęściej nie są odporne na technikę ukrywania kodu wirusa stealth i w systemie zainfekowanym przez wirusa używającego tej techniki okażą się całkowicie nieefektywne.
Programy zliczające sumy kontrolne Działanie tego typu programów polega na obliczaniu odpowiednich sum kontrolnych dla żądanego pliku lub plików. Zliczane sumy kontrolne są przechowywane w osobnych plikach, tworzonych po pierwszym uruchomieniu programu. Jeżeli pliki te istniały już wcześniej, program antywirusowy wykorzystuje dane w nich zawarte aby porównać bieżąco wyliczoną sumę, z sumą poprzednio zachowaną w pliku. Istnieje szereg algorytmów do tworzenia sum kontrolnych dla plików. Ogromną wadą programów tego typu jest to, że pliki przechowujące obliczone sumy kontrolne nie są wcale chronione. Dzięki znajomości wielu algorytmów stosowanych przez programy antywirusowe, niektóre wirusy potrafią zarazić określony plik i obliczyć dla niego nową sumę kontrolną.
Źródła http://pl.wikipedia.org/