Materiały edukacyjneTo my pomagamy w pisaniu

Materiały edukacyjne - Informatyka

Wirusy polimorficzne

Początki istnienia wirusów charakteryzowała ich względna prostota, ale przede wszystkim prostota możliwości ich wykrywania. Każdy utworzony wirus mógł być wykryty dzięki charakterystycznemu tylko dla niego, ciągowi bajtów, określanym mianem sygnatury. Podstawowym działaniem zmierzającym do stwierdzenia obecności wirusa było więc przeglądanie plików i sprawdzenie, czy zawierają one sygnatury znanych wirusów. Sytuacja ta zmieniła się, kiedy Bułgar o pseudonimie Dark Avenger opracował metodę umożliwiającą tworzenie wirusów, posiadających zdolność mutacji. Wirusy takie, określane mianem polimorficznych nie posiadają stałej sygnatury.[1]

Takie rozwiązanie skutkuje wykluczeniem możliwości wykrycia wirusów polimorficznych przez tradycyjne systemy antywirusowe. W początkowej fazie istnienia wirusów opisywanego typu, wykorzystywano procedury szyfrujące kod wirusa z wykorzystaniem stałego, lub zmiennego klucza. Procedura ta każdorazowo była realizowana w sposób jednakowy i możliwe było wyznaczenie bajtów charakterystycznych, a w efekcie wykrycie wirusa. Twórcy wirusów poszli więc dalej i w celu zmylenia skanerów antywirusowych wprowadzały do kodu procedury deszyfrującej dodatkowe, nieistotne dla algorytmu wirusa, instrukcje, zmieniające się przy każdej infekcji. Reakcja twórców programów antywirusowych polegała na wprowadzeniu do próbek wirusów, wykorzystywanych przez programy skanujące tak zwanych znaków zastępczych, czego przykładem może być bajt ignorowany, który może przyjmować dowolną wartość. Kolejnym etapem pracy nad wirusami polimorficznymi, było wprowadzenie przez ich autorów algorytmów generujących między kilkudziesięcioma a nawet miliardem różnych postaci procedury deszyfrującej. W przypadku procedur generujących niewielkie ilości wariantów możliwe jest wykrycie wirusa przez wpisanie do bazy programu antywirusowego wszystkich możliwych kombinacji będących wynikiem działania algorytmu. W przypadku większości wirusów polimorficznych tworzonych obecnie taka metoda wykrywania nie jest już dłużej skuteczna.

Nowoczesne wirusy polimorficzne wykorzystują również szereg innych technik, do których zaliczyć można:

• zastępowanie i przestawianie instrukcji procedury deszyfrującej;

• mieszanie instrukcji właściwego kodu wirusa z instrukcjami jałowymi, czego przykładem jest instrukcja NOP (nie wykonująca żadnej funkcji);

• rozsiewanie kodu procedury deszyfrującej w kodzie programu będącego nosicielem wirusa.

Obecnie spotyka się już wirusy zmieniające swoją postać podczas rezydowania w pamięci komputera, co jest szczególnie uciążliwe i niebezpieczne, ponieważ w skuteczny sposób utrudnia, a w określonych sytuacjach uniemożliwia usunięcie, lub unieszkodliwienie wirusa.

Obecnie twórcy wirusów stosują nawet procedury szyfrowania procedury szyfrującej, co w jeszcze większym stopniu utrudnia wykrycie wirusa i sprawia, że proces pracy nad rozpoznaniem wirusa jest bardziej skomplikowany i wymaga znacznej ilości obliczeń.

Do tworzenia wirusów polimorficznych możliwe jest wykorzystanie gotowych bibliotek polimorficznych, wśród których najpopularniejsze to:[2]

• Biological Warfare Virus Creation Kit;

• Mutation Engine;

• Trident Polymorphic Engine.

---

1. Borys R. Wirusy komputerowe. Zagrożenie sieci, Telecom, 2000, str. 8.

2. Dudek A. Nie tylko wirusy. Hacking, cracking, bezpieczeństwo Internetu, Helion, 2004, str. 20-23.

© 2012 Www.edukacja.mazowsze.pl

licznik