Virus.Win32.Stream.a (Kaspersky Lab)
is also known as:
Win2K.Stream.a (Kaspersky Lab),
W2K/Stream (McAfee), W2K.Stream (Symantec), Win2K.Benny.3628 (Doctor Web), W2K/Stream (Sophos), Win32/Stream.A (RAV), PE_STREAM.A (Trend Micro), WIN2K/Stream.Exe (H+BEDV), W32/Stream.3628 (FRISK), Win2k:Stream (ALWIL), Win32/Stream (Grisoft), Win2K.Stream.A (SOFTWIN), Win2k.Stream.Exe (ClamAV), Win2K/Stream (Panda), Win2000/Stream (Eset)
| Description added |
Sep 04 2000 |
| Behavior |
Virus |
This is the first known Windows virus using the "stream companion" infection
method. This method is based on an NTFS feature that allows for the creation
of multiple data streams associated with a file.
NTFS Streams
Each file contains at least one default data stream that is accessed just
by file name. Each file may also contain additional stream(s) that can be accessed
by their personal names (filename:streamname).
The default file stream is the file body itself (in pre-NTFS terms). For instance,
when an EXE file is executed, the program is read from the default file stream;
when a document is opened, its contents are also read from the default stream.
Additional file streams may contain any data. The streams cannot be accessed
or modified without reference to the file. When a file is deleted, its streams
are deleted as well; if a file is renamed, the streams follow the new name.
In a Windows package, there are no standard tools to view/edit file streams.
To "manually" view file streams, you need to use special utilities, for instance
FAR utility with file-streams support plug-in (Ctrl-PgDn displays file streams
for selected file).
Virus Operation
The virus itself is a Windows application (PE EXE file) compressed by Petite
PE EXE files compressor and is about 4K in size. When run, it infects all EXE
files in the current directory and then returns control to the host file.
If any error occurs, the virus displays the message:
While infecting a file, the virus creates a new stream associated with the
victim file, and that stream has the "STR" name; i.e., the complete stream name
is "FileName:STR". The virus then moves the victim file body to the STR stream
(default stream, see above) and then overwrites the victim's file body (default
stream) with its own (virus) code.
As a result, when an infected file is executed, Windows reads the default
stream (that is overwritten by the virus code) and executes it. Also, Windows
reports the same file size for all infected files - that is the virus length.
To release control to the host program, the virus just creates a new process
by accessing the original file program with the "FileName:STR" name.
This infection method should work on any NTFS system, but the virus checks
the system version and runs only under Win2000.