"Лаборатория Касперского" сообщает об обнаружении нового поколения вирусов для Windows 2000

2000-09-04T00:00:00
ID SECURITYVULNS:DOC:631
Type securityvulns
Reporter Securityvulns
Modified 2000-09-04T00:00:00

Description

4 сентября 2000 г.

Пресс Релиз

"Лаборатория Касперского" сообщает об обнаружении нового поколения вирусов для Windows 2000

"Лаборатория Касперского", российский лидер в области разработки антивирусных систем безопасности, сообщает об обнаружении вируса W2K.Stream - нового поколения вредоносных программ для операционной системы Windows 2000. Данный вирус использует новый радикальный способ внедрения в файловую систему NTFS, основанный на применении метода замещения потоков (Stream Companion).

Вирус был создан в конце августа двумя хакерами из Чехии под кодовыми названиями Benny и Ratter. На данный момент случаев заражения вирусом зарегистрировано не было, однако его работоспособность и присутствие всех необходимых функций для существования в "диком виде" не вызывают сомнений.

"Данный вирус, несомненно, открывает новую страницу в истории создания компьютерных вирусов", - комментирует Евгений Касперский, руководитель антивирусных исследований компании, - "Технология внедрения в файлы при помощи замещения потоков делает процесс обнаружения и удаления вирусов исключительно сложным".

В отличие от существовавших ранее способов заражения файлов (добавление тела вируса в начало, конец или любое другое место тела программы), "Stream" использует возможность файловой системы NTFS (Windows NT/2000) поддерживать множественные потоки данных. Например, в файлах Windows 95/98 (FAT) внутренняя структура программы представлена лишь одним потоком - собственно ее телом. В Windows NT/2000 (NTFS) таких потоков может быть много: как независимых программных модулей, так и разнообразной дополнительной служебной информации (права доступа к файлу, отметки о шифрации, времени обработки и т.д.). Это придает файлу гибкость, позволяя пользователям создавать новые потоки данных для хранения дополнительных атрибутов файлов или целых программ. "Stream" первым из известных вирусов использует возможность создавать множественные потоки данных NTFS для заражения файлов. Для этого он выполняет следующую последовательность действий. Сначала вирус создает дополнительный поток под именем "STR" и переносит туда оригинальное содержимое программы. После этого он записывает свое тело в основной поток вместо самой программы. Таким образом, при запуске зараженной программы сначала будет выполняться основной поток, содержащий вирус, который после окончания работы передаст управление "родительской" программе.

Рис.1 Процедура заражения файлов вирусом "Stream"

Файл до заражения Файл после заражения

[см. вложенный файл stream1.zip]

"По умолчанию, антивирусные программы проверяют только основной поток. В случае с данным вирусом проблем с его обнаружением и удалением ни у кого не возникнет", - продолжает Евгений Касперский, - "Однако, нет никаких гарантий, что вирусы не "переползут" в дополнительные потоки. В таком случае, большинству антивирусных компаний просто придется кардинально перестраивать их программы".

Процедуры защиты от вируса "Stream" добавлены в очередное ежедневное обновление антивирусной базы "Антивируса Касперского". Пожалуйста, обновите Ваш антивирус.

Технические детали

Первый известный Windows-вирус, который при заражении файлов использует метод "stream companion". Этот метод основан на возможности файловой системы NTFS создавать дополнительные блоки данных ("потоки" данных - streams), которые ассоциированы с конкретным файлом.

Потоки данных NTFS

На файловой системе NTFS каждый файл имеет как минимум один стандартный поток данных, к которому можно обратиться по имени файла. Каждый файл может также иметь дополнительные потоки данных, которые имеют свои персональные имена (filename:streamname).

Стандартный поток в файле является собственно телом файла (в до-NTFS-ных терминах). Например, при запуске EXE-файла его код и данные считываются из стандартного потока; при открытии документа его текст считывается также из стандартного потока.

Дополнительные потоки данных в файлах могут иметь данные произвольного типа (например, данные о правах доступа к данному файлу). Они являются принадлежностью файла и жестко к нему привязаны. Потоки данных в файле не могут быть прочитаны и изменены без упоминания имени файла; при удалении файла удаляются все его потоки; при переименовании файла к его потокам затем можно обращаться только при помощи нового имени файла.

Стандартные утилиты просмотра/редактирования потоков данных в поставке Windows отсутствуют. Для "ручного" просмотра можно использовать специализированные утилиты, например, FAR с необходимым набором "плагинов".

Работа вируса

Вирус является приложением Windows (PE EXE-файл). Упакован утилитой компрессии PE EXE-программ Petite. Имеет размер около 4K. При запуске заражает все файлы в текущем каталоге и возвращает управление программе-носителю. Если при работе вируса возникает какая-либо ошибка, он выводит сообщение:

[см. вложенный файл stream2.zip]

При заражении файла вирус переносит его тело (стандартный поток) в новый поток (который имеет имя STR) и затем записывает свой код в стандартный поток файла. Таким образом, тело зараженного файла (стандартный поток) оказывается замещенным кодом вируса, а первоначалное содержимое файла оказывается перемещенным в его поток. При запуске зараженного файла Windows считывает и выполняет его стандартный поток (т.е. код вируса). Windows также показывает у всех зараженных файлов одинаковую длину - длину файла-вируса (поскольку Windows сообщает длину только основного потока файла).

Для того, чтобы возвратить управление первоначальному коду зараженного файла, вирус всего-лишь запускает на выполнение соответственный поток файла, используя его имя: "FileName:STR".

В принципе, вирус работоспособен на любой операционной системе, использующей файловую систему NTFS. Однако его автор встроил в вирус проверку установленного ПО. Таким образом, запуск вируса происходит только в случае, если компьютер работает под управлением Windows 2000.