Jak wirusy ukrywają się przed antywirusem?
2007-07-06 12:50
Przeczytaj także: Ewolucja złośliwego oprogramowania I-III 2007
Rootkity
W celu ukrycia swojej obecności w systemie w pierwszych latach nowego tysiąclecia szkodliwe programy dla systemu operacyjnego Windows zaczęły stosować technologie ukrywania się. Jak już wspomniano wcześniej, nastąpiło to około 10 lat po wyłonieniu się koncepcji programów ukrywających się i zaimplementowaniu jej dla systemu DOS. Na początku 2004 roku firma Kaspersky Lab natrafiła na zaskakujący program, którego nie można było zobaczyć w procesach Windows oraz na liście plików. Dla wielu ekspertów zajmujących się wirusami był to początek czegoś nowego - poznania technologii ukrywania się szkodliwych programów dla systemu Windows - oraz zapowiedź nowego trendu w przemyśle tworzenia wirusów.
Termin "rootkit" wywodzi się od narzędzi uniksowych przeznaczonych do zapewnienia użytkownikowi niesankcjonowanych uprawnień administratora w systemie, tak aby nie został zauważony przez administratora systemu. Obecnie termin rootkit obejmuje wyspecjalizowane narzędzia wykorzystywane w celu ukrywania informacji w systemie, jak również szkodliwe programy o funkcjonalności umożliwiającej im maskowanie swojej obecności. Można tu zaliczyć oznaki zarejestrowanych aplikacji od tzw. osób trzecich: ciąg tekstowy na liście procesów, plik na dysku, klucz rejestru czy nawet ruch sieciowy.
fot. mat. prasowe
Rys. 5.Przechwycenie ZwQueryDirectoryFile powoduje ukrycie pliku sterownika na liście plików.
Rys. 5.Przechwycenie ZwQueryDirectoryFile powoduje ukrycie pliku sterownika na liście plików.
Rootkit opiera się na tej samej zasadzie co wirusy ukrywające się dla systemu DOS. Spora liczba rootkitów posiada mechanizmy, które modyfikują łańcuch odwołań systemowych (Execution Path Modification). Ten rodzaj rootkita może działać jak funkcja przechwytywania zlokalizowana w określonym punkcie drogi, na której następuje wymiana poleceń lub informacji. Tego typu rootkit modyfikuje polecenia i informacje w celu zniekształcenia ich lub kontrolowania tego, co ma miejsce po stronie odbiorcy bez jego wiedzy. Teoretycznie liczba punktów, w których może być zlokalizowana funkcja przechwytywania, jest nieograniczona. W praktyce, istnieje obecnie kilka różnych metod powszechnie stosowanych w celu przechwytywania funkcji API oraz funkcji systemowych jądra. Przykładem tego rodzaju rootkita są powszechnie znane narzędzia Vanquish oraz Hacker Defender, jak również szkodliwe programy takie jak Backdoor.Win32.Haxdoor, Email-Worm.Win32.Mailbot i niektóre wersje robaka Email-Worm.Win32.Bagle.
Innym powszechnym typem technologii rootkit jest Direct Kernel Object Modification (DKOM), który może być traktowany jako "insider" modyfikujący informacje i polecenia bezpośrednio w ich źródłach. Rootkity te zmieniają dane systemowe. Typowym przykładem jest narzędzie FU; te same funkcje można znaleźć w Gromozonie (Trojan.Win32.Gromp).
Nowsza technologia, która oficjalnie mieści się w klasyfikacji rootkitów, ukrywa pliki w alternatywnych strumieniach danych (ADS) w systemach plików NTFS. Technologia ta po raz pierwszy została zaimplementowana w 2000 r. w szkodliwym programie Stream (Virus.Win32.Stream), po raz drugi natomiast w 2006 r. w postaci Mailbot oraz Gromozon. Mówiąc ściśle, wykorzystanie ADS to nie tyle sposób na "przechytrzenie" systemu, co wykorzystanie mało znanych funkcji, przez co technologia ta nie ma szans na szerokie rozpowszechnienie.

oprac. : Aleksander Walczak / eGospodarka.pl