Лекции. Введение. Защита программного обеспечения от несанкционированного использования с помощью программноаппаратных средств
Скачать 4.72 Mb.
|
Рис. 6.4. Архитектура карт с микропроцессором USB ключи e-Token являются полнофункциональными аналогами смарт-карт, однако не требуют специального дорогого устройства чтения и подсоединяются к разъему USB, что достаточно удобно. Использование данных ключей предпочтительно в компьютерных системах. 6.2. Идентификация и аутентификация с использованием индивидуальных биометрических характеристик пользователя Под биометрикой понимается использование для аутентификации личности индивидуальных признаков человека. В качестве биометрических характеристик, которые могут быть использованы при аутентификации субъекта доступа, достаточно часто применяют следующие: отпечатки пальцев; геометрическая форма рук; узор радужной оболочки и сетчатки глаз; форма и размеры лица; особенности голоса; биомеханические характеристики почерка; биомеханические характеристики «клавиатурного почерка». Особенностью применения биометрических систем идентификации и аутентификации личности по сравнению с другими классами систем И/АУ являются следующие: Необходимость обучения биометрической системы для конкретных пользователей, зачастую, достаточно длительного. Возможность ошибочных отказов и ошибочных подтверждений при аутентификации пользователей. Необходимость использования специальных технических устройств для чтения биометрических характеристик, как правило, достаточно дорогостоящих (за исключением, быть может, аутентификации по клавиатурному подчерку). Архитектура биометрических систем аутентификации пользователей может быть представлена в следующем виде (рис. 6.5). Перед практическим использованием любой биометрической системы необходимо ее обучение, в результате которого формируется база данных, содержащая эталонные биометрические характеристики зарегистрированных пользователей. Модуль идентификации и аутентификации в дальнейшем использует сформированные на этапе обучения эталоны для сравнения их с предъявляемыми пользователем на этапе аутентификации. Рис. 6.5. Архитектура биометрической системы аутентификации пользователя Биометрические системы практически никогда не хранят непосредственные биометрические образы пользователей (например, отпечатки пальцев) и не выполняют сравнение с ними биометрических образов, предъявляемых на этапе аутентификации. Предъявляемый пользователем биометрический образ, как правило, преобразуется модулем регистрации в вектор биометрических признаков, который и обрабатывается в дальнейшем. Данный вектор содержит признаки, наиболее полно, не избыточно и уникально характеризующие предъявляемый биометрический образ. Например, в качестве одной из составляющей вектора биометрических признаков при использовании в качестве биометрической характеристики геометрической формы рук, можно использовать длины пальцев руки человека. Одним из важнейших вопросов при проектировании биометрических систем является вопрос совмещения вектора биометрических характеристик пользователя, проходящего аутентификацию, с эталонным вектором, хранимом в базе данных эталонов. Отличительная черта человека считается хорошей с точки зрения биометрики, если она обеспечивает получение для каждого человека набора уникальных значений измерений (измерения хорошо кластеризуются). Если схожие результаты измерений получаются для многих людей, то биометрика уязвима в плане успешности маскировки под законного пользователя. Достаточно часто для совмещения векторов биометрических характеристик используют некоторую метрику в векторном пространстве, например, расстояние по Хэммингу или расстояние по Евклиду. Пусть и - два вектора в векторном пространстве размерности n. Тогда между векторами x и y определены следующие расстояния: Расстояние по Хэммингу (метрика городских кварталов) Расстояние по Евклиду Пример Пусть эталонный вектор биометрических характеристик пользователя при аутентификации по геометрической форме рук, определяющий длины пяти его пальцев, есть (390, 418, 502, 471, 355), а вектор биометрических характеристик пользователя, проходящего аутентификацию, есть (389, 416, 501, 468, 353). Тогда расстояние по Хэммингу между данными векторами равно 9, расстояние по Евклиду с точностью до двух знаков равно 4,36. Принятие решения о прохождении либо не прохождении аутентификации пользователя принимается системой идентификации и аутентификации по результатам анализа расстояния между вектором биометрических характеристик, предъявленным пользователем, и эталонным вектором биометрических характеристик для данного пользователя. При этом очень важным является вопрос о выборе порогового расстояния, определяющего границу между легальным и нелегальным входом. Выбор порогового расстояния во многом определяет соотношение между ошибочными отказами и ошибочными подтверждениями для биометрической системы. Пусть N – количество попыток аутентификации легальных пользователей в биометрической системе за достаточно большой промежуток времени, M – количество раз, когда легальным пользователям было отказано в прохождении аутентификации. Тогда, коэффициентом ошибочных отказов (FRR - false rejectrating) называют отношение , то есть количества отказов в аутентификации легальным пользователям к общему количеству попыток легальной аутентификации. Пусть K – количество попыток аутентификации нелегальных пользователей в биометрической системе за достаточно большой промежуток времени, L – количество раз, когда нелегальные пользователи получили подтверждение аутентификации. Тогда, коэффициентом ошибочных подтверждений (FAR – falseacceptrating) называют отношение , то есть количества подтверждений аутентификации нелегальных пользователей к общему количеству попыток нелегальной аутентификации. Коэффициенты FAR и FRR являются основными параметрами, по которым оценивают эффективность и надежность реализации биометрических систем. Данные коэффициенты оцениваются на основе экспериментов. a) б) Рис. 6.6. Распределение расстояний между векторами биометрических характеристик для легальных (а) и нелегальных (б) входов Наложив распределения, представленные на рис. 6.6, друг на друга и изобразив на полученном графике порог принятия решения о прохождении аутентификации пользователем, можно получить геометрическую интерпретацию коэффициентов FAR и FRR (рис. 6.7). Количество отказов в аутентификации легальным пользователям (ошибочных отказов), используемое при расчете коэффициента ошибочных отказов FRR равно площади криволинейной трапеции, ограниченной сверху кривой (3.6а), а слева - порогом принятия решения (черная область на рис. 6.7). Количество подтверждений аутентификации нелегальных пользователей (ошибочных подтверждений), используемое при расчете коэффициента ошибочных подтверждений FAR равно площади криволинейной трапеции, ограниченной сверху кривой (6.6б), а справа - порогом принятия решения (белая область на рис. 6.7). Рис. 6.7. Геометрическая интерпретация ошибочных отказов и ошибочных подтверждений Анализ рисунка 6.7. показывает, что различным порогам принятия решения при сравнении векторов биометрических характеристик соответствуют различные коэффициенты FAR и FRR. С другой стороны, каждому из фиксированных коэффициентов FAR соответствует свой фиксированный коэффициент FRR. Данная зависимость между коэффициентами может быть представлена в виде графика (рис. 6.8). Рис.6.8. Зависимость между коэффициентами FRR и FAR Представленная на рис. 6.8. зависимость называется кривой рабочих характеристик приемника (ROC-кривой). Обычно такая кривая содержит точку, называемую точкой равновеликой интенсивности ошибок (ERR- equal error rate), в которой значения FAR и FRR равны. Близость точки равновеликой интенсивности ошибок к началу координат обычно свидетельствует о том, что биометрическая система может достигать хорошего уровня безопасности, не давая чрезмерного количества ошибочных отказов в аутентификации. 7. Защита от разрушающих программных воздействий 7.1. Понятие разрушающего программного воздействия Важным моментом при работе прикладных программ, и в особенности средств защиты информации, является необходимость обеспечения потенциального невмешательства иных, присутствующих в компьютерной системе прикладных или системных программ, в процесс обработки информации. Если под НСД понимают действия по использованию, изменению и уничтожению информации защищенной компьютерной системы, производимые субъектом, не имеющим права на такие действия, то под опосредованным НСД понимают несанкционированный доступ злоумышленника к информации, произведенный посредством предварительно внедренной в систему программы (или нескольких программ). Например, предварительно внедренная злоумышленником в компьютерную систему программа, может перехватывать пароли, вводимые с клавиатуры легальным пользователем, и сохранять их в заранее известном и доступном злоумышленнику месте. Затем злоумышленник использует эти пароли для несанкционированного входа в систему. Опосредованный НСД, как правило, реализуется с использованием особого класса программ – программ с потенциально опасными последствиями. В общем случае, программой с потенциально опасными последствиями называют программу, которая способна выполнять любое непустое подмножество перечисленных ниже функций: 1. скрывать признаки своего присутствия в программной среде компьютерной системы; 2. реализовывать самодублирование или ассоциирование себя с другими программами и/или перенос своих фрагментов в иные (не занимаемые изначально указанной программой) области оперативной или внешней памяти. При этом под самодублированиемпонимается процесс воспроизведения программой своего собственного кода в оперативной или внешней памяти компьютерной системы. Под ассоциированием с другой программой понимается интеграция своего кода, либо его части, в код другой программы таким образом, чтобы при определенных условиях управление передавалось на код программы с потенциально опасными последствиями; 3. разрушать (исказить произвольным образом) код иных программ в оперативной памяти компьютерной системы; 4. переносить (сохранять) фрагменты информации из оперативной памяти в некоторые области оперативной или внешней памяти прямого доступа; 5. имеет потенциальную возможность исказить произвольным образом, заблокировать и/или подменить выводимый во внешнюю память или в канал связи массив информации, образовавшийся в результате работы прикладных программ, или уже находящийся во внешней памяти, либо изменить его параметры. Условно программы с потенциально опасными последствиями можно разделить на три класса. 1.Вирусы. Особенностью данного класса программ с потенциально опасными последствиями является его ненаправленность на конкретные программы и также то, что во главу угла здесь ставится самодублирование вируса. 2. Программные черви, троянские кони и фрагменты программ типа логический люк. Для данного типа программ имеет место обратная ситуация - самодублирование не присуще данным программам, но они обладают возможностями перехвата конфиденциальной информации или извлечения информации из сегментов систем безопасности, или ограничения доступа. 3. Программные закладки или разрушающие программные воздействия (РПВ) – обобщенный класс программ с потенциально опасными последствиями, обязательно реализующие хотя бы один пп. 3-5 определения программы с потенциально опасными последствиями. Программы данного класса, как правило, скрывают себя, и самоликвидируются после совершения целевых действий. Далее, вместо термина «программа с потенциально опасными последствиями» будем использовать термин «программная закладка», «разрушающее программное воздействие» или РПВ. Для того чтобы РПВ смогло выполнить какие-либо действия по отношению к прикладной программе или данным, оно должно получить управление. Это возможно только при одновременном выполнении двух условий: 1. РПВ должно находиться в оперативной памяти до начала работы программы, которая является целью его воздействия, следовательно, оно должно быть загружено раньше или одновременно с этой программой; 2. РПВ должно активизироваться по некоторому общему, как для него, так и для программы событию, т.е. при выполнении ряда условий в программно-аппаратной среде, управление должно быть передано РПВ. Данное событие называют активизирующим. Наиболее распространенными видами активизирующих событий являются: 1. Общие системные прерывания, связанные с выполнением некоторого действия (обращение к внешнему устройству, запись в файл и т.д.). 2. Ввод с клавиатуры (свойственно для клавиатурных шпионов). 3. Вывод информации на экран. 4. Операции с файлами (чтение, запись, открытие и т.п.). 5. Прерывание по таймеру. Выделяют резидентные и нерезидентные РПВ РПВ резидентного типа находятся в памяти постоянно с некоторого момента времени до окончания сеанса работы компьютерной системы (например, клавиатурный шпион). РПВ нерезидентного типа заканчивает свою работу самостоятельно через некоторый промежуток времени или по некоторому событию, при этом выгружая себя из памяти целиком для затруднения своего обнаружения. 7.2 Модели взаимодействия прикладной программы и РПВ Выделяют следующие основные модели работы программных закладок. 1. Модель «перехват». Программная закладка внедряется в ПЗУ, ОС или прикладное ПО и сохраняет все или избранные фрагменты вводимой или выводимой информации в скрытой области внешней памяти прямого доступа. Для данной модели существенно наличие во внешней памяти места хранения информации, которое должно быть организовано таким образом, чтобы обеспечить ее сохранность на протяжении заданного промежутка времени и возможность последующего съема. Как правило, сохраняемая информация маскируется от просмотра легальными пользователями. 2. Модель «троянский конь». Программная закладка встраивается в постоянно используемое ПО и по некоторому активизирующему событию моделирует сбойную ситуацию, парализуя нормальную работу компьютерной системы, или предоставляя злоумышленнику возможность под видом ремонта получить доступ к компьютерной системе. 3. Модель «наблюдатель». Программная закладка встраивается в постоянно активное ПО и осуществляет контроль за процессами обработки информации в компьютерной системе (реализует установку и удаление РПВ, съем накопленной информации и т.п.). 4. Модель «компрометация». Программная закладка либо передает заданную злоумышленником информацию в канал связи, либо сохраняет ее, не полагаясь на гарантированную возможность последующего приема или снятия. 5. Модель «искажение или инициатор ошибок». Программная закладка искажает потоки выходных данных, возникающие при работе прикладных программ (например, записывает ключевую информацию в конец зашифрованного файла), либо искажает входные потоки информации (например, устраняет фальсификацию ЭЦП), либо инициирует или подавляет возникающие при работе прикладных программ ошибки. 6. Модель «уборка мусора». Программная закладка «изучает остатки информации», оставшиеся после удаления файлов. Может максимизировать количество оставшихся нетронутыми фрагментов ценной информации. Условимся, что исполнение кода программной закладки может быть сопровождено операциями несанкционированной записи (НСЗ) и несанкционированного считывания (НСЧ). Возможные комбинации несанкционированных действий – НСЧ и НСЗ, а также санкционированных действий прикладной программы или операционной среды по записи (СЗ) или считыванию (СЧ) представлены в таблице 9.1. Табл. 9.1. Возможные комбинации несанкционированных действий – НСЧ и НСЗ, а также санкционированных действий прикладной программы или операционной среды
Исходя из данного перечня комбинаций санкционированных и несанкционированных действий, можно выделить 3 основные группы деструктивных функций, которые могут выполняться закладками: сохранение фрагментов информации, возникающих при работе пользователя, прикладных программ, вводе-выводе данных, во внешней памяти (локальной или удаленной) сети или выделенной ПЭВМ, в том числе различных паролей, ключей и кодов доступа, конфиденциальных документов и т.п.; разрушение функций самоконтроля или изменение алгоритмов функционирования прикладных программ, например, программа разграничения доступа станет пропускать пользователей по любому паролю; навязывание некоторого режима работы (например, при уничтожении информации - блокирование записи на диск), либо замена записываемой информации навязанной закладкой. 7.3 Компьютерные вирусы как класс РПВ Под компьютерными вирусами принято понимать разрушающие программные воздействия, обладающие следующими свойствами: способность к самодублированию – к созданию собственных копий, не обязательно совпадающих с оригиналом, но обладающих его свойствами; способность к ассоциированию с другими программами - наличие механизма, обеспечивающего внедрение создаваемых копий в исполняемые объекты компьютерной системы (заражающего механизма); способность к скрытию признаков своего присутствия в программной среде, к скрытию свойств 1 и 2. Наиболее известными типами компьютерных вирусов являются файловые вирусы, загрузочные и макровирусы. Жизненный цикл вирусов включает в себя две основные стадии – хранение (латентная фаза) и исполнение. В ходе латентной фазы вирус не активен, не может контролировать работу операционной системы, и просто хранится на диске совместно с объектом, в который он внедрен. Переход от латентной фазы к исполнению вируса осуществляется по некоторому активизирующему событию (открытие файла, наступление определенной даты и т.д.). Фаза исполнения вируса, как правило, состоит из следующих этапов. 1. Загрузка вируса в память. 2. Поиск «жертвы». 3. Заражение «жертвы» (инфицирование). 4. Выполнение деструктивных функций. 5. Передача управления программе-носителю вируса. Загрузка вируса в память осуществляется ОС одновременно с загрузкой исполняемого объекта, в который внедрен вирус (например, при запуске на исполнение зараженного файла, при чтении загрузочного сектора диска и т.п.). По способу поиска «жертвы» вирусы можно разделить на два класса. К первому классу относятся вирусы, осуществляющие «активный» поиск с использованием функций ОС, ко второму классу – вирусы, осуществляющие «пассивный поиск» с помощью механизмов расстановки «ловушек» для программных файлов (так часто поступают макровирусы). Инфицирование объектов компьютерной системы осуществляется различными способами в зависимости от типа вируса. В простейшем случае этап заражения жертвы сводится к самокопированию кода вируса в выбранный в качестве жертвы объект (файл, загрузочный сектор, псевдосбойные сектора и т.д.). Помимо простого копирования кода вируса в заражаемый объект на этом этапе могут использоваться более сложные алгоритмы, обеспечивающие защиту вируса на стадии хранения (шифрование, «мутации» кода и т.п.). Суть «мутаций» сводится к тому, что при внедрении в объект копии вируса, часть ее кода, относящаяся к расшифровщику, модифицируется так, чтобы возникли различия с оригиналом, но результаты работы остались неизменными. Наиболее распространенными приемами модификации кода являются следующие: изменение порядка независимых инструкций; замена некоторых инструкций на эквивалентные по результату работы; замена используемых в инструкциях регистров на другие; внедрение случайным образом зашумляющих инструкций. Вирусы, использующие подобные механизмы мутации кода, получили название полиморфных. По характеру выполнения деструктивных функций вирусы делят на «безвредные», «неопасные», «опасные» и «очень опасные». В «безвредных» вирусах реализована только функция самодублирования. «Неопасные» вирусы – это вирусы, присутствие которых в системе связано с различными эффектами, но которые не наносят вред программам и данным. «Опасные» вирусы могут стать причиной сбоя системы. «Очень опасные» вирусы приводят непосредственно к разрушению программ и данных. Средства борьбы с компьютерными вирусами можно разделить на три класса: 1. Административные – включающие комплекс мер, действующих в рамках предприятий, и направленных на снижение ущерба, наносимого компьютерными вирусами (профилактические мероприятия, планы действия сотрудников при вирусной атаке, запреты на самостоятельную установку нового ПО и т.п.). 2. Юридические – привлечение к уголовной или административной ответственности лиц, по чьей вине наносится ущерб компьютерным системам (статья 273 УК РФ - «Создание, использование и распространение вредоносных программ для ЭВМ»). 3. Технические – применение антивирусных мониторов и сканеров, программных и аппаратных средств, недопускающих возможность заражения объектов компьютерной системы. 7.4. Защита от РПВ. Изолированная программная среда Методы борьбы с воздействием РПВ можно разделить не следующие классы. 1. Общие методы защиты программного обеспечения от РПВ: 1.1.контроль целостности системных областей, запускаемых прикладных программ и используемых данных; 1.2. контроль цепочек прерываний и фильтрация вызовов критических для безопасности системы прерываний; Данные методы действенны лишь тогда, когда контрольные элементы не подвержены воздействию закладок и разрушающее воздействие входит в контролируемый класс. Так, например, система контроля над вызовом прерываний не будет отслеживать обращение на уровне портов. С другой стороны контроль целостности информации может быть обойден злоумышленником путем: навязывания конечного результата проверок; влияния на процесс считывания информации; изменения хеш-значений, хранящихся в общедоступных файлах. 1.3. создание безопасной и изолированной операционной среды; 1.4. предотвращение результирующего воздействия вируса или закладки (например, запись на диск только в зашифрованном виде на уровне контроллера, либо запрет записи на диск на аппаратном уровне). 2. Специализированные методы борьбы с РПВ: 2.1. поиск фрагментов кода по характерным последовательностям (сигнатурам), свойственным РПВ, либо наоборот, разрешение на выполнение или внедрение в цепочку прерываний только программ с известными сигнатурами; 2.2. поиск критических участков кода методом семантического анализа (анализ фрагментов кода на выполняемые ими функции, часто сопряженный с дисассемблированием или эмуляцией выполнения) [Error: Reference source not found]. В качестве одной из возможных эвристических методик выявления РПВ в BIOS, ассоциированных с существенно важными прерываниями, можно рассмотреть следующую. Эвристическая методика выявления РПВ в BIOS 1. Выделяется группа прерываний, существенных с точки зрения обработки информации программой, относительно которой проводится защита. Обычно это прерывания int 13h (запись информации на внешние магнитные накопители прямого доступа), int 14h (обмен с RS232 портом), int 10h (обслуживание видеотерминала), а также в обязательном порядке прерывания таймера int 8h, int 1Ch и прерывания клавиатуры int 9h и int 16h. 2. Для выделенной группы прерываний определяются точки входа в ПЗУ, используя справочную информацию, либо выполняя прерывание в режиме трассировки. 3. Для выделенных адресов создаются цепочки исполняемых команд от точки входа до команды IRET - возврату управления из BIOS. В цепочках исполняемых команд выделяются команды работы с портами; команды передачи управления; команды пересылки данных. 4. В цепочках исполняемых команд анализируются команды выделенных групп. Определяются: опасные действия первой группы: в прерываниях какого-либо класса присутствуют команды работы с недокументированными портами. Наличие таких команд, как правило, указывает на передачу информации некоторому устройству, подключенному к параллельному интерфейсу (общей шине), например, встроенной радиопередающей закладке. опасные действия второй группы: в прерываниях какого-либо класса присутствуют команды работы с портами, участвующие в работе другого класса прерываний; опасные действия третьей группы: в цепочках присутствуют команды перемещения данных из BIOS в оперативную память (кроме таблицы прерываний и RAM BIOS); опасные действия четвертой группы: в цепочках присутствуют команды передачи управления в оперативную память или в сегменты расширенного BIOS. 5. В случае если опасных действий, относящихся к выше представленным четырем группам, не обнаружено, аппаратно-программная среда ПЭВМ без загруженной операционной среды считается чистой (безопасной). Защита от РПВ путем создания изолированной программной среды Заметим, что при пустом множестве активизирующих событий для закладки потенциальные деструктивные действия с ее стороны невозможны. Предположим, что в ПЗУ и ОС отсутствуют закладки – проверка этого проведена по некоторой методике. Пусть также пользователь работает только с программами, процесс написания и отладки которых полностью контролируется, т.е. в них также исключено наличие закладок. Такие программы называются проверенными. Потенциально злоумышленными действиями в этом случае могут быть следующие: проверенные программы будут использованы на другой ПЭВМ с другим BIOS и в этих условиях могут использоваться некорректно; проверенные программы будут использованы в аналогичной, но не проверенной операционной среде, в которой они также могут использоваться некорректно; проверенные программы используются на проверенной ПЭВМ и в проверенной операционной среде, но запускаются еще и непроверенные программы, потенциально несущие в себе возможности НСД. Следовательно, в этих условиях деструктивные действия закладок гарантированно невозможны, если выполняются следующие условия: На ПЭВМ c проверенным BIOS установлена проверенная операционная среда. Достоверно установлена неизменность ОС и BIOS для данного сеанса работы. Кроме проверенных программ в данной программно-аппаратной среде не запускалось и не запускается никаких иных программ, проверенные программы перед запуском контролируются на целостность. Исключен запуск проверенных программ в какой-либо иной ситуации, т.е. вне проверенной среды. Условия 1 - 4 выполняются в любой момент времени для всех пользователей, аутентифицированных защитным механизмом. При выполнении перечисленных выше условий программная среда называется изолированной (ИПС – изолированная программная среда). Основными элементами поддержания ИПС являются контроль целостности и активности процессов. Функционирование программ в рамках ИПС существенно ослабляет требования к базовому ПО операционной среды. ИПС контролирует активизацию процессов через операционную среду, контролирует целостность исполняемых модулей перед их запуском и разрешает инициирование процесса только при одновременном выполнении двух условий - принадлежности к разрешенным программам и неизменности программ. В таком случае, для предотвращения угроз, связанных с внедрением в операционную среду скрытых недекларированных возможностей, от базового ПО требуется только: 1. невозможность запуска программ помимо контролируемых ИПС событий; 2. отсутствие в базовом ПО возможностей влиять на среду функционирования уже запущенных программ (фактически это требование невозможности редактирования и использования оперативной памяти другого процесса). Создание и поддержка ИПС возможна только с помощью специализированных аппаратных средств, целостность которых обеспечивается технологией производства и периодическими проверками. Одним из программно-аппаратных устройств поддержки изолированной программной среды является программно-аппаратный комплекс «АККОРД» производства ОКБ «САПР». |