Blog (5)
Komentarze (59)
Recenzje (0)
@adrian1877Stosowane technologie antywirusowe - czyli jak działa Twój program od "środka"?

Stosowane technologie antywirusowe - czyli jak działa Twój program od "środka"?

03.06.2013 12:56

Antywirusy – programy, które są z nami już kilkanaście lat, od początków pierwszych systemów. W czasach kiedy nie było Internetu, nie przeszkadzało to pierwszym hakerom pisać wirusy. Obecnie dzienna liczba nowych szkodników liczona jest w setkach tysięcy. Dlatego bardzo trudno uchronić się przed mniej czy bardziej szkodliwą infekcją bez posiadania oprogramowania antywirusowego.

Wielu użytkowników zastanawiało się nieraz jak działa program antywirusowy, jak wykrywa i usuwa szkodliwe oprogramowanie? Skąd wiadomo, czy usunął na pewno wirusa a nie czysty plik? Jakie technologie stosują producenci oprogramowania antywirusowego? Na te pytania odpowiem w dalszej części artykułu. Dowiecie się również jak program naprawia zainfekowane już pliki oraz o metodach ochrony przez szkodliwym oprogramowaniem.

Na początku...

Windows – wielu z nas korzysta z tej platformy i właśnie z tego względu, za sprawą swej popularności, najwięcej szkodliwego oprogramowania jest pisanych pod ten system. Linux – podobno nie uruchomimy na tym systemie żadnego wirusa bez naszej wiedzy. System ten działa trochę inaczej niż Windows a użytkownicy, którzy z niego korzystają twierdzą, że wirusy praktycznie nie stanowią zagrożenia dla Linuksa, gdyż jest to system bardzo bezpieczny i aby uruchomić na nim szkodliwe oprogramowanie, należy mu przyznać prawa roota. Sami autorzy oprogramowania antywirusowego oraz ci, którzy je zwalczają twierdzą, że Linux nie jest w cale bezpieczniejszy od Windowsa a wszystko opiera się właśnie na popularności systemu. Ktoś może się uśmiać, no tak! Przecież to producenci, którzy muszą jakoś zarabiać na siebie sieją zamęt z wirusami na Linuxa. Ale czy naprawdę? Czy jeśli Linux stanie się bardzo popularny za sprawą przede wszystkim gier, kiedy ich producenci zaczną przystosowywać swoje tytuły właśnie pod ten darmowy system, czy możemy nadal sądzić, że wielu „zdolnych” hakerów nie oprze się pokusie i nie zaczną pisać wirusów, które będą „omijać” zabezpieczenia Linuxa? Cóż, przekonamy się w przyszłości. A tymczasem zapraszamy do lektury poświęconej wykorzystywaniu technik zwalczających szkodliwe oprogramowanie. Artykuł jest przeznaczony zarówno dla początkujących jak i zaawansowanych użytkowników i obie grupy znajdą tutaj ciekawe informacje.

Stosowane metody antywirusowe vs wirusy

Producenci stosują kilka metod ochrony w oprogramowaniu antywirusowym. Chyba najbardziej znaną jest skanowanie całego komputera czy dysków lokalnych. Skaner programu analizuje i sprawdza pliki, czy nie zawierają one wirusów. Tak jak wszystkie programy, wirusy składają się z kodu, a jego specjalny ciąg producenci rejestrują oraz dodają do sygnatur, czyli bazy wirusów. Sama sygnatura składa się z ciągu znaków np.

[code=]X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*[/code]

Jest to bardzo prosta i popularna metoda EICAR. Po skopiowaniu tego wierszu do pliku tekstowego i zapisaniu go jako o rozszerzeniu *.com czy *.txt, program antywirusowy uzna ten plik za wirusa, ponieważ kody te są przechowywane w jego bazie danych. O typie rozszerzenia skanowanych obiektów decyduje producent w zależności od programu i rodzaju skanowania np. szybkie, pełne, inteligentne, tylko sektory rozruchowe, pamięć / procesy, inne. Metoda ta jest bardzo pomocna w przypadku podejrzenia zainfekowania komputera. Ale skanowanie skanowaniu nie jest równe. Na tej płaszczyźnie samo skanowanie dzielimy na:

Skanowanie w tle / on access – podczas korzystania z komputera, program skanuje pliki / procesy pod kątem podejrzanych zachowań korzystając z zaawansowanych technik heurystycznych lub z sygnatur. Każdy uruchamiany program, proces, załadowanie biblioteki, są sprawdzane pod kątem potencjalnej infekcji, nietypowego zachowania aplikacji

Skanowanie on demand – czyli ręczne uruchomienie skanera w celu przeskanowania komputera pod kątem wirusów.

Jednak w dzisiejszych czasach samo skanowanie komputera nie wystarczy. Potrzebna jest ochrona, która w czasie rzeczywistym, podczas korzystania z Internetu uchroni nas przed infekcją. Obecnie poza skanerem on demand / on access, modułem do aktualizacji sygnatur, firewallem (przeważnie w pakietach Internet Security, ale nie tylko), modułem do ochrony poczty, filtrom www, modułem zapobiegania włamaniom / kradzieżom, ochroną sektora MBR, zawierają także bardziej zaawansowane technologie jak monitor behawioralny, analizę w chmurze czy HIPS.

Działanie skanerów polega na wyszukiwaniu określonej sekwencji bajtów w ciągu sprawdzanych danych. W znacznej liczbie wirusów możemy wyróżnić unikalną sekwencję bajtów, czyli sygnaturę, która pozwala na wykrycie wirusa. Jeśli szkodnik zostanie wykryty przez sygnatury - super. Jeśli program nie zawiera sygnatury, do akcja wkracza analiza heurystyczna lub behawioralna (o tym w dalszej części).

Kiedy pojawiły się wirusy polimorficzne znaczenie skanerów zmalało, jednak nadal jest to najważniejsza metoda walki z wirusami. Wirus polimorficzny zmienia swój kod i trudno go zweryfikować samymi sygnaturami. Producenci rozwiązali ten problem opracowując analizę heurystyczną, która jest niezależna od sygnatur. Ta technika korzysta ze sztucznej inteligencji wykrywając wirusy, rozpoznając rożne, nietypowe wzorce zachowań dla aplikacji.

Wirus polimorficzny zaraz po uruchomieniu próbuje się skopiować (powielić) oraz odszyfrować swój początkowy kod. Następne takie kopie tego wirusa są inne niż oryginał. Utrudnia to jego wykrycie, ponieważ program antywirusowy szuka poprzez sygnatury konkretnego fragmentu kodu, który wirus polimorficzny potrafi zmienić / zamaskować / zaszyfrować. I właśnie dlatego opracowano techniki heurystycznego wykrywania wirusów. W przypadku, kiedy antywirus wychwyci takie podejrzane zachowanie, wywoła alarm, i w zależności od ustawień programu – sam go usunie lub poprosi o reakcję użytkownika, pomimo, że nie posiada odpowiednich sygnatur, aby go zneutralizować. Jest to bardzo efektywna technika, jednak mogą zdarzyć się fałszywe alarmy. To ryzyko jest minimalizowane dzięki kontrolerowi spójności, który na bieżąco sprawdza stałe wartości programów np. datę utworzenia, rozmiar, typ, atrybuty i jeśli takie dane zostaną zmodyfikowane, oznacza to infekcję (jednak nie zawsze).

Czym jest antywirusowa analiza heurystyczna?

Producenci oprogramowania twierdzą, że heurystyczne technologie mogą wykryć nieznane wirusy, które nie mają jeszcze opracowanych sygnatur. Rodzi się pytanie w jaki sposób to działa?

Oprogramowanie antywirusowe może wykorzystywać jedną lub kilka technik proaktywnego wykrywania szkodliwego oprogramowania. Główną miarą każdej metody jest analiza podejrzanego pliku, jego cech oraz zachowań w systemie w celu ustalenia czy jest to rzeczywiście wirus. Wielu producentów oprogramowania chwali się swoją techniką wyszukiwania szkodliwych, nieznanych jeszcze zagrożeń (nieznanych – antywirus nie posiada odpowiednich sygnatur, aby wykryć / usunąć wirusa). Jednak jedna technika nie zawsze jest równa innej. Analiza heurystyczna wykorzystuje wiele metod do zwalczania szkodliwego oprogramowania np. analizę pasywną, algorytmiczną, emulację czy piaskownicę (sandbox). Innymi słowy, analiza heurystyczna zawiera zestawy procedur, które analizują kod w plikach wykonywalnych, makrach, skryptach, pamięci, sektorze startowym w celu wykrycia złośliwego oprogramowania.

Metodyka heurystyczna

Emulacja: Na pewno znana dla wielu pod innymi nazwami jako piaskownica lub skanowanie dynamiczne. Technika ta polega na symulacji części kodu w odizolowanym, wirtualnym środowisku przy użyciu różnych metod np. pasywnej heurystyki, która ocenia oraz analizuje kod pliku, jak również poszukuje różnych elementów kodu typowych dla wirusów. Dzięki tej metodzie, potencjalne szkodliwe działanie nieznanego wirusa może być zneutralizowane już na samym początku uruchomieniu programu.

Analiza:  Analiza obejmuje głębokie skanowanie kodu plików oraz monitoruje ich zachowanie. Dany plik może zawierać kod do formatowania dysków, modyfikacji czy usunięcia kluczy rejestru systemowego, etc.

Detekcja sygnaturami generycznymi: technika, dzięki której antywirus może zlokalizować kilka / naście / dziesiąt / set / tysięcy wirusów dzięki jednej sygnaturze. Wirusy mogą się powielać, zmieniać nazwy, ale wywodzą się z tej samej „rodziny” (klasyfikacji). Generyczna detekcja wykorzystuje poprzednie definicje wirusów, aby odnaleźć podobne mu szkodniki, dzięki temu nie zachodzi potrzeba dodawania do bazy tysięcy innych sygnatur, wystarczy jedna, co w rezultacie pozwala oszczędzić rozmiar pobieranych baz wirusów.

Metody analizatora heurystycznego

Metoda statyczna: która polega na analizie kodu w poszukiwaniu charakterystycznych dla szkodliwych programów poleceń. Większość wirusów wyszukuje pliki z rozszerzeniami exe, próbuje je otworzyć i zmodyfikować. Jeśli analizator napotka podejrzane polecenie to zwiększa podejrzliwość dla takiej aplikacji. Kiedy wartość licznika przekroczy zdefiniowany próg, plik jest uznany za szkodliwy. Jedyną zaletą tej metody jest łatwość wdrożenia oraz niskie użycie zasobów komputera, jednak w przeciwieństwie do metody dynamicznej, wykrywalność jest niższa oraz istnieje większe prawdopodobieństwo fałszywego alarmu.

Metoda dynamiczna: pojawiła się równocześnie z wprowadzeniem emulacji poleceń procesora. Metoda ta ma za zadnie emulowanie uruchomienia programu w odizolowanym środowisku i rejestrowanie wszelkich podejrzanych jego działań. Na podstawie takiej analizy, analizator decyduje o możliwej infekcji systemu i blokuje plik lub go usuwa. W przeciwieństwie do statycznej metody, dynamiczna używa więcej zasobów komputera, ale ma dużo większy wskaźnik wykrywalności.

A takie pojęcia jak HIPS czy monitor behawioralny, co to właściwie jest?

HIPS (Host Intrusion Prevention System Host) monitoruje uruchomione procesy, pliki i klucze rejestru. Technologia ta pomaga w wykrywaniu rootkitów, keyloggerów, spyware lub trojanów. HIPS nie tylko ostrzega użytkownika przed jakimkolwiek wtargnięciem, ale także blokuje taką próbę. W zależności od zastosowania technologii HIPS w programie antywirusowym, może wykorzystywać zarówno sygnatury, jak i zaawansowane algorytmy heurystyczne. Dla HIPS-ów możemy ustawić zasady określające zachowanie systemów operacyjnych lub aplikacji / procesów. Ataki, przed którymi ochroni nas HIPS to m.in. wirusy, spam, spyware, robaki, trojany, keyloggery, rootkity, boty i Denial of Service (DoS) oraz Distributed Denial of Service (DDoS).

HIPS oraz monitor behawioralny w zasadzie jest to to samo, ale znacząca różnica polega w działaniu. Zwykłe HIPS-y ostrzegają użytkownika od momentu wykrycia jakiejkolwiek podejrzanej akcji w systemie np. uruchamianie procesu, dostępu do rejestru, uruchomienia bibliotek czy plików lub folderów. Natomiast monitor behawioralny działanie programów monitoruje i kontroluje aż do czasu wykrycia podejrzanej akcji, monitoruje także wprowadzane zmiany przez aplikacje, ale posiada możliwość cofnięcia tych zmian.

Poniższy przykład lepiej to zobrazuje:

Działanie klasycznego hipsa
Działanie klasycznego hipsa
Działanie monitora behawioralnego
Działanie monitora behawioralnego

Monitory behawioralne są mniej natrętne dla użytkownika za sprawą mniejszej ilości alertów. Niektórzy może sądzą, że nie są tak skuteczne jak klasyczne HIPS-y. Sprawa pozostaje otwarta. Czy jesteś użytkownikiem "paranoikiem", a może również dbasz o bezpieczeństwo, ale nie chcesz być zalewany komunikatami? Wybór należy do Ciebie.

Technologia porównywania

Gdy program antywirusowy sprawdza jakikolwiek plik, odwołuje się do bazy sygnatur wirusów (definicji), które zostały opracowane przez ludzi lub przez zastosowane przez nich narzędzia do tego celu. Jeśli jakiś fragment badanego kodu przez program pokrywa się z którymś ze zidentyfikowanych wirusów, oprogramowanie antywirusowe wykonuje akcję blokując plik, usuwając lub poddając go kwarantannie. Aplikacja może także rozpocząć próbę usunięcia szkodliwej części kodu z pliku, ale aby ta operacja odniosła sukces, potrzebne są częste aktualizacje sygnatur. A co to jest ta kwarantanna? Jest to zdefiniowany / wydzielony obszar przez program antywirusowy na dysku gdzie trafiają zainfekowane pliki, które nie mogą się z tego miejsca rozprzestrzeniać. Sama kwarantanna blokuje również dostęp do zainfekowanego pliku innym programom.

Inteligentne techniki antywirusowe potrafią zidentyfikować proces, który nie jest zapisany w sygnaturach programu, ale jego zachowanie w systemie jest podejrzane. Program wysyła wtedy informacje o danym procesie do twórców oprogramowania antywirusowego, którzy decydują faktycznie czy to zachowanie jest charakterystyczne dla wirusów. Jeśli tak - dołączają stosowne sygnatury.

Pomimo, że opracowane techniki porównywania na podstawie sygnatur a w następstwie samej identyfikacji są nadal bardzo skuteczne i powszechnie stosowane przez producentów, autorzy wirusów zawsze będą szukać sposobu na jej ominięcie. Niestety, ale będą zawsze krok przed przed twórcami oprogramowania antywirusowego. Stosując bardzo skomplikowane techniki ukrycia zarażonej części kodu lub w inny sposób modyfikując pliki by nie pokrywały się one z sygnaturami w bazie wirusów (wirusy polimorficzne) zapoczątkowali opracowanie analiz heurystycznych.

Co to jest chmura antywirusowa i czym rożni się od typowych sygnatur?

Sama aktualizacja sygnatur odbywa się pomiędzy serwerem producenta a użytkownikiem. Natomiast chmura działa w obie strony. Jeśli u jednego użytkownika zostanie wykryty wirus, metadane pliku zostają wysyłane do chmury, gdzie następnie są przetwarzane i przekazywane każdemu użytkownikowi w chmurze.

Sygnatury na dysku a w chmurze
Sygnatury na dysku a w chmurze

Same sygnatury (bazy wirusów) są oparte na plikach, natomiast chmura oparta jest o metadane. Metadane (hash) zawierają informacje o pliku np. w jaki sposób dostał się do naszego komputera czy jego zachowanie w systemie. Nowe i nieznane jeszcze zagrożenia są analizowane w chmurze za pomocą wysłanych metadanych, pomimo, że same potencjalnie szkodliwe pliki nie są wysłane do analizy. W ten sposób gromadzone są dane pochodzące od wielu użytkowników liczone w milionach. Jest to bardzo szybka i efektywna technologia (oczywiście nie pozbawiona wad), dzięki której użytkownicy w krótkim czasie uzyskują informacje na temat nowych zagrożeń, jednak takie rozwiązanie może również generować fałszywe alarmy.

Chmura - za

Bardzo krótki czas reakcji: nowe zagrożenia mogą być wykryte i zneutralizowane znacznie szybciej niż przy typowych sygnaturach.

Przetwarzane metadane znajdują się na serwerze producenta, więc nie mogą być analizowane przez cyberprzestępców.

Szkodliwe oprogramowanie łatwiej zostaje wykryte, dzięki wykorzystaniu innym technologiom różniącym się od analizy heurystycznej.

Rozmiar danych dostarczanych do komputera użytkownika jest znacznie mniejszy niż w przypadku zwykłych sygnatur.

Chmura - przeciw

Nie do końca jasna sprawa z wykrywaniem wirusów polimorficznych.

W przypadku braku Internetu, jeżeli program nie posiada na dysku sygnatur wirusów jesteśmy pozbawieni ochrony antywirusowej.

Podsumowując, dostęp do chmury zależy całkowicie od stałego połączenia z Internetem. Oczywiście, również z sieci pobieramy tradycyjne bazy wirusów. Jednak chmura ma to do siebie, że w przypadku kiedy zabraknie nam Internetu, jesteśmy prawie bezbronni. Użytkownik posiadając tradycyjnego antywirusa będzie posiadał aktualne sygnatury do momentu przerwania połączenia, oraz będzie dysponował innymi metodami obrony przez infekcją np. analizę behawioralną czy tradycyjny, ale wciąż niezawodny skaner on access / on demand. Wyobraźmy sobie sytuację. Korzystamy z mobilnej sieci w laptopie. Znajomy przynosi nam pendrajwa i prosi nas o skopiowanie danych. Może się tak zdarzyć, że nie włączamy sieci, bo nie jest nam potrzebna w tym momencie. Jeśli na pendrajwie znajduje się wirus – jesteśmy praktycznie bezbronni (zależy od konkretnego antywirusa - tego tematu teraz nie poruszę), co przedstawia poniższy rysunek.

470476

Dane znajdują się w "ŹRÓDLE" i muszą dotrzeć do "MIEJSCA DOCELOWEGO". Źródłem może być pendrajw czy inne urządzenie. Miejscem docelowym może być dysk twardy, w którym zostaną zapisane dane ze źródła. Dane trafiają na dysk twardy. W przypadku braku Internetu, dane nie zostaną sprawdzone pod kątek zainfekowania, nie zostaną też zdezynfekowane czy zablokowane. Są kopiowane prosto do naszego komputera infekując go.

Warto korzystać z antywirusa?

Zdecydowanie tak. Poniżej przedstawię przykład:

470480

Analizowany kod to Zeus 2.0.8.9. W skrócie, ten wirus jest w stanie przechwycić loginy i hasła, których używamy w naszym koncie internetowym. Potrafi spreparować treści sms‑ów , które wyglądają bardzo wiarygodnie. Bardzo dopracowane są również fałszywe strony imitujące witrynę naszego banku.

HTTP ma różne metody komunikacji. Najbardziej znane to GET oraz POST. Czyli jeśli klikniemy na logo jakiejś strony to przeglądarka wysyła zapytanie:

Host: nazwa_strony.pl  GET /logo.jpg

A serwer odpowiada kodem 200, czyli wszystko OK, po czym wyświetla grafikę. Tak samo jest przy logowaniu na wszystkie strony internetowe. Witryny banków posiadają swoje okienka do logowania. Okienko z miejscem na login może mieć nazwę:

Użytkownik = jan_kowalski  Hasło = kowalski_haslo_1234

Jeśli chcemy się zalogować to wprowadzamy swoje dane, i przy kliknięciu w ZALOGUJ, przeglądarka wysyła pakiet POST:

POST /zaloguj?t=0dd17720fe21f6569f45a4fbddb207b9 HTTP/1.1  Host: nazwabanku.pl  login=jan_kowalski&pass=kowalski_haslo_1234 Host: nazwa_banku.pl
POST / logowanie.php  użytkownik = jan_kowalski hasło = kowalski_haslo_1234

W przeciwieństwie do keyloggera, którego można łatwo oszukać np. chcemy napisać wyraz samochód, to pisząc wszystko jednym ciągiem, napiszemy "samochód", ale używając myszki lub wirtualnej klawiatury możemy klikać w różne miejsca uzupełniając wyraz, przykład:

Najpierw piszemy "chód" a potem klikamy przed literkę "c" i dopisujemy "samo". W rezultacie wpisaliśmy "samochód", ale keylogger „widzi” tylko klawisze, wiec zapisuje ciąg znaków jako "chódsamo". Natomiast Zeus, który posiada tzw „haki” do Internet Explorer'a, potrafi się do niego podczepić, nie zapisuje haseł na poziomie klawiatury, ale na poziomie pakietu. W celu zalogowania się do banku musimy podać poprawne hasło i login a Zeus przechwyci je wprost przed prawidłowym wysłaniem czyli w momencie zapytania przeglądarki.

Czy w dalszym ciągu nie warto używać oprogramowania antywirusowgo? Czy jeśli serfujesz tylko po stronach "sprawdzonych", nie trafiasz na treści pornograficzne, czy nadal sądzisz, że nie możesz zainfekować komputera? A czy korzystasz z Facebooka i klikasz w załączniki od znajomych? Czy korzystasz z bankowości internetowej? Zakupów online? A komputer zombie, botnety- czy obiła Ci się o uszy taka nazwa? Generalnie, zarażone komputery możemy podzielić na scentralizowane oraz zdecentralizowane. Ten pierwszy, scentralizowany, używa do komunikacji serwera głównego, czyli miejsca gdzie wszystkie komputery łączą się, aby otrzymywać polecenia, albo wysyłać dane np. hasła. Ten drugi działa na zasadzie p2p czyli ''każdy z każdym'', i póki co nie ma uniwersalnego sposobu na wyłączenie takiego botnetu. A zagrożenia jakie z tego płyną? Kradzież danych, pieniędzy, osobowości.

Podsumowując, nikogo nie zmuszamy do korzystania z oprogramowania antywirusowego. Możemy tylko przestrzegać oraz zalecać prewencyjne działania.

Podsumowanie

Czasy, w których programy antywirusowe opierały się na samych sygnaturach już dawno minęły. Wraz ze wzrostem mocy obliczeniowej komputerów, opracowywane są coraz to nowsze i lepsze techniki walki z twórcami szkodliwego / złośliwego oprogramowania. Obecne zastosowane techniki wykrywania wirusów są na tyle skuteczne, że pozwalają większości spać spokojnie nie obawiając się o swoje dane. Zaawansowane analizy heurystyczne, monitory behawioralne aż wreszcie chmura, która nie jest pozbawiona błędów (z czasem zyska na wartości), w następstwie których zostaną opracowane kolejne techniki, które będą chronić nas przed wirusami. Jeszcze skuteczniejsze i jeszcze bardziej zautomatyzowane. Patrząc na przyrost mocy obliczeniowej na przestrzeni dekady (niestety dla autorów aplikacji antywirusowych), człowiek przez kolejne kilkanaście lat zawsze będzie przez maszyną. Ktoś wymyśli groźnego wirusa, na którego zawsze z czasem opracują szczepionkę. I tak mamy błędne koło. Zawsze znajdą się ludzie, którzy będą chcieli wzbogacić się na naszej niewiedzy. Rozumiemy także, że nie każdy musi być ekspertem z dziedziny bezpieczeństwa, ale edukacja w tej dziedzinie to konieczność. Każdy użytkownik powinien posiadać przynajmniej podstawową wiedzę na temat bezpieczeństwa w Internecie.

Pamiętajmy też, aby aktualizować swoje programy – nie tylko te antywirusowe.

Wybrane dla Ciebie
Komentarze (6)