Как ты видишь, тему *nix и все, что с ними связано, Хакер в последнее время затрагивает очень хорошо. Не будет исключением и данная статья, где я поговорю с тобой о не слишком известных, но все же существующих вирусах в *nix-системах. Расскажу тебе о том, какие вирусы вообще бывают, что они могут натворить, куда прописываются и, естественно, о том, какие меры нужно принять, если у тебя подобный вирь завелся =).
Резидентные и нерезидентные
Вирусы делятся на так называемые резидентные и нерезидентные. Для первых "забивается" нужная для их работы часть памяти, они оставляют свой код или его часть в оперативной памяти. Затем резидентные вирусы осуществляют свою деятельность параллельно другим программам в системе. "А что же такое нерезидентные вирусы?" - спросишь ты и правильно сделаешь =). Отвечаю: нерезидентные вирусы при завершении своей гнусной работы освобождают оперативную память и не оставляют в памяти своего кода. Как видишь, это два взаимно противоположных вида вирусов, и при этом очевидно, что первый тип ака резидентные причиняют больше ущерба твоей ОСевухе. Ну а теперь давай ознакомимся непосредственно с вирусами под Юникс.
Виды вирей
Все вирусы под *nix относятся к New-Exe вирусам. Они бывают следующими:
1. Linux.Bliss
Относятся к нерезидентным вирусам, которые заражают только выполняемые файлы Linux. Написаны на языке GNU C. Linux.Bliss имеют формат ELF и работают, естественно, только в Linux. Когда запускаются, ищут выполняемые файлы в системе и заражают их: сдвигают содержимое файла вниз, записывая себя в освободившееся место и добавляют в конец этого файла следующую строку-идентификатор:
"Bliss.a": infected by bliss: 00010002:000045e4
"Bliss.b": infected by bliss: 00010004:000048ac
Здесь первое шестнадцатеричное число является номером версии вируса, а второе - длина вируса в байтах. При запуске зараженного файла "Bliss.a" ищет не более трех ELF-файлов и записывается в них. "Bliss.b" заражает больше файлов. Если в текущем каталоге все файлы заражены, вирус сканирует другие каталоги системы, ищет выполняемые файлы и заражает их. После заражения "Bliss" возвращает управление файлу-носителю. Он заражает файлы только в тех каталогах, к которым имеет доступ запустивший вирус юзверь. Если же юзер имеет системные привилегии, то вирус может распространиться по всему компу. При работе вирь выводит "отладочные" сообщения.
2. Linux.Winter
Относится к нерезидентным Linux-вирусам. Имеет очень малый размер: каких-то 341 байт. При запуске зараженного файла вирус получает управление, ищет ELF-файлы (выполняемые файлы Linux) в текущем каталоге и заражает их. При заражении вирус записывается в середину файла в секцию дополнительной информации о файле (Notes section), если такая присутствует и имеет достаточный размер. Первоначальные данные этой секции оказываются затертыми кодом вируса, однако не влияет на нормальное выполнение программы.
Вирус содержит строки:
LoTek by Wintermute
Вирус также содержит такую фишку, которая изменяет имя хоста (имя компьютера) на "Wintermute" =), однако эта процедура никогда не получает управления. В принципе, достаточно безобиден.
3. Linux.Diesel
Неопасный нерезидентный Linux-вирус. Ищет исполняемые Linux-файлы в системных подкаталогах и записывается в их середину. Перед поиском файлов вирь считывает свой бинарный код из файла носителя. Вирус переносит оригинальные байты в конец файла и увеличивает размер последней секции. После завершения работы вирус восстанавливает файл-носитель и возвращает ему управление. Содержит строки текста:
/ home root sbin bin opt
[ Diesel : Oil, Heavy Petroleum Fraction Used In Diesel Engines ]
4. Linux.ZipWorm
Безобидный Linux-вирус, добавляющий свои копии к ZIP-архивам. Заражает архивы только в текущем каталоге. При заражении вирус не использует внешние утилиты работы с ZIP-файлами, а самостоятельно обрабатывает внутренний формат архива. Копии вируса в архивах имеют одно из пяти возможных имен:
Ten motives why linux sux!
Why Windows is superior to Linux!
Is Linux for you? Never!
Is Linux immune to virus? NO!
zipworm!
Вирус также содержит текст-"копирайт":
elf zip worm vecna
5. Linux.Vit.4096
Неопасный нерезидентный вирус, заражающий выполняемые файлы Linux. Имеет формат ELF и работают только под Linux. Является вторым известным вирусом, заражающим выполняемые файлы Linux (после Linux.Bliss). Как и Linux.Bliss, он заражает файлы только в тех каталогах, к которым имеет доступ запустивший вирус пользователь. При запуске зараженного файла управление передается на код вируса. Вирус ищет исполняемые файлы в текущем каталоге и записывается в их середину. При заражении вирус записывается в первую обнаруженную секцию кода, предварительно увеличив ее размер на 4096 байт. Для этого вирус разбирает внутренний формат файла (ELF-формат), считывает заголовки секций, определяет адрес первой секции кода, сдвигает ее и все последующие секции вниз, записывает свой собственный код в образовавшееся пространство и затем необходимым образом корректирует заголовки секций и адрес "точки входа" - адрес процедуры, на которую передается управление при запуске файла. В зараженных файлах адрес "точки входа" указывает на код вируса. Вирус принимает специальные меры для предотвращения повторного заражения файлов. Заражение происходит достаточно корректно - в проведенных тестах зараженные файлы сохраняли свою работоспособность. При заражении файлов вирус использует временный файл VI324.TMP, что послужило причиной для выбора имени вируса.
6. Linux.Silvio
Неопасный нерезидентный Linux-вирус. При запуске ищет исполняемые файлы Linux в текущем каталоге и записывается в их начало. Вирус ищет в текущем каталоге случайное число файлов и с некоторой вероятность может не найти ни одного файла. Максимальное чило заражаемых файлов вирусом за один раз равно 4. Перед заражением файлов вирус считывает свое тело из файла носителя. Если число считанных байт меньше длины вируса, то он прекращает свою работу. При заражении файлов вирус дописывает к ним свой идентификатор. Это 4 байта в конце файла: 40h, E2h, 01, 00. При старте вирус с вероятностью 1/5 выводит текст:
THE FILE VIRUS - Silvio Cesare
Для того, чтобы запустить файл-носитель, вирус создает временный файл и записывает в него тело файла-носителя. Вирус использует системную функцию fork() для запуска дочернего процесса. Дочерний процесс запускает на выполнение временный файл. Основной процесс засыпает и ждет окончания дочернего. После того как дочерний процесс завершится, основной процесс удаляет временный файл и прекращает свою работу. Обычно зараженные файлы сохраняют свою работоспособность.
7. Linux.Satyr
Неопасный нерезидентный Linux-вирус. Является выполняемым файлом Linux (ELF-файлом). Ищет прочие ELF-файлы и записывается в их начало. Файлы заражаются в каталогах:
1. в текущем каталоге
2. в родительском каталоге
3. ~/ (корневой каталог пользователя)
4. ~/bin (каталог /bin пользователя)
5. ~/sbin (каталог /sbin пользователя)
6. /bin
7. /sbin
8. /usr/bin
9. /usr/local/bin
10. /usr/bin/X11
Вирус никак себя не проявляет. Содержит строку-копирайт:
unix.satyr version 1.0 (c)oded jan-2001 by Shitdown [MIONS], http://shitdown.sf.cz
8. Linux.Siilov
Неопасный Linux-вирус. Имеет формат ELF, работает только под Linux и заражает исполняемые файлы Linux. Использует два способа для заражения файлов: резидентный и нерезидентный. Резидентный: вирус остается в системной памяти и заражает файлы в фоном режиме; нерезидентный: ищет исполняемые файлы на диске и поражает их. При запуске зараженного файла управление передается на код вируса. Вирус в первую очередь заражает файл "/sbin/init". Этот файл является составной частью операционной системы и вызывается при загрузке и выгрузке ОС. После этого вирус ищет исполняемые ELF-файлы в текущем каталоге и поражает их. Резидентная часть вируса остается в памяти как часть зараженной программы и активна только на время работы этой программы. Для того, чтобы резидентная копия вируса получала управление, вирус модифицирует системную таблицу Linux, которая принадлежит инфицированной программе (таблица связки подпрограмм PLT) и перехватывает вызов функции "execve". Это одна из Linux-функций для запуска файлов. В итоге, вирус получает имена всех файлов, запускаемых на выполнение при помощи этой функции, и поражает их. При заражении файлов вирус ищет секцию неинициализированных данных "bss" и встраивает свой код внутрь этой секции, при этом он увеличивает размер секции на 5917 байт (или больше, в зависимости от размера и характеристик секции) и сдвигает вниз оставшуюся часть файла. Вирус не изменяет адрес точки входа ELF-файла. Он запоминает оригинальные байты внутри себя, а вместо них записывает команду перехода на код вируса. Вирус также переименовывает секцию 'bss' в 'data1' и изменяет ее атрибуты.
9. Linux.Kagob
Неопасный нерезидентный Linux-вирус. Является выполняемым файлом Linux (ELF-файлом). Ищет прочие ELF-файлы во всех подкаталогах системы и записывается в их начало.
Вирус никак себя не проявляет. Содержит строку-копирайт:
Linux.Kaiowas by Gobleen Warrior//SMF
10. Linux.Mandragore
Неопасный нерезидентный зашифрованный Linux-вирус. При запуске ищет исполняемые файлы Linux в текущем каталоге и записывается в их конец. Вирус сразу же пытается заразить файл /bin/ls. При заражении файлов вирус увеличивает размер последней секции файла и запоминает адрес точки входа. Затем вирус дописывает себя в конец файла и устанавливает адрес точки входа на свой код. По причине ошибки, вирус портит некоторые файлы при заражении. Содержит строку текста:
[Glaurung 2k] by mandragore/
Подведем итог...
Как видишь, подавляющее большинство вирей сегодняшнего обзора вовсе не так опасны, как ты, может быть, думал. Большинство из них являются нерезидентными и ориентированы на исполняемые файлы системы (ELF), в которые они добавляют свой код. Но это вовсе не освобождает тебя от ответственности обзавестить хорошими антивирями, такими как Доктор Веб для Unix и т.д.
Счастливо!