03 czerwca 2010

Jak w banalny sposób oszukać antywirusa?

Współczesne programy antywirusowe borykają się z wieloma problemami i ograniczeniami. Wymagają ciągłych aktualizacji, zużywają cenne zasoby systemowe, a czasem nawet powodują unieruchomienie całego systemu operacyjnego w wyniku fałszywych wykryć. Ponadto, daleko im do stuprocentowej skuteczności! Oto prosty przykład na to, w jak banalny sposób można oszukać znane programy antywirusowe.

Weźmy pod uwagę prosty program fgdump, który to pozwala na ekstrakcję hashy haseł z Windowsowej bazy SAM. Program ten dostępny tutaj (uwaga, Twój antywirus za pewne rozpozna go jako zagrożenie - trojana), jest wykrywany przez większość programów antywirusowych jako malware, nada się więc świetnie do naszego testu. Dzięki świetnej usłudze Virustotal mamy dostęp do automatycznego skanera wyposażonego w 41 najpopularniejszych silników antywirusowych, sprawdźmy więc nasz program fgdump w pierwotnej postaci (tutaj dostępne są wynik skanowania):
Jak widzimy, 38 z 41 antywirusów rozpoznaje program jako zagrożenie.

Sprawdźmy teraz, czy współczesne antywirusy dadzą się nabrać na prostą sztuczkę. Za pomocą programu Resource Hacker wprowadźmy niewielkie zmiany w naszym testowym programie. Najpierw za pomocą Resource Hackera wyciągnijmy i zapiszmy sobie zasoby z jakiejś aplikacji, np. pliku WINWORD.EXE:
Następnie w programie Resource Hacker otwieramy nasz program testowy fgdump i wybieramy opcję Action\Add a new Resource...
Wybierzmy plik Icon_1 wyciągnięty uprzednio z programu Word:
Tak spreparowany plik zapisujemy następnie pod nazwą fgdump2. Spróbujmy teraz przeskanować tak powstały plik wykonywalny za pomocą usługi Virustotal (tutaj dostępne są wynik skanowania):
Okazuje się więc, że po dodaniu innej ikony do zasobów, już tylko 23 programy antywirusowe były w stanie wykryć prawidłowo nasz program! Tak prosta sztuczka zmyliła między innymi antywirusy tak znanych firm jak:
  • Comodo
  • F-Secure
  • Microsoft
  • Eset
  • Symantec
Ten prosty eksperyment dobitnie obnaża niedoskonałości współczesnej generacji antywirusów. Mimo, że kod wykonywalny zawarty w pliku nie uległ żadnej zmianie, to wiele programów zabezpieczających nie zdołało już wykryć zagrożenia. Z pewnością wynika to ze słabości sygnaturowych metod detekcyjnych. Z drugiej jednak strony wiele programów (co ciekawe, w większości te mniej znane) nie dało się nabrać na tę prostą sztuczkę.

Podsumowując, nie możemy do końca ufać współczesnej generacji programów antywirusowych, gdyż wciąż ich skuteczność w wielu przypadkach rozczarowuje. Niestety nic jednak nie zapowiada w najbliższym czasie znaczącej poprawy w tym zakresie.