- •Безопасность
- •Аппаратное обеспечение
- •Программное обеспечение
- •Линии связи и сети
- •15.2. Защита
- •Защита памяти
- •Контроль доступа, ориентированный на пользователя
- •Контроль доступа, ориентированный на данные
- •15.3. Взломщики
- •Методы вторжения
- •Защита паролей
- •Уязвимость паролей
- •Контроль доступа
- •Стратегии выбора паролей
- •Выявление вторжений
- •15.4. Зловредное программное обеспечение
- •Зловредные программы
- •Логические бомбы
- •Троянские кони
- •Природа вирусов
- •Виды вирусов
- •Макровирусы
- •Подходы к борьбе с вирусами
- •Обобщенное дешифрование
- •Цифровая иммунная система
- •15.5. Системы с доверительными отношениями
- •Защита от троянских коней
- •15.6. Безопасность операционной системы windows 2000
- •15.7. Резюме, ключевые термины и контрольные вопросы
- •Контрольные вопросы
- •15.8. Рекомендуемая литература
- •Приложение. Шифрование
- •Стандартное шифрование
- •Стандарт шифрования данных
- •Тройной алгоритм шифрования данных
- •Улучшенный стандарт шифрования
- •Шифрование с открытым ключом
- •А.2. Архитектура протоколов tcp/ip
- •Уровни протокола tcp/ip
- •Приложения tcp/ip
- •Б.1. Мотивация
- •Б.З. Преимущества объектно-ориентированного подхода
- •Б.2. Объектно-ориентированные концепции
- •Структура объектов
- •Классы объектов
- •Наследование
- •Полиморфизм
- •Включение
- •Список литературы
Подходы к борьбе с вирусами
Идеальным решением проблемы вирусной угрозы является предотвращение: превалируют меры, не допускающие проникновения вируса в систему. Этой цели, вообще говоря, достичь невозможно, но предотвращение может сократить количество успешных вирусных атак. Хорошо организованная защита должна быть в состоянии реализовать такие действия.
Выявление. Как только произойдет заражение, необходимо обнаружить наличие вируса и его местонахождение.
Идентификация. Если произойдет заражение, необходимо идентифицировать вирус, который заразил программу.
Удаление. После идентификации вируса необходимо удалить все следы его присутствия в зараженной программе и восстановить ее до первоначального состояния. Нужно избавиться от вируса во всех удаленных системах, чтобы инфекция больше не могла распространяться.
Если вирус выявлен, но невозможно его идентифицировать или избавиться от него, то выход состоит в том, чтобы избавиться от зараженной программы и загрузить ее чистую версию, воспользовавшись дубликатом.
Достижения в области технологии вирусов и антивирусных программ идут рука об руку. Ранние вирусы имели вид сравнительно простых фрагментов кода, и можно было их легко идентифицировать, а также избавиться от них с помощью сравнительно простых антивирусных программных пакетов. По мере нагнетания "гонки вооружений" как вирусные, так и (соответственно) антивирусные программы становились все сложнее и сложнее. Появлялись и продолжают появляться все более изощренные антивирусные подходы и соответствующие продукты. В этом подразделе освещены два важнейших подхода.
Обобщенное дешифрование
Технология обобщенного дешифрования (generic decryption — GD) позволяет антивирусной программе легко обнаруживать даже самые сложные полиморфные вирусы, поддерживая в то же время высокую скорость сканирования [NACH97]. Вспомним, что при запуске файла, содержащего полиморфный вирус, этот вирус перед активизацией должен дешифровать сам себя. Чтобы обнаружить такую структуру, исполняемые файлы пропускаются через сканер обобщенного дешифрования, в котором содержатся такие элементы.
Эмулятор центрального процессора. Виртуальный компьютер, реализованный программными средствами. Команды исполняемых файлов, вместо того чтобы выполняться на системном процессоре, интерпретируются эмулятором, который содержит в себе программные реализации всех регистров и других аппаратных компонентов процессора. Поэтому выполняющиеся на эмуляторе программы не затрагивают системный процессор.
Средство обнаружения сигнатур вирусов. Модуль, который сканирует исследуемый код, отыскивая в нем сигнатуры известных вирусов.
Модуль управления эмуляцией. Управляет выполнением исследуемого кода.
В начале каждой имитации эмулятор начинает по очереди интерпретировать каждую команду исследуемого кода. Если в этом коде содержится процедура дешифрования, что может свидетельствовать о наличии вируса, такой код интерпретируется, и вирус выполняет работу антивирусной программы, выявляя себя. Управляющий модуль периодически прерывает интерпретацию, чтобы проверить исследуемый код на наличие сигнатур вирусов.
В процессе интерпретации исследуемый код не может причинить вред вычислительной среде персонального компьютера, потому что он интерпретируется в полностью контролируемой среде.
Самое сложное при разработке компьютерных средств обобщенного сканирования — определить, как долго должна продолжаться каждая интерпретация. Обычно элементы вирусов активизируются вскоре после запуска программы, но это вовсе не обязательно. Чем дольше сканер выполняет эмуляцию программы, тем с большей вероятностью он найдет в ней спрятанные вирусы. Однако антивирусные программы должны выполняться в течение ограниченного времени и занимать ограниченные ресурсы, иначе пользователи будут недовольны.