А.И. Куприянов - Основы защиты информации (1022813), страница 51
Текст из файла (страница 51)
В качестве таких прерываний закладками используются прерывания от таймера ПЭВМ; прерывания от внешних устройств; прерывания от клавиатуры; прерывания при работе с диском; прерывания операционной среды (в том числе прерывания при работе с файлами и запуск исполняемых модулей). Кроме того, возможен случай, когда при запуске программы (в этом случае активизирующим событием является запуск программы) закладка разрушает некоторую часть кода программы, уже загруженной в оперативную память, и, возможно, систему контроля целостности кода или контроля иных событий и на этом заканчивает свою работу. Таким образом, можно выделить следующие закладки ~29).
° Резидентного типа. Такие закладки находятся в памяти постоянно с некоторого момента времени до окончания сеанса работы персонального компьютера (выключения питания или перезагрузки). Закладка может быть загружена в память при начальной загрузке ПЭВМ, загрузке операционной среды или запуске некоторой программы (которая по традиции называется вирусоносителем), а также запущена отдельно. ° Нерезидентного типа. Такие закладки начинают работу по аналогичному событию, но заканчивают ее самостоятельно по истечении некоторого промежутка времени или некоторому событию, при этом целиком выгружая себя из памяти. Исполнение кода закладки должно сопровождаться операциями несанкционированной записи (для сохранения некоторых фрагментов перехваченной информации) и несанкционированного считывания, которое может происходить отдельно от операций чтения прикладной программы или совместно с ними. При этом под операциями считывания и записи понимаются любые обращения к внешнему устройству (возможно и не связанные с получением информации).
Например, считывание параметров устройства или его инициализация; закладка может использоваться для инициирования сбойных ситуаций или переназначения ввода-вывода. 234 Несанкционированная запись информации закладкой может происходить в массив данных, не совпадающий с массивом пользовательской информации (сохранение информации) или в массив данных, совпадающий с любой частью пользовательского массива (для искажения, уничтожения или навязывания ложной информации закладкой). Поэтому можно рассматривать три основные группы деструктивных функций, которые могут выполняться закладками: сохранение фрагментов информации, возникающей при работе пользователя, прикладных программ, вводе-выводе данных, во внешней памяти (локальной или удаленной) сети или выделенной ЭВМ; разрушение функций самоконтроля или изменение алторитмов функционирования прикладных программ; навязывание некоторого режима работы (например, при уничтожении информации блокирование записи на диск, при этом информация, естественно, не уничтожается) либо замена записываемой информации навязанной закладкой.
Сохранение фрагментов информации программой-закладкой может происходить при выводе информации на экран видеотерминала, выводе информации в файл или иное внешнее устройство, вводе информации с клавиатуры. Программа выделяет себе в оперативной памяти некоторую область, где помещается информация для обработки (как правило, доступная для непосредственного восприятия: область экрана, клавиатурный буфер). Закладка определяет адрес информативной области программы (иногда этот адрес фиксирован) и анализирует события, связанные с работой прикладной программы или операционной среды. При этом интерес представляют лишь события, результатом которых может стать появление интересующей информации в информативной области.
Установив факт интересующего события, закладка переносит всю информативную область либо ее часть в свою область сохранения (непосредственно на диск или в выделенную область оперативной памяти). При перехвате вывода на экран вьщеляется область видеобуфера с фиксированным адресом. Видеобуфер, с точки зрения программ, представляет собой область обычной оперативной памяти.
Выводимый на экран текст одновременно помещается в видеобуфер, откуда может быть считан и сохранен закладкой. Синхронизирующим событием в этом случае может быть ввод с клавиатуры длинной последовательности символов (обрабатываемого текста), чтение из файла, запуск программ с определенными именами. Кроме того, возможно периодическое сохранение области экранного буфера, сопряженное с таймерным прерыванием.
235 Надо отметить, что закладки этого типа имеют малоинформативный результат работы, поскольку на экран помещается небольшое количество информации, а символы пароля, нужные для реализации эффективной информационной атаки, как правило, на экран не выводятся. Перехват ввода с клавиатуры достаточноопасен,поскольку клавиатура является основным устройством управления и ввода информации.
Через клавиатурный ввод можно получить сведения о вводимых конфиденциальных сообщениях (текстах), паролях и тому подобных важных данных. Перехват может происходить двумя основными способами: встраивание в цепочку прерывания ?ХТ 9Ь или анализ содержания клавиатурного порта или буфера по таймерному прерыванию. Работа закладки основывается на полном сохранением всех фактов нажатий клавиш.
Все нажатия сохраняются в специальном скрытом файле. Файл затем изучается, и на основе анализа лицо, пытавшееся получить доступ к зашифрованным файлам, восстанавливает возможные парольные последовательности. Перехват и обработка файловых операций происходит, когда программное средство защиты информации производит некоторые файловые операции. Для этого открывается файл, часть его или весь файл считывается в буфер оперативной памяти, обрабатывается и затем, возможно, записывается в файл с прежним или новым именем.
Активизирующим событием в данном случае является, как правило, открытие файла (?ИТ 21?т, функция ЗРИ) либо его закрытие. В операционной среде закладка, влияющая на файловые операции, порождает в системе новые связи, включая в них свои операции и массивы данных. Если злоумышленнику известна интересующая его программа с точностью до команд реализации на конкретном процессоре, он может создать модель процесса ее загрузки и выяснить относительные адреса частей программы относительно сегмента оперативной памяти, в который она загружается.
Это означает, что возможно произвольное изменение кода программы и, соответственно, отклонение (возможно негативного характера) в работе прикладной программы. Тоща алгоритм действия закладки может быть таким: закладка загружается в память каким-либо способом; закладка осуществляет перехват (редактирование цепочки) одного или нескольких прерываний (прерывания РОЯ «запуск программ и загрузка оверлеев», прерывания В?ОБ «считать сектор», прерывание таймера); по одному из трех событий закладка получает управление на себя, и далее выполняются проверка принадлежности запущенной программы или уже работающей (для таймерного прерывания) к интересующим программам, определение сегмента, в ко- 236 ::-:,: торый загружена программа, запись относительно определенного -'.:,' сегмента загрузки некоторых значений в оперативной памяти так, :,,: чтобы отключить схемы контроля и (или) исправить программу нужным образом.
Принципиальная возможность исправления кода следует из того, что вывод о правильности работы программы делается на основе операций сравнения в арифметико-логическом устройстве микропроцессора. Наконец, возможен случай, когда содержательный код программы защиты вместе со схемой контроля будет удален из памяти полностью, и все последующие операции будут выполнены без влияния программы защиты.
Основным способом активизации разрушающих закладок является запуск ассоциированных с ними программ. При этом закладка получает управление первой и выполняет некоторые действия (изменения адресов прерывания на собственные обработчики, исправление в коде программ защиты и т.п.). В данном случае борьба с воздействием закладок может быть произведена только путем контроля целостности исполняемых файлов непосредственно перед их исполнением. Тогда воздействие закладки можно оценивать количественной вероятностью ее активизации при заданном алгоритме контроля кода запускаемой программы (т.е. вероятностью обнаружения или необнаружения ассоциированного с кодом вируса или закладки).
Особенности применения программно-аппаратных средств защиты состоят в следующем: собственные программы управления аппаратной частью, как правило, находятся в ПЗУ и, следовательно, не могут быть изменены программным путем; под управление аппаратным комплексом выделяются средства низкого уровня (операции с портами либо выделенные прерывания); управление программам аппаратной части передается до загрузки операционной среды, и часть операций, в основном связанных с инициализацией начальных состояний устройства, также происходит до загрузки операционной среды.
Все эти факторы накладывают определенные ограничения на процесс воздействия программных закладок на рассматриваемые программно-аппаратные комплексы. Однако эти ограничения не могут полностью исключить такое воздействие. Поскольку обращение к аппаратным средствам происходит из прикладных программ и, как правило, через некоторую промежуточную программу управления, воздействие на аппаратное средство может быть сведено к воздействию либо на прикладную программу, либо на программу управления аппаратным комплексом, который находится в ОЗУ. 237 7.5. Действие вирусов и программных закладок в сетвх ЭВМ Рассматривая использующиеся в настоящее время сети ЭВМ, можно выделить их обобщенную структуру (рис.