- •1.История вопроса
- •1. Лекция: История вопроса
- •Первые вирусы
- •Первые вирусные эпидемии
- •Заключение
- •2. Лекция: Теоретические сведения о компьютерных вирусах Введение
- •Результат Фреда Коэна
- •Результат д. Чесса и с. Вайта Основные положения
- •Обнаружение вирусов
- •Слабое определение обнаружения
- •Сравнение с результатом ф. Коэна
- •Практические следствия
- •Формализм ф. Лейтольда
- •Вычислительные модели Вычислительная машина с произвольной выборкой
- •Вычислительная машина с хранением программ в памяти с произвольной выборкой
- •Машина Тьюринга
- •Raspm с присоединенным вспомогательным хранилищем
- •Моделирование операционных систем
- •Вирусы в raspm с abs
- •Способы размножения вирусов
- •Олигоморфные и полиморфные вирусы
- •Проблема обнаружения вирусов
- •Общая проблема обнаружения вирусов
- •Оценка сложности сигнатурного метода
- •Результат Леонарда Адельмана
- •Принятые обозначения
- •Классификация вирусов
- •Обнаружение компьютерных вирусов
- •Заключение
- •3. Лекция: Классификация вирусов Общие сведения
- •Практическое определение вируса
- •Жизненный цикл
- •Проникновение
- •Активация
- •Поиск жертв
- •Подготовка вирусных копий
- •Внедрение
- •Жизненный цикл
- •Каналы распространения
- •Способы активации
- •Поиск "жертв"
- •Подготовка копий для распространения
- •Жизненный цикл
- •Способы проникновения
- •Активация
- •Выполняемые функции
- •Ущерб от вредоносных программ
- •Угрозы безопасности информации
- •Угроза нарушения конфиденциальности
- •Угроза нарушения целостности
- •Угроза нарушения доступности
- •Заключение
- •4. Лекция: Что такое антивирусы
- •Технологии обнаружения вирусов
- •Режимы работы антивирусов
- •Антивирусный комплекс
- •Антивирусный комплекс для защиты рабочих станций
- •Антивирусный комплекс для защиты файловых серверов
- •Антивирусный комплекс для защиты почтовых систем
- •Антивирусный комплекс для защиты шлюзов
- •Комплексная система защиты информации
- •Организационные меры
- •Правовые меры
- •Глава 28 ук рф содержит следующие статьи, относящиеся к компьютерным вирусам:
- •Программные средства
- •Этапность работ
- •Выбор антивирусных комплексов
- •Преимущества и недостатки одновендорных систем Преимущества
- •Недостатки
- •Преимущества и недостатки мультивендорных систем
- •Преимущества
- •Недостатки
- •5. Лекция: Защита шлюзов Общие сведения
- •Возможные схемы защиты
- •Универсальные антивирусы для шлюзов
- •Проверка протоколов Интернет
- •Проверка почты smtp
- •Антивирусы для шлюзов, основанные на интеграции
- •Антивирусы для Microsoft isa Server
- •Антивирусы для CheckPoint Firewall
- •Другие реализации
- •Требования к антивирусам для шлюзов
- •Угрозы и методы защиты от них Особенности архитектуры
- •Предотвращаемые угрозы
- •Эксплуатационные характеристики
- •Управление
- •Обновление
- •Диагностика
- •Производительность
- •Заключение
- •6. Лабораторная работа: Антивирус Касперского для Microsoft isa Server. Установка, настройка, управление
- •Методические указания к лабораторной работе
- •Состав приложения
- •Поддерживаемые операционные системы
- •Установка
- •Результат установки
- •Принципы работы
- •Управление группами клиентов
- •Внедрение политик антивирусной проверки
- •Настройка диагностики работы приложения
- •Обновление антивирусных баз
- •Настройка уведомлений пользователей
- •Сбор и просмотр статистической информации
- •Уведомление администратора посредством isa Server Alerts
- •Управление лицензионными ключами
- •Задание
- •Контрольные вопросы
- •Рекомендуемая литература
- •7. Лекция: Защита почтовых систем Общие сведения
- •Возможные схемы защиты
- •Требования к антивирусному комплексу для проверки почтового потока
- •Требования к управлению
- •Требования к диагностике
- •Заключение
- •Unix-системы
- •Методические указания к лабораторной работе
- •Состав и принцип работы
- •Архитектура Сервера безопасности
- •Поддерживаемые операционные системы
- •Заключение
- •8. Лабораторная работа: Антивирус Касперского 5.5 для ms Exchange Server. Установка, настройка, управление
- •Методические указания к лабораторной работе
- •Состав и принцип работы
- •Архитектура Сервера безопасности
- •Поддерживаемые операционные системы
- •Установка
- •Результаты установки
- •Принципы работы Производительность антивирусной защиты
- •Фоновая проверка
- •Уровни защиты
- •Настройка диагностики работы приложения
- •Обновления антивирусных баз. Источники обновлений
- •Работа с инфицированными и подозрительными объектами
- •Уведомления
- •Контроль вирусной активности
- •Отчеты об антивирусной проверке
- •Задание
- •9. Лекция: Защита серверов и рабочих станций
- •Структура уровня
- •Защита рабочих станций Классы рабочих станций
- •Специфические угрозы и технологии противодействия
- •Рабочие станции Windows
- •Файловая система
- •Интернет
- •Рабочие станции под управлением других ос
- •Эксплуатационные требования и соответствующие им решения
- •Обновление
- •Управление
- •Диагностика
- •Надежность
- •Защита от вредоносного кода
- •Защита от действий пользователя
- •Недопущение потери данных
- •Производительность
- •Требования к антивирусам для рабочих станций
- •Требования к антивирусам для рабочих станций Windows
- •Требования к управлению
- •Требования к обновлению
- •Требования к диагностике
- •Требования к антивирусам для рабочих станций Linux/Unix
- •Требования к управлению
- •Требования к диагностике
- •Защита серверов
- •Специфические угрозы и способы противодействия
- •Сервера Microsoft Windows
- •Сервера Novell Netware
- •Сервера Unix
- •Эксплуатационные требования и характеристики
- •Управление
- •Обновление
- •Диагностика
- •Надежность
- •Производительность
- •Требование к антивирусам для серверов
- •Основные требования
- •Требования к управлению
- •Требования к обновлению
- •Требования к диагностике
- •Требования к производительности
- •Система администрирования
- •Цели и задачи
- •Структура системы администрирования
- •Основные требования к системе администрирования
- •Подсистема управления
- •Подсистема обновления
- •Подсистема диагностики
- •Средства внедрения
- •Заключение
- •10. Лабораторная работа: Антивирус Касперского 6.0 для Windows Workstations. Локальная установка и управление
- •Методические указания к лабораторной работе
- •Установка
- •Результат установки
- •Принципы работы программы
- •Компоненты
- •Системные задачи проверки по требованию (5 задач)
- •Системные задачи обновления
- •Пользовательские задачи
- •Проверка по требованию
- •Файловый антивирус
- •Почтовый антивирус
- •Проактивная защита
- •Анти-Шпион
- •Анти-Хакер
- •Анти-Спам
- •Технологии iChecker(tm) и iSwift(tm)
- •Обновления сигнатур угроз и модулей приложения
- •Источник обновлений
- •Обновляемые компоненты
- •Откат обновления антивирусных баз
- •Работа с инфицированными и подозрительными объектами
- •Задание
- •Контрольные вопросы
- •Рекомендуемая литература
- •11. Лабораторная работа: Kaspersky Administration Kit. Развертывание системы управления антивирусными средствами Лаборатории Касперского
- •Методические указания к лабораторной работе
- •Состав и структурная схема
- •Установка Сервера администрирования
- •Подключение к Серверу Администрирования
- •Разграничение полномочий администраторов
- •Первое подключение к Серверу администрирования
- •Выбор способа формирования логической сети
- •Логическая сеть
- •Структура логической сети, объекты управления
- •Контейнеры узла Сервера администрирования
- •Структура контейнера Сеть
- •Процедура добавления группы
- •Добавление нового инсталляционного пакета
- •Выбор лицензионного ключа
- •Создание задачи удаленной установки
- •Выбор метода установки
- •Выбор учетной записи
- •Создание задачи проверки по требованию
- •Выбор настроек проверки по требованию
- •Выполнение задачи проверки по требованию
- •Создание задачи получения обновлений Сервером администрирования
- •Задача обновления клиентов
- •Контейнер Обновления
- •Автоматическое проталкивание обновлений антивирусных баз
- •Смена Сервера администрирования
- •Задание
- •Контрольные вопросы
- •Рекомендуемая литература
- •12. Лабораторная работа: Kaspersky Administration Kit. Особенности работы с иерархической структурой Серверов администрирования
- •Методические указания к лабораторной работе
- •Узел Сервера администрирования
- •Добавление подчиненного Сервера администрирования
- •Политики Антивируса Касперского
- •Влияние политики на настройки клиентов
- •Влияние политик на глобальные и групповые задачи
- •Наследование политик
- •Создание политик
- •Настройка уровня защиты для задач постоянной защиты объектов
- •Иерархическое действие групповых задач
- •Получение сведений о лицензионных ключах
- •Установка лицензионного ключа
- •Резервное копирование базы Сервера администрирования
- •Синтаксис утилиты
- •Задание
- •Контрольные вопросы
- •Рекомендуемая литература
- •13. Лабораторная работа: Основные признаки присутствия вредоносных программ и методы по устранению последствий вирусных заражений
- •Методические указания к лабораторной работе
- •Сетевые черви
- •Жизненный цикл вредоносных программ
- •Основные пути проникновения в систему и активации
- •Устранение последствий заражения
- •Задание
- •Контрольные вопросы
- •Рекомендуемая литература
Raspm с присоединенным вспомогательным хранилищем
Дальнейшее приближение модели к реальным компьютерам и операционным системам основывается на идее присоединенных внешних хранилищ (данных и программ).
Описанные в предыдущем пункте модели ограничены тем, что в чистом виде пригодны только для анализа отдельного алгоритма или программы. Для анализа взаимодействия алгоритмов потребовались бы значительные усилия. Чтобы упростить анализ таких ситуаций имеет смысл ввести в модель вычислительной машины специальную область или ленту, на которой будут храниться данные других программ. Назовем эту область присоединенным вспомогательным хранилищем (Attached Background Storage, ABS). Кроме этого имеет смысл потребовать, чтобы любая выполняющаяся программа имела полный доступ (чтение и запись) к этому хранилищу.
Определение 2.6. Вычислительная машина G с хранением программ в памяти с произвольной выборкой и с присоединенным вспомогательным хранилищем (RASPM с ABS) определяется шестью элементами:
где V - алфавит, состоящий из входных символов, выходных символов, а также символов, которые могут быть записаны на присоединенном вспомогательном устройстве и в ячейках памяти (регистрах), U - непустое конечное подмножество кодов инструкций, U V, T- непустое множество возможных действий процессора, f - однозначная функция f: U T, ставящая в соответствие различным кодам инструкций различные действия процессора, действие процессора f(x), соответствующее коду инструкции x U будет называться командой, q - стартовое значение счетчика операций, M - стартовое наполнение памяти
Без потери общности можно допустить, что существует взаимно однозначное кодирование символов алфавита V целыми числами. При этом каждая инструкция должна сопровождаться значением операнда, таким образом каждая команда задается двумя ячейками: код инструкции в одной ячейке и значение операнда в следующей ячейке. Один из вариантов кодирования инструкций представлен в таблице:
Инструкция |
Параметр |
Код инструкции |
Значение |
LOAD |
Операнд |
10 |
Загружает в аккумулятор значение, определяемое операндом |
STORE |
Операнд |
20 |
Копирует значение аккумулятора в ячейку, определяемую операндом |
ADD |
Операнд |
30 |
Прибавляет к аккумулятору значение, определяемое операндом |
SUB |
Операнд |
40 |
Вычитает из аккумулятора значение, определяемое операндом |
MULT |
Операнд |
50 |
Умножает аккумулятор на значение, определяемое операндом |
DIV |
Операнд |
60 |
Делит аккумулятор на значение, определяемое операндом |
AND |
Операнд |
70 |
Выполняет побитовую операцию "И" между аккумулятором и значением, определяемым операндом |
OR |
Операнд |
80 |
Выполняет побитовую операцию "ИЛИ" между аккумулятором и значением, определяемым операндом |
XOR |
Операнд |
90 |
Выполняет побитовую операцию "исключающее ИЛИ" между аккумулятором и значением, определяемым операндом |
READ |
Операнд |
A0 |
Считывает значение с входной ленты в ячейку, определяемую операндом |
WRITE |
Операнд |
B0 |
Записывает на выходную ленту значение ячейки, определяемой операндом |
GET |
Операнд |
C0 |
Считывает значение с вспомогательного хранилища в ячейку, определяемую операндом |
PUT |
Операнд |
D0 |
Записывает на вспомогательное хранилище значение ячейки, определяемой операндом |
SEEK |
Операнд |
E0 |
Перемещает считывающую/записывающую головку вспомогательного хранилища в позицию, определяемую операндом |
JUMP |
Метка |
FC |
Присваивает счетчику инструкций значение метки |
JGTZ |
Метка |
FD |
Присваивает счетчику инструкций значение метки, если аккумулятор содержит положительное число |
JZERO |
Метка |
FE |
Присваивает счетчику инструкций значение метки, если аккумулятор равен нулю |
Обозначим значение i-й ячейки памяти как c(i), где i - целое число. Допустимые коды операндов в таком случае представлены в таблице.
Операнд |
Код операнда |
Значение |
i |
1 |
i |
[i] |
2 |
c(i) |
[[i]] |
3 |
c(c(i)) |
Полный код команды в этом случае будет складываться (в буквальном смысле) из кода инструкции и кода операнда. Например, команда ADD [i] будет иметь код 32, а команда GET [[i]] - код C3.
Поскольку программа в случае RASPM способна изменять себя в процессе выполнения, многие команды, в частности, команды с операндом [[i]] могут быть эмулированы через другие команды.
Также нужно понимать, что не любой операнд подходит к каждой инструкции. Например, инструкция READ может иметь только операнды типов [i] и [[i]], поскольку записывает значение из ленты в память.
При включении RASPM с ABS счетчик инструкций принимает начальное значение q и процессор немедленно выполняет команду, расположенную по адресу, указанному в q. Дальнейшее выполнение программы определяется командами, записанными в памяти и таким образом полностью определяется начальным содержанием памяти. Завершение работы машины происходит в следующих случаях:
когда машина выключается пользователем
когда счетчик указывает на ячейку памяти, содержимое которой не является кодом команды (x V, но x U)
когда производится попытка выполнить деление на ноль
Таким образом, в отличие от RAM специальная команда для завершения работы машины не используется.
При каждом включении машины содержимое памяти приводится к исходному значению M, а при каждом выключении обнуляется. Содержимое вспомогательного хранилища, напротив, сохраняется от выключения к включению. Можно также допустить, что вспомогательное хранилище разрешается отсоединять от одной машины и присоединять к другой. Естественным расширением RASPM с ABS выглядит возможность одновременного подключения нескольких вспомогательных хранилищ к одной машине. Следовательно можно определить RASPM с несколькими ABS следующим образом.
Определение 2.7. Вычислительная машина с хранением программ в памяти с произвольной выборкой и с несколькими присоединенными вспомогательными хранилищами (Random Access Stored Program Machine with Several Attached Background Storages, RASPM с SABS) определяется так же как и RASPM с ABS, но с некоторыми допущениями:
к RASPM с SABS может быть одновременно присоединено несколько вспомогательных хранилищ
все символы на всех вспомогательных хранилищах входят в алфавит V
множество возможных действий процессора включает дополнительное действия выбора активного вспомогательного хранилища (см. нижеследующую таблицу)
после выполнения соответствующей команды все инструкции, так или иначе связанные с использованием вспомогательного хранилища, будут относиться к активному хранилищу
если инструкция, связанная с использованием вспомогательного хранилища, выполняется до команды выбора активного хранилища, она будет использовать первое хранилище
машина останавливается в тех же случаях, что и RASPM с ABS, а также в случае выполнения команды смены хранилища, если операнд указывает на несуществующее хранилище
Инструкция |
Параметр |
Код инструкции |
Значение |
SETDRIVE |
операнд |
FO |
Устанавливает активным вспомогательным хранилищем ленту, определяемую операндом |
Теорема 2.5. RASPM с SABS эквивалентна RASPM с ABS, в том смысле, что каждая из машин может быть проэмулирована другой
Доказательство. Достаточно показать, что RASPM с SABS может быть проэмулирована RASPM с ABS, поскольку симметричное утверждение доказывается тривиально.
Для эмуляции N вспомогательных хранилищ одним хранилищем воспользуемся следующим принципом: пронумеруем ленты вспомогательных хранилищ от 0 до N-1. Перенесем j-й символ i-й ленты в (Nj+i)-ю позицию новой ленты. Кроме этого изменим структуру памяти эмулирующей машины следующим образом:
Нулевая ячейка по-прежнему аккумулятор
1-ю ячейку оставим для будущих целей
2-я ячейка содержит адрес ячейки с номером от 3 до N+2, которая хранит номер позиции головки чтения/записи на ленте вспомогательного хранилища
i-я ячейка в диапазоне от 3 до N+2 содержит позицию головки чтения/записи (i-3)-й виртуальной ленты вспомогательного хранилища
i-я ячейка при i>N+2 содержит то же значение, что и (i-N-2)-я ячейка эмулируемой машины, если при трансляции программа эмулируемой машины не подверглась изменениям (см. ниже), в противном случае сдвиг происходит на большее количество позиций
Команды эмулируемой машины переносятся в память эмулирующей машины без изменений за исключением следующих случаев:
если исходная программа должна изменить текущее активное хранилище, вместо команды SETDRIVE a выполняется последовательность команд, меняющая номер виртуальной ленты во 2-м регистре:
STORE [1] ; сохранить значение аккумулятора в 1-м регистре
LOAD a ; загрузить операнд
ADD 3 ; вычислить настоящий адрес
STORE [2] ; сохранить его, как адрес активной ленты
LOAD [1] ; восстановить значение аккумулятора
если оригинальная программа должна произвести чтение или запись на вспомогательном хранилище (например, PUT a), эмулирующей программе потребуется вычислить соответствующий номер ячейки на реальной ленте и произвести запись в нее путем выполнения следующей последовательности команд:
STORE [1] ; сохранить значение аккумулятора
SEEK [[2]] ; переместить головку в нужную позицию
PUT a ; записать операнд на ленту
LOAD [[2]] ; загрузить позицию на реальной ленте в аккумулятор
ADD N ; изменить позицию (соответствует сдвигу вправо)
STORE [[2]] ; сохранить позицию
LOAD [1] ; восстановить значение аккумулятора
если оригинальная программа перемещает головку чтения/записи при помощи команды SEEK a, эмулирующая программа выполняет такую последовательность команд:
STORE [1] ; сохранить значение аккумулятора
LOAD a ; загрузить операнд
MULT N ; вычислить по операнду
ADD [2] ; номер позиции
SUB 3 ; на реальной ленте
STORE [[2]] ; сохранить новую позицию
LOAD [1] ; восстановить значение аккумулятора
в процессе копирования программы из памяти эмулируемой машины в память эмулирующей, при замене описанных команд на последовательности команд, остальные команды сдвигаются на необходимое число позиций и все ссылки на ячейки памяти пересчитываются соответственно сдвигу
Построенная таким образом симулирующая машина требует не более 7 операций на каждую операцию исходной программы, а значит сложность эмулирующей программы будет не больше 7T(n), где T(n) - сложность эмулируемой программы. Теорема доказана.
Следовательно увеличение количества вспомогательных хранилищ не увеличивает вычислительной способности машины RASPM с ABS. Осознавая этот факт, несложно понять, что вычислительная способность RASPM с ABS не превышает вычислительной способности RASPM, что и утверждается соответствующей теоремой.
Теорема 2.6. Любая машина RASPM с ABS может быть проэмулирована машиной RASPM, и затраты на операции будут отличаться не более чем на постоянный множитель
Доказательство. По аналогии с доказательством предыдущей теоремы можно скомбинировать содержимое памяти и вспомогательного хранилища эмулируемой машины в памяти эмулирующей машины и получить RASPM - машину без вспомогательного хранилища. Основная разница при комбинировании будет заключаться в том, что смешиваться будут не отдельные ячейки, а их блоки, поскольку отрывать значение операнда от кода инструкции нельзя. Также следует учитывать, что для сохранения связности программы потребуется добавить после каждой команды оригинальной программы команду JUMP, чтобы пропустить ячейки памяти относящиеся к виртуальной вспомогательной ленте. В остальном принципы комбинирования остаются теми же, за тем исключением, что нет необходимости использовать несколько регистров для нескольких лент и отдельный регистр для номера ленты - достаточно будет ограничиться только регистром для хранения номера позиции на ленте. На этом неформальное доказательство можно считать законченным. Приводить формальное доказательство смысла нет из-за его относительной громоздкости.
Прямым следствием из теоремы будет следующая теорема:
Теорема 2.7. Вычислительная способность Машины Тьюринга и RASPM с ABS эквивалентны, а их затраты на вычисления находятся в полиномиальной зависимости
Доказательство. Этот результат получается из сопоставления результатов теорем 2.1, 2.2, 2.3 и 2.6.
