При выполнении определенных действий над файлами, содержащими макропрограммы (открытие, сохранение, закрытие и т. д.), автоматически выполняются макропрограммы файлов. При этом управление получают макровирусы, которые сохраняют активность до тех пор, пока активен соответствующий редактор (процессор). Поэтому при работе с другим файлом в "зараженном редакторе (процессоре)", он также заражается. Здесь прослеживается аналогия с резидентными вирусами по механизму заражения. Для получения управления макровирусы, заражающие файлы МS Оfficе, как правило, используют один из приемов:
1) в вирусе имеется автомакрос (выполняется автоматически, при открытии документа, таблицы);
2) в вирусе переопределен один из стандартных макросов, который выполняется при выборе определенного пункта меню;
3) макрос вируса автоматически вызывается на выполнение при нажатии определенной клавиши или комбинаций клавиш.
Загрузочные вирусы
Загрузочные вирусы заражают загрузочные (Вoot) сектора гибких дисков и Вооt-сектора или Master Boot Sector (МВR) жестких дисков. Загрузочные вирусы являются резидентными. Заражение происходит при загрузке операционной системы с дисков.
После включения ЭВМ осуществляется контроль ее работоспособности с помощью программы, записанной в постоянном запоминающем устройстве. Если проверка завершилась успешно, то осуществляется считывание первого сектора с гибкого или жесткого диска. Порядок использования дисководов для загрузки задается пользователем при помощи программы Setup. Если диск, с которого производится загрузка операционной системы, заражен загрузочным вирусом, тогда обычно выполняются следующие шаги:
Шаг 1. Считанный из 1-го сектора диска загрузочный вирус (часть вируса) получает управление, уменьшает объем свободной оперативной памяти и считывает с диска тело вируса.
Шаг 2. Вирус переписывает сам себя в другую область оперативной памяти, чаще всего в старшие адреса памяти.
Шаг 3. Устанавливаются необходимые вектора прерываний (вирус резидентный).
Шаг 4. При выполнении определенных условий производятся деструктивные действия.
Шаг 5. Копируется Вооt-сектор в оперативную память и передается ему управление.
Вирусы и операционные системы
Программы-вирусы создаются для ЭВМ определенного типа, работающих с конкретными операционными системами.
Привлекательность операционной системы для создателей вирусов определяется следующими факторами:
1) распространенность операционных систем;
2) отсутствие эффективных встроенных антивирусных механизмов;
3) относительная простота;
4) продолжительность эксплуатации.
Наличие антивирусных механизмов, сложность систем и относительно малые сроки эксплуатации делают задачу создания вирусов трудно решаемой.
Значительно лучше защищена от вирусов операционная система IВМ ОS/2. Все программы, выполняемые в ОS/2, работают в отдельных адресных пространствах, что полностью исключает возможность взаимного влияния программ. Существует возможность запретить рабочим программам (несистемным) иметь доступ к портам периферийных устройств.
Хорошую защиту от вирусов имеют сетевые операционные системы на базе Microsoft Windows NT и Novell Netware.
Методы и средства борьбы с вирусами
Антивирусные средства применяются для решения следующих задач:
1) обнаружение вирусов в компьютерных системах;
2) блокирование работы программ-вирусов;
3) устранение последствий воздействия вирусов.
Обнаружение вирусов желательно осуществлять на стадии их внедрения или до начала осуществления деструктивных функций вирусов. Не существует антивирусных средств, гарантирующих обнаружение всех возможных вирусов. При обнаружении вируса необходимо сразу же прекратить работу программы-вируса, чтобы минимизировать ущерб от его воздействия на систему. Устранение последствий воздействия вирусов ведется в двух направлениях:
1) удаление вирусов;
2) восстановление (при необходимости) файлов, областей памяти.
Восстановление системы зависит от типа вируса, а также от элемента времени обнаружения вируса по отношению к началу деструктивных действий. Восстановление информации без использования дублирующей информации может быть невыполнимым, если вирусы при внедрении не сохраняют информацию, на место которой они помещаются в память, а также, если деструктивные действия уже начались, и они предусматривают изменения информации.
Известны следующие методы обнаружения вирусов:
1) сканирование;
2) обнаружение изменений;
3) эвристический анализ;
4) использование резидентных сторожей;
5) вакцинирование программ;
6) аппаратно-программная защита от вирусов.
Сканирование - один из самых простых методов обнаружения вирусов. Сканирование осуществляется программой-сканером, которая просматривает файлы в поисках опознавательной части вируса – сигнатуры. Программа фиксирует наличие уже известных вирусов, за исключением полиморфных вирусов, которые применяют шифрование тела вируса, изменяя при этом каждый раз и сигнатуру. Программы-сканеры могут хранить не сигнатуры известных вирусов, а их контрольные суммы. Программы-сканеры часто могут удалять обнаруженные вирусы. Такие программы называются полифагами.
Метод сканирования применим для обнаружения вирусов, сигнатуры которых выделены и являются постоянными. Для эффективного использования метода необходимо регулярное обновление сведений о новых вирусах.
Метод обнаружения изменений базируется на использовании программ-ревизоров. Эти программы определяют и запоминают характеристики всех областей на дисках, в которых обычно размещаются вирусы. При периодическом выполнении программ-ревизоров сравниваются хранящиеся характеристики и характеристики, получаемые при контроле областей дисков. По результатам ревизии программа выдает сведения о предположительном наличии вирусов.
Обычно программы-ревизоры запоминают в специальных файлах образы главной загрузочной записи, загрузочных секторов логических дисков, характеристики всех контролируемых файлов, каталогов и номера дефектных кластеров. Могут контролироваться также объем установленной оперативной памяти, количество подключенных к компьютеру дисков и их параметры.
Главным достоинством метода является возможность обнаружения вирусов всех типов, а также новых неизвестных вирусов.
Совершенные программы-ревизоры обнаруживают даже "стелс"-вирусы.
Имеются у этого метода и недостатки. С помощью программ-ревизоров невозможно определить вирус в файлах, которые поступают в систему уже зараженными. Вирусы будут обнаружены только после размножения в системе.
Программы-ревизоры непригодны для обнаружения заражения макровирусами, так как документы и таблицы очень часто изменяются.
Эвристический анализ позволяет определять неизвестные вирусы, но не требует предварительного сбора, обработки и хранения информации о файловой системе.
Сущность эвристического анализа заключается в проверке возможных сред обитания вирусов и выявление в них команд (групп команд), характерных для вирусов. Такими командами могут быть команды создания резидентных модулей в оперативной памяти, команды прямого обращения к дискам, минуя операционную систему. Эвристические анализаторы при обнаружении "подозрительных" команд в файлах или загрузочных секторах выдают сообщение о возможном заражении. После получения таких сообщений необходимо тщательно проверить предположительно зараженные файлы и загрузочные сектора всеми имеющимися антивирусными средствами.
Метод использования резидентных сторожей основан на применении программ, которые постоянно находятся в оперативной памяти ЭВМ и отслеживают все действия остальных программ.
В случае выполнения какой-либо программой подозрительных действий (обращение для записи в загрузочные сектора, помещение в оперативную память резидентных модулей, попытки перехвата прерываний и т. п.) резидентный сторож выдает сообщение пользователю. Программа-сторож может загружать на выполнение другие антивирусные программы для проверки "подозрительных" программ, а также для контроля всех поступающих извне файлов (со сменных дисков, по сети).
Существенным недостатком данного метода является значительный процент ложных тревог, что мешает работе пользователя.
Под вакцинацией программ понимается создание специального модуля для контроля ее целостности. В качестве характеристики целостности файла обычно используется контрольная сумма. При заражении вакцинированного файла модуль контроля обнаруживает изменение контрольной суммы и сообщает об этом пользователю. Метод позволяет обнаруживать все вирусы, в том числе и незнакомые, за исключением "стелс"-вирусов.
Самым надежным методом защиты от вирусов является использование аппаратно-программных антивирусных средств. В настоящее время для защиты ЭВМ используются специальные контроллеры и их программное обеспечение. Контроллер устанавливается в разъем расширения и имеет доступ к общей шине. Это позволяет ему контролировать все обращения к дисковой системе. В программном обеспечении контроллера запоминаются области на дисках, изменение которых в обычных режимах работы не допускается. Таким образом, можно установить защиту на изменение главной загрузочной записи, загрузочных секторов, файлов конфигурации, исполняемых файлов и др.
При выполнении запретных действий любой программой контроллер выдает соответствующее сообщение пользователю и блокирует работу ЭВМ.