Введение.
20-е столетие, несомненно, является одним из поворотных этапов в жизни
человечества. Как сказал один из писателей-фантастов, “человечество понеслось
вперед, как подстегнутая лошадь”, и, определив себя как технократическую
цивилизацию, все свои силы наши деды, отцы и мы сами бросили на развитие техники
в самых разных ее обличиях - от медицинских приборов до космических аппаратов,
от сельскохозяйственных комбайнов до атомных электростанций, от транспорта до
систем связи, - список бесконечен, поскольку крайне сложно привести область
деятельности человечества, не затронутую развитием техники. Что являлось
причиной столь широкомасштабного и стремительного развития - военное
противостояние политических систем, эволюционное “поумнение” человека или его
патологическая лень (изобрести колесо, дабы не таскать мамонта на плечах) - пока
неясно. Оставим эту загадку для историков последующих столетий.
Человечество захвачено техникой и уже вряд ли откажется от удобств,
предоставляемых ею (мало кто пожелает поменять современный автомобиль на гужевую
тягу). Уже очень многими напрочь забыта обычная почта с ее конвертами и
почтальонами - вместо нее пришла электронная почта с ее ошеломляющей скоростью
доставки (до нескольких минут вне зависимости от расстояния) и очень высокой
надежностью. Не представляю себе существования современного общества без
компьютера, способного многократно повысить производительность труда и доставить
любую мыслимую информацию (что-то вроде принципа “пойди туда, не знаю куда,
найди то, не знаю что”). Уже не удивляемся мобильному телефону на улице - я и
сам к нему привык всего за один день.
20-е столетие также является одним из самых противоречивых, принесших истории
человечества немало парадоксов, основной из которых, как мне кажется, является
отношение человека к природе. Перестав жить в дружбе с природой, победив ее и
доказав себе, что легко может ее уничтожить, человек вдруг понял, что погибнет и
сам, - и поменялись роли в драме ”Человек-Природа”. Раньше человек защищал себя
от природы, теперь же он все больше и больше защищает природу от самого себя.
Другим феноменом 20-го века является отношение человека к религии. Став
технократом, человек не перестал верить в Бога (или его аналогов). Более того,
появились и окрепли другие религии.
К основным техническим феноменам 20-го века относятся, на мой взгляд, появление
человека в космосе, утилизация атомной энергии вещества, грандиозный прогресс
систем связи и передачи информации и, конечно же, ошеломляющее развитие микро- и
макро-компьютеров. И как скоро появляется упоминание о феномене компьютеров, так
тут же возникает еще один феномен конца нашего столетия - феномен компьютерных
вирусов.
Быть может, многим покажется смешным или легкомысленным то, что факт
возникновения компьютерных вирусов поставлен в один ряд с исследованиями
космоса, атомного ядра и развитием электроники. Возможно, что я не прав в своих
рассуждениях, однако дайте возможность объясниться.
Во-первых, компьютерные вирусы - это серьезная и довольно заметная проблема,
возникновения которой никто не ожидал. Даже всевидящие фантасты-футурологи
прошлого не говорят об этом ничего (насколько это мне известно). В их
многочисленных произведениях с той или иной точностью предсказаны практически
все технические достижения настоящего (вспомним, например, Уэллса с его идеей
полета из пушки на Луну и марсиан, вооруженных неким подобием лазера). Если же
говорить о вычислительных машинах, то тема эта вылизана донельзя - однако нет ни
одного пророчества, посвященного компьютерным вирусам. Тема вируса в
произведениях писателей появилась уже после того, как первый реальный вирус
поразил свой первый компьютер.
Во-вторых, компьютерные вирусы - это первая вполне удачная попытка создать
жизнь. Попытка удачная, но нельзя сказать, что полезная - современные
компьютерные “микроорганизмы” более всего напоминают насекомых-вредителей,
приносящих только проблемы и неприятности.
Но все таки - жизнь, поскольку компьютерным вирусам присущи все атрибуты живого
- способность к размножению, приспособляемости к среде, движению и т.д.
(естественно, только в пределах компьютеров - так же как все вышесказанное верно
для биологических вирусов в пределах клеток организма). Более того, существуют
“двуполые” вирусы (см. вирус RMNS), а примером “многоклеточности” могут служить,
например, макро-вирусы, состоящие из нескольких независимых макросов.
И, в-третьих, тема вирусов стоит несколько особняком от всех остальных задач,
решаемых при помощи компьютера (забудем о таких специфичных задачах, как взлом
защиты от копирования и криптографию). Практически все проблемы, решаемые при
помощи вычислительной техники, являются продолжением целенаправленной борьбы
человека с окружающей его природой. Природа ставит человеку длинное нелинейное
дифференциальное уравнение в трехмерном пространстве - человек набивает
компьютер процессорами, памятью, обвешивает пыльными проводами, много курит и в
итоге решает это уравнение (или пребывает в состоянии уверенности, что решил).
Природа дает человеку кусок провода с вполне определенными характеристиками -
человек придумывает алгоритмы передачи как можно большего объема информации по
этому проводу, терзает его модуляциями, сжимает байты в биты и терпеливо ждет
сверхпроводимости при комнатной температуре. Природа (в лице фирмы IBM) дает
человеку очередное ограничение в виде очередной версии IBM PC - и человек не
спит ночами, опять много курит, оптимизируя коды очередной базы данных, дабы
уместить ее в предоставленные ему ресурсы оперативной и дисковой памяти. И так
далее.
А вот борьба с компьютерными вирусами является борьбой человека с человеческим
же разумом (в некотором смысле тоже проявлением природных сил, хотя на этот счет
имеется более одного мнения). Эта борьба является борьбой умов, поскольку
задачи, стоящие перед вирусологами, ставят такие же люди. Они придумывают новый
вирус - а вирусологам с ним разбираться. Затем они придумывают вирус, в котором
разобраться очень тяжело - но и с ним разбираются. И сейчас наверняка где-то
сидит за компьютером парень, страдающий над очередным монстром, в котором
вирусологам придется разбираться целую неделю, а потом еще одну неделю
отлаживать алгоритм антивируса. Кстати, чем не эволюция живых организмов?
Итак, появление компьютерных вирусов - один из наиболее интересных моментов в
истории технического прогресса 20-го века, и настал момент закончить с
околофилософскими рассуждениями и перейти к конкретным вопросам. И вопрос об
определении понятия “компьютерный вирус” будет стоять на первом месте.
Так что-же такое компьютерные вирусы и как с ними бороться?
На эту тему написаны десятки книг и сотни статей, борьбой с компьютерными
вирусами профессионально занимаются сотни (или тысячи) специалистов в десятках
(а может быть, сотнях) компаний. Казалось бы, тема эта не настолько сложна и
актуальна, чтобы быть объектом такого пристального внимания. Однако это не так.
Компьютерные вирусы были и остаются одной из наиболее распространенных причин
потери информации. Известны случаи, когда вирусы блокировали работу организаций
и предприятий. Более того, несколько лет назад был зафиксирован случай, когда
компьютерный вирус стал причиной гибели человека - в одном из госпиталей
Нидерландов пациент получил летальную дозу морфия по той причине, что компьютер
был заражен вирусом и выдавал неверную информацию.
Несмотря на огромные усилия конкурирующих между собой антивирусных фирм, убытки,
приносимые компьютерными вирусами, не падают и достигают астрономических величин
в сотни миллионов долларов ежегодно. Эти оценки явно занижены, поскольку
известно становится лишь о части подобных инцидентов.
При этом следует иметь в виду, что антивирусные программы и “железо” не дают
полной гарантии защиты от вирусов. Примерно так же плохо обстоят дела на другой
стороне тандема “человек-компьютер”. Как пользователи, так и
профессионалы-программисты часто не имеют даже навыков “самообороны”, а их
представления о вирусе порой являются настолько поверхностными, что лучше бы их
(представлений) и не было.
Немногим лучше обстоят дела на Западе, где и литературы побольше (издается аж
три ежемесячных журнала, посвященных вирусам и защите от них), и вирусов
поменьше (поскольку “левые” китайские компакт-диски особо на рынок не
поступают), и антивирусные компании ведут себя активнее (проводя, например,
специальные конференции и семинары для специалистов и пользователей).
У нас же, к сожалению, все это не совсем так. И одним из наименее
”проработанных” пунктов является литература, посвященная проблемам борьбы с
вирусами. На сегодняшний день имеющаяся на прилавках магазинов печатная
продукция антивирусного толка либо давно устарела, либо написана
непрофессионалами, либо авторами типа Хижняка, что гораздо хуже.
Довольно неприятным моментом является также опережающая работа Российского
компьютерного “андеграунда”: только за два года было выпущено более десятка
электронных номеров журнала вирусописателей “Infected Voice”, появилось
несколько станций BBS и WWW-страниц, ориентированные на распространение вирусов
и сопутствующей информации.
1. История возникновения и развития компьютерных вирусов.
Считают, что идея создания компьютерных вирусов была придумана
писателем-фантастом Т. Дж. Райн, который в одной из своих книг, опубликованной в
США в 1977 г., описал эпидемию, за короткое время поразившую более 7000
компьютеров. Причиной эпидемии стал компьютерный вирус, который, передаваясь от
одного компьютера к другому, внедрялся в их операционные системы и выводил их
из-под контроля человека.
Ущерб, наносимый компьютерными вирусами, быстро возрастает, а их опасность для
таких жизненно важных систем, как оборона, транспорт, связь, поставила проблему
компьютерных вирусов в ряд тех, которые обычно находятся под пристальным
вниманием органов государственной безопасности.
Считается признанным, что в последние годы больше всего вирусов создавалось в
СССР, а затем в России и других странах СНГ. Но и в других странах, в том числе
в США, значителен урон, наносимый вирусами. В США борьба с вирусами ведется на
самом высоком уровне.
В Уголовном Кодексе России обозначена статья 273 за "Создание, использование и
распространение вредоносных программ для ЭВМ", которая гласит:
1. Создание программ для ЭВМ или внесение изменений в существующие программы,
заведомо приводящих к несанкционированному уничтожению, блокированию,
модификации либо копированию информации, нарушению работы ЭВМ, системы ЭВМ или
их сети а равно использование либо распространение таких программ или машинных
носителей с такими программами – наказываются лишением свободы на срок до 3 лет
со штрафом в размере от двухсот до пятисот минимальных размеров оплаты труда или
в размере заработной платы или иного дохода осужденного за период от двух до
пяти месяцев.
2. Те же деяния, повлекшие по неосторожности тяжкие последствия, - наказываются
лишением свободы на срок от трех до семи лет.
В США, вскоре после объявления в 1993 году Белым домом о подключении президента
Билла Клинтона и вице-президента Альберта Гора к сети Internet, администрация
поддержала идею проведения Национального дня борьбы с компьютерными вирусами.
Такой день отмечается теперь ежегодно. Национальной ассоциацией по компьютерной
защите США (NCSA) и компанией Dataquest опубликованы следующие данные по
результатам исследований вирусной проблемы:
- 63% опрошенных пострадали от компьютерных вирусов;
- предполагаемые потери американского бизнеса от компьютерных вирусов в 1999
году составят около 3 млрд. долларов;
- идентифицировано более 23000 компьютерных вирусов;
- каждый месяц появляется более 50 новых вирусов;
- в среднем от каждой вирусной атаки страдает 142 персональных компьютера: на ее
отражение в среднем уходит 2,4 дня;
- для компенсации ущерба в 114 случаев требовалось более 5 дней.
Начиная с конца 1990 г., появилась новая тенденция, получившая название
"экспоненциальный вирусный взрыв". Количество новых вирусов, обнаруживаемых в
месяц, стало исчисляться десятками, а в дальнейшем и сотнями. Поначалу
эпицентром этого взрыва была Болгария, затем он переместился в Россию. После
1994 г. темп роста вирусов пошел на убыль, хотя их общее количество продолжает
увеличиваться. Это связано с тем, что ОС MS D0S, которая и дает 99% существующих
компьютерных вирусов, постепенно сдает свои лидирующие позиции как операционная
система для персональных компьютеров, уступая их Windows, 0S2, UNIX и т.п.
Кроме того, вирусы постоянно расширяют свою "среду обитания" и реализуют
принципиально новые алгоритмы внедрения и поведения. Так, в 1995 году появились
представители, опровергающие ключевые принципы антивирусной защиты – то, что
компьютер, загруженный с заведомо чистой системной дискеты, не может содержать
вирус; и то, что вирусы не заражают файлы с данными.
Первым появился вирус, который таким образом корректирует конфигурацию
компьютера, что при попытке загрузки с дискеты он все равно загружается с
зараженного жесткого диска, и вирус активизируется в системе.
Другой вирус, появившийся в середине августа 1995 г. в США и ряде стран Западной
Европы, использует возможность представления информации в виде конгломерата
данных и программ. Он заражает документы, подготовленные в системе MS Word for
Windows – файлы типа .DOC. Так как такие файлы ежедневно десятками тысяч
циркулируют в локальных и глобальных сетях, эта способность вируса обеспечила
его мгновенное распространение по всему свету в течение нескольких дней и 25
августа он был обнаружен в Москве. Вирус написан на макроязыке пакета Word. Он
переносит себя в область глобальных макросов, переопределяет макрос FileSaveAs и
копирует себя в каждый файл, сохраняемый с помощью команды Save As. При этом он
переводит файл из категории "документ" в категорию "шаблон", что делает,
невозможным его дальнейшее редактирование. Обнаружить наличие этого вируса можно
по появлению в файле winword6.ini строки ww6i=1.
Новым словом в вирусологии стал вирус под названием “Чернобыль” или WIN95.CIH.
Данный вирус в отличие от своих собратьев в зависимости от модификации мог
уничтожать MBR жесткого диска, таблицу размещения данных и не защищенную от
перезаписи Flash-память. Волна эпидемии этого вируса прокатилась по всему миру.
Громадный материальный ущерб был нанесен в Швеции. 26 апреля 1999 года
пострадало большое количество пользователей и в России.
Наиболее известен вызвавший всемирную сенсацию и привлекший внимание к вирусной
проблеме инцидент с вирусом-червем в глобальной сети Internet. Второго ноября
1988 года студент Корнелловского университета Роберт Моррис запустил на
компьютере Массачусетского технологического института программу-червь, которая
передавала свой код с машины на машину, используя ошибки в системе UNIX на
компьютерах VAX и Sun. В течение 6 часов были поражены 6000 компьютеров, в том
числе Станфордского университета, Массачусетского технологического института,
университета Беркли и многих других. Кроме того, были поражены компьютеры
Исследовательского института НАСА и Национальной лаборатории Лоуренса в
Ливерморе – объекты, на которых проводятся самые секретные стратегические
исследования и разработки. Червь представлял собой программу из 4000 строк на
языке "С" и входном языке командного интерпретатора системы UNIX. Следует
отметить, что вирус только распространялся по сети и не совершал каких-либо
разрушающих действий. Однако это стало ясно только на этапе анализа его кода, а
пока вирус распространялся, в вычислительных центрах царила настоящая паника.
Тысячи компьютеров были остановлены, ущерб составил многие миллионы долларов.
2. Классификация вирусов
Известные программные вирусы можно классифицировать по следующим признакам:
среде обитания;
способу заражения среды обитания;
воздействию;
особенностям алгоритма.
В зависимости от среды обитания вирусы можно разделить на:
сетевые;
файловые;
загрузочные;
файлово-загрузочные.
Сетевые вирусы распространяются по различным компьютерным сетям. К сетевым
относятся вирусы, которые для своего распространения активно используют
протоколы и возможности локальных и глобальных сетей. Основным принципом работы
сетевого вируса является возможность самостоятельно передать свой код на
удаленный сервер или рабочую станцию. “Полноценные” сетевые вирусы при этом
обладают еще и возможностью запустить на выполнение свой код на удаленном
компьютере или, по крайней мере, “подтолкнуть” пользователя к запуску
зараженного файла.
Бытует ошибочное мнение, что сетевым является любой вирус, распространяющийся в
компьютерной сети. Но в таком случае практически все вирусы были бы сетевыми,
даже наиболее примитивные из них: ведь самый обычный нерезидентный вирус при
заражении файлов не разбирается - сетевой (удаленный) это диск или локальный. В
результате такой вирус способен заражать файлы в пределах сети, но отнести его к
сетевым вирусам никак нельзя.
Наибольшую известность приобрели сетевые вирусы конца 1980-х, их также называют
сетевыми червями (worms). К ним относятся вирус Морриса, вирусы “Cristmas Tree”
и “Wank Worm&”. Для своего распространения они использовали ошибки и
недокументированные функции глобальных сетей того времени - вирусы передавали
свои копии с сервера на сервер и запускали их на выполнение. В случае с вирусов
Морриса эпидемия захватила аж несколько глобальных сетей в США.
Сетевые вирусы прошлого распространялись в компьютерной сети и, как правило, так
же как и компаньон-вирусы, не изменяли файлы или сектора на дисках. Они
проникали в память компьютера из компьютерной сети, вычисляли сетевые адреса
других компьютеров и рассылали по этим адресам свои копии. Этивирусы иногда
также создавали рабочие файлы на дисках системы, но могли вообще не обращаться к
ресурсам компьютера (за исключением оперативной памяти).
После нескольких эпидемий сетевых вирусов ошибки в сетевых протоколах и
программном обеспечении были исправлены, а “задние двери” закрыты. В результате
за песледние десять лет не было зафиксировано ни одного случая заражения сетевым
вирусом, как, впрочем, не появилось и ни одного нового сетевого вируса.
Вновь проблема сетевых вирусов возникла лишь в начале 1997-го года с появлением
вирусов “Macro.Word.ShareFun” и “Win.Homer”. Первый из них использует
возможности электронной почты Microsoft Mail - он создает новое письмо,
содержащее зараженный файл-документ (“ShareFun” является макро-вирусом), затем
выбирает из списка адресов MS-Mail три случайных адреса и рассылает по ним
зараженное письмо. Поскольку многие пользователи устанавливают параметры MS-Mail
таким образом, что при получении письма автоматически запускается MS Word, то
вирус “автоматически” внедряется в компьютер адресата зараженного письма.
Этот вирус иллюстрирует первый тип современного сетевого вируса, которые
объединяют возможности встроенного в Word/Excel языка Basic, протоколы и
особенности электронной почты и функции авто-запуска, необходимые для
распространения вируса.
Второй вирус (“Homer”) использует для своего распространения протокол FTP (File
Trabsfer Protocol) и передает свою копию на удаленный ftp-сервер в каталог
Incoming. Поскольку сетевой протокол FTP исключает возможность запуска файла на
удаленнов сервере, этот вирус можно охарактеризовать как “полу-сетевой”, однако
это реальный пример возможностей вирусов по использованию современных сетевых
протоколов и поражению глобальных сетей.
Файловые вирусы внедряются главным образом в исполняемые модули, т. е. в файлы,
имеющие расширения COM и EXE. Они могут внедряться и в другие типы файлов, но,
как правило, записанные в таких файлах, они никогда не получают управление и,
следовательно, теряют способность к размножению. В отличие от загрузочных
вирусов, которые практически всегда резидентны, файловые вирусы не обязательно
резидентны. Областью обитания файловых вирусов являются файлы. Если файловый
вирус не резидентный, то при запуске инфицированного исполняемого файла вирус
записывает свой код в тело программного файла таким образом, что при запуске
программы вирус первым получает управление. Произведя некоторые действия, вирус
передает управление зараженной программе. При запуске вирус сканирует локальные
диски компьютера и сетевые каталоги в поисках нового объекта для заражения.
После того как подходящий программный файл будет найден, вирус записывает в него
свой код, чтобы получить управление при запуске этого файла.
Если файловый вирус резидентный, то он установится в память и получит
возможность заражать файлы и проявлять прочие способности не только во время
работы зараженного файла.
Относительно новой разновидностью файлового вируса является макрокомандный
вирус, распространяющийся с документами офисных приложений, таких как Microsoft
Word for Windows или Microsoft Excel for Windows.
Документы офисных приложений содержат в себе не только текст и графические
изображения, но и макрокоманды, которые представляют собой ничто иное, как
программы. Эти программы составляются на языке, напоминающем Бейсик. Вирус может
изменять существующие макрокоманды и добавлять новые, внедряя свое тело в файл
документа.
Механизм распространения макрокомандных вирусов основан на том, что существуют
макрокоманды, которые запускаются при открывании документа для редактирования
или при выполнении других операций. Разработчик макрокомандного вируса берет
файл с именем, например, readme.doc, и записывает в него одну или несколько
вирусных макрокоманд, например, вирусную макрокоманду с именем AutoExec. Когда
пользователь открывает такой файл при помощи текстового процессора Microsoft
Word for Windows, эта макрокоманда будет автоматически запущена на выполнение.
При этом вирус получит управление и может заразить другие документы, хранящиеся
на дисках. Если вирусная макрокоманда имеет имя FileSaveAs, то распространение
вируса будет происходить при сохранении документа.
Для предотвращения заражения макрокомандными вирусами необходимо перед
просмотром или редактированием проверять новые файлы документов с помощью
антивирусных программ, способных искать такие вирусы.
Загрузочные вирусы.
Вторая большая группа вирусов - это так называемые загрузочные вирусы.
Распространение и активизация этих вирусов происходит в момент загрузки
операционной системы, еще до того, как пользователь успел запустить какую-либо
антивирусную программу.
Сразу после включения электропитания компьютера начинает работать программа
инициализации, записанная в ПЗУ базовой системы ввода/вывода BIOS. Эта программа
проверяет оперативную память и другие устройства компьютера, а затем передает
управление программе начальной загрузки, которая также находится в BIOS.
Программа начальной загрузки пытается прочитать в оперативную память содержимое
самого первого сектора нулевой дорожки жесткого диска, в котором находится
главная загрузочная запись Master Boot Record (MBR), либо содержимое самого
первого сектора нулевой дорожки дискеты, вставленной в устройство A:. Этот
сектор содержит загрузочную запись Boot Record (BR).
Существует две возможности загрузить операционную систему - с жесткого диска или
с дискеты.
При загрузке с жесткого диска в память по фиксированному адресу читается
содержимое главной загрузочной записи. Эта запись представляет собой программу,
задачей которой является загрузка операционной системы с логического диска.
Загрузчик, расположенный в главной загрузочной записи MBR просматривает таблицу
разделов диска Partition Table, которая находится в том же секторе диска, что и
сама запись MBR. После того как в этой таблице будет найден раздел, отмеченный
как активный, выполняется чтение самого первого сектора этого раздела в
оперативную память, - сектора загрузочной записи BR. В этом секторе находится
еще один загрузчик.
Задачей загрузчика BR является считывание в оперативную память стартовых модулей
операционной системы и передача им управления. Способ загрузки зависит от
операционной системы, поэтому каждая операционная система имеет свой собственный
загрузчик BR.
Загрузка с дискеты происходит проще, так как формат дискеты в точности
соответствует формату логического диска. Самый первый сектор нулевой дорожки
дискеты содержит загрузочную запись BR, которая читается в память. После чтения
ей передается управление.
Дискеты могут быть системными и несистемными.
Системную дискету MS-DOS можно подготовить при помощи команды format, указав ей
параметр /s, либо при помощи команды sys. И в том, и в другом случае в первый
сектор нулевой дорожки дискеты записывается программа начальной загрузки MS-DOS.
Если же дискета была отформатирована командой format без параметра /s, она будет
несистемной. Тем не менее, в первый сектор нулевой дорожки дискеты все равно
записывается программа, единственным назначением которой является вывод
сообщения о необходимости вставить в НГМД системную дискету.
Данное обстоятельство - присутствие загрузочной записи на несистемной дискете -
играет важную роль при распространении загрузочных вирусов.
Загрузка операционной системы является многоступенчатым процессом, ход которого
зависит от разных обстоятельств. В этом процессе задействовано три программы,
которые служат объектом нападения загрузочных вирусов:
главная загрузочная запись;
загрузочная запись на логическом диске;
загрузочная запись на дискете.
Вирусы могут заменять некоторые или все перечисленные выше объекты, встраивая в
них свое тело и сохраняя содержимое оригинального загрузочного сектора в
каком-либо более или менее подходящем для этого месте на диске компьютера. В
результате при включении компьютера программа загрузки, расположенная в BIOS,
загружает в память вирусный код и передает ему управление. Дальнейшая загрузка
операционной системы происходит под контролем вируса, что затрудняет, а в
некоторых случаях и исключает его обнаружение антивирусными программами.
Загрузочные вирусы заражают загрузочный (boot) сектор флоппи-диска и boot-сектор
или Master Boot Record (MBR) винчестера. Принцип действия загрузочных вирусов
основан на алгоритмах запуска операционной системы при включении или
перезагрузке компьютера - после необходимых тестов установленного оборудования
(памяти, дисков и т.д.) программа системной загрузки считывает первый физический
сектор загрузочного диска (A:, C: или CD-ROM в зависимости от параметров,
установленных в BIOS Setup) и передает на него управление.
Файлово–загрузочные вирусы. Существует большое количество сочетаний - например,
файлово-загрузочные вирусы, заражающие как файлы, так и загрузочные сектора
дисков. Такие вирусы, как правило, имеют довольно сложный алгоритм работы, часто
применяют оригинальные методы проникновения в систему, используют стелс и
полиморфик-технологии.
По способу заражения среды обитания вирусы делятся на две группы:
резидентные
нерезидентные.
Под термином "резидентность" (DOS'овский термин TSR - Terminate and Stay
Resident) понимается способность вирусов оставлять свои копии в системной
памяти, перехватывать некоторые события (например, обращения к файлам или
дискам) и вызывать при этом процедуры заражения обнаруженных объектов (файлов и
секторов). Таким образом, резидентные вирусы активны не только в момент работы
зараженной программы, но и после того, как программа закончила свою работу.
Резидентные копии таких вирусов остаются жизнеспособными вплоть до очередной
перезагрузки, даже если на диске уничтожены все зараженные файлы. Часто от таких
вирусов невозможно избавиться восстановлением всек копий файлов с дистрибутивных
дисков или backup-копий. Резидентная копия вируса остается активной и заражает
вновь создаваемые файлы. То же верно и для загрузочных вирусов — форматирование
диска при наличии в памяти резидентного вируса не всегда вылечивает диск,
поскольку многие резидентные вирусы заражает диск повторно после того, как он
отформатирован.
Нерезидентные вирусы, напротив, активны довольно непродолжительное время —
только в момент запуска зараженной программы. Для своего распространения они
ищут на диске незараженные файлы и записываются в них. После того, как код
вируса передает управление программе-носителю, влияние вируса на работу
операционной системы сводится к нулю вплоть до очередного запуска какой-либо
зараженной программы. Поэтому файлы, зараженные нерезидентными вирусами
значительно проще удалить с диска и при этом не позволить вирусу заразить их
повторно.
По степени воздействия вирусы можно разделить на следующие виды:неопасные, не
мешающие работе компьютера, но уменьшающие объем свободной оперативной памяти и
памяти на дисках, действия таких вирусов проявляются в каких-либо графических
или звуковых эффектахопасные вирусы, которые могут привести к различным
нарушениям в работе компьютера очень опасные, воздействие которых может привести
к потере программ, уничтожению данных, стиранию информации в системных областях
диска.
По особенностям алгоритма вирусы трудно классифицировать из-за большого
разнообразия. Простейшие вирусы - паразитические, они изменяют содержимое файлов
и секторов диска и могут быть достаточно легко обнаружены и уничтожены.
Вирусы-репликаторы, называемые червями, которые распространяются по компьютерным
сетям, вычисляют адреса сетевых компьютеров и записывают по этим адресам свои
копии. Вирусы-невидимки, называемые стелс-вирусами, которые очень трудно
обнаружить и обезвредить, так как они перехватывают обращения операционной
системы к пораженным файлам и секторам дисков и подставляют вместо своего тела
незараженные участки диска. Наиболее трудно обнаружить вирусы-мутанты
(полиморфные вирусы), содержащие алгоритмы шифровки-расшифровки, благодаря
которым копии одного и того же вируса не имеют ни одной повторяющейся цепочки
байтов. Имеются и так называемые квазивирусные или “троянские” программы,
которые хотя и не способны к самораспространению, но очень опасны, так как,
маскируясь под полезную программу, разрушают загрузочный сектор и файловую
систему дисков.
Макровирусы.
Весьма оригинальный класс вирусов (хотя вирусами в полном смысле этого слова их
даже нельзя назвать), заражающий документы, в которых предусмотрено выполнение
макрокоманд. При открытии таких документов вначале исполняются макрокоманды
(специальные программы высокого уровня), содержащиеся в этом документе, -
макровирус как раз и представляет собой такую макрокоманду. Таким образом, как
только будет открыт зараженный документ, вирус получит управление и совершит все
вредные действия (в частности, найдет и заразит еще не зараженные документы).
Полиморфные вирусы.
Этот вид компьютерных вирусов представляется на сегодняшний день наиболее
опасным.
Полиморфные вирусы - вирусы, модифицирующие свой код в зараженных программах
таким образом, что два экземпляра одного и того же вируса могут не совпадать ни
в одном бите.
Такие вирусы не только шифруют свой код, используя различные пути шифрования, но
и содержат код генерации шифровщика и расшифровщика, что отличает их от обычных
шифровальных вирусов, которые также могут шифровать участки своего кода, но
имеют при этом постоянный код шифровальщика и расшифровщика.
Полиморфные вирусы - это вирусы с самомодифицирующимися расшифровщиками. Цель
такого шифрования: сделать невозможным проанализировать код вируса с помощью
обычного дизассемблирования, даже имея зараженный и оригинальный файлы. Этот код
зашифрован и представляет собой бессмысленный набор команд. Расшифровка
производится самим вирусом уже непосредственно во время выполнения. При этом
возможны варианты: он может расшифровать себя всего сразу, а может выполнить
такую расшифровку в ходе работы, может вновь шифровать уже отработавшие участки.
Все это делается ради затруднения анализа кода вируса.
Стелс-вирусы.
В ходе проверки компьютера антивирусные программы считывают данные - файлы и
системные области с жестких дисков и дискет, пользуясь средствами операционной
системы и базовой системы ввода/вывода BIOS. Ряд вирусов, после запуска
оставляют в оперативной памяти компьютера специальные модули, перехватывающие
обращение программ к дисковой подсистеме компьютера. Если такой модуль
обнаруживает, что программа пытается прочитать зараженный файл или системную
область диска, он на ходу подменяет читаемые данные, как будто вируса на диске
нет.
Стелс-вирусы обманывают антивирусные программы и в результате остаются
незамеченными. Тем не менее, существует простой способ отключить механизм
маскировки стелс-вирусов. Достаточно загрузить компьютер с не зараженной
системной дискеты и сразу, не запуская других программ с диска компьютера
(которые также могут оказаться зараженными), проверить компьютер антивирусной
программой.
При загрузке с системной дискеты вирус не может получить управление и установить
в оперативной памяти резидентный модуль, реализующий стелс-механизм.
Антивирусная программа сможет прочитать информацию, действительно записанную на
диске, и легко обнаружит вирус.
Системная дискета для антивирусного контроля должна быть подготовлена заранее.
Кроме системных файлов, на нее следует записать антивирусные программы.
Вирусы-призраки.
Вирусы-призраки маскируются с помощью другого механизма. Эти вирусы постоянно
модифицируют себя таким образом, что не содержат одинаковых фрагментов. Такие
вирусы хранят свое тело в закодированном виде и постоянно меняют параметры этой
кодировки. Стартовая же часть, занимающаяся декодированием непосредственно
самого тела, может генерироваться весьма сложным способом. При переносе вируса
данного типа с компьютера на компьютер код вируса изменяется таким образом, что
уже не имеет ничего общего со своим предыдущим вариантом. А часть вирусов может
самомодифицироваться и в пределах одного компьютера. Обнаружение таких вирусов
весьма затруднено, хотя часть антивирусных программ пытается находить их по
участкам кода, характерным для стартовой части.
Компаньон – вирусы.
Компаньон - вирусы (companion) - это вирусы, не изменяющие файлы. Алгоритм
работы этих вирусов состоит в том, что они создают для EXE-файлов
файлы-спутники, имеющие то же самое имя, но с расширени