Рефераты. Вирусы и средства защиты от них

которое, как известно, не ждет, то пользователям, достаточно уверенным в

себе, можно попробовать и самостоятельно разобраться в вирусе и написать

собственный антивирус.

При анализе алгоритма вируса предстоит выяснить:

способ(ы) размножения вируса;

характер возможных повреждений, которые вирус нанес информации, хранящейся

на дисках;

метод лечения оперативной памяти и зараженных файлов (секторов).

При решении этих задач не обойтись без дизассемблера или отладчика

(например, отладчиков AFD, AVPUTIL, SoftICE, TorboDebugger, дизассемблеров

Sourcer или IDA).

И отладчики, и дизассемблеры имеют и положительные и отрицательные

черты — каждый выбирает то, что он считает более удобным. Несложные

короткие вирусы быстро «вскрываются» стандартным отладчиком DEBUG, при

анализе объемных и высокосложных полиморфик-стелс-вирусов не обойтись без

дизассемблера. Если необходимо быстро обнаружить метод восстановления

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

места, где он восстанавливает загруженную программу перед тем, как передать

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

лечении вируса). Если же требуется получить детальную картину работы вируса

или хорошо документированный листинг, то кроме дизассемблеров Sourcer или

IDA с их возможностями восстанавливать перекрестные ссылки, здесь вряд ли

что поможет. К тому же следует учитывать, что, во-первых, некоторые вирусы

достаточно успешно блокируют попытки протрассировать их коды, а во-вторых,

при работе с отладчиком существует ненулевая вероятность того, что вирус

вырвется из-под контроля.

При анализе файлового вируса необходимо выяснить, какие файлы (COM,

EXE, SYS) поражаются вирусом, в какое место (места) в файле записывается

код вируса — в начало, конец или середину файла, в каком объеме возможно

восстановление файла (полностью или частично), в каком месте вирус хранит

восстанавливаемую информацию.

При анализе загрузочного вируса основной задачей является выяснение

адреса (адресов) сектора, в котором вирус сохраняет первоначальный

загрузочный сектор (если, конечно, вирус сохраняет его).

Для резидентного вируса требуется также выделить участок кода,

создающий резидентную копию вируса и вычислить возможные адреса точек входа

в перехватываемые вирусом прерывания. Необходимо также определить, каким

образом и где в оперативной памяти вирус выделяет место для своей

резидентной копии: записывается ли вирус по фиксированным адресам в

системные области DOS и BIOS, уменьшает ли размер памяти, выделенной под

DOS (слово по адресу [0000:0413]), создает ли для себя специальный MCB-блок

либо использует какой-то другой способ.

Существуют особые случаи, когда анализ вируса может оказаться очень

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

этом случае лучше обратиться к специалисту по анализу кодов программ.

Для анализа макро-вирусов необходимо получить текст их макросов. Для

нешифрованных не-стелс вирусов это достигается при помощи меню Tools/Macro.

Если же вирус шифрует свои макросы или использует стелс-приемы, то

необходимо воспользоваться специальными утилитами просмотра макросов. Такие

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

антивирусов, однако они являются утилитами «внутреннего пользования» и не

распространяются за пределы фирм.

Методы защиты от компьютерных вирусов

Каким бы не был вирус, пользователю необходимо знать основные методы

защиты от компьютерных вирусов.

Для защиты от вирусов можно использовать:

> общие средства защиты информации, которые полезны также и как страховка

от физической порчи дисков, неправильно работающих программ или ошибочных

действий пользователя;

> профилактические меры, позволяющие уменьшить вероятность заражения

вирусом;

> специализированные программы для защиты от вирусов.

Общие средства защиты информации полезны не только для защиты от

вирусов. Имеются две основные разновидности этих средств:

> копирование информации - создание копий файлов и системных областей

дисков;

> разграничение доступа предотвращает несанкционированное использование

информации, в частности, защиту от изменений программ и данных вирусами,

неправильно работающими программами и ошибочными действиями

пользователей.

Несмотря на то, что общие средства защиты информации очень важны для

защиты от вирусов, все же их недостаточно. Необходимо и применение

специализированных программ для защиты от вирусов. Эти программы можно

разделить на несколько видов: детекторы, доктора (фаги), ревизоры,

доктора-ревизоры, фильтры и вакцины (иммунизаторы).

ПРОГРАММЫ-ДЕТЕКТОРЫ позволяют обнаруживать файлы, зараженные одним из

нескольких известных вирусов. Эти программы проверяют, имеется ли в файлах

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

комбинация байтов. При ее обнаружении в каком-либо файле на экран выводится

соответствующее сообщение. Многие детекторы имеют режимы лечения или

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

могут обнаруживать только те вирусы, которые ей "известны". Программа Scan

фирмы McAfee Associates и Aidstest Д.Н.Лозинского позволяют обнаруживать

около 9000 вирусов, но всего их более двадцати тысяч! Некоторые программы-

детекторы, например Norton AntiVirus или AVSP фирмы "Диалог-МГУ", могут

настраивать на новые типы вирусов, им необходимо лишь указать комбинации

байтов, присущие этим вирусам. Тем не мнение невозможно разработать такую

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

вирус.

Таким образом, из того, что программа не опознается детекторами как

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

новый вирус или слегка модифицированная версия старого вируса, неизвестные

программам-детекторам.

Многие программы-детекторы (в том числе и Aidstest) не умеют

обнаруживать заражение "невидимыми" вирусами, если такой вирус активен в

памяти компьютера. Дело в том, что для чтения диска они используют функции

DOS, а они перехватываются вирусом, который говорит, что все хорошо.

Правда, Aidstest и другие детекторы пытаются выявить вирус путем

просмотра оперативной памяти, но против некоторых "хитрых" вирусов это не

помогает. Так что надежный диагноз программы-детекторы дают только при

загрузке DOS с "чистой", защищенной от записи дискеты, при этом копия

программы-детектора также должна быть запущена с этой дискеты.

Некоторые детекторы (скажем ADinf фирмы "Диалог-Наука") умеют ловить

"невидимые" вирусы, даже когда они активны. Для этого они читают диск, не

используя вызовы DOS. Правда, этот метод работает не на всех дисководах.

Большинство программ-детекторов имеют функцию "доктора", т.е. они

пытаются вернуть зараженные файлы или области диска в их исходное

состояние. Те файлы, которые не удалось восстановить, как правило, делаются

неработоспособными или удаляются.

Большинство программ-докторов умеют "лечить" только от некоторого

фиксированного набора вирусов, поэтому они быстро устаревают. Но некоторые

программы могут обучаться не только способам обнаружения, но и способам

лечения новых вирусов. К таким программам относится AVSP фирмы "Диалог-

МГУ".

ПРОГРАММЫ-РЕВИЗОРЫ имеют две стадии работы. Сначала они запоминают

сведения о состоянии программ и системных областей дисков (загрузочного

сектора и сектора с таблицей разбиения жесткого диска). Предполагается,

что в этот момент программы и системные области дисков не заражены. После

этого с помощью программы-ревизора можно в любой момент сравнить состояние

программ и системных областей дисков с исходным. О выявленных

несоответствиях сообщается пользователю.

Чтобы проверка состояния программ и дисков проходила при каждой

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

программы-ревизора в командный файл AUTOEXEC.BAT. Это позволяет обнаружить

заражение компьютерным вирусом, когда он еще не успел нанести большого

вреда. Более того, та же программа-ревизор сможет найти поврежденные

вирусом файлы.

Многие программы-ревизоры являются довольно "интеллектуальными" - они

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

версии программы, от изменений, вносимых вирусом, и не поднимают ложной

тревоги. Дело в том, что вирусы обычно изменяют файлы весьма

специфическим образом и производят одинаковые изменения в разных

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

практически никогда не встречаются, поэтому программа-ревизор, зафиксировав

факт таких изменений, может с уверенностью сообщить, что они вызваны

именно вирусом.

Другие программы часто используют различные полумеры – пытаются

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

файла AUTOEXEC.BAT, надеясь работать на "чистом" компьютере, и т.д. Увы,

против некоторых "хитрых" вирусов все это бесполезно.

Для проверки того, не изменился ли файл, некоторые программы-ревизоры

проверяют длину файла. Но эта проверка недостаточна - некоторые вирусы не

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

файл и вычислить его контрольную сумму. Изменить файл так, чтобы его

контрольная сумма осталась прежней, практически невозможно.

В последнее время появились очень полезные гибриды ревизоров и

Страницы: 1, 2, 3, 4, 5



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.