Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
У. Столлингс ГЛАВА 15 Безопасность.doc
Скачиваний:
66
Добавлен:
11.05.2015
Размер:
795.14 Кб
Скачать

Подходы к борьбе с вирусами

Идеальным решением проблемы вирусной угрозы является предотвращение: превалируют меры, не допускающие проникновения вируса в систему. Этой це­ли, вообще говоря, достичь невозможно, но предотвращение может сократить количество успешных вирусных атак. Хорошо организованная защита должна быть в состоянии реализовать такие действия.

  • Выявление. Как только произойдет заражение, необходимо обнаружить на­личие вируса и его местонахождение.

  • Идентификация. Если произойдет заражение, необходимо идентифицировать вирус, который заразил программу.

  • Удаление. После идентификации вируса необходимо удалить все следы его присутствия в зараженной программе и восстановить ее до первоначального состояния. Нужно избавиться от вируса во всех удаленных системах, чтобы инфекция больше не могла распространяться.

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

Достижения в области технологии вирусов и антивирусных программ идут рука об руку. Ранние вирусы имели вид сравнительно простых фрагментов кода, и можно было их легко идентифицировать, а также избавиться от них с помо­щью сравнительно простых антивирусных программных пакетов. По мере нагне­тания "гонки вооружений" как вирусные, так и (соответственно) антивирусные программы становились все сложнее и сложнее. Появлялись и продолжают по­являться все более изощренные антивирусные подходы и соответствующие про­дукты. В этом подразделе освещены два важнейших подхода.

Обобщенное дешифрование

Технология обобщенного дешифрования (generic decryption — GD) позволя­ет антивирусной программе легко обнаруживать даже самые сложные поли­морфные вирусы, поддерживая в то же время высокую скорость сканирования [NACH97]. Вспомним, что при запуске файла, содержащего полиморфный вирус, этот вирус перед активизацией должен дешифровать сам себя. Чтобы обнару­жить такую структуру, исполняемые файлы пропускаются через сканер обоб­щенного дешифрования, в котором содержатся такие элементы.

  • Эмулятор центрального процессора. Виртуальный компьютер, реализован­ный программными средствами. Команды исполняемых файлов, вместо того чтобы выполняться на системном процессоре, интерпретируются эмулято­ром, который содержит в себе программные реализации всех регистров и других аппаратных компонентов процессора. Поэтому выполняющиеся на эмуляторе программы не затрагивают системный процессор.

  • Средство обнаружения сигнатур вирусов. Модуль, который сканирует исследуемый код, отыскивая в нем сигнатуры известных вирусов.

  • Модуль управления эмуляцией. Управляет выполнением исследуемого кода.

В начале каждой имитации эмулятор начинает по очереди интерпретиро­вать каждую команду исследуемого кода. Если в этом коде содержится процеду­ра дешифрования, что может свидетельствовать о наличии вируса, такой код ин­терпретируется, и вирус выполняет работу антивирусной программы, выявляя себя. Управляющий модуль периодически прерывает интерпретацию, чтобы про­верить исследуемый код на наличие сигнатур вирусов.

В процессе интерпретации исследуемый код не может причинить вред вы­числительной среде персонального компьютера, потому что он интерпретируется в полностью контролируемой среде.

Самое сложное при разработке компьютерных средств обобщенного скани­рования — определить, как долго должна продолжаться каждая интерпретация. Обычно элементы вирусов активизируются вскоре после запуска программы, но это вовсе не обязательно. Чем дольше сканер выполняет эмуляцию программы, тем с большей вероятностью он найдет в ней спрятанные вирусы. Однако анти­вирусные программы должны выполняться в течение ограниченного времени и занимать ограниченные ресурсы, иначе пользователи будут недовольны.