Модели взаимодействия прикладной программы и разрушающего программного воздействия

Выделяют следующие основные модели работы программных закладок.

1. Модель «перехват». Программная закладка внедряется в ПЗУ, ОС или прикладное ПО и сохраняет все или избранные фрагменты вводимой или выводимой информации в скрытой области внешней памяти прямого доступа. Для данной модели существенно наличие во внешней памяти места хранения информации, которое должно быть организовано таким образом, чтобы обеспечить ее сохранность на протяжении заданного промежутка времени и возможность последующего съема. Как правило, сохраняемая информация маскируется от просмотра легальными пользователями.

2. Модель «троянский конь». Программная закладка скрывается под исзвестное ПО.

3. Модель «наблюдатель». Программная закладка встраивается в постоянно активное ПО и осуществляет контроль за процессами обработки информации в компьютерной системе (реализует установку и удаление РПВ, съём накопленной информации и т.п.).

4. Модель «компрометация». Программная закладка либо передает заданную злоумышленником информацию в канал связи, либо сохраняет ее, не полагаясь на гарантированную возможность последующего приема или снятия.

5. Модель «искажение или инициатор ошибок». Программная закладка искажает потоки выходных данных, возникающие при работе прикладных программ (например, записывает ключевую информацию в конец зашифрованного файла), либо искажает входные потоки информации (например, устраняет фальсификацию ЭЦП), либо инициирует или подавляет возникающие при работе прикладных программ ошибки.

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

Условимся, что исполнение кода программной закладки может быть сопровождено операциями несанкционированной записи (НСЗ) и несанкционированного считывания (НСЧ). Возможные комбинации несанкционированных действий – НСЧ и НСЗ, а также санкционированных действий прикладной программы или операционной среды по записи (СЗ) или считыванию (СЧ) представлены в таблице 16.

Табл. 16. Возможные комбинации несанкционированных и санкционированных действий прикладной программы или операционной среды

НСЧ НСЗ Действия программной закладки СЧ СЗ
Нет
Нет
Нет
Нет
Изменение (разрушение) кода прикладной программы в оперативной памяти
Разрушение или сохранение выводимой прикладной программой данных
Разрушение или сохранение вводимой прикладной программой данных
Разрушение или сохранение вводимой и выводимой прикладной программой данных
Нет
Перенос выводимых прикладной программой данных в оперативную память
Перенос вводимых в прикладную программу данных в оперативную память
Перенос вводимых и выводимых прикладной программной данных в оперативную память
Размножение (самодублирование)
Разрушение или сохранение выводимой прикладной программой данных
Разрушение или сохранение вводимой прикладной программой данных
Разрушение или сохранение вводимой и выводимой прикладной программой данных

 

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

· сохранение фрагментов информации, возникающих при работе пользователя, прикладных программ, вводе-выводе данных, во внешней памяти (локальной или удаленной) сети или выделенной ПЭВМ, в том числе различных паролей, ключей и кодов доступа, конфиденциальных документов и т.п.;

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

· навязывание некоторого режима работы (например, при уничтожении информации – блокирование записи на диск), либо замена записываемой информации навязанной закладкой.

Компьютерные вирусы как класс разрушающих программных воздействий.

Под компьютерными вирусами принято понимать разрушающие программные воздействия, обладающие следующими свойствами.

1. Способность к самодублированию – к созданию собственных копий, не обязательно совпадающих с оригиналом, но обладающих его свойствами.

2. Способность к ассоциированию с другими программами - наличие механизма, обеспечивающего внедрение создаваемых копий в исполняемые объекты компьютерной системы (заражающего механизма).

3. Способность к скрытию признаков своего присутствия в программной среде, к скрытию свойств 1 и 2.

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

Жизненный цикл вирусов включает в себя две основные стадии – хранение (латентная фаза) и исполнение.

В ходе латентной фазы вирус не активен, не может контролировать работу операционной системы, и просто хранится на диске совместно с объектом, в который он внедрён.

Переход от латентной фазы к исполнению вируса осуществляется по некоторому активизирующему событию (открытие файла, наступление определенной даты и т.д.).

Фаза исполнения вируса, как правило, состоит из следующих этапов.

1. Загрузка вируса в память.

2. Поиск «жертвы».

3. Заражение «жертвы» (инфицирование).

4. Выполнение деструктивных функций.

5. Передача управления программе-носителю вируса.

Загрузка вируса в память осуществляется ОС одновременно с загрузкой исполняемого объекта, в который внедрен вирус (например, при запуске на исполнение зараженного файла, при чтении загрузочного сектора диска и т.п.).

По способу поиска «жертвы» вирусы можно разделить на два класса. К первому классу относятся вирусы, осуществляющие «активный» поиск с использованием функций ОС, ко второму классу – вирусы, осуществляющие «пассивный поиск» с помощью механизмов расстановки «ловушек» для программных файлов (так часто поступают макровирусы).

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

Помимо простого копирования кода вируса в заражаемый объект на этом этапе могут использоваться более сложные алгоритмы, обеспечивающие защиту вируса на стадии хранения (шифрование, «мутации» кода и т.п.). Суть «мутаций» сводится к тому, что при внедрении в объект копии вируса, часть ее кода, относящаяся к расшифровщику, модифицируется так, чтобы возникли различия с оригиналом, но результаты работы остались неизменными. Наиболее распространенными приемами модификации кода являются следующие:

· изменение порядка независимых инструкций;

· замена некоторых инструкций на эквивалентные по результату работы;

· замена используемых в инструкциях регистров на другие;

· внедрение случайным образом зашумляющих инструкций.

Вирусы, использующие подобные механизмы мутации кода, получили название полиморфных.

Особенности воздействия программных закладок на программно-аппаратные средства защиты информации

Особенностью применения программно-аппаратных средств защиты в ПЭВМ являются следующие:

· собственные программы управления аппаратной частью, как правило, находятся в ПЗУ и, следовательно, не могут быть изменены программным путём;

· под управление аппаратным комплексом выделяются средства низкого уровня (операции с портами, либо выделенные прерывания);

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

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

Поскольку обращение к аппаратным средствам происходит из прикладных программ и, как правило, через некоторую промежуточную программу управления, то воздействие на аппаратное средство может быть сведено к воздействию либо на прикладную программу, либо на программу управления аппаратным комплексом, который находится в ОЗУ.

Зададимся следующей моделью работы программно-аппаратного комплекса. Пусть имеется выделенное прерывание int N и k его подфункций int N,1 I, int N, 2, ... , int N, k, управлающие работой программно-аппаратного комплекса с точки зрения программной среды. При этом прикладные программы инициируют программно-аппаратный комплекс путем вызова заданной подфункции прерывания int N, i обычным образом.

Возможны две принципиально разные ситуации: обработчик int N, k находится в ПЗУ; обработчик int N, k находится в ОЗУ (рис. 56).

Рис. 56. Обработчик int N

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

Далее, обработчик int N изменяет содержимое ОЗУ, например, выполняя шифрование заданного буфера, выработку производных ключей или электронное подписывание выделенного в ОП массива данных. При этом существующая информация либо изменяется, либо образуется новая информация в ОЗУ.

Необходимо отметить, что эти операции связаны с легко идентифицируемым событием в программной среде ПЭВМ - выполнением или завершением прерывания int N.

В рамках принятой модели можно выделить следующие пути воздействия программных закладок.

В ситуации 1:

1.1. Сохранение на внешнем устройстве информации из изменяемой области ОЗУ, синхронизированное с прерыванием int N.

1.2. Разрушение информации в изменяемой области.

1.3. Определение прерывания int N на собственную программу в ОЗУ путем:

1.3.1. Изменения вызовов int N в пользовательской программе.

1.3.2. Встраивания в цепочки прерывания обычным образом.

В ситуации 2:

Пункты 1.1 - 1.3 полностью сохраняются, но добавляется ещё один:

1.4. Изменение кода самого исходного обработчика int N.

Пусть работа программно-аппаратного комплекса строится по схеме изображенной на рисунке 57.

Рис. 57. Схема работы программно-аппаратного комплекса

Тогда возможны следующие ситуации:

1) нападение на пользовательскую программу, работающую с программно-аппаратным комплексом, путем исправления в ЕХЕ- или СОМ-файле данной программы вызовов прерываний int N (код CD N) на вызов своего прерывания, например, int М (рис. 58).

Рис. 58. Схема исправления вызовов прерываний int N в исполняемом файле

2) нападение на обработчик int N.

· исправление в таблице прерываний адреса int N на другой произвольный адрес в пределах ОЗУ (рис. 59);

Таблица прерываний: off1 seg1 ... offN segN ... off255 seg255

Рис. 59. Схема исправления в таблице прерываний адреса int N