Научная электронная библиотека
Монографии, изданные в издательстве Российской Академии Естествознания

КОМПЬЮТЕРНЫЙ ВИРУС

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

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

Например, вирус Anti-MIT ежегодно 1 декабря разрушает всю информацию на жестком диске, вирус Tea Time мешает вводить информацию с клавиатуры с 15:10 до 15:13. В 1989 году американский студент сумел создать вирус, который вывел из строя около 6 000 компьютеров Министерства обороны США. Эпидемия известного вируса Dir-II разразилась в 1991 году. Вирус использовал действительно оригинальную, принципиально новую технологию и на первых порах сумел широко распространиться за счет несовершенства традиционных антивирусных средств. Кристоферу Пайну удалось создать вирусы Pathogen и Queeq, а также вирус Smeg. Именно последний был самым опасным, его можно было накладывать на первые два вируса, и из-за этого после каждого прогона программы они меняли конфигурацию. Поэтому их было невозможно уничтожить. Чтобы распространить вирусы, Пайн скопировал компьютерные игры и программы, заразил их, а затем отправил обратно в сеть. Пользователи загружали в свои компьютеры, зараженные программы и инфицировали диски. Ситуация усугубилась тем, что Пайн умудрился занести вирусы и в программу, которая с ними борется. Запустив ее, пользователи вместо уничтожения вирусов получали еще один. В результате этого были уничтожены файлы множества фирм, убытки составили миллионы фунтов стерлингов.

Широкую известность получил американский программист Моррис. Он известен как создатель вируса, который в ноябре 1988 года заразил порядка 7 тысяч персональных компьютеров, подключенных к Internet.

Первые исследования саморазмножающихся искусственных конструкций проводились в середине нынешнего столетия. Термин «компьютерный вирус» появился позднее (в 1984 году на седьмой конференции по безопасности информации) - официально его автором считается сотрудник Лехайского университета (США) Ф. Коэн. Эксперты считают, что число существующих вирусов перевалило за 20 тысяч.

Один из «вирусологов» страны Евгений Касперский предлагает условно классифицировать вирусы по следующим признакам:

 по среде обитания вируса;

 по способу заражения среды обитания;

 по деструктивным возможностям;

 по особенностям алгоритма вируса.

Более подробную классификацию вирусов внутри этих групп можно представить примерно так (табл. 28):

Основными путями проникновения вирусов в компьютер являются съемные внешние устройства, а также компьютерные сети. Заражение жесткого диска вирусами может произойти при загрузке программы с внешнего устройства, содержащего вирус.

Как работает вирус

Что происходит при включении компьютера? Первым делом управление передается программе начальной загрузки (ПНЗ), которая хранится в постоянно запоминающем устройстве (ПЗУ), т.е. ПНЗ ПЗУ.

Эта программа тестирует оборудование.

Среди секторов есть несколько служебных, используемых операционной системой для собственных нужд. Из служебных секторов нас интересует один - сектор начальной загрузки (boot-sector).

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

ПНЗ (ПЗУ) - ПНЗ (диск) - СИСТЕМА.

Теперь рассмотрим вирус. В загрузочных вирусах выделяют две части - голову и хвост. Хвост, вообще говоря, может быть пустым.

Пусть имеются чистая дискета и зараженный компьютер с активным резидентным вирусом. Как только этот вирус обнаружит, что в дисководе появилась подходящая жертва - не защищенная от записи и еще не зараженная дискета, он приступает к заражению. Заражая дискету, вирус производит следующие действия:

 выделяет некоторую область диска и помечает ее как недоступную операционной системе. Это можно сделать по-разному, в простейшем и традиционном случае занятые вирусом секторы помечаются как сбойные (bad);

 копирует в выделенную область диска свой хвост и оригинальный (здоровый) загрузочный сектор;

 замещает программу начальной загрузки в загрузочном секторе (настоящем) своей головой;

 организует цепочку передачи управления согласно схеме.

Таким образом, голова вируса теперь первой получает управление, вирус устанавливается в память и передает управление оригинальному загрузочному сектору. В цепочке

ПНЗ (ПЗУ) - ПНЗ (диск) - СИСТЕМА

появляется новое звено:

ПНЗ (ПЗУ) - ВИРУС - ПНЗ (диск) - СИСТЕМА.

Мы рассмотрели схему функционирования простого бутового вируса, живущего в загрузочных секторах дискет. Как правило, вирусы способны заражать не только загрузочные секторы дискет, но и загрузочные секторы винчестеров. При этом в отличие от дискет на винчестере имеются два типа загрузочных секторов, содержащих программы начальной загрузки, которые получают управление. При загрузке компьютера с винчестера первой берет на себя управление программа начальной загрузки в MBR (Master Boot Record - главная загрузочная запись). Если ваш жесткий диск разбит на несколько разделов, то лишь один из них помечен как загрузочный (boot). Программа начальной загрузки в MBR находит загрузочный раздел винчестера и передает управление на программу начальной загрузки этого раздела. Код последней совпадает с кодом программы начальной загрузки, содержащейся на обычных дискетах, а соответствующие загрузочные секторы отличаются только таб?????? ??????????. ????? ???????, ?? ?????????? ??????? ??? ??????? ????? ??????????? ??????? лицами параметров. Таким образом, на винчестере имеются два объекта атаки загрузочных вирусов - программа начальной загрузки в MBR и программа начальной загрузки boot-секторе загрузочного диска.

Признаки проявления вируса

При заражении компьютера вирусом важно его обнаружить. Для этого следует знать основные признаки проявления вирусов. К ним можно отнести следующие:

 прекращение работы или неправильная работа ранее успешно функционировавших программ;

 медленная работа компьютера;

 невозможность загрузки операционной системы;

 исчезновение файлов и каталогов или искажение их содержимого;

 изменение даты и времени модификации файлов;

 изменение размеров файлов;

 неожиданное значительное увеличение количества файлов на диске;

 существенное уменьшение размера свободной оперативной памяти;

 вывод на экран непредусмотренных сообщений или изображений;

 подача непредусмотренных звуковых сигналов;

 частые зависания и сбои в работе компьютера.

Следует отметить, что перечисленные выше признаки необязательно вызываются присутствием вируса, а могут быть следствием других причин. Антивирусные программы

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

Требования к антивирусным программам

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

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

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

Многоплатформенность (наличие версий программы под различные операционные системы). Если антивирус используется только на одном компьютере, то этот параметр не имеет большого значения. Но антивирус для организации обязан поддерживать все распространенные операционные системы. Кроме того, при работе в сети немаловажным является наличие серверных функций, предназначенных для административной работы, а также возможность работы с различными видами серверов.

Характеристика антивирусных программ

Антивирусные программы делятся на: программы-детекторы, программы-докторы, программы-ревизоры, программы-фильтры, программы-вакцины. Программы-детекторы. Позволяют обнаруживать файлы, зараженные одним из нескольких известных вирусов. Эти программы проверяют, имеется ли в файлах на указанном пользователем диске специфическая для данного вируса комбинация байтов. При ее обнаружении на экран выводится соответствующее сообщение. Многие детекторы имеют режимы лечения или уничтожения зараженных файлов. Программы-детекторы могут обнаруживать только те вирусы, которые ей известны. Программа Scan фирмы McAfee Associates и Aidstest Д. Н. Лозинского позволяют обнаруживать около 9 000 вирусов. Некоторые программы-детекторы, например Norton AntiVirus или AVSP фирмы «Диалог-МГУ», можно настраивать на новые типы вирусов, им необходимо лишь указать комбинации байтов, присущие этим вирусам.

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

Большинство программ-детекторов имеют функцию доктора, т.е. они пытаются вернуть зараженные файлы или области диска в их исходное состояние. Те файлы, которые не удалось восстановить, как правило, делаются неработоспособными или удаляются.

Большинство программ-докторов умеют лечить только от некоторого фиксированного набора вирусов, поэтому они быстро устаревают. Но некоторые программы могут обучаться не только способам обнаружения, но и способам лечения новых вирусов.

Различают детекторы универсальные и специализированные. Универсальные детекторы в своей работе используют проверку неизменности файлов путем подсчета и сравнения с эталоном контрольной суммы. Недостаток универсальных детекторов связан с невозможностью определения причин искажения файлов. Специализированные детекторы выполняют поиск известных вирусов по их сигнатуре (повторяющемуся участку кода). Недостаток таких детекторов состоит в том, что они неспособны обнаруживать все известные вирусы.

Детектор, позволяющий обнаруживать несколько вирусов, называют полидетектором.

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

Чтобы проверка состояния программ и дисков проходила при каждой загрузке операционной системы, необходимо включить команду запуска программы-ревизора в командный файл AUTOEXEC.BAT. Это позволяет обнаружить заражение компьютерным вирусом, когда он еще не успел нанести большого вреда. Более того, та же программа-ревизор сможет найти поврежденные вирусом файлы.

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

Для проверки того, не изменился ли файл, некоторые программы-ревизоры проверяют длину файла. Но эта проверка недостаточ- на - некоторые вирусы не изменяют длину зараженных файлов. Более надежная проверка - прочесть весь файл и вычислить его контрольную сумму. Изменить файл так, чтобы его контрольная сумма осталась прежней, практически невозможно.

Появились полезные гибриды ревизоров и докторов, т.е. ДОКТОРЫ-РЕВИЗОРЫ - программы, которые не только обнаруживают изменения в файлах и системных областях дисков, но и могут в случае изменений автоматически вернуть их в исходное состояние. Такие программы могут быть гораздо более универсальными, чем программы-докторы, поскольку при лечении они используют заранее сохраненную информацию о состоянии файлов и областей дисков. Это позволяет им излечивать файлы даже от тех вирусов, которые не были созданы на момент написания программы. Но они могут лечить не от всех вирусов, а только от тех, которые используют стандартные, известные на момент написания программы, механизмы заражения файлов.

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

 попытки коррекции файлов с расширениями СОМ и ЕХЕ;

 изменение атрибутов файлов;

 прямая запись на диск по абсолютному адресу;

 запись в загрузочные сектора диска;

 загрузка резидентной программы.

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

Краткий обзор антивирусных программ

При выборе антивирусной программы необходимо учитывать не только процент обнаружения вирусов, но и способность обнаруживать новые вирусы, количество вирусов в антивирусной базе, частоту ее обновления, наличие дополнительных функций.

В настоящее время серьезный антивирус должен уметь распознавать не менее 25 000 вирусов. Существует множество антивирусных программ. Рассмотрим наиболее известные из них. Norton AntiVirus 4.0 и 5.0 (производитель «Symantec»).

Один из наиболее известных и популярных антивирусов. Процент распознавания вирусов очень высокий (близок к 100 %). В программе используется механизм, который позволяет распознавать новые неизвестные вирусы.

В интерфейсе программы Norton AntiVirus имеется функция LiveUpdate, позволяющая щелчком на одной-единственной кнопке обновлять через Web как программу, так и набор сигнатур вирусов. Мастер по борьбе с вирусами выдает подробную информацию об обнаруженном вирусе, а также предоставляет вам возможность выбора: удалять вирус либо в автоматическом режиме, либо более осмотрительно, посредством пошаговой процедуры, которая позволяет увидеть каждое из выполняемых в процессе удаления действий. Антивирусные базы обновляются часто. Имеется резидентный монитор.

Недостатком данной программы является сложность настройки (хотя базовые настройки изменять, практически не требуется). Dr Solomons AntiVirus (производитель «Dr Solomons Software»).

Считается одним из лучших антивирусов. Обнаруживает практически 100 % известных и новых вирусов. Большое количество функций, сканер, монитор, эвристика. McAfee VirusScan (производитель «McAfee Associates»).

Один из наиболее известных антивирусных пакетов. Хорошо удаляет вирусы, но у VirusScan хуже, чем у других пакетов, обстоят дела с обнаружением новых разновидностей файловых вирусов. Он легко и быстро устанавливается с использованием настроек по умолчанию, но его можно настроить и по собственному усмотрению. Можно сканировать все файлы или только программные, распространять или не распространять процедуру сканирования на сжатые файлы. Имеет много функций для работы с сетью Интернет. Dr.Web (производитель: «Диалог Наука»).

Относится к классу детекторов-докторов и имеет эвристический анализатор - алгоритм, позволяющий обнаруживать неизвестные вирусы. «Лечебная паутина», как переводится с английского название программы, стала ответом отечественных программистов на нашествие самомодифицирующихся вирусов-мутантов. Последние при размножении модифицируют свое тело так, что не остается ни одной характерной цепочки байт, присутствовавшей в исходной версии вируса. Dr.Web можно назвать антивирусом нового поколения. Хорошо распознает вирусы, но в его базе их гораздо меньше чем у других антивирусных программ. Antiviral Toolkit Pro (производитель «Лаборатория Касперского»).

Антивирус признан в мире как один из самых надежных. Несмотря на простоту в использовании он обладает всем необходимым арсеналом для борьбы с вирусами. Эвристический механизм, избыточное сканирование, сканирование архивов и упакованных файлов - это далеко не полный перечень его возможностей. Лаборатория Касперского своевременно выпускает обновления антивирусных баз. Имеется резидентный монитор для контроля над исполняемыми файлами.


Предлагаем вашему вниманию журналы, издающиеся в издательстве «Академия Естествознания»
(Высокий импакт-фактор РИНЦ, тематика журналов охватывает все научные направления)

«Фундаментальные исследования» список ВАК ИФ РИНЦ = 1,674