Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

VirusTotal a testy antywirusowe

Niedawno zapytano mnie, dlaczego do testów nie używamy bardzo popularnego serwisu VirusTotal co pozwoliłby nam na upewnienie się czy dany plik zawiera w sobie wirusa lub też nie. Właśnie w tym artykule chciałbym wytłumaczyć dlaczego najpopularniejszy tego typu serwis nie może być używany do wyznaczania skuteczności programów (pomijam sprawę, że materiał badawczy mamy sprawdzony od naszego partnera). Drugim pytaniem, które dręczy mojego kolegę jest:

dlaczego tak popularny program jak McAfee nie miał w swojej bazie najnowszych sygnatur wirusów a VirusTotal je posiadał?

Zacznijmy może od … końca

Odpowiadając na pytanie dlaczego dany antywirus w VirusTotal wykrywa wirusa a jego odpowiednik „rzeczywisty”, zainstalowany na dysku użytkownika w domowym systemie już nie?

Odpowiedź wydawać by się mogła jest trudna. Jednak w rzeczywistości tak nie jest. Wersje oprogramowania w VirusTotal…wersje to złe słowo w tym przypadku ;) Rozwiązania antywirusowe - nie są dokładnie takie same jak ich rzeczywiste odpowiedniki dostępne publicznie. Bardzo często producenci przygotowują specjalne silniki tylko dla potrzeb VirusTotal. Metodyka działania tych programów w tym analiza heurystyczna (lokalna i ta w chmurze) są inaczej „ustawione”. Producenci również załączają do takich silników pliki beta, co w końcowym efekcie składa się na inne „zachowanie” antywirusa niż jego pełnoprawne odpowiedniki.

A co w przypadku kiedy jesteśmy autorami oprogramowania i zauważyliśmy, że VirusTotal wykrywa w nim wirusa?

Jak pisze sam VirusTotal, nie ponoszą oni odpowiedzialności za fałszywe alarmy generowane przez programy i w takim przypadku jakiekolwiek roszczenia z tego powodu powinniśmy składać do producentów antywirusowych.

Więc skoro jesteśmy bogatsi o te informacje to kolejna kontrowersja, która również niektórym zmywa sen z powiek (no może trochę przesadziłem). Dlaczego czasami wersja oprogramowania w VT jest inna niż najnowsza wersja jego komercyjnego odpowiednika?

Po raz kolejny o dostarczonej wersji dla VirusTotal decyduje nie kto inny jak sam producent oprogramowania, więc może się ona różnić niż jego najnowszy, przeznaczony do sprzedaży produkt.

Dlaczego niektóre silniki mają stare bazy sygnatur? Dlaczego VT ich nie zaktualizuje?

Sprawa trochę bardziej złożona. Nie znam dokładnych szczegółów technicznych VT (bo i po co mieliby się tym chwalić), ale z tego co sami podają ich infrastruktura wykonuje zapytania z interwałem 15 minutowym sprawdzając czy jest coś nowego do pobrania. Dlatego też czasami może się zdarzyć, że wersje sygnatur nie są najnowsze. A druga sprawa jest ta o jakiej pisałem wcześniej. Producenci sami decydują co dostarczają dla VT w ramach ich współpracy.

I chyba najciekawsze pytanie, a przynajmniej najczęściej zadawane. Dlaczego wyniki skanowania nie są traktowane jako statystyki porównawcze programów antywirusowych?

Serwis VT nie powstał jako narzędzie do przeprowadzania porównawczych analiz antywirusowych. Jest to tylko pomoc w sprawdzaniu podejrzanego pliku / linku. VT współpracuje z laboratoriami antywirusowymi przekazując im złośliwe oprogramowanie. Także jeśli ktoś sądzi, że VT powinien służyć do testów czy to amatorskich czy profesjonalnych bardzo się myli, ponieważ:

1.Silniki zastosowane przez VT są silnikami konsolowymi, działają z linii poleceń, więc w zależności od produktu nie będą się one zachowywać tak samo jak ich pełnoprawne odpowiedniki.

2.Analiza zachowawcza czy heurystyczna może być bardziej agresywnie ustawiona.

3.Niektóre techniki wykrywania wirusów mogą być parametryzowane zgodnie z założeniami dostawcy silników antywirusowych i różnić się od „rozwiązań” domowych.

Teraz mam nadzieję, że nie będziemy ślepo wierzyć w wyniki skanowania VT. 

oprogramowanie bezpieczeństwo inne

Komentarze

0 nowych
Axles   17 #1 14.06.2013 09:40

No to rozwiałeś jedną zagadkę, która mnie męczyła, już człowiek jest mądrzejszy, dzięki.

alucosoftware   7 #2 14.06.2013 11:38

W drugą stronę: dlaczego VirusTotal nie wykrywa "wirusa", a program zainstalowany na PC już tak? ;)

Analiza zachowawcza, metody heurystyczne. Czy to nie jedna wielka lipa? W 2013 roku programy AV widzą we wszystkim złośliwy kod... tak jest o wiele łatwiej i taniej niż dokonywać porządnej analizy.

Przykład:
- utwórz bootstrapper, który uruchamia kolejne w łańcuchu paczki instalatorów (podpisane cyfrowo)
- nie podpisuj cyfrowo bootstrappera...

Voila...

"Mam nadzieję, że nie będziemy ślepo wierzyć w wyniki skanowania pakietów AV." :)

Autor edytował komentarz.
adrian1877   3 #3 14.06.2013 11:53

"Analiza zachowawcza, metody heurystyczne. Czy to nie jedna wielka lipa?"
Nie. Metody te nie bazują na sygnaturach. Gdzie dziennie powstaje kilkadziesiąt tysięcy wirusów nikt nie jest w stanie opracowywać sygnatur na bieżąco. Wykrywanie wirusów na podstawie sygnatur statycznych/generycznych już od dawna jest wypierane przez w/w techniki do wykrywania zagrożeń.

"utwórz bootstrapper..."
To, że aplikacje nie jest podpisana cyfrowo jeszcze nic nie znaczy. Prawie codziennie spotykam się z aplikacjami bez podpisu i nie zawsze jest ona wirusem. Metoda, którą opisałeś o niczym jeszcze nie świadczy.

AV to zawsze program i może się mylić. Od tego jest też użytkownik, aby wiedział co robi. A jeśli jego wiedza nie pozwala na rozpoznanie czego nawet uruchamia to może winić tylko samego siebie. Póki co AV nie będą w każdej sytuacji myśleć za użytkownika. Mogą jedynie podpowiadać, informować.

Over   9 #4 14.06.2013 13:49

Ciekawy wpis, powinien rozjaśnić oczy co po niektórym :)

alucosoftware   7 #5 14.06.2013 14:58

@adrian1877
Jak to nie świadczy? Pobierz WiX (http://wixtoolset.org/ - właśnie skończył 9 lat!), utwórz aplikację, której zadaniem będzie instalacja wymaganych komponentów przed właściwą instalacją programu (np. .NET, WIA, jakieś inne pakiety redystrybucyjne). Zrób przy tym wszystko zgodnie z dokumentacją techniczną. Uruchom tak utworzony pakiet instalacyjny na maszynie z KIS, Comodo, Nortonem, Bitdefenderem itd. Wszystkie zawiodą z tej samej przyczyny:
- brak podpisu cyfrowego
- jeżeli brak podpisu cyfrowego -> trojan (bo uruchamia po kolei kilka innych instalatorów)
- jeżeli trojan -> zepsujmy reputację aplikacji i zablokujmy do niej dostęp
- jak już zepsujemy reputację -> inne serwisy zepsują ją bardziej, dzięki naszym poprzednim wysiłkom (poblokują strony, itp. itd.)

A skrypt instalacyjny jest prosty, bo jakiż mógłby on być:
1. Uruchom A.msi
2. Uruchom B.msi
3. Uruchom C.msi

Codziennie tysiące "domowych" deweloperów korzystających z pakietów takich jak WiX (polecany, wykorzystywany, wspierany przez takie firmy jak chociażby MS i jej deweloperów) doświadcza tych samych problemów. Kiedy tylko muszą dostarczyć swoim klientom aplikację zależną od innych komponentów firm trzecich - pojawia się duży problem. Problemem nie jest wykorzystywane narzędzie deweloperskie a zachwalane przez wszystkich metody heurystyczne i analiza behawioralna programów antywirusowych, które co tak naprawdę robią? Ładnie się nazywają, bo na pewno nie działają w tak oczywistym przypadku prawidłowo.

adrian1877   3 #7 14.06.2013 16:40

@tomimaki
i właśnie to o czym wyżej pisałem. VT nie nadaje się jako wyznacznik do testów.

@alucosoftware
Niestety nie uruchomię tego wintoola. Krzaczy mi się przy instalacji, więc nie przeprowadzę eksperymentu.
Poprzednio źle zrozumiałem. Pisałem o uruchomieniu jednej aplikacji bez podpisu. No a tutaj jest kilka, która uruchamia jedna. Chciałbym to zobaczyć i wypróbować jak się zachowają AV, bo nie wiem czy opisujesz sytuację w miarę nową czy sprzed kilku lat. Jak masz jakiś taki pakiet to podeślij link do niego na PW na forum.

alucosoftware   7 #8 14.06.2013 17:50

@adrian1877
Dalej nie rozumiesz. VT daje poprawny wynik, ponieważ skanuje plik instalacyjny i na podstawie sygnatur 46 producentów (- X, bo są to "brandowane" silniki) określa czy dany plik był rzeczywiście uznany za szkodliwy czy nie.

Teraz weź sobie np. 4 bezpieczne aplikacje (pliki instalacyjne wydane np. przez Microsoft), podpisane cyfrowo (kupiony certyfikat za 1000 zł i każdy plik instalacyjny jest nim podpisany) i połącz je w jeden plik instalacyjny. Nie podpisuj wynikowego pliku zakupionym certyfikatem. Wrzuć plik na VT (wynik 0/46). Spróbuj uruchomić aplikację na komputerze z programem antywirusowym z "proaktywną ochroną" - bam!

Nie pisałbym o tym, gdyby sytuacja nie ciągnęła się latami. Żadnej poprawy, żadnej możliwości zgłoszenia "pomyłki" producentom AV (nie jestem przecież ich klientem, ani też pozostali deweloperzy).

adrian1877   3 #9 14.06.2013 18:24

Rozumiem, jest problem. Nie chodzi o sam fakt, że pliki są czyste i AV ma false positive na komputerze lokalnym. Ale VT wskazuje 0/n nie tylko dlatego, że nic nie wykrywa, ale jest to spowodowane innym działaniem silników skanujących co próbuję udowodnić od początku.

McAlexander   3 #10 14.06.2013 19:18

Virustotal opiera się tylko na definicjach. Z jednej strony to "jedyna właściwa" metoda, bo diagnozuje pliki które "przeszły" przez laboratorium producenta, więc można wnioskować, że istnieje jakiś sens w wykrywaniu ich. Ale z drugiej strony definicje są już przestarzałą metodą i co poniektórzy producenci nie chcą dodawać do baz malwaru (lub nie spieszą się z tym) , z którym radzi sobie ochrona heurystyczna/ kontrola zachowań etc. (patrz częstotliwość wykryć: Symantec Norton, Trend Micro, a Eset czy McAfee). No, ale właśnie cóż zrobić kiedy sposoby detekcji pozadefinicyjnej, wyuczone pewnych schematów zachowań neutralizują bezpieczne aplikacje?
Pozostaje tylko stosowanie wyjątków kontroli zachowań bądź zgłaszanie konkretnego problemu do producenta (teraz jest moda na stosowanie chmury, można ją wykorzystać do tworzenia whitelist).
Sam miałem problem z Bitdefenderem, który w wyniku detekcji Active Virus Control blokował instalację czystej aplikacji. Nawet po zastosowaniu wyjątków były problemy...
Ale to w końcu tylko programy :)

  #11 16.06.2013 17:06

Pytanie do autora tekstu:
Dlaczego używasz stwierdzenia "pełnoprawne odpowiedniki", a nie "komercyjne, dostępne publicznie"? Takim stwierdzeniem sugerujesz, że "wersje" programów antywirusowych używane przez VirusTotal są "gorsze, słabsze, mogą nie wykrywać niektórych niebezpieczeństw".
PS. Wytłumaczenie dlaczego producenci dostarczają innych wersji na VT jest zrozumiałe.

adrian1877   3 #12 13.07.2013 22:50

Dlaczego używam takiego stwierdzenia? Wydaje mi się, że wyjasniłem to w tekscie.