Такая защита является достаточно надежной, однако абсолютно бесполезна, если пользователь работает с макросами (любыми): она не отличает макросы вируса от не-вируса и выводит предупреждающее сообщение при открытии практически любого файла. По этой причине защита в большинстве случаев оказывается отключенной, что дает возможность вирусу проникнуть в систему. К тому же включение защиты от вирусов в уже зараженной системе не во всех случаях помогает — некоторые вирусы, однажды получив управление, при каждом запуске отключают защиту от вирусов и таким образом полностью блокируют ее.
Существуют другие методы противодействия вирусам, например функция DisableAutoMacros, однако она не запрещает выполнение прочих макросов и блокирует только те вирусы, которые для своего распространения используют один из авто-макросов.
Запуск Word с опцией /M (или с нажатой клавишей Shift) отключает только один макрос AutoExec и таким образом также не может служить надежной защитой от вируса.
Восстановление пораженных объектов
В большинстве случаев заражения вирусом процедура восстановления зараженных файлов и дисков сводится к запуску подходящего антивируса, способного обезвредить систему. Если же вирус неизвестен ни одному антивирусу, то достаточно отослать зараженный файл фирмам-производителям антивирусов и через некоторое время (обычно — несколько дней или недель) получить лекарство-«апдейт» против вируса. Если же время не ждет, то обезвреживание вируса придется произвести самостоятельно.
Восстановление файлов-документов и таблиц
Для обезвреживания Word и Excel достаточно сохранить всю необходимую информацию в формате не-документов и не-таблиц — наиболее подходящим является текстовый RTF-формат, содержащий практически всю информацию из первоначальных документов и не содержащий макросов. Затем следует выйти из Word/Excel, уничтожить все зараженные Word-документы, Excel-таблицы, NORMAL.DOT у Word и все документы/таблицы в StartUp-каталогах Word/Excel. После этого следует запустить Word/Excel и восстановить документы/таблицы из RTF-файлов.
В результате этой процедуры вирус будет удален из системы, а практически вся информация останется без изменений. Однако этот метод имеет ряд недостатков. Основной из них — трудоемкость конвертирования документов и таблиц в RTF-формат, если их число велико. К тому же в случае Excel необходимо отдельно конвертировать все Листы (Sheets) в каждом Excel-файле. Второй недостаток — потеря невирусных макросов, используемых при работе. Поэтому перед запуском описанной процедуры следует сохранить их исходный текст, а после обезвреживания вируса — восстановить необходимые макросы в первоначальном виде.
Восстановление загрузочных секторов
Восстановление секторов в большинстве случаев является довольно простой операцией и проделывается при помощи DOS'овской команды SYS (загрузочные сектора дискет и логических дисков винчестера) или командой FDISK/MBR (Master Boot Record винчестера). Можно, конечно же, воспользоваться утилитой FORMAT, однако практически во всех случаях команды SYS вполне достаточно.
Следует иметь в виду, что лечение секторов необходимо производить только при условии отсутствия вируса в оперативной памяти. Если копия вируса в памяти не обезврежена, то вполне вероятно, что вирус повторно заразит дискету или винчестер после того, как код вируса будет удален (даже если воспользоваться утилитой FORMAT).
Будьте также крайне осторожны при использовании FDISK/MBR. Эта команда заново переписывает код программы-загрузчика системы и не изменяет таблицу разбиения диска (Disk Partition Table). FDISK/MBR является 100% лекарством для большинства загрузочных вирусов, однако, если вирус шифрует Disk Partition Table или использует нестандартные способы заражения, FDISK/MBR может привести к полной потере информации на диске. Поэтому перед запуском FDISK/MBR убедитесь в корректности Disk Partition Table. Для этого требуется загрузиться с незараженной DOS-дискеты и проверить корректность этой таблицы (наиболее удобная программа для этой цели — Norton Disk Editor).
Если же восстановление секторов при помощи SYS/FDISK невозможно, то следует разобраться в алгоритме работы вируса, обнаружить на диске первоначальный boot/MBR-сектор и перенести его на законное место (для этого подходят Norton Disk Editor или AVPUTIL). При этом надо постоянно иметь в виду, что при перезаписи системных загрузчиков необходимо соблюдать особую осторожность, поскольку результатом неправильного исправления сектора MBR или boot-сектора может быть потеря всей информации на диске (дисках).
Восстановление файлов
В подавляющем большинстве случаев восстановление зараженных файлов является достаточно сложной процедурой, которую невозможно произвести «руками» без необходимых знаний — форматов выполняемых файлов, языка ассемблера и т.д. К тому же обычно зараженными на диске оказываются сразу несколько десятков или сотен файлов и для их обезвреживания необходимо разработать собственную программу-антивирус (можно также воспользоваться возможностями редактора антивирусных баз из комплекта AVP версий 2.x).
При лечении файлов следует учитывать следующие правила:
· необходимо протестировать и вылечить все выполняемые файлы (COM, EXE, SYS, OVL) во всех каталогах всех дисков вне зависимости от атрибутов файлов (т.е. файлы read-only, системные и скрытые);
· желательно сохранить неизменными атрибуты и дату последней модификации файла;
· необходимо учесть возможность многократного поражения файла вирусом («бутерброд» из вирусов).
Само лечение файла производится в большинстве случаев одним из нескольких стандартных способов, зависящих от алгоритма размножения вируса. В большинстве случаев это сводится к восстановлению заголовка файла и уменьшению его длины.
Дезактивация оперативной памяти
Процедура дезактивации памяти, как и лечение зараженных файлов, требует некоторых знаний об операционной системе и обязательного знания азыка Ассемблер.
При лечении оперативной памяти необходимо обнаружить коды вируса и изменить их таким образом, чтобы вирус в дальнейшем не мешал работе антивирусной программы — «отключить» подпрограммы заражения и стелс. Для этого требуется полный анализ кода вируса, так как процедуры заражения и стелс могут располагаться в различных участках вируса, дублировать друг друга и получать управление при различных условиях.
В большинстве случаев для дезактивации памяти достаточно «обрубить» прерывания, перехватываемые вирусом: INT 21h в случае файловых вирусов и INT 13h в случае загрузочных (существуют, конечно же, вирусы, перехватывающие другие прерывания или несколько прерываний).
При дезактивации TSR-копии вируса необходимо помнить, что вирус может предпринимать специальные меры для восстановления своих кодов (например, некоторые вирусы семейства «Yankee» восстанавливают их при помощи методов помехо-защищенного кодирования), и в этом случае придется нейтрализовать и механизм самовосстановления вируса. Некоторые вирусы, кроме того, подсчитывают CRC своей резидентной копии и перезагружают компьютер или стирают сектора диска, если CRC не совпадает с оригинальным значением. В этом случае необходимо «обезвредить» также и процедуру подсчета CRC.
Анализ алгоритма вируса
На мой взгляд, наиболее удобным для хранения и анализа вируса объектом является файл, содержащий его (вируса) тело. Как показывает практика, для анализа файлового вируса удобнее иметь несколько зараженных файлов различной, но не очень большой, длины. При этом желательно иметь зараженные файлы всех типов (COM, EXE, SYS, BAT, NewEXE), поражаемых вирусом. Если необходимо проанализировать часть оперативной памяти, то при помощи некоторых утилит (например, AVPUTIL.COM) довольно просто выделить участок, где расположен вирус, и скопировать его на диск. Если же требуется анализ сектора MBR или boot-сектора, то скопировать их в файлы можно при помощи популярных «Нортоновских утилит» или AVPUTIL. Для хранения загрузочного вируса наиболее удобным является файл-образ зараженного диска. Для его получения необходимо отформатировать дискету, заразить ее вирусом, скопировать образ дискеты (все сектора, начиная с нулевого и кончая последним) в файл и при необходимости скомпрессировать его (эту процедуру можно проделать при помощи «Нортоновских утилит», программ TELEDISK или DISKDUPE).
Зараженные файлы или файл-образ зараженной дискеты лучше передать разработчикам антивирусных программ по электронной почте или, в крайнем случае, на дискете по обычной почте. Однако если это займет много времени, которое, как известно, не ждет, то пользователям, достаточно уверенным в себе, можно попробовать и самостоятельно разобраться в вирусе и написать собственный антивирус.
При анализе алгоритма вируса предстоит выяснить:
· способ(ы) размножения вируса;
· характер возможных повреждений, которые вирус нанес информации, хранящейся на дисках;
· метод лечения оперативной памяти и зараженных файлов (секторов).
При решении этих задач не обойтись без дизассемблера или отладчика (например, отладчиков AFD, AVPUTIL, SoftICE, TorboDebugger, дизассемблеров Sourcer или IDA).
И отладчики, и дизассемблеры имеют и положительные и отрицательные черты — каждый выбирает то, что он считает более удобным. Несложные короткие вирусы быстро «вскрываются» стандартным отладчиком DEBUG, при анализе объемных и высокосложных полиморфик-стелс-вирусов не обойтись без дизассемблера. Если необходимо быстро обнаружить метод восстановления пораженных файлов, достаточно пройтись отладчиком по началу вируса до того места, где он восстанавливает загруженную программу перед тем, как передать ей управление (фактически именно этот алгоритм чаще всего используется при лечении вируса). Если же требуется получить детальную картину работы вируса или хорошо документированный листинг, то кроме дизассемблеров Sourcer или IDA с их возможностями восстанавливать перекрестные ссылки, здесь вряд ли что поможет. К тому же следует учитывать, что, во-первых, некоторые вирусы достаточно успешно блокируют попытки протрассировать их коды, а во-вторых, при работе с отладчиком существует ненулевая вероятность того, что вирус вырвется из-под контроля.