Ewolucja wirusówi antywirusów

Częsta aktualizacja, ukrywanie informacji o wykorzystywanych mechanizmach ochrony i ich zróżnicowanie to wciąż ważne elementy systemu bezpieczeństwa IT.

Częsta aktualizacja, ukrywanie informacji o wykorzystywanych mechanizmach ochrony i ich zróżnicowanie to wciąż ważne elementy systemu bezpieczeństwa IT.

Programy antywirusowe są ciągle ulepszane, aby nadążać za rozwojem złośliwego oprogramowania, ale nie zanosi się na to, by koncernom produkującym oprogramowanie chroniące komputery udało się zatamować napływ nowych ataków. Choć od dawna podejmowane są próby opracowania technologii umożliwiających aktywne identyfikowanie i blokowanie wrogiego kodu, wciąż są one niepewnym rozwiązaniem, które tylko uzupełnia systemy obronne oparte na mechanizmach reaktywnych. Widać jednak, że następuje ewolucja oprogramowania antywirusowego, które obecnie należy określić raczej jako systemy do kompleksowej ochrony komputerów.

Choć naiwne wydaje się oczekiwanie, że pojawią się nowe pomysły na technologie ochrony zapewniające 100-proc. bezpieczeństwo, to zahamowanie zjawisk masowego rozprzestrzeniania się wrogich kodów byłoby ogromnym sukcesem. Na razie jednak nic nie wskazuje, by miało to nastąpić w najbliższym czasie.

Deszyfrowanie wirusa

Pierwsze wirusy miały jedną wspólną cechę - praktycznie stały kod danego wirusa między infekcjami. Takie wirusy są w obiegu do dziś, ale umieszczenie stosownych filtrów na serwerach poczty i zaporach sieciowych skutecznie odcina infekcję tą drogą.

Następnym etapem były wirusy, które zawierały szyfrowane fragmenty kodu. By maksymalnie opóźnić i utrudnić aktualizację oprogramowania antywirusowego, twórcy zaczęli dzielić kod na segmenty, między którymi umieszczano "śmieci". Całość podlegała szyfrowaniu ze zmieniającym się kluczem. Później powstały wirusy, które nie posiadały żadnego stałego fragmentu w swoim zaszyfrowanym kodzie.

Twórcy dzisiejszych wirusów czerpią z doświadczeń poprzedników. Obecnie bardzo wiele wirusów zawiera szyfrowane fragmenty kodu. Niektóre z nich potrafią dodatkowo rozproszyć losowo kod pomiędzy wiele plików i posiadają elementy samokontroli, sprawiając, że analiza jest coraz trudniejsza.

Ewolucja dróg zarażania

Pierwsze wirusy były roznoszone przez nośniki (dyskietki) z programami. Gdy ich twórcy opanowali techniki tworzenia makrowirusów w programie Microsoft Word, powstała nowa droga roznoszenia się złośliwego kodu. Najbardziej podatny był Word 6.0 dla Windows, gdyż nie posiadał ochrony przed makrami.

Kolejnym etapem było roznoszenie się wirusów przez pocztę elektroniczną. Tutaj najpoważniejszym problemem są luki w bezpieczeństwie programu Outlook, a także podatność użytkowników na ataki socjotechniczne. Na szczęście, wielu administratorów blokuje niepożądane załączniki na serwerze pocztowym. Ponadto możliwe jest zablokowanie automatycznego otwierania dokumentów. Poczta elektroniczna jest szybszym medium niż , ale nie jest najszybszym z nich. Znacznie szybsze jest bezpośrednie połączenie internetowe, gdy jeden komputer łączy się z drugim przy użyciu protokołu internetowego. Gdy komputer nie jest chroniony przez zaporę sieciową, zaś implementacja jakiejś usługi zawiera błędy, może się to skończyć kompromitacją zabezpieczeń. Wiele robaków sieciowych roznosi się do dzisiaj tą drogą.

W przypadku nośników offline dobry program antywirusowy radzi sobie sprawnie, bowiem zazwyczaj kod wirusa jest mu znany w momencie infekcji. Przy poczcie elektronicznej jest gorzej, ale możliwe są dodatkowe zabezpieczenia (np. usuwanie podejrzanych załączników na serwerze pocztowym). Natomiast przed bezpośrednim połączeniem ochronić może tylko zapora sieciowa.

Ukryta obrona

W początkowych latach rozwoju wystarczał prosty skaner szukający wzorców. Bardzo szybko twórcy wirusów znaleźli sposób na ich oszukanie. Pierwszym przełomem było opracowanie algorytmu wyszukiwania stałych danych w kodzie. Wynalazek wirusów szyfrowanych zmiennym kluczem sprawił jednak, że tradycyjne metody okazały się zawodne. Kolejnym ważnym etapem w rozwoju technologii było zastosowanie algorytmów heurystycznych, które potrafiły z pewnym prawdopodobieństwem wykryć złośliwy kod na podstawie zawartych w nim instrukcji.

Tego typu algorytmy należą do najważniejszych narzędzi w obecnych programach antywirusowych. Narzędzia polegające na analizie kodu sprawdzają się bardzo dobrze, gdy wirus jest mutacją innego, znanego już złośliwego kodu. Jeśli procedury odpowiedzialne za jego działanie są podobne, tego typu mechanizmy działają efektywnie. Niestety, nie dają rezultatów w przypadku ataków, które bazują na eksploitowaniu nieznanego do tej pory błędu, względnie kompromitacja systemu odbywa się w nieznany dotąd sposób. Ze względu na komercjalizację złośliwego kodu, nowo powstałe wirusy są dla typowych programów całkowicie nieuchwytne, dopóki nie zostaną przeanalizowane w profesjonalnych laboratoriach. Nawet najlepsze narzędzia heurystyczne są bezradne wobec nowych zagrożeń, gdyż twórcy złośliwego kodu potrafią go przygotować tak, by nie powodować alarmu.


TOP 200