Модели взаимодействия прикладной программы и РПВ
Выделяют следующие основные модели работы программных закладок (ПЗ).
- 1. Модель «перехват». ПЗ внедряется в ПЗУ, ОС или прикладное ПО и сохраняет все или избранные фрагменты вводимой или выводимой информации в скрытой области внешней памяти прямого доступа. Как правило, сохраняемая информация маскируется от просмотра легальными пользователями.
- 2. Модель «троянский конь». ПЗ встраивается в постоянно используемое ПО и по некоторому активизирующему событию моделирует сбойную ситуацию, парализуя нормальную работу компьютерной системы.
- 3. Модель «наблюдатель». ПЗ встраивается в постоянно активное ПО и осуществляет контроль над процессами обработки информации в компьютерной системе.
- 4. Модель «компрометация». ПЗ передает нужную злоумышленнику информацию в канал связи.
- 5. Модель «искажение или инициатор ошибок». Программная закладка искажает потоки выходных данных, возникающие при работе прикладных программ.
- 6. Модель «уборка мусора». Программная закладка «изучает остатки информации», оставшиеся после удаления файлов.
Компьютерные вирусы как класс РПВ
Под компьютерными вирусами принято понимать РПВ, обладающие следующими свойствами:
- 1. Способность к самодублированию - к созданию собственных копий, не обязательно совпадающих с оригиналом, но обладающих его свойствами.
- 2. Способность к ассоциированию с другими программами - наличие механизма, обеспечивающего внедрение создаваемых копий в исполняемые объекты компьютерной системы (заражающего механизма).
- 3. Способность к скрытию признаков своего присутствия в программной среде.
Принято разделять вирусы:
по поражаемым объектам:
- • файловые вирусы,
- • загрузочные вирусы^
- • скриптовые вирусы,
- • сетевые черви,
по поражаемым операционным системам и платформам:
- • DOS,
- • Microsoft Windows,
- • Unix,
- • GNU/Linux,
- • Java и др.;
по технологиям, используемым вирусом:
- • полиморфные вирусы,
- • стелс-вирусы,
по языку, на котором написан вирус:
- • ассемблер,
- • высокоуровневый язык программирования,
- • скриптовый язык и др.
Классификация файловых вирусов по способу заражения
По способу заражения файловые вирусы разделяются на:
- • перезаписывающие,
- • паразитические,
- • вирусы-звенья,
- • вирусы-черви,
- • компаньон-вирусы,
- • вирусы, поражающие исходные тексты программ и компоненты про
граммного обеспечения (VCL, LIB, и др.).
Перезаписывающие вирусы. Вирусы данного типа записывают свое тело вместо кода программы, не изменяя названия исполняемого файла, вследствие чего исходная программа перестает запускаться. При запуске программы выполняется код вируса, а не сама программа.
Вирусы-компаньоны. Компаньон-вирусы, как и перезаписывающие вирусы, создают свою копию на месте заражаемой программы, но в отличие от перезаписываемых не уничтожают оригинальный файл, а переименовывают или перемещают его. При запуске программы вначале выполняется код вируса, а затем управление передается оригинальной программе. Например, РАТН-компаньоны. Они размещают свои копии в основном каталоге Windows, используя тот факт, что этот каталог является первым в списке PATH, и файлы для запуска Windows в первую очередь будет искать именно в нём. Данными способом самозапуска пользуются также многие компьютерные черви и троянские программы.
Файловые черви. Эти вирусы создают собственные копии с привлекательными для пользователя названиями (например, Game.exe, install.exe и др.) в надежде на то, что пользователь их запустит.
Вирусы-звенья. Эти вирусы не изменяют код программы, а заставляют операционную систему выполнить собственный код, изменяя адрес местоположения на диске зараженной программы на собственный адрес. После выполнения кода вируса управление обычно передается вызываемой пользователем программе.
Паразитические вирусы - это файловые вирусы, изменяющие содержимое файла, добавляя в него свой код. При этом зараженная программа сохраняет полную или частичную работоспособность. Код может внедряться в начало, середину или конец программы. Код вируса выполняется перед, после или вместе с программой, в зависимости от места внедрения вируса в программу.
Вирусы, поражающие исходный код программ. Вирусы данного типа поражают или исходный код программы, либо её компоненты OBJ-, LIB-, DCU- файлы, а также VCL и ActiveX компоненты. После компиляции программы такие коды оказываются в неё встроенными. В настоящее время широкого распространения не получили.
Жизненный цикл вирусов включает в себя две основные стадии - хранение (латентная фаза) и исполнение.
В ходе латентной фазы вирус не активен, не может контролировать работу операционной системы, он просто хранится на диске совместно с объектом, в который внедрен.
Переход от латентной фазы к исполнению вируса осуществляется по некоторому активизирующему событию (открытие файла, наступление определенной даты и т.д.).
Фаза исполнения вируса, как правило, состоит из следующих этапов:
- 1. Загрузка вируса в память.
- 2. Поиск «жертвы».
- 3. Заражение «жертвы» (инфицирование).
- 4. Выполнение деструктивных функций.
- 5. Передача управления программе-носителю вируса.
Загрузка вируса в память осуществляется ОС одновременно с загрузкой исполняемого объекта, в который внедрен вирус (например, при запуске на исполнение зараженного файла, при чтении загрузочного сектора диска и т.п.).
По способу поиска «жертвы» вирусы можно разделить на два класса:
- • вирусы, осуществляющие «активный» поиск с использованием функций ОС;
- • вирусы, осуществляющие «пассивный поиск» с помощью механизмов расстановки «ловушек» для программных файлов (так часто поступают макровирусы).
Инфицирование объектов КС осуществляется различными способами в зависимости от типа вируса. В простейшем случае этап заражения жертвы сводится к самокопированию кода вируса в выбранный в качестве жертвы объект (файл, загрузочный сектор, псевдосбойные сектора и т.д.).
Помимо простого копирования кода вируса в заражаемый объект, на этом этапе могут использоваться более сложные алгоритмы, обеспечивающие защиту вируса на стадии хранения (шифрование, «мутации» кода и т.п.). Суть «мутаций» сводится к тому, что при внедрении в объект копии вируса, часть ее кода, относящаяся к расшифровщику, модифицируется так, чтобы возникли различия с оригиналом, но результаты работы остались неизменными.
Наиболее распространенными приемами модификации кода являются следующие:
изменение порядка независимых инструкций;
замена некоторых инструкций на эквивалентные;
замена используемых в инструкциях регистров на другие;
внедрение случайным образом зашумляющих инструкций.
Вирусы, использующие подобные механизмы мутации кода, получили название полиморфных.
По характеру выполнения деструктивных функций вирусы делят на «безвредные», «неопасные», «опасные» и «очень опасные».
- • В «безвредных» вирусах реализована только функция самодублирования.
- • «Неопасные» вирусы - это вирусы, присутствие которых в системе связано с различными эффектами, но которые не наносят вред программам и данным.
- • «Опасные» вирусы могут стать причиной сбоя системы.
- • «Очень опасные» вирусы приводят непосредственно к разрушению программ и данных.
Средства борьбы с компьютерными вирусами можно разделить на три класса:
- 1. Административные - включающие комплекс мер, действующих в рамках предприятий и направленных на снижение ущерба, наносимого компьютерными вирусами (профилактические мероприятия, планы действия сотрудников при вирусной атаке, запреты на самостоятельную установку нового ПО и т.п.).
- 2. Юридические - привлечение к уголовной или административной ответственности лиц, по чьей вине наносится ущерб компьютерным системам (статья 273 УК РФ - «Создание, использование и распространение вредоносных программ для ЭВМ»).
- 3. Технические - применение антивирусных мониторов и сканеров, программных и аппаратных средств, не допускающих возможность заражения объектов компьютерной системы.