
- •Методы и средства защиты от компьютерных вирусов План
- •1. Машинный код
- •2. Система счисления
- •3. Проблема антивирусной защиты компьютерных систем
- •4. Защита от заражения компьютерными вирусами
- •Аппаратные (программно-технические) средства защиты от вирусов
- •5. Принципы работы антивирусных программ
- •6. Защита от известных вирусов
- •7. Сигнатурный анализ. Сканирование
- •7.1. Контрольная сумма
- •7.3. . Использование контрольных сумм для детектирования вирусов
- •8. Основы работы антивирусного сканера
- •1. Поиск вирусов, похожих на известные
- •2. Поиск вирусов, выполняющих подозрительные действия
- •10. Дополнительные средства
- •10.1. Модуль обновления
- •6.2. Модуль планирования
- •10.3. Модуль управления
- •10.4. Карантин
- •11. Виды антивирусных программ
- •11.1. Антивирусные программы: детекторы, доктора
- •11.2. Программы-ревизоры. Обнаружение изменений ( Защита от неизвестных вирусов )
- •11.3. Резидентные мониторы:программы-фильтры, сторожа
- •11.4. Вакцинирование программ
- •12. Проблема выбора антивирусной программы
- •13. Методика использования антивирусных программ
- •14. Защита от проявлений вирусов
- •14.1. Аппаратная защита от вирусов (Встроенные аппаратные средства пк)
- •14.2. Защита, встроенная в bios компьютера
- •12. Характеристика программ антивирусной защиты
- •Программа avp
7.3. . Использование контрольных сумм для детектирования вирусов
Если необходимо подсчитать контрольную сумму участка в несколько килобайт, методом подсчёта контрольной суммы каждого найденного файла то процесс проверки не будет проходить так быстро как хотелось бы. Пример.
Рассмотрим вирус-червь BAT.Sys.602, распространяющийся в виде файла BAT, написанного на примитивном языке Batch, входящим в комплект операционной системы DOS. Внешне вирус-червь представляет собой обычный текст. Для опознавания наличия этого вируса в BAT-файлах не обязательно считать контрольную сумму всего вирусного кода, достаточно взять участок кода, состоящий из нескольких строк. Так же просто необходимо запомнить их расположение в вирусном файле и длину этих строк (всех вместе).
Возьмём строки 4 и 5. В этом вирусе строка 4 начинается в файле со смещения 75 («4Bhex») и заканчивается 150 («96 hex»). Т.е. размер двух строк составляет 75 байт. Брать в качестве сигнатуры определенные строки не совсем обязательно, можно взять любую часть кода, размером желательно до 100 байт, чтобы время на расчет контрольной суммы затрачивалось минимальное.
Таким образом получаем простейшую вирусную базу для трех вирусов. Размер одной вирусной записи (данных об одном вирусе, необходимых для его детектирования и лечения) в данном случае составляет 20 + 4 = 24 байта. Если же вирусная база хранится в отдельном файле, то при старте антивирусный сканер должен загрузить ее в память, для того, чтобы к данным, хранящимся в ней, было быстрее и проще «обращаться» по необходимости. Для этого пишутся специальные процедуры разбора. И конечно же вирусные записи содержат гораздо больше данных, например таких как: тип вируса, адреса процедур для детектирования и лечения.
. Основы работы с вирусной базой В рассмотренном примере, необходимо писать процедуру для работы с найденными файлами, т.е.:
читать данные из файла по смещению 75 и размером 75 байт,
считать контрольную сумму
сравнивать полученную контрольную сумму по очереди с указанной во всех доступных (в нашем случае 2) вирусных записях в вирусной базе.
Если контрольная сумма совпадает, выводится информация о том, что найденный файл заражен определенным вирусом. Заметки по лечению вирусов В рассмотренном примере найденные файлы с вирусами можно просто удалять, но это самые простейшие вирусы.
Обычно каждый вирус изменяет что-то в файлах - настройках операционной системы, пытается спрятаться от чужих глаз.
Даже для вирусов, файлы носители которых (дропперы) можно просто удалять это (скорее всего) не будет являться стопроцентным лечением.
Необходим анализ алгоритма работы вируса.
8. Основы работы антивирусного сканера
Детектирование - (от лат . detectio - обнаружение)
Размер детектируемого файла – размер файла в битах, заражённого вирусом
Черви и троянские кони не умеют заражать другие файлы, поэтому всегда распространяются в одном и том же виде. Т.е. в виде не изменяющегося файла.
Пример.
Допустим, имеется файл с вирусом-червем, который занимает 10 килобайт.
Червь распространяется в виде исполняемого файла PortableExecutable.
Необходимо написать программу антивирус против этого червя. Программа поиска PE-файлов в указанном каталоге выглядит так: 1. Каждый найденный файл размером 10 килобайт и больше будет открываться 2. Первые 10кб будут считываться, и сверяться с теми, которые были взяты из «тела» вируса 3 Если содержимое будет совпадать, то значит перед нами червь и нужно его вылечить Так выглядит примитивный алгоритм детектирования вируса червя.
Допустим, что таким способом полученная программа опознает, и вылечит 100 вирусов. В качестве сигнатуры (данных, по которым определяется зараженность объекта тем или иным вирусом) используется полный вирусный код, допустим для каждого вируса по 10 кб. В результате вирусная база (база данных программы содержащая алгоритмы по детектированию и лечению вирусов) программы будет занимать 1 мегабайт, а это очень много. Крупнейшие антивирусные программы детектируют несколько десятков тысяч самых разнообразных вирусов, и их вирусные базы занимают всего несколько мегабайт. Детектирование (обнаружение) вирусов, не изменяющих своей структуры, является примитивнейшим занятием. Сигнатура для детектирования таких вирусов может занимать всего 3 двойных слова, т.е. 12 байт и быть очень надежной, если использовать контрольные суммы … 9. Эвристический анализ
Помимо статистических методов контроля целостности, для выявления неизвестных и маскирующихся вирусов используются методы эвристического анализа.
Эвристический анализ является относительно новым методом в обнаружении вирусов.
Он позволяет обнаруживать ранее неизвестные вирусы, причем для этого не надо предварительно собирать данные о файловой системе, как этого требует метод обнаружения изменений.
Суть методов эвристического анализа состоит в том, что решение проблемы основывается на некоторых правдоподобных предположениях, а не на строгих выводах из имеющихся фактов и предпосылок.
Методы эвристического анализа позволяют выявить по известным признакам (определенным в базе знаний системы) некоторые маскирующиеся или новые модифицированные вирусы известных типов.
В качестве примера признака вируса можно привести код, устанавливающий резидентный модуль в памяти, меняющий параметры таблицы прерываний и др.
Программный модуль, реализующий эвристический метод обнаружения вирусов, называют эвристическим анализатором.
Примером сканера с эвристическим анализатором является программа DrWeb фирмы «Диалог-Наука».
К недостаткам эвристических анализаторов можно отнести ошибки 1-го и 2-го рода: ложные срабатывания и пропуск вирусов. Соотношение указанных ошибок зависит от уровня эвристики.
Понято, что если для обнаруженного эвристическим анализатором компьютерного вируса сигнатура отсутствует в базе данных сканирования, то лечение зараженных данных может быть некорректным.
Рассмотрим примеры различных эвристических методов.