Wiarygodność testów programów antywirusowych

OXYGEN THIEF

Bardzo aktywny
Członek Załogi
Administrator
Dołączył
26 Maj 2010
Posty
35567
Reakcje/Polubienia
24594
Miasto
Trololololo
W przypadku programów antywirusowych jedną z najbardziej kontrowersyjnych kwestii są ich testy. Wzbudzają wiele emocji wśród użytkowników, wśród potencjalnych nabywców i wśród konkurujących firm antywirusowych. Są istotne, ponieważ kształtują obraz produktu antywirusowego – co przekłada się na decyzje o jego zakupie, czyli na pieniądze.

Author: Jakub Dębski

Source: Hakin9 02/2008

Są trzy rodzaje kłamstw: kłamstwa, okropne kłamstwa i statystyki – Benjamin Disraeli
Kto przeprowadza testy

Testujących programy antywirusowe można podzielić na kilka grup. Pierwszą tworzą indywidualni użytkownicy, którzy korzystają z programu antywirusowego. Często chcą sprawdzić, czy dokonali właściwego wyboru, wykorzystując na przykład skaner online producenta konkurencyjnego programu. Choć nie mają pojęcia o zagrożeniach, wykrzykują hasła wysławiające konkretne aplikacje i znieważające inne, ponieważ któryś z programów wykrył wirusa, którego nie wykrył inny antywirus. Wyniki swoich testów publikują na forach internetowych, na blogach i w komentarzach do artykułów. Tych wypowiedzi nikt rozsądny nie traktuje poważnie, ponieważ są całkowicie subiektywne i błędnie interpretują fakty. Drugą grupą są testerzy–amatorzy. Testy przeprowadzane przez nich polegają na instalacji kilku programów antywirusowych i przeskanowaniu większej lub mniejszej (zwykle mniejszej) kolekcji zagrożeń. Przygotowują oni strony z wynikami, na których znajdują się zestawienia wykrywalności programów. Osoby te, przeprowadzając testy czysto amatorsko, nie muszą dbać o ich jakość – przez co jest ona bardzo niska. Wyniki, choć na pierwszy rzut oka interesujące, są sfałszowane na skutek przyjęcia błędnej metodyki. Błędna metodyka jest niestety najczęstszym problem, z którym borykają się również profesjonalni testerzy. Jak pokażę w dalszej części artykułu, nawet przyjęcie lepszej nie daje wiarygodnych rezultatów. Trzecią grupą są profesjonalni testerzy i firmy wydające certyfikaty. Na bieżąco współpracują z firmami antywirusowymi w celu stworzenia jak najlepszych procedur testowych. Czwarta grupa to dziennikarze, którzy tworzą zestawienia opierając się na testach wykonanych własnoręcznie (często takie testy są równoważne amatorskim) lub na testach zleconych profesjonalistom. W swoich artykułach uwzględniają także dodatkowe kryteria oceny, takie jak jakość wsparcia technicznego, jakość instrukcji, dodatkowych narzędzi, wyglądu interfejsu użytkownika czy nawet pudełka. Kolejność programów w testach mocno zależy od przyjętych kryteriów dodatkowych – również tych niezwiąznych z wykrywalnością.
Cel i rodzaje testów

Celem testów powinno być przełożenie jakości produktu na wartości mierzalne. Przed testerem stoi zadanie wybrania tego, co testować, jak testować i jakie przyjąć kryteria oceny. Do standardowych testów programów antywirusowych należą:
• testy wykrywalności,
• testy szybkości skanowania,
• testy ochrony proaktywnej (heurystyki),
• testy fałszywych alarmów.

Czasami przeprowadzane są dodatkowe testy:
• wykorzystania zasobów,
• szybkości reakcji na zagrożenia,
• możliwości przebicia się przez warstwy ochronne plików (protektory),
• skuteczności dodatkowych modułów (blokady behawioralne, zapory ogniowe, leczenie, skanery protokołów sieciowych, wykrywacze rootkitów itd.),
• przyjrzyjmy się podstawowym błędom popełnianym przez testerów w poszczególnych kategoriach.
Wykrywalność

Za główny wyznacznik jakości programu antywirusowego uznawana jest skuteczność detekcji znanych zagrożeń. Testujący skanują kolekcję plików i na podstawie wyników ustalają procentową skuteczność programu. Test ten wydaje się być na tyle prosty, że trudno wymyślić, w jaki sposób można przeprowadzić go niepoprawnie. Pozory mylą, gdyż neutralne przeprowadzenie go jest praktycznie niemożliwe. Pytaniem, które każdy powinien zadać, jest skąd testujący biorą próbki zagrożeń? Większość amatorów opiera testy na niewielkiej kolekcji zagrożeń, najczęściej pobranej z Internetu, ze stron hakerskich. Kolekcja taka składa się z od kilkuset do kilku tysięcy plików. Ponieważ współcześnie jest to liczba zagrożeń, która każdego dnia dodawana jest do baz programu antywirusowego, jest to próba zbyt mała do przeprowadzenia rzetelnych testów. Aby testy miały sens, konieczne jest wykorzystanie bogatej bazy zagrożeń, jaką starają się zdobyć profesjonalne firmy testujące. Wykorzystują one różne źródła plików:

• pobranie ze stron hakerskich,
• od dostawców skrzynek pocztowych,
• z honeypotów;
• zebrane przez roboty internetowe,
• od niezależnych zbieraczy,
• od producentów programów antywirusowych.

Dostawcy skrzynek pocztowych są dobrym źródłem robaków pocztowych, ale nie są w stanie dostarczyć koni trojańskich, wirusów infekujących pliki, dialerów, downloaderów czy exploitów. Do tego służą honeypoty i roboty internetowe, które chodzą po stronach i pobierają niebezpieczne oprogramowanie. Źródłem, które dostarcza więcej próbek, są niezależni zbieracze, którzy kolekcjonują niebezpieczne oprogramowanie i wykorzystują powyższe źródła. Ponieważ wymieniają się z osobami z całego świata, są w stanie sprowadzić specyficzne dla wybranego regionu konie trojańskie. Kolejnym źródłem są same firmy antywirusowe, które mają najwięcej próbek. Jedna firma jest w stanie dostarczyć do testu więcej próbek niż wszystkie powyższe źródła razem wzięte. Miesięczny zestaw może zawierać nawet kilkadziesiąt tysięcy próbek. Z tego powodu firmy antywirusowe mają największy wpływ na zestaw testowy. Ponieważ pomiędzy firmami następuje wymiana próbek, te, które wymieniają się i te, które dostarczają najwięcej próbek mają największe szanse uzyskać wysoki wynik w testach. Nijak ma się to rzeczywistości, gdyż liczy się jedynie liczba wykrywanych plików zestawu testowego. Czyich próbek w zestawie jest więcej, ten wygrywa. Kolejną kwestią jest jakość samego zestawu. W jaki sposób można sprawdzić, czy pliki w zestawie testowym są rzeczywiście zagrożeniami, a nie na przykład uszkodzonymi plikami, w których programy antywirusowe przypadkiem coś wykrywają? Niektórzy robią to następująco: Skanujemy próbki za pomocą AVP i F–prot i usuwamy wszystkie oznaczone jako OK, Prawdopodobnie Zainfekowane, Podejrzane lub Uszkodzone (tekst z jednego z największych amatorskich testów). W efekcie tego pozostają w kolekcji jedynie próbki, które są wykrywane przez powyższe antywirusy, a usuwane te, które są wykrywane wyłącznie przez inne. Zgadnijmy, które dwa antywirusy będą zawsze w czołówce powyższego testu? Testujący powinni sprawdzić wszystkie próbki, które do nich trafiają. Kolekcje pełne są starych dosowych wirusów, niedziałających na nowych systemach, plików uszkodzonych, plików z pozostałościami po leczeniu infekcji, a nawet plików nie będących nigdy zagrożeniami, w których program antywirusowy błędnie wykrywa zagrożenie. Sprawdzanie powinno odbywać się na komputerach rzeczywistych, ponieważ coraz więcej niebezpiecznego oprogramowania wykrywa wirtualne środowisko i zachowuje się w odmienny sposób. Czy jest w ogóle możliwe sprawdzenie jakości próbek? Na pewno można wykluczyć pliki uszkodzone lub o niepoprawnym formacie. Nie jest jednak możliwe sprawdzenie w rozsądnym czasie całej kolekcji. W najnowszych testach liczbę wykorzystywanych próbek liczy się w setkach tysięcy. Przekracza to możliwości nawet profesjonalnych testerów. Zwróćmy uwagę, że niebezpieczne oprogramowanie działa w środowisku dynamicznym. Bot może działać tylko, gdy potrafi zalogować się na kanał IRC by otrzymywać polecenia, downloader jest groźny tylko, gdy aktywny jest serwer HTTP, z którego ściąga niebezpieczne oprogramowanie, exploit zadziała na nie załatanym oprogramowaniu. Ponieważ długość życia przeciętnego niebezpiecznego programu to kilka dni, większość plików w kolekcjach nigdy już nie będzie groźna. Nie ma również możliwości stwierdzenia, że aktualnie niedziałająca próbka nie zadziała ponownie z biegiem czasu lub uruchomiona w innym środowisku. Istnienie w kolekcjach niedziałających próbek powoduje absurdalną sytuację –programy antywirusowe muszą wykrywać zagrożenia w plikach, które nie są groźne, wyłącznie w celu osiągnięcia lepszego wyniku w testach. Prowadzi to do sytuacji, w której tester stwierdza, że plik jest na pewno groźny, bo wykrywa go kilka firm antywirusowych, po czym kolejne firmy muszą dodać go do swoich baz, aby nie pozostać w tyle w testach. Nawet w przypadku sprawdzania poprawności próbek przez testujących istnieje efekt zwany psuciem kolekcji. Polega on na tym, że do odróżnienia dwóch próbek najczęściej wykorzystuje się sumę kontrolną pliku (najczęściej MD5). Zmiana choć jednego bajta (lub dopisanie go na końcu pliku) powoduje, że w kolekcji znajdą się dwa prawie identyczne pliki. W momencie, gdy tak zduplikowany plik jest wykrywany tylko przez jednego antywirusa, uzyskuje on przewagę nad konkurencją. Co w przypadku, gdy plik jest zduplikowany 1000 razy? Czy to wciąż inny robak (w końcu ma inne MD5), czy ten sam i plik w kolekcji powinien pozostać jeden? Jeżeli tak, to jaką przyjąć miarę podobieństwa do wykluczania podobnych plików z kolekcji? Niestety, kolekcje są pełne takich próbek, być może umieszczanych w nich celowo.
Szybkość skanowania

Drugim najpopularniejszym kryterium testu jest szybkość skanowania programów antywirusowych. W tym przypadku testujący przyjmują błędną metodykę z powodu niewiedzy na temat działania programów antywirusowych. Najczęściej proces testowania przebiega następująco:
• programy antywirusowe są ściągane ze strony producenta lub otrzymywane od niego,
• programy instalowane są na komputerach testowych,
• o określonej godzinie następuje ich aktualizacja,
• wyłączany jest proces aktualizacji,
• następuje test poszczególnych programów.

W przypadku testów profesjonalnych proces aktualizacji nie następuje nigdy, a jedynie testowane są wersje otrzymane od producenta programu. W ten sposób nie powstają problemy związane z różnicami czasów aktualizacji. Można dzięki temu przetestować wszystkie programy na jednym komputerze, na zapamiętanym obrazie systemu. Większość testów amatorskich pomija kwestie buforowania dostępu do plików przez system plików, przez co kolejny testowany program antywirusowy działa szybciej niż pierwszy uruchomiony. Testerzy profesjonalni dokonują testów dokładnie w takich samych warunkach (przywrócenie obrazu systemu), przez co szybkość nie powinna być sfałszowana. Tak jednak nie jest. W niektórych programach antywirusowych stworzono mechanizmy, dzięki którym wypadają one lepiej w testach. Specjalny sterownik sprawdza, czy plik został już skontrolowany i plik taki nie jest sprawdzany ponownie. Z tego powodu uruchomienie (bez przywrócenia czystego systemu, nawet po restarcie) skanowania on–access lub on–demand powoduje, że drugi w kolejności test przebiega błyskawicznie. W rzeczywistości taki sterownik nie przynosi zysku. Po każdej aktualizacji programu antywirusowego pliki muszą być sprawdzone ponownie, ponieważ w bazach pojawią się nowe informacje o zagrożeniach i plik występujący na dysku może okazać się właśnie dodanym zagrożeniem. Aktualizacje programów antywirusowych następują kilka razy dziennie, więc plik musi być po każdej z nich sprawdzany. Ponieważ w testach profesjonalnych aktualizacje są wyłączane, programy stosujące wyżej wymienioną technikę osiągają bardzo dobre rezultaty dla skanera on–access lub on–demand, w zależności od tego, który z nich jest testowany jako drugi. Sterownik taki powoduje dodatkowe zagrożenie związane z możliwością podmiany czystego pliku na niebezpieczny przy nieaktywnym sterowniku. Plik taki nie zostanie sprawdzony aż do kolejnej aktualizacji programu antywirusowego. Innym błędem powtarzanym przez amatorów jest testowanie szybkości skanowania na kolekcjach zagrożeń zamiast na czystych plikach. Test taki nie ma sensu, ponieważ istotne jest spowolnienie systemu w przypadku czystych plików. W rzeczywistym systemie potencjalne zagrożenia stanowią ułamek procenta czystych obiektów, które są sprawdzane przez program antywirusowy. Sprawdzanie obiektów groźnych może być długie – ważne, aby było skuteczne.
Testy ochrony proaktywnej

Współcześnie programy antywirusowe zmierzają w kierunku blokowania niebezpieczeństw zanim dotrą one do użytkownika. Jedną z najskuteczniejszych metod są mechanizmy heurystyczne wykrywające nowe zagrożenia, których sygnatury nie są jeszcze znane. Heurystyka najczęściej testowana jest w następujący sposób: • program antywirusowy i jego bazy są zamrażane określonego dnia, • po miesiącu, dwóch lub trzech nowe pliki z kolekcji są testowane za pomocą programu antywirusowego, • liczba wykrytych próbek stanowi o sile mechanizmów heurystycznych. Autorzy testów po raz kolejny popełniają błąd w metodyce, przez co test ten nie oddaje rzeczywistej skuteczności. Przykładowo silnik heurystyczny programu ESET NOD32 jest silnikiem adaptującym się. Każda dodana sygnatura generyczna zwiększa skuteczność detekcji heurystycznej, gdyż silnik dostosowuje się do aktualnie pojawiających się zagrożeń. Każda kolejna aktualizacja programu zwiększa prawdopodobieństwo wykrycia nowego zagrożenia. Ponieważ program antywirusowy w teście zostaje zamrożony, jego testowa skuteczność jest znacznie mniejsza niż programu na bieżąco aktualizowanego. Testy ochrony proaktywnej są niemiarodajne również z innego powodu. Tym powodem jest różnica w czasie dostępu do próbek przez testującego i przez producenta programu antywirusowego. Przyjrzyjmy się sytuacji, w której producent programu antywirusowego otrzyma próbkę szybciej niż testujący:
• producent programu dodaje wzorzec próbki do programu,
• następuje zamrożenie programu przez testera (przestaje być aktualizowany),
• testujący otrzymuje daną próbkę i dodaje ją do kolekcji próbek nowych,
• po określonym czasie za pomocą zamrożonego programu antywirusowego testowana jest skuteczność wykrywania nowych próbek,
• próbka jest wykrywana wzorcem, ale tester uznaje ją za nową, więc detekcję traktuje jako heurystyczną i zawyża skuteczność danego programu. Poprzez opóźnione udostępnienie testującemu próbek już wykrywanych możliwe jest sztuczne zawyżenie skuteczności w testach mechanizmów heurystycznych.
Testy fałszywych alarmów

Programy antywirusowe muszą mieć wysoką skuteczność wykrywania zagrożeń, ale nie mogą powodować fałszywych alarmów, które bywają bardziej niebezpieczne niż konie trojańskie. W celach testowych gromadzone są setki tysięcy czystych plików, które składają się na zestaw testowy. Niestety, wielokrotnie zdarza się, że testerzy w kolekcjach plików czystych posiadają pliki niebezpieczne lub o wątpliwej bezpieczności. Wszystkie pliki wykrywane choć przez jeden program antywirusowy muszą być przeanalizowane (wymagany jest tu reverse engineering), ponieważ nawet w kolekcjach plików czystych dołączanych do czasopism lub na stronach z darmowym oprogramowaniem znajdują się realne zagrożenia. Amatorzy zwykle nie posiadają umiejętności pozwalających na dokonanie takich analiz. Największym problemem kolekcji czystych plików są pliki z tzw. szarej strefy, które trudno zaklasyfikować jako dobre lub złe. Programy antywirusowe często testowane są z domyślnymi ustawieniami, które bywają różne w różnych programach. W niektórych domyślnie włączone jest wykrywanie potencjalnie niebezpiecznych aplikacji (riskware), których zwykli użytkownicy nie powinni mieć, a których występowanie może świadczyć o ataku. Do takich aplikacji zaliczają się programy typu netcat czy remote administrator. Inne programy domyślnie wykrywają niechciane aplikacje. Występują one u zwykłych użytkowników, ale często użytkownicy nie chcą ich mieć (np. adware). W zależności od domyślnych ustawień testowanych programów i tego, co testujący uznaje za czysty plik, wyniki testu fałszywych alarmów mogą być bardzo różne. Między innymi z powodu fałszywych alarmów konieczna jest współpraca autorów testów z twórcami programów antywirusowych. Twórcy programów po każdym teście chcą odtworzyć procedury testowe w swoim środowisku, ponieważ często testy zawierają ewidentne błędy. Wielokrotnie zdarza się, że fałszywy alarm okazuje się rzeczywistym zagrożeniem wykrywanym tylko przez jeden program antywirusowy. Mimo tego opiniotwórcze wyniki bywają publikowane zanim nastąpi możliwość ich weryfikacji.
Testy a rzeczywistość

Samo wykrycie zagrożenia w pliku nie oznacza, że program antywirusowy jest w stanie zabezpieczyć przed nim system. Testy nie oddają rzeczywistości, ponieważ niebezpieczeństwo występuje często zanim program zostanie zapisany do pliku. Exploit jest w stanie zaatakować program pocztowy czy przeglądarkę internetową w momencie, gdy odpowiednio spreparowany obiekt znajdzie się w pamięci komputera. Spreparowany strumień wideo lub audio może zainstalować konia trojańskiego poprzez błąd w odtwarzaczu. Niebezpieczny kod może działać bez instalacji na dysku, w ramach innego procesu lub jako samodzielny proces. Ponieważ programy zabezpieczające wykorzystują różne techniki i skanowanie odbywa się na różnych poziomach, niezwykle trudno jest porównać ich rzeczywiste możliwości. Dotychczas żaden z testów nie skupia się na wielopoziomowej ochronie, jaką zapewniają współczesne pakiety bezpieczeństwa.
Znaczenie testów

O wadze problemu, jakim są testy programów, może świadczyć coraz częstsze pojawianie się tego zagadnienia na konferencjach poświęconych bezpieczeństwu. Na ostatnich konferencjach Virus Bulletin było kilka prelekcji na temat przeprowadzania testów, ich zakresu, proponowanych rozwiązań i potencjalnych problemów. Wywołały one na tyle duże zainteresowanie, że w maju 2007 roku odbyły się w Reykjaviku międzynarodowe warsztaty testowania programów antywirusowych, na których przedstawiciele firm starali się dojść porozumienia z testerami. Ponieważ każda firma chce wypaść w testach jak najlepiej, wątpliwe jest wypracowanie metodyki, która zadowoli zarówno testerów, firmy antywirusowe, jak i użytkowników.
Podsumowanie

Najlepsze antywirusy w testach różnią się o kilka procent. Ze względu na problemy związane z przeprowadzaniem testów niezwykle trudno jest uznać jednoznacznie zwycięstwo w jakości któregokolwiek z nich. Mimo to na wynikach testów opierają się działy marketingu, a nabywcy podejmują decyzje o zakupie konkretnego produktu. Pozostaje mieć nadzieję, że w przyszłości uda się stworzyć wspólnymi siłami testy, które umożliwią obiektywną ocenę jakości i bezpieczeństwo przestanie być niemierzalne.
 

pss

Bardzo aktywny
Fąfel
Dołączył
16 Październik 2010
Posty
1127
Reakcje/Polubienia
62
Widać z treści że "gościu" wie o czym pisze, swoją drogą w końcu ktoś pokazał w zupełnie innym świetle "zasadność/skuteczność" testów AV. Nie można też wykluczyć że są wykonywane w dobrej i uczciwej intencji.
- Na szczęście ja się już wyleczyłem z tych wszystkich programów AV :klawik.
 
Do góry