Porównanie programów antywirusowych dla systemu Linux

Autor: Paweł Leśniak

Instytut Fizyki Molekularnej PAN, Poznań

Niniejszy dokument jest opisem trzeciego testu programów antywirusowych dla systemu Linux mojego autorstwa.

Wirusy rozprzestrzeniają się (albo przynajmniej próbują) między innymi przez pocztę elektroniczną. Najprostszą metodą obrony jest skanowanie całej poczty przychodzącej i wychodzącej programem antywirusowym na serwerze obsługującym pocztę. Niestety jako że nie ma rzeczy doskonałych, w pewnym momencie staje się przed wyborem programu antywirusowego. Oczywiście każdy producent zachwala swój produkt. Należy więc zastanowić się który produkt rzeczywiście działa dobrze, a który kiepsko.

Po raz trzeci przetestowałem kilka dostępnych programów pod kątem wirusów wychwyconych na serwerze pocztowym w IFM przez program Clam Antivirus. Okazuje się że w różnych okresach bazy tego programu wyłapały mi kilka plików które w świeżej wersji bazy nie są rozpoznawane jako zawirusowane!

Przetestowane programy (wszystkie bazy wirusów były aktualizowane 12.06.2007 po godzinie 12:00):

NazwaWersjaBaza wirusówUruchomienie
Programy MKS, Avira oraz Panda posiadają kilkustopniową heurystykę, stąd 3-krotne wystąpienie tych programów w powyższej tabeli.
Clam Antivirus0.91rc13406 (12.06.2007)clamscan --recursive ./ > OUT
MKS2.0.111.06.2007mks_unix -r --heuristic=0 ./* --logfile=OUT
MKS2.0.111.06.2007mks_unix -r --heuristic=2 ./* --logfile=OUT
MKS2.0.111.06.2007mks_unix -r --heuristic=4 ./* --logfile=OUT
BitDefender7.608257.13392 (12.06.2007)bdscan ./ > OUT
F-Prot wersja4.6.811.06.2007f-prot ./ > OUT
Avira2.1.10-476.38.2.21antivir --scan-in-mbox -s --allfiles -z --heur-level=0 ./ > OUT
Avira2.1.10-476.38.2.21antivir --scan-in-mbox -s --allfiles -z --heur-level=1 ./ > OUT
Avira2.1.10-476.38.2.21antivir --scan-in-mbox -s --allfiles -z --heur-level=3 ./ > OUT
Avast1.0.8000748-4 (12.06.2007)avast -tA -n ./ > OUT
Panda9.0.010/06/2007pavcl -auto -aex -nob -heu 0 -nor ./ > OUT
Panda9.0.010/06/2007pavcl -auto -aex -nob -heu 1 -nor ./ > OUT
Panda9.0.010/06/2007pavcl -auto -aex -nob -heu 3 -nor ./ > OUT

Niestety nie udało się przetestować następujących programów:

Uwaga - program ClamAV testowany był w wersji "Release Candidate" z uwagi na błąd w obsłudze baz wirusów. W tej wersji problem został rozwiązany.

Przy wyborze testowanych programów oparłem się na czterech cechach:

  1. udało mi się znaleźć dany program antywirusowy;
  2. był w wersji dla Linuksa;
  3. była do pobrania wersja testowa/bezpłatna;
  4. program można zainstalować w dowolnej dystrybucji.

Posiadam 5 pakietów z zawirusowanymi listami.

NazwaIlośćIlość ważnychRozmiar
Wirusy z okresu 13.09.2005 - 15.02.2006.1234010111595.28 MB
Wirusy z okresu 1.06.2005 - 13.09.2005.37087352441016.24 MB
Wirusy z okresu 1.05.2005 - 31.05.2005.50785504471.08 GB
Wirusy z okresu 15.02.2006 - 17.08.2006.125989403624.87 MB
Wirusy z okresu 18.08.2005 - 8.10.2006.328971799.39 MB
Suma wyników powyższych testów1160991059223.36 GB

W poniższym zestawieniu użyte jest sformułowanie "ważne" wirusy. Pojęciem tym określiłem wszystkie zagrożenia typu innego niż HTML.Phishing.

Test: Wirusy z okresu 13.09.2005 - 15.02.2006.

ProgramIlość wykrytych% wykrytychIlość wykrytych ważnych% wykrytych ważnychCzas (s)% czas w stosunku do najszybszego
Najwięcej wykrytych
Najwięcej wykrytych ważnych
Najwięcej wykrytych (również najwięcej wykrytych ważnych)
Najszybszy
Clam AV1214998.45992098.11309572
MKS bez heurystykiB/DB/DB/DB/DB/DB/D
MKS z heurystyką 1B/DB/DB/DB/DB/DB/D
MKS z pełną heurystykąB/DB/DB/DB/DB/DB/D
BitDefender1064786.281009399.82500926
F-Prot1010881.911007699.6554100
Avira bez heurystyki1058185.751008999.78464859
Avira z heurystyką 11058185.751008999.78462856
Avira z pełną heurystyką1058985.811008999.78462856
Avast1009381.791004799.37288533
Panda bez heurystyki678154.95677366.99376696
Panda z heurystyką 1678154.95677366.99377698
Panda z pełną heurystyką678154.95677366.99377698
 

Test: Wirusy z okresu 1.06.2005 - 13.09.2005.

ProgramIlość wykrytych% wykrytychIlość wykrytych ważnych% wykrytych ważnychCzas (s)% czas w stosunku do najszybszego
Najwięcej wykrytych
Najwięcej wykrytych ważnych
Najwięcej wykrytych (również najwięcej wykrytych ważnych)
Najszybszy
Clam AV3707699.973523399.978891125
MKS bez heurystykiB/DB/DB/DB/DB/DB/D
MKS z heurystyką 1B/DB/DB/DB/DB/DB/D
MKS z pełną heurystykąB/DB/DB/DB/DB/DB/D
BitDefender3567896.23524099.9917592227
F-Prot3524395.033523899.9879100
Avira bez heurystyki3527195.13523999.999681225
Avira z heurystyką 13527195.13523999.999931257
Avira z pełną heurystyką3527295.113523999.999931257
Avast3519594.93519099.85543687
Panda bez heurystyki3246087.523244792.06646818
Panda z heurystyką 13246087.523244792.06626792
Panda z pełną heurystyką3246087.523244792.06614777
 

Test: Wirusy z okresu 1.05.2005 - 31.05.2005.

ProgramIlość wykrytych% wykrytychIlość wykrytych ważnych% wykrytych ważnychCzas (s)% czas w stosunku do najszybszego
Najwięcej wykrytych
Najwięcej wykrytych ważnych
Najwięcej wykrytych (również najwięcej wykrytych ważnych)
Najszybszy
Clam AV5077799.985043999.9811471159
MKS bez heurystykiB/DB/DB/DB/DB/DB/D
MKS z heurystyką 1B/DB/DB/DB/DB/DB/D
MKS z pełną heurystykąB/DB/DB/DB/DB/DB/D
BitDefender5057799.595044499.9925522578
F-Prot5044499.335044499.9999100
Avira bez heurystyki5045199.345044710012611274
Avira z heurystyką 15045199.345044710012721285
Avira z pełną heurystyką5045299.345044710012311243
Avast5043099.35042899.96647654
Panda bez heurystyki4994698.354994699.01847856
Panda z heurystyką 14994698.354994699.01853862
Panda z pełną heurystyką4994698.354994699.01847856
 

Test: Wirusy z okresu 15.02.2006 - 17.08.2006.

ProgramIlość wykrytych% wykrytychIlość wykrytych ważnych% wykrytych ważnychCzas (s)% czas w stosunku do najszybszego
Najwięcej wykrytych
Najwięcej wykrytych ważnych
Najwięcej wykrytych (również najwięcej wykrytych ważnych)
Najszybszy
Clam AV1249199.15929698.86323659
MKS bez heurystykiB/DB/DB/DB/DB/DB/D
MKS z heurystyką 1B/DB/DB/DB/DB/DB/D
MKS z pełną heurystykąB/DB/DB/DB/DB/DB/D
BitDefender991778.72939499.98321698
F-Prot937574.42936699.6149100
Avira bez heurystyki1144990.88939599.917331496
Avira z heurystyką 11144990.88939599.917311492
Avira z pełną heurystyką1145390.91939599.917321494
Avast935674.27935699.5275561
Panda bez heurystyki607048.18607064.55298608
Panda z heurystyką 1607048.18607064.55297606
Panda z pełną heurystyką607048.18607064.55297606
 

Test: Wirusy z okresu 18.08.2005 - 8.10.2006.

ProgramIlość wykrytych% wykrytychIlość wykrytych ważnych% wykrytych ważnychCzas (s)% czas w stosunku do najszybszego
Najwięcej wykrytych
Najwięcej wykrytych ważnych
Najwięcej wykrytych (również najwięcej wykrytych ważnych)
Najszybszy
Clam AV328910071710058644
MKS bez heurystyki46614.1764489.821641822
MKS z heurystyką 146914.2664790.241631811
MKS z pełną heurystyką46914.2664790.241992211
BitDefender74022.571599.723844267
F-Prot71521.7471599.729100
Avira bez heurystyki236071.757171002562844
Avira z heurystyką 1236071.757171002552833
Avira z pełną heurystyką236071.757171002572856
Avast71321.6871399.4450556
Panda bez heurystyki61618.7361685.9147522
Panda z heurystyką 161618.7361685.9147522
Panda z pełną heurystyką61618.7361685.9147522
 

Test: Suma wyników powyższych testów

ProgramIlość wykrytych% wykrytychIlość wykrytych ważnych% wykrytych ważnychCzas (s)% czas w stosunku do najszybszego
Najwięcej wykrytych
Najwięcej wykrytych ważnych
Najwięcej wykrytych (również najwięcej wykrytych ważnych)
Najszybszy
Clam AV11578299.7310560599.72726940
MKS bez heurystykiB/DB/DB/DB/DB/DB/D
MKS z heurystyką 1B/DB/DB/DB/DB/DB/D
MKS z pełną heurystykąB/DB/DB/DB/DB/DB/D
BitDefender10755992.6410588699.9760272078
F-Prot10588591.210583999.92290100
Avira bez heurystyki11011294.8410588799.9736821270
Avira z heurystyką 111011294.8410588799.9737131280
Avira z pełną heurystyką11012694.8610588799.9736751267
Avast10578791.1210573499.821803622
Panda bez heurystyki9587382.589585290.492214763
Panda z heurystyką 19587382.589585290.492200759
Panda z pełną heurystyką9587382.589585290.492182752
 

Widać jest iż w przypadku programu Panda działanie skanera heurystycznego jest dosyć wątpliwej skuteczności. Również heurystyka programu Avira jest niezbyt skuteczna - dzięki włączeniu skanowania heurystycznego Avira wykrywa dodatkowo 14 zagrożeń typu HTML.Phishing w stosunku do tego samego programu w wyłączoną heurystyką.

Patrząc na szybkość działania, łatwo zauważyć, iż podobnie jak w poprzednich testach najszybszy jest program F-Prot. Jednak różnica w szybkości działania jest tym razem kolosalna. ClamAV jest średnio 9,5-krotnie wolniejszy od F-Prota! Oczywiście mierzenie w taki sposób szybkości działania jest niezbyt obiektywne. Wkrótce test zostanie ponowiony z użyciem wersji usługi działającej stale (daemon). Czasy na pewno ulegną zmianie. Podejrzewam że różnice pozostaną i zmieni się jedynie współczynnik czasu. A okaże się już wkrótce.

Wracając do wyników - pozytywnie zaskoczył program Avira (następca programu H+BEDV), który w poprzednich testach nie zachwycił wynikami. Nowość w teście, program Panda, niestety nie okazał się czarnym koniem. Wprawdzie szybkoś działania jest pocieszająca, jednak nie to jest najważniejsze. Kiepski wynik programu ClamAV można łatwo wyjaśnić. Program raportuje pliki z uszkodzonymi archiwami zip nie testując ich pod kątem zawirusowania. Podobnie program MKS raportuje uszkodzone archiwa niw sprawdzając ich pod kątem zawirusowania. Na liście mailingowej dotyczącej programu ClamAV znalazłem informację iż jest to celowe działanie - uszkodzone archiwum nie jest w stanie skutecznie uaktywnić kodu wirusa, a dzięki temu skraca się czas skanowania pod kątem zawirusowania. Dodatkowo można ustalić w zewnętrznej aplikacji korzystającej z wyników działania antywirusa, aby uszkodzone archiwa były odpowiednio obsłużone (np. usunięte tak jak pliki zawirusowane).

Niestety programiści MKS'a mają dosyś dziwną interpretację pojęcia "rekursywny". Próba przeskanowania więcej niż 5000 plików rozmieszczonych w kilkunastu podkatalogach przerasta możliwości skanera. W Linuksie często katalogi zawierają po kilkadziesiąt tysięcy plików, więc ograniczenie tego typu nie jest zbyt korzystne. Po wykonaniu skanu na najmniejszej próbce wirusów podjąłem decyzję o odpuszczeniu skanowania tym programem pozostałych próbek (zbyt dużo czasu należałoby poświęcić na przygotowanie katalogów dla MKS'a, a uzyskane wyniki w jednej próbie pozwalają podejrzewać że wynik nie znajdzie się w czołówce). Program ten będzie poddany jeszcze jednej próbie - skanowania poprzez skaner rezydentny (w trybie daemona). Może wtedy uda się uzyskać pełne wyniki.

Poniżej prezentuję listę uzyskanych wyników.

TestWyniki wszystkieWyniki ważne
Wirusy z okresu 13.09.2005 - 15.02.2006.Zobacz wszystkie wyniki | Zobacz różnice Zobacz "ważne" wyniki | Zobacz różnice
Wirusy z okresu 1.06.2005 - 13.09.2005.Zobacz wszystkie wyniki | Zobacz różnice Zobacz "ważne" wyniki | Zobacz różnice
Wirusy z okresu 1.05.2005 - 31.05.2005.Zobacz wszystkie wyniki | Zobacz różnice Zobacz "ważne" wyniki | Zobacz różnice
Wirusy z okresu 15.02.2006 - 17.08.2006.Zobacz wszystkie wyniki | Zobacz różnice Zobacz "ważne" wyniki | Zobacz różnice
Wirusy z okresu 18.08.2005 - 8.10.2006.Zobacz wszystkie wyniki | Zobacz różnice Zobacz "ważne" wyniki | Zobacz różnice

Pozostaje jeszcze podsumowanie. Oczywiście każdy potrafi sam ocenić przedstawione liczby. Niestety tak na prawdę liczby te nie oznaczają bezwzględnie jakości poszczególnych programów. Przede wszystkim zwrócić należy uwagę na fakt, iż wszystkie skanowane listy są listami wychwyconymi przez programy antywirusowe pracujące w różnych okresach czasu na serwerze pocztowym Instytutu Fizyki Molekularnej PAN. Nie jest zatem w 100% pewne, czy wśród tych listów nie ma błędnie oznakowanych zawirusowań (false positives). Należy brać jeszcze pod uwagę możliwość wystąpienia wirusów których nie wykrywa program ClamAV, a które wykrywane są przez inne z testowanych programów. Test ten daje jednak pewien konkretny obraz dotyczący różnic pomiędzy programami. Różnice są, i niestety są znaczne. Przede wszystkim ClamAV jest nastawiony na wykrywanie prób phishingu, w przeciwieństwie do pozostałych programów, które z założenia pozostawiają tą kwestię programom anty-spyware'owym.

Osobiście zaskoczony jestem postępem programu Avira. W poprzedniej wersji (H+BEDV) wyniki były niezbyt pozytywne. Tym razem program uzyskał najlepszy wynik, przepuszczając tylko 35 zawirusowanych na 105922 testowanych listów. Przyglądając się bliżej listom nieoznakowanym jako zawirusowane, widać iż Avira nie wykryła:

Widać iż 9 spośród tych 35 listów zostało wykrytych przez co najmniej 2 inne programy antywirusowe. Można więc z pewną dozą niepewności uznać, iż Avira zdała test z wynikiem 105913/105922, co daje 99.992% skuteczności.

Ten test zakończę bez wystawiania żadnych dodatkowych ocen. Zainteresowani mogą sami przeanalizować na wszelkie potrzebne sposoby zebrane przeze mnie dane. Są one dostępne w formacie tabel HTML, które łatwo można otworzyć w dowolnym arkuszu kalkulacyjnym.

 
Ostatnia aktualizacja: 20.06.2007 19:30
Wszystkie testy wykonane przez autora tekstu na sprzęcie Instytutu Fizyki Molekularnej PAN.
Konfiguracja: 2x AMD Athlon MP 2.0GHz, 2GB RAM, kernel 2.6.7 (SMP), libc 2.3.3.
Użyty serwer w czasie testów nie wykonywał żadnych innych zadań.
Wszelkie prawa zastrzeżone. Jeżeli chcesz umieścić wyniki pracy autora w swojej publikacji - musisz uzyskać zgodę autora.