Czy skanery antywirusowe faktycznie łapią wirusy?

Czy skanery antywirusowe faktycznie łapią wirusy?

Ale tyle często wystarcza, aby zainfekować wiele maszyn, nawet jeśli są chronione skanerami antywirusowymi. Takie są wyniki testu z CHIP 02/2011, s96. Żaden z badanych programów nie zablokował 100 proc. malware’u nowego typu ani do końca nie wyczyścił zainfekowanych komputerów. Głównym problemem okazuje się ilość, bo według Panda Security codziennie pojawia się 63 tys. nowych zagrożeń, z których wiele jest aktywnych tylko przez krótki czas i atakuje niewielką liczbę PC. Rozpoznanie i usunięcie każdego wirusa jest prawie niemożliwe. Aby zrozumieć mechanizm powstawania luk w oprogramowaniu antywirusowym, prześledzimy drogę wirusa przez poszczególne poziomy skanera.

Filtry: blokada gniazd wirusów

Strony przemycające malware przez luki w przeglądarkach to główna droga rozpowszechniania szkodników. Wrogi kod, czyli exploity, to najczęściej skrypty w językach HTML i JavaScript. Aby mogły się przenosić, przeglądarka musi najpierw otworzyć stronę, na której są zapisane. Zanim jednak malware przeskoczy na komputer użytkownika, musi pokonać filtr URL i firewall. To pierwsza ważna linia obrony. Działania prewencyjne w tym przypadku polegają na porównaniu URL z czarną i białą listą. Ale ta zapora nie jest zbyt szczelna, ponieważ według Panda Security co tydzień pojawia się 57 tys. nowych stron z malware’em i trudno jest zarejestrować je wszystkie na czas.

Jeśli strona jest nieznana, przeglądarka ściąga ją jako plik tymczasowy i sprawdza pod kątem występowania szkodliwych kodów. Oprócz tego firewall kontroluje całą komunikację sieciową i analizuje przychodzące pakiety danych. Na przykład F-Secure wykorzystuje Stateful Packet Inspection, który w przypadku każdego wysyłanego pakietu sprawdza, czy zażądała go aplikacja taka jak przeglądarka, czy też próbuje on przeniknąć tylnymi drzwiami. Symantec analizuje dodatkowo zawartość pakietów danych (Deep Packet Inspection), aby już na tym poziomie zablokować szkodliwe skrypty albo ataki typu XSS, polegające na podmianie w locie treści stron internetowych.

W ten sposób ochrona antywirusowa broni komputer przed zdecydowaną większością exploitów. Ale znanych. Malware nowego typu i zero-day exploits, czyli nienotowane wcześniej złośliwe kody, mogą zostać przeoczone. Jeśli filtr URL i firewall nie zainterweniują, exploit ściąga malware i próbuje go uruchomić. Zanim jednak plik się uaktywni, będzie musiał pokonać inne bariery skanera: sygnatury, heurystykę i analizę zachowania – procedury przebiegające w ułamkach sekund. W celu rozpoznania szkodnika antywirus przechwytuje nieznany plik i konfrontuje go z bazą danych sygnatur. Każda z nich składa się z wartości hash, czyli odcisku palca pliku, a często także z pojedynczych próbek kodu.

Jeśli sygnatura jest nowa, trafia do laboratorium antywirusowego wytwórcy skanera. Tym samym malware’owi pozostaje tylko dwie do czterech godzin na pokonanie innych barier. W tym czasie laboratoria analizują bowiem nowe przypadki, co według Symanteca trwa około jednej godziny. Jeśli okaże się, że nieznany kod jest szkodnikiem, jego sygnatura zostanie dołączona do aktualizacji programu antywirusowego, co maksymalnie zajmuje kolejne trzy godziny. Od tego momentu szkodnik jest notowany i nie ma żadnych szans: w naszym ostatnim teście wszystkie programy rozpoznały 100 proc. znanego malware’u.

Tak malware przechytrza obronę

Szkodnik musi być po prostu szybszy od laboratoriów antywirusowych. Zdaniem Stefana Wesche z Symanteca problemem tych ostatnich jest zbyt mała ilość czasu na uaktualnienie centralnych baz sygnatur.

Heurystyka: głęboki wgląd w kod

Jeśli malware okaże się szybszy od laboratorium, musi pokonać pozostałe mechanizmy obronne: analizę behawioralną i heurystykę. Ta pierwsza nadzoruje działanie szkodnika, skupiając się na jego zachowaniach odbiegających od normy. Druga szuka z kolei w podejrzanym kodzie ciągów bajtów niewystępujących w programach użytkowych, lecz typowych dla malware’u.

Aby ją oszukać, twórcy szkodników szyfrują albo kompresują ich kod, żeby budową nie przypominały malware’u. Dlatego ważnym elementem heurystyki są dekompresatory, które przenikają zaprogramowane często wyłącznie na użytek malware’u, egzotyczne algorytmy archiwizujące i szyfrujące. Po ich złamaniu rzeczywisty kod podejrzanego pliku jest widoczny i może być poddany analizie heurystycznej oraz behawioralnej pod kątem dziwnych właściwości budowy i zachowania.

Tak malware przechytrza obronę

Autorzy wirusów wypełniają pliki na przykład przypadkowymi liczbami albo innymi bezużytecznymi elementami, aby zamaskować ich prawdziwe funkcje. Innym sposobem na oszukanie heurystyki jest kodowanie i szyfrowanie. Obok prostego kodowania base-64 producenci oprogramowania antywirusowego zetknęli się już z silnym szyfrowaniem RSA, np. w Max-Sploit-Toolkit. Niektóre szkodniki, takie jak trojan Alisa, wykorzystują do zakłócania analizy heurystycznej nowe zestawy poleceń CPU, wyjątki systemu Windows albo niecodzienne funkcje API.

Bez takiego maskowania pliku malware nie zajdzie daleko, bo podczas analizy heurystycznej musi przetrwać jeszcze statystyczną klasyfikację kodu polegającą na szukaniu podobieństw ze znanym malware’em. Zaliczają się do niej format i rozmiar pliku, sygnatury małych części kodu i certyfikaty cyfrowe. Według Avira sama heurystyka rozpoznaje około 60 proc. nieznanego malware’u. Pozostałe 40 proc. musi przejść jeszcze analizę zachowania, która rozpoczyna się po analizie heurystycznej,

a w niektórych skanerach przebiega równolegle z nią. Granica pomiędzy tymi poziomami skanera jest często rozmyta.

Piaskownica: wirtualny test pliku

Trafiony, zatopiony Polowanie na wirusy nie zawsze jest tak skuteczne jak tutaj. Wobec nowych trików malware'u pakiety bezpieczeństwa są często bezradne.

Trafiony, zatopiony Polowanie na wirusy nie zawsze jest tak skuteczne jak tutaj. Wobec nowych trików malware’u pakiety bezpieczeństwa są często bezradne.

Aby nie zagrażać systemowi użytkownika, podejrzany kod jest wykonywany w wirtualnym środowisku zwanym piaskownicą. To właśnie w nim silnik skanera rozpoznaje osobliwe zachowanie, takie jak ściąganie kolejnych plików z serwisów hostingowych albo ukrywanie procesów. Silnik pakietu bezpieczeństwa BitDefender podczas analizy przyznaje punkty za podejrzane działania, np. zakładanie nowego wpisu w Rejestrze systemowym. Jeśli liczba punktów przekroczy wartość graniczną, w zależności od ustawień programu, proces zostaje natychmiast zablokowany albo decyzję o jego działaniu pozostawia się użytkownikowi. Wartość graniczna jest wynikiem wyważenia dwóch czynników: siły ochrony przed malware’em i komfortu obsługi – bez tego byłoby zbyt wiele fałszywych alarmów, ponieważ również pożyteczne procesy mogą dokonywać zapisów w Rejestrze, takich jak np. wpisy Autostartu.

Program ochronny protokołuje jednak wykonywane przez kod akcje i zmiany wprowadzone do systemu. Niektóre pakiety, np. F-Secure, w razie potrzeby mogą przywrócić stan sprzed dokonania modyfikacji. Procedura protokołowania przechwytuje dane dotyczące wywoływania funkcji API Windows, które wprowadzają zmiany w Rejestrze i systemie plików. Kontroli takiej podlega każdy uruchomiony przez aplikację proces, z wyłączeniem niektórych poleceń systemowych, takich jak »crss.exe«, »lsass.exe« i »smss.exe«, oraz procesów otwieranych przez pakiet bezpieczeństwa.

Tak malware przechytrza obronę

Szkodnik wykorzystuje pewną słabość skanera antywirusowego, który tylko przez krótki czas może wykonywać podejrzany kod w piaskownicy – dłuższa praca w tym trybie odczuwalnie spowolniłaby komputer. Dobrze zaprogramowany malware omija tę emulację, opóźniając wykonanie kodu. Jeśli skaner antywirusowy po wirtualnym teście nie ma już uzasadnionych podejrzeń, to zezwala na wykonanie pliku.

Identyfikacja: sieciowa kartoteka

Zarówno podczas analizy, jak i potem, kiedy plik jest wykonywany i kontrolowany, pakiety bezpieczeństwa porównują informacje o nim z bazami danych w chmurze. Te zdradzają, czy plik został już zauważony i przesłany przez innego klienta oraz czy bazujące na reputacji technologie zakwalifikowały go jako pożyteczny czy złośliwy. Takie globalne porównywanie pomaga zwłaszcza w przypadku nowego i bardzo rzadkiego malware’u, którego historię szkód trudno udokumentować. Przykładowo zainstalowane na całym świecie programy antywirusowe firmy McAfee skanują aż 4,7 biliona plików dziennie, co sprawia, że malware’owi trudno jest niespostrzeżenie zainfekować wiele systemów.

Technologia przetwarzania w chmurze stała się też niezbędna ze względów technicznych – ilości danych są dziś po prostu za duże dla lokalnych baz danych. Przynajmniej część tej masy informacyjnej można więc przenieść do Sieci. Dane o malwarze zapisane są najczęściej jako wartości hash oraz dodatkowe informacje, takie jak pochodzenie i wielkość pliku.

Tak malware przechytrza obronę

Wirus musi tworzyć kody dynamiczne – na przykład dostrzeżony w Chinach trojan Bohu podczas każdej nowej infekcji dodaje do kodu szkodnika przypadkowe dane, przez co zmienia się jego wartość hash. W efekcie weryfikacja z bazą sygnatur w chmurze daje wynik negatywny – proste, ale skuteczne.

Dezynfekcja: słaba wydajność

Oczyszczanie zainfekowanego systemu sprawia pakietom bezpieczeństwa równie duże problemy jak rozpoznawanie wirusów. Nasz test wykazał, że wszystkie programy tego typu mają kłopoty po zainstalowaniu na zainfekowanym komputerze i rozpoznaniu szkodnika. Pojedyncze procesy malware’u uruchamiane z katalogu systemowego są stosunkowo łatwe do wyeliminowania: jeśli skaner uzna proces za złośliwy, kończy go i natychmiast kasuje albo przenosi do kwarantanny – bezpiecznego obszaru, skąd nie da rady go uruchomić, ale można przywrócić.

Prócz miejsca, w którym znaleziono szkodliwy plik, skaner przeszukuje inne manipulowane przez typowy malware lokalizacje, np. katalogi systemowe Windows, wpisy Autostartu w Rejestrze albo stronę startową przeglądarki. Jest to tzw. oczyszczanie generyczne, konieczne, bo dla nowego malware’u nie istnieją jeszcze skrypty leczące, które potrafią cofnąć wszystkie zamiany wprowadzone do systemu przez szkodnika. Wynika z tego, że modyfikacje Windows mogą być zachowane pomimo zablokowania aktywnego procesu. Te pozostałości są wprawdzie nieszkodliwe, ale mogą być przyczyną fałszywych alarmów po zainstalowaniu innego skanera.

Tak malware przechytrza obronę

Konieczne jest współdziałanie szkodników. Często służy do tego dropper, czyli składnik malware’u wyspecjalizowany w instalacji właściwego szkodnika. Przykładowo dropper Dunik wciąż na nowo ściąga skasowanego trojana, a oba są chronione rootkitem, który zagnieżdża się na poziomie jądra Windows. W tym przypadku blokada pliku chroni proces malware’u przed ingerencją skanera i tak szkodnik wymyka się dokładnej analizie. Aby go wytropić, program antywirusowy za pomocą usługi kopiowania w tle (Windows Shadow Copy) tworzy zrzut podejrzanego pliku i poddaje go analizie. Gdy malware zostanie rozpoznany, użytkownik musi uruchomić ratunkową płytę CD i dopiero za jej pomocą oczyścić peceta. Tylko w ten sposób można wyeliminować ochronę rootkita.

Wada

O ile przy normalnym skanowaniu analizuje się zachowanie każdego podejrzanego pliku i sprawdza je w chmurze, o tyle skaner z płyty ratunkowej z powodu ograniczeń systemowych może kwalifikować tylko na podstawie lokalnych sygnatur i heurystyki. Jeśli malware nie skapituluje nawet wtedy, pozostaje tylko ponowna instalacja Windows. Nigdy nie wolno mieć nadziei, że szkodniki po jakimś czasie same przestaną uprawiać swój proceder.

Lista podejrzanych

Heurystyka i analiza zachowania kontrolują system i aktywne procesy. Jeśli któryś z tych ostatnich wielokrotnie zwróci na siebie uwagę, to najczęściej znajduje się w nim wirus. Podejrzane są:

NA POZIOMIE PLIKU

  • u pliki w katalogu systemowym
  • u samoreplikujące się procesy
  • u kod w pamięci obcej aplikacji
  • u procesy z wysokimi uprawnieniami
  • u brak interfejsu po starcie aplikacji
  • u działania automatyczne
  • u niezwykłe ikony, na przykład ikona folderu dla wykonywalnego pliku

W SYSTEMIE OPERACYJNYM

  • u wpisy Rejestru, które uruchamiają programy wraz ze startem systemu
  • u sterowniki jadra ukrywające procesy
  • u pakiety danych przedostające się do systemu przez protokół sieciowy
  • u porty, przez które aplikacje wysyłają oraz odbierają dane z zewnątrz
  • u interfejsy, takie jak np. USB, przez które może się przedostać malware

Tak nieskuteczne są pakiety bezpieczeństwa

Doskonały wynik rozpoznawania i całkowite usuwanie malware’u
– współczesne pakiety bezpieczeństwa jeszcze tego nie potrafią.
Wykazują to wyniki naszego ostatniego testu porównawczego.