ПРог_ЗАкл (1085436), страница 2
Текст из файла (страница 2)
- закладка должна активизироваться по некоторому общему как
для закладки, так и для программы событию, т. е. при выполнении
ряда условий в программно-аппаратной среде управление должно быть
передано на программу-закладку.
Это достигается путем анализа и обработки закладкой общих
относительно закладки и прикладной программы воздействий (как
правило, прерываний). Причем прерывания должны сопровождать
работу прикладной программы или работу всей ПЭВМ. В качестве
таких прерываний можно выделить:
- прерывания от таймера ПЭВМ;
- прерывания от внешних устройств;
- прерывания от клавиатуры;
- прерывания при работе с диском;
- прерывания операционной среды, (в том числе прерывания при
работе с файлами и запуск исполняемых модулей).
В противном случае активизации кода закладки не произойдет, и
он не сможет оказать какого-либо воздействия на работу программы
защиты информации,
Кроме того, возможен случай, когда при запуске программы (в
этом случае активизирующим событием является запуск программы)
закладка разрушает некоторую часть кода программы, уже
загруженной в оперативную память, и, возможно, систему контроля
целостности кода или контроля иных событий и на этом заканчивает
свою работу.
Таким образом, можно выделить закладки:
1. Резидентного типа - которые находятся в памяти постоянно с
некоторого момента времени до окончания сеанса работы
персонального компьютера (выключения питания или перезагрузки).
Закладка может быть загружена в память при начальной загрузке
ПЭВМ, загрузке операционной среды или запуске некоторой программы
(которая по традиции называется вирусоносителем), а также
запущена отдельно.
2. Нерезидентного типа - которые начинают работу по
аналогичному событию, но заканчивают ее самостоятельно по
истечении некоторого промежутка времени или некоторому событию,
при этом выгружая себя из памяти целиком.
3. Деструктивные функции закладок и работа прикладных
программ. Математическая модель
Условимся, что исполнение кода закладки может быть
сопровождено операциями несанкционированной записи (НСЗ)
(например, для сохранения некоторых фрагментов информации) и
несанкционированного считывания (НСЧ), которое может происходить
отдельно от операций чтения прикладной программы или совместно с
ними. При этом под операциями считывания и записи понимаются
любые обращения к внешнему устройству (возможно и не связанные с
получением информации, а, например, считывание параметров
устройства или его инициализация; закладка может использовать для
своей работы такие операции, в частности, для инициирования сбой-
ных ситуаций или переназначения ввода-вывода).
На рисунке 1 показаны все возможные комбинации
несанкционированных действий - НСЧ и НСЗ, а также
санкционированных действий прикладной программы или операционной
среды по записи (СЗ) или считыванию (СЧ).
Ситуации 1 - 4 соответствуют нормальной работе прикладной
программы, когда закладка не оказывает на нее никакого
воздействия.
Ситуация 5 может быть связана с разрушением кода прикладной
программы в оперативной памяти ЭВМ, поскольку санкционированных
действий по записи и считыванию прикладная программа не
выполняет, либо с сохранением уже накопленной в ОП информации (в
частности, частей кода или данных прикладной программы).
Ситуация 6 связана с разрушением или с сохранением
записываемой прикладной программой информации.
Ситуация 7 связана с сохранением считываемой прикладной
программой информации.
Ситуация 8 связана с сохранением информации закладкой при ее
считывании и/или записи прикладной программой.
Ситуация 9 не может быть связана с прямым негативным
воздействием, поскольку прикладная программа не активна, а
закладка производит только НСЧ.
Ситуация 10 может быть связана с сохранением выводимой
информации в оперативную память,
Ситуация 11 может быть связана с сохранением вводимой
информации в оперативную память, либо с изменением процесса СЧ
закладкой.
Ситуация 12 может быть связана с сохранением как вводимой,
так и выводимой прикладной программой информации в оперативную
память.
Ситуация 13 может быть связана только с размножением
закладки, поскольку прикладная программа не активна.
Ситуации 14 - 16 могут быть связаны как с сохранением, так и
с разрушением данных или кода и аналогичны ситуациям 6 - 8.
Все возможные события и их последствия представлены на рис.
2.
Закладка Пpикладная пpогpамма
НСЧ НСЗ СЧ СЗ
1 0 0 0 0
2 0 0 0 1
3 0 0 1 0
4 0 0 1 1
5 0 1 0 0
6 0 1 0 1
7 0 1 1 0
8 0 1 1 1
9 1 0 0 0
10 1 0 0 1
11 1 0 1 0
12 1 0 1 1
13 1 1 0 0
14 1 1 0 1
15 1 1 1 0
16 1 1 1 1
Рисунок 1. Возможные события в системе закладка-пpогpамма
Закладка Пpикладная пpогpамма
НСЧ НСЗ Действия СЧ СЗ
1 0 0 нет 0 0
2 0 0 нет 0 1
3 0 0 нет 1 0
4 0 0 нет 1 1
5 0 1 pазpушение кода 0 0
ПП в ОП
6 0 1 pазpушение или 0 1
сохpанение
выводимых данных
7 0 1 pазpушение или 1 0
сохpанение
вводимых данных
8 0 1 pазpушение или 1 1
сохранение
вводимых или
выводимых данных
9 1 0 нет 0 0
10 1 0 пеpенос выводимых 0 1
данных в ОП
11 1 0 пеpенос вводимых 1 0
данных в ОП
12 1 0 пеpенос вводимых 1 1
и выводимых данных
в ОП
13 1 1 pазмножение 0 0
14 1 1 pазpушение или 0 1
сохpанение
выводимых данных
15 1 1 pазpушение или 1 0
сохpанение вводимых
данных
16 1 1 pазpушение или 1 1
сохpанение вводимых
или выводимых данных
Рисунок 2. Негативное воздействие закладки на пpогpамму
Надо отметить, что перенос информации в оперативную память не
является опасным, поскольку извлечение ее требует вывода на
внешний носитель или устройство вывода, что предопределяет
необходимость НСЗ закладкой.
Несанкционированная запись закладкой может происходить:
- в массив данных, не совпадающий с пользовательской
информацией (сохранение информации);
- в массив данных, совпадающий с пользовательской информацией
или ее подмножеством (искажение, уничтожение или навязывание
информации закладкой).
Следовательно, можно рассматривать 3 основные группы
деструктивных функций, которые могут выполняться закладками:
- сохранение фрагментов информации, возникающей при работе
пользователя, прикладных программ, вводе-выводе данных, во
внешней памяти (локальной или удаленной) сети или выделенной
ПЭВМ;
- разрушение функций самоконтроля или изменение алгоритмов
функционирования прикладных программ;
- навязывание некоторого режима работы (например, при
уничтожении информации блокирование записи на диск, при этом
информация, естественно, не уничтожается), либо замена
записываемой информации навязанной закладкой.
Процесс размножения закладки качественно не отличается от
процесса размножения вируса и поэтому не будет далее
рассматриваться.
3.1. Сохранение фрагментов информации.
В данном случае можно выделить 3 основные причины
потенциально возможного нарушения безопасности системы
пользователь - защита - данные :
- вывод информации на экран видеотерминала;
- вывод информации в файл или иное внешнее устройство;
- ввод информации с клавиатуры,
Программа выделяет себе в оперативной памяти некоторую
информативную область, где помещается информация для обработки
(как правило, доступная для непосредственного восприятия: область
экрана, клавиатурный буфер). Закладка определяет адрес
информативной области программы (иногда этот адрес фиксирован).
Далее необходимо анализировать события, связанные с работой
прикладной программы или операционной среды, причем интерес
представляют лишь события, результатом которых может стать
появление интересующей информации в информативной области.
Установив факт интересующего события, закладка переносит часть
информативной области либо всю информативную область в свою
область сохранения (непосредственно на диск или в выделенную
область оперативной памяти).
3.2. Перехват вывода на экран.
Для простоты рассмотрим текстовый режим вывода. Режим
графического вывода будет отличаться лишь тем, что изменится
адрес видеобуфера в программе, и информация будет представлена в
виде точек с определенным цветом.
В ПЭВМ выделяется область видеобуфера с фиксированным адресом
(с оговоркой о номере активной видеостраницы в RAM BIOS для
цветного терминала В800:0). Видеобуфер с точки зрения программ
представляет собой область обычной оперативной памяти, которая
рассматривается как последовательность слов (16 бит) в формате:
символ 8 бит цвет 8 бит
Выводимый на экран текст одновременно помещается в
видеобуфер, откуда может быть считан и сохранен закладкой.
Синхронизирующим событием в этом случае может быть:
- ввод с клавиатуры длинной последовательности символов
(обрабатываемого текста);
- чтение из файла;
- запуск программ с определенными именами.
Кроме того, возможно периодическое сохранение области
экранного буфера, сопряженное с таймерным прерыванием.
Надо отметить, что закладки этого типа имеют
малоинформативный результат работы, поскольку в текстовый экран
помещается небольшое количество информации, а символы пароля, как
правило, на экран не выводятся.
3.3. Перехват ввода с клавиатуры.
Закладки, анализирующие ввод с клавиатуры, являются
достаточно опасными, поскольку клавиатура является основным
устройством управления и ввода информации. Через клавиатурный
ввод можно получить информацию о вводимых конфиденциальных
сообщениях (текстах), паролях и т. д.
Перехват может происходить двумя основными способами:
встраивание в цепочку прерывания int 9h;
анализом содержания клавиатурного порта или буфера по
таймерному прерыванию.
3.4 Перехват и обработка файловых операций
Предположим, что программное средство защиты информации
(ПСЗИ) производит некоторые файловые операции. Для этого
открывается файл, часть его или весь файл считывается в буфер
оперативной памяти, обрабатывается и затем, возможно,
записывается в файл с прежним или новым именем.
Активизирующим событием в данном случае является, как
правило, открытие файла (int 21h, функция 3Dh), либо его
закрытие.
Закладка встраивается в цепочки прерывания int 21h для
следующих функций:
- открыть файл
Закладка отфильтровывает нужные имена или указатели файлов.
- считать из файла
Закладка выполняет прерывание по старому адресу указателя,
затем сохраняет считанный буфер в собственный, обычно скрытый
файл, либо исправляет в буфере некоторые байты файла, кроме того
возможно влияние на результаты операции чтения (например, число
прочитанных байт).
Данные действия особенно опасны для программ подтверждения
подлинности электронных документов (<электронная цифровая
подпись>, ЭЦП). При считывании приготовленного для подписи
файла-документа может произойти изменение символов имени автора,
даты, времени, цифровых данных, заголовка назначения документа
(например, изменена сумма платежа в платежных поручениях и др.).
- записать в файл
Закладка редактирует нужным образом буфер в оперативной
памяти, либо сохраняет файл или часть его в скрытую область, а
затем выполняет старое прерывание, в результате чего записывается
файл с измененным содержанием, либо каким-то образом
дублированный в скрытой области.
Закладки такого типа могут, например, навязывать истинность
электронной подписи даже тогда, когда файл был изменен (если
пометка об истинности подписи хранится в файле, что характерно