22 maja 2002

Win2K.Team - wdziera się przez strumienie

Jest to wirus systemów Windows 2000/XP infekujący metodą "strumieni towarzyszących", bazującej na właściwości systemu plików NTFS pozwalającej na tworzenie wielu strumieni danych przypisanych do pliku.

Strumienie NTFS

Każdy plik zawiera przynajmniej jeden domyślny strumień danych, do którego dostęp odbywa się przez nazwę pliku. Dodatkowo może on zawierać inne strumienie, do których dostęp może odbywać się przez ich prywatne nazwy (nazwa_pliku:nazwa_strumienia).

Domyślny strumień pliku jest właściwie jego zawartością. Na przykład, podczas wykonywania pliku EXE, program jest czytany z domyślnego strumienia; jeżeli dokument jest otwierany, jego zawartość jest również czytana z domyślnego strumienia.

Dodatkowe strumienie pliku mogą zawierać dowolne dane. Dostęp do nich lub ich modyfikacja nie może się odbyć bez odwołania się do pliku. Usunięcie pliku powoduje także usunięcie jego strumieni; zmiana nazwy pliku powoduje odwoływanie się strumieni do pliku o nowej nazwie.

W systemie Windows nie ma astandardowego narzędzia umożliwiającego oglądanie/redagowanie strumieni pliku. Aby przeglądać je "ręcznie" należy użyć specjalnych narzędzi, na przykład FAR z wtyczką umożliwaijącą przeglądanie strumienia (skrót Ctrl-PgDn pokazuje strumienia dla zaznaczonego pliku).

Uruchamianie się wirusa

Wirus jest aplikacją systemu Windows (w formacie PE EXE) o rozmiarze ok. 4kB. Uruchomienie jej powoduje wykonanie pliku "gospodarza" i próbuje zainfekować wszystkie pliki EXE w bieżącym katalogu. Jeżeli plik "gospodarza" nie jest obecny, przed zainfekowaniem plików wyświetla następujący komunikat:

2002
... and what about the stream?

Podczas infekowania wirus tworzy nowy strumień o nazwie "ccc" (pełna nazwa strumienia ma postać: "NazwaPliku:ccc") powiązany z infekowanym plikiem. Następnie przemieszcza się do strumienia "ccc" wewnątrz infekowanego pliku (domyślny strumień - patrz wyżej) i nadpisuje jego zawartość (domyślny strumień) swoim kodem. W czasie swojego działania tworzy własną, tymczasową kopię w pliku zawierającym w nazwie "2002", który po infekcji jest usuwany.

W rezultacie, kiedy zainfekowany plik jest wykonywany, system Windows czyta domyślny strumień (nadpisany przez kod wirusa) i wykonuje go. Ponadto Widnows pokazuje jednakowy rozmiar wszystkich zainfekowanych plików - wielkość wirusa.

Aby przekazać kontrolę do programu "gospodarza", wirus tworzy nowy proces, odwołując się do oryginalnego pliku przez nazwę "NazwaPliku:ccc".

Ta metoda infekcji powinna działać w każdym systemie NTFS, ale wirus sprawdza wersję systemu i uruchamia się tylko w Win2000/XP.