В случае дискеты или CD-диска управление получает boot-сектор диска, который анализирует таблицу параметров диска, высчитывает адреса системных файлов операционной системы, считывает их память и запускает на выполнение. Если на загрузочном диске отсутствуют файлы операционной системы, программа, расположенная в boot-секторе диска, выдаёт сообщение об ошибке и предлагает заменить загрузочный диск.
В случае винчестера управление получает программа, расположенная в MBR винчестера. Она анализирует таблицу разбиения диска (DiskPartitionTable), вычисляет адрес активного boot-сектора (обычно этим сектором является boot-сектор диска С:), загружает его в память и передаёт на него управление. Получив управление, активный boot-сектор винчестера проделывает те же действия, что и boot-секторы дискеты.
При заражении дисков загрузочные вирусы подставляют свой код вместо какой-либо программы, получающей управление при загрузке системы. Принцип заражения: вирус "заставляет" систему при её перезапуске считать в память и отдать управление не оригинальному коду загрузчика, а коду вируса.
Заражение дискет производится единственным известным способом: вирус записывает свой код вместо оригинального кода boot-сектора дискеты.
Винчестер заражается тремя возможными способами: вирус записывается либо вместо кода MBR, либо вместо кода boot - сектора загрузочного диска (обычно С:), либо модифицирует адрес активного boot-сектора в DiskPartitionTable, расположенный в MBR винчестера.
Алгоритм работы загрузочного вируса.
Практически все загрузочные вирусы резидентны. Они внедряются в память компьютера при загрузке с инфицированного диска. При этом системный загрузчик считывает содержимое первого сектора диска, с которого производится загрузка, помещает считанную информацию в память и передаёт на неё (т.е. на вирус) управление. После этого начинают выполняться инструкции вируса, который:
как правило, уменьшает объём свободной памяти, копирует в освободившееся место свой код и считывает с диска своё продолжение (если оно есть);
перехватывает необходимые векторы прерываний, считывает в память оригинальный boot-сектор и передаёт на него управление.
В дальнейшем загрузочный вирус ведёт себя так же, как резидентный файловый: перехватывает обращения операционной системы к дискам и инфицирует их, в зависимости от некоторых условий совершает деструктивные действия или вызывает звуковые или видеоэффекты.
Существуют и нерезидентные загрузочные вирусы. При загрузке они заражают MBR винчестера и дискеты, если те присутствуют в дисководе. Затем такие вирусы передают управление оригинальному загрузчику и на работу компьютера больше не влияют.
Макровирусы являются программами на языках (макроязыках), встроенных в некоторые системы обработки данных (текстовые редакторы, электронные таблицы). Для своего размножения такие вирусы используют возможности макроязыков и при их помощи переносят себя из одного файла (документа или таблицы) в другие. Наибольшее распространение получили макровирусы для MicrosoftWord, Excel и Office 97.
Для существования вирусов в конкретной системе необходимо наличие встроенного в систему макроязыка с возможностями:
привязки программы на макроязыке к конкретному файлу;
копирования макропрограмм из одного файла в другой;
получения управления макропрограммой без вмешательства пользователя (автоматические или стандартные макросы).
Алгоритм работы Word-макровируса
Большинство известных Word-макровирусов при запуске переносят свой код (макросы) в область глобальных макросов документа, для этого они используют команды копирования макросов MacroCopy, Organizer. Copy либо при помощи редактора макросов. Вирус вызывает его, создаёт новый макрос, вставляет в него свой код, который и сохраняет в документе.
При выходе из Word глобальные макросы автоматически записываются в DOT-файл глобальных макросов (обычно это NORMAL. DOT). Таким образом, при следующем запуске Word-вирус активизируется в тот момент, когда WinWordгрузит глобальные макросы.
Затем вирус переопределяет один или несколько стандартных макросов и перехватывает команды работы файлами. При вызове этих команд вирус заражает файл, к которому идёт обращение. Для этого вирус конвертирует файл в формат Template (что делает невозможным дальнейшее изменение формата файла) записывает в файл свои макросы, включая автомакрос.
Таким образом, если вирус перехватывает макрос FileSaveAs, то заражается каждый DOS-файл, сохраняемый через перехваченный вирусом макрос. Если перехвачен макрос FileOpen, то вирус записывается в файл при его считывании с диска.
Алгоритм работы Excel-макровируса
Методы размножения Excel-вирусов в целом аналогичны методам Word-вирусов. Различия заключаются в командах копирования макросов и в отсутствии NORMAL. DOT, его функцию (в вирусном смысле) выполняют файлы в STARTUP-КАТАЛОГЕ Excel.
К сетевым относятся вирусы, которые для своего распространения активно используют протоколы и возможности локальных и глобальных сетей. Основным принципом работы сетевого вируса является возможность самостоятельно передать свой код на удалённый сервер или рабочую станцию.
Сетевые вирусы прошлого распространялись в компьютерной сети и, как правило, не изменяли файлы или сектора на дисках. Они проникали в память компьютера из компьютерной сети, вычисляли сетевые адреса других компьютеров и рассылали по этим адресам свои копии.
Современные сетевые вирусы - это Macro. Word. ShareFun и Win. Homer. первый из них использует возможности электронной почты MicrosoftMail. Он создаёт новое письмо, содержащее заражённый фай-документ, затем выбирает из списка адресов MS-Mail три случайных адреса и рассылает по ним заражённое письмо.
Второй вирус (Homer) использует для распространения протокол FTP (FileTrausferProtocol) и передаёт свою копию на удалённый ftp-сервер в каталог Incoming. Поскольку сетевой протокол FTP не позволяет запускать файлы на удалённом сервере, этот вирус можно охарактеризовать как полусетевой, однако это реальный пример возможностей вирусов по использованию современных сетевых протоколов и поражению глобальных сетей.
Наиболее эффективны в борьбе с компьютерными вирусами антивирусные программы. Однако следует отметить, что не существует антивирусов, гарантирующих стопроцентную защиту от вирусов. Таких систем не существует, поскольку на любой алгоритм антивируса всегда можно предложить контр-алгоритм вируса, невидимого для этого антивируса (обратное, к счастью, тоже верно: на любой алгоритм вируса всегда можно создать антивирус). Более того, невозможность существования абсолютного антивируса была доказана математически на основе теории конечных автоматов, автор доказательства - Фред Коэн.
Качество антивирусной программы определяется по следующим позициям, приведённых в порядке убывания их значимости.
Надёжность и удобство работы - отсутствие зависаний антивируса и прочих технических проблем, требующих от пользователя специальной подготовки.
Это наиболее важный критерий, поскольку даже абсолютный антивирус может оказаться бесполезным, если он будет не в состоянии довести процесс сканирования до конца - повиснет и не проверит часть дисков и файлов и, таким образом, оставит вирус незамеченным в системе. Если же антивирус требует от пользователя специальных знаний, то он также окажется бесполезным, большинство пользователей просто проигнорируют сообщения антивируса.
Ну а если антивирус будет чересчур часто задавать сложные вопросы рядовому пользователю, то, скорее всего, пользователь перестанет обращаться к такому антивирусу.
Качество обнаружения вирусов всех распространённых типов, сканирование внутри файлов документов/таблиц (MSWord, Excel, Office), упакованных и архивированных файлов. Отсутствие "ложных срабатываний". Возможность лечения заражённых объектов.
Любой антивирус бесполезен, если он не в состоянии ловить вирусы или делает это не вполне качественно. Поэтому качество детектирования вирусов является вторым по важности критерием "качества" антивирусной программы. Однако если при этом антивирус с высоким качеством детектирования вирусов вызывает большое количество ложных срабатываний, то его уровень полезности резко падает, поскольку пользователь вынужден либо уничтожать незаражённые файлы, либо самостоятельно производить анализ подозрительных файлов, либо привыкает к частым ложным срабатываниям - перестаёт обращать внимание на сообщения антивируса и в результате пропускает сообщение реальном вирусе.
Многоплатформность антивируса является следующим пунктом в списке, поскольку только программа, рассчитанная на конкретную операционную систему, может полностью использовать функции этой системы. "Неродные" же антивирусы часто оказываются неработоспособными, а иногда даже разрушительными.
Возможность проверки файлов на лету также является достаточно важной чертой антивируса. Моментальная и принудительная проверка приходящих на компьютер файлов и вставляемых дискет является практически стопроцентной гарантией от заражения вирусом.
Следующим по важности критерием является скорость работы. Если на полную проверку компьютера антивирусу требуется несколько часов, то вряд ли большинство пользователей будут запускать его достаточно часто. При этом медленность антивируса совсем не говорит о том, что он ловит вирусов больше и делает это лучше, чем более быстрый антивирус. В разных антивирусах используются различные алгоритмы поиска вирусов, один алгоритм может оказаться более быстрым и качественным, другой - медленным и менее качественным. Всё зависит от способностей и профессионализма разработчиков конкретного антивируса.