Jak testować antywirusa
- 27.10.2009
Test powinien oddawać rzeczywiste rozłożenie złośliwego kodu, niekoniecznie zbieżne z podziałem taksonomicznym wirusów. Jednocześnie próbki powinny być świeże, zgodne z tym, co w danej chwili jest zagrożeniem. Optymalna liczebność takiego zbioru próbek powinna oscylować w okolicach kilku do kilkunastu tysięcy, by móc zebrać około ćwierć miliona wyników. Zbiór taki należy ciągle wzbogacać o nowe zasoby, co najmniej kilkaset dziennie.
Jak przeprowadzić test
Środowisko badawcze powinno wykorzystywać najpopularniejszy system operacyjny w stanie pełnej aktualności, zatem wybór pada na Microsoft Windows XP z dodatkiem Service Pack 3. Nowoczesny program chroniący stację roboczą może skorzystać z usługi cloud computing, zatem środowisko testowe powinno posiadać dostęp do właściwego serwisu przez Internet, przy użyciu standardowej klasy łącza. Ważny jest także tryb pracy antywirusa.
Ocena skuteczności
Ochrona przed złośliwym oprogramowaniem obejmuje trzy najważniejsze etapy - badanie hiperłącza, które może doprowadzić do pobrania malware'u, analizę reputacji pliku (ten etap to warstwa ekspozycji, gdzie analizowane jest źródło) oraz działania odbywające się przy jego uruchomieniu (jest to warstwa infekcji, w której analizowana jest zawartość). Dla każdego z tych etapów należy przewidzieć osobne sposoby określenia skuteczności. Przy tym należy uwzględnić także to, że oprogramowanie antywirusowe działa tym lepiej, im jest bardziej proaktywne, czyli wtedy, gdy zadziała jeszcze przed infekcją. Idealna ochrona powinna uniemożliwić nawet pobranie danego pliku. Blokowanie pobierania złośliwego oprogramowania ma wiele zalet, z których warto podkreślić brak informacji zwrotnej dla cyberprzestępców oraz zmniejszenie ilości pobieranych danych. Gdyby jednak łącze przeszło proces kontroli reputacji, można sprawdzić plik podczas jego pobierania lub po jego zakończeniu. Gdyby nawet ten etap nie przyniósł rozstrzygnięcia, ostatnią linią obrony jest analiza kodu podczas jego wykonywania. Na tym etapie można wykorzystać skomplikowane metody, takie jak izolacja kodu (sandboxing), metody heurystyczne oraz analizę behawioralną. Rzetelne wyniki testów powinny uwzględniać każdy z tych etapów z osobna.
Nawet najlepiej przeprowadzony test nie będzie porównywalny, jeśli nie będzie wielokrotnie powtarzany przez określony czas, co najmniej kilku dni. Fluktuacje wyników poszczególnych pakietów ochronnych będą zupełnie naturalne.