Перечислим некоторые из аппаратных методов защиты:
– блокировка возможности записи путем заклеивания (закрывания) отверстия защиты записи дискеты. При отсутствии наклеек можно использовать любую липкую ленту или просто закрывать отверстие достаточно длинной бумажкой, вставляя ее вместе с дискетой в прорезь дисковода. Данный способ прост и надежен, но имеет ограниченное применение. Ограниченность объясняется следующими причинами: большинство программных систем работают с винчестером, а не с гибкими дисками, системы, работающие с гибкими дисками, часто сами осуществляют запись на дискету;
– физическая блокировка ключом клавиатуры ЭВМ – этот метод похож на способ разграничения доступа административными мерами. Как и все запретительные меры, лишь частично разрешает проблему. Применим в сочетании с другими методами;
– форматирование диска и перезагрузка операционной системы с восстановлением программ с незараженных копий. Недостатками этого метода являются потеря файлов, у которых нет незараженных копий, и значительные потери времени. При наличии копий и времени – это самый надежный способ борьбы с вирусами, но если повреждение информации произошло от невыявленных вирусов или "троянских коней", которые хранятся в копиях программ, то и такая радикальная мера может не привести к успеху.
Следующие способы основаны на аппаратной поддержке операционной системы и ее контролирующих средств:
– запрет или регистрация попыток записи в файлы операционной системы и в области памяти, занятые системной информацией;
– установление приоритета в обработке программ, составляющих операционную систему и антивирусных средств, иерея программами пользователей:
– разделение областей памяти, в которых работают программы, невозможность записи в чужую область памяти:
– выделение некоторых возможностей ЭВМ, которые могут быть реализованы только программами операционной системы.
К сожалению, аппаратная поддержка контролирующих средств отсутствует в персональных ЭВМ, совместимых с IВМ РС, что создает хорошие предпосылки для распространения вирусов и действия "троянских коней".
Некоторые западные фирмы приступили к созданию противовирусных компьютеров, у которых есть специальная аппаратная поддержка против вирусов и "троянских коней".
По сообщению журнала "Computer age" (январь 1989 г.) фирма “American Computer Security Industries” (г. Нэшвилл, штат Теннеси, США) представила первый надежно защищенный противовирусный компьютер, названный "Immune system" ("Иммунная система"). Это персональный компьютер на базе процессора i-80286, работающий в операционной системе MS-DOS. Этот компьютер обладает иммунитетом от вирусной атаки, а также полным набором средств, предохраняющих его и хранящиеся в нем данные от любого внешнего или внутреннего вмешательства.
Фирма "Zeus" поставляет дополнительную плату Immunetec РС (цена 295 дол.) для установки в компьютерах, совместимых с IBM РС. С помощью этой платы, в процессе загрузки операционной системы проверяются MBR, Boot-сектор и системные файлы. Плата совместима с сетями Nowel, ЗСОМ, Token Ringи позволяет предотвращать загрузку и устанавливать уровень доступа.
Фирма "Micronyx" поставляет дополнительную плату Trispan (цена 895 дол.). С помощью платы производится контроль зараженности системных файлов, контроль доступа, шифрование данных и регистрация попы обращения к данным. Плата может использоваться в сетях.
Фирма "БИС" (г. Донецк) выпускает плату Port Watch Card, которая вместе с программой IWP предупреждает об опасных действиях с портами контроллеров жестких и гибких дисков, а также о записи в память CMOS.
В настоящее время на рынке имеется довольно большое число специальных антивирусных программных средств. На Западе создано и предлагается большое число программных средств антивирусного направления, однако их рынок характеризуется определенной спецификой. Крупные фирмы-производители программного обеспечения (такие, как "Microsoft", "Lotus" и "Ashton-Tate") явно отсутствуют на рынке. Большинство программ защиты от вирусов разработаны небольшими компаниями или частными лицами.
На отечественном рынке также нет недостатка в антивирусных средствах. Ряд из них имеет хорошую репутацию, пользуется популярностью у потребителей. В большинстве случаев эти средства также разработаны индивидуально или небольшими группами программистов.
Рассмотрим требования, которым должны отвечать антивирусные средства зашиты:
– вхождение в состав операционной системы;
– способность самоконтроля, так как они работают в более "агрессивной" среде, по сравнению с программами других типов.
Приведем некоторые рекомендации, которые необходимо учитывать при создании антивирусных средств. Антивирусные программы должны:
– проводить самотестирование в момент загрузки программы, так как после этого дискета с исходным модулем может быть извлечена из накопителя;
– учитывать возможность уменьшения размеров программы после заражения из-за упаковки вирусом части программного кода;
– выявлять замаскированное вирусом изменение длины программы, если оно проводится стандартными средствами. Следует контролировать размер программы различными способами и дополнительно определять значения некоторых байт программного модуля;
– учитывать возможность шифрования вирусом собственного "тела" и части зараженной программы;
– выявлять возможность нестандартного расположения вируса относительно заражаемой программы;
– определять наличие в теле вируса изменяющихся кодов.
Операционная система MS DOS не создает серьезных препятствий для существования вирусов. Полностью совместимые с ней операционные системы DR DOS и HI DOS несколько более вирусоустойчивы, но и они "прозрачны" для большинства вирусов. Повышенная вирусоустойчивость возникает из-за изменения внутреннего содержания этих операционных систем при сохранении пользовательского интерфейса. Вирусы, использующие нестандартные способы обращения к операционной системе, могут не работать на ее аналогах.
В операционной системе OS/2 введены средства регламентации при доступе к файлам и изменены внутренние характеристики. Это должно сдерживать распространение вирусов в этой среде, пока не появятся их модификации, учитывающие изменения. Но в этой сложной и относительно новой операционной системе могут содержаться ошибки и непредусмотренные возможности, которые могут быть использованы разработчиками вирусов.
Определенное внимание привлекает к себе проблема своевременного обнаружения и ликвидации компьютерных вирусов. Как и в медицине, гораздо проще предупредить заражение компьютера, чем "лечить" его. В связи с этим получили широкое распространение специальные программы диагностики наличия вирусов в прикладном программном обеспечении – так называемые вирус – детекторы, определяющие факт присутствия вирусов по характерным признакам (фрагменты кода), специфическим для каждого типа вируса. Для этого в программе вирус – детектора содержится набор образцов – сигнатур конкретных вирусов, и только такие вирусы сможет находить данный вирус-детектор. При появлении новых типов, а иногда и новых версий вирусов необходимо выпускать и новые версии вирус – детекторов, "обученные" распознаванию новых вирусов.
Очевидно, что задача создания универсальной программы вирус – детектора, которая бы определяла наличие любых вирусов в программных файлах типов СОМ или ЕХЕ, практически неразрешима. Наиболее целесообразным путем обнаружения вирусов в программных средствах было бы, по-видимому, создание псевдоуниверсального комплекса тестирования пакетов программных продуктов.
Комплекс проверки на вирус должен включать в себя три компонента:
– программу поиска вируса по его сигнатуре;
– программу выделения сигнатуры вируса на основе сравнения незараженного командного процессора с зараженным;
– банк сигнатур вирусов, созданный другой программой экстрактором.
Механизм обнаружения прост: программа поиска вируса по его сигнатуре перебирает все образцы сигнатур в банке вирусов. Для каждого вируса осуществляется сканирование всех программных файлов (операция поиск подстроки по заданному контексту – сигнатуре). Если при этом операция поиска окажется успешной и заданный контекст будет обнаружен в каком-нибудь программном файле, то можно с уверенностью сказать, что тестируемая программа заражена вирусом, сигнатура которого обнаружена. Задача обнаружения вируса решается в настоящее время загрузкой в оперативную память ПЭВМ резидентных программ, контролирующих обращение к системным функциям операционной системы:
– обращение к магнитным дискам (как с помощью диспетчера операционной системы, реализующего и поддерживающего файловую систему, так и на уровне базовой системы ввода-вывода);
– попытки оставить в оперативной памяти ПЭВМ программу, имеющую статус резидентной.