Электронная библиотека диссертаций и авторефератов России
dslib.net
Библиотека диссертаций
Навигация
Каталог диссертаций России
Англоязычные диссертации
Диссертации бесплатно
Предстоящие защиты
Рецензии на автореферат
Отчисления авторам
Мой кабинет
Заказы: забрать, оплатить
Мой личный счет
Мой профиль
Мой авторский профиль
Подписки на рассылки



расширенный поиск

Разработка модели и технологии противодействия методам несанкционированного доступа типа переполнения буфера в операционных системах Ардашев Дмитрий Васильевич

Разработка модели и технологии противодействия методам несанкционированного доступа типа переполнения буфера в операционных системах
<
Разработка модели и технологии противодействия методам несанкционированного доступа типа переполнения буфера в операционных системах Разработка модели и технологии противодействия методам несанкционированного доступа типа переполнения буфера в операционных системах Разработка модели и технологии противодействия методам несанкционированного доступа типа переполнения буфера в операционных системах Разработка модели и технологии противодействия методам несанкционированного доступа типа переполнения буфера в операционных системах Разработка модели и технологии противодействия методам несанкционированного доступа типа переполнения буфера в операционных системах Разработка модели и технологии противодействия методам несанкционированного доступа типа переполнения буфера в операционных системах Разработка модели и технологии противодействия методам несанкционированного доступа типа переполнения буфера в операционных системах Разработка модели и технологии противодействия методам несанкционированного доступа типа переполнения буфера в операционных системах Разработка модели и технологии противодействия методам несанкционированного доступа типа переполнения буфера в операционных системах
>

Диссертация - 480 руб., доставка 10 минут, круглосуточно, без выходных и праздников

Автореферат - бесплатно, доставка 10 минут, круглосуточно, без выходных и праздников

Ардашев Дмитрий Васильевич. Разработка модели и технологии противодействия методам несанкционированного доступа типа переполнения буфера в операционных системах : Дис. ... канд. техн. наук : 05.13.01 : Ижевск, 2004 122 c. РГБ ОД, 61:04-5/3108

Содержание к диссертации

Введение

ГЛАВА 1. Исследование причин уязвимости ОС и анализ существующих методов противодействия НСД 10

1.1. Особенности ОС с точки зрения информационной безопасности 10

1.1 1. Базовые средства защиты ОС 11

1.2. Варианты НСД на уровне ОС 18

1.2.1. Анализ методов организации внутренних атак 19

1.2.2- Анализ методов организации внешних атак 32

1.3. Анализ альтернативных систем обнаружения и блокирования атак..,, 33

1.4: Выводы 42

ГЛАВА 2. Разработка модели оценки защищенности ОС от НСД 45

2.1. Построение модели возможных вариантов НСД 45

2.2. Определение условий и построение модели успешной организации НСД 49

2.3. Выработка критериев защищенности вычислительной системы от НСД 56

2.4. Построение модели оценки защищенности ОС от различных вариантов НСД 59

2.5. Оценка эффективности технологий защиты от НСД 60

2.6. Выводы 62

ГЛАВА 3. Разработка технологии защиты программного обеспечения от НСД типа переполнения буфера 64

3.1. Описание принципа построения защиты на основе двойного стека ..64

3.2. Разработка критериев и модели защищенной процедуры 67

3.3. Разработка алгоритма защиты от возможных последствий переполнения буфера 73

3.4. Разработка технологии двойного стека (ТДС) 85

3.5. Выводы 87

ГЛАВА 4. Экспериментальные исследования применения технологии ТДС 89

4.1. Описание проводимых экспериментов 89

4.2. Разработка программных средств оценки эффективности технологии ТДС 89

4.3. Экспериментальная оценка эффективности технологии ТДС 94

4.4. Особенности применения технологии ТДС 103

4.5. Экспериментальная оценка производительности средств защиты технологии ТДС 106

4.6. Выводы 108

Заключение 109

Библиографический список 114

Приложения 121

Введение к работе

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

В литературе [1] понятие информационных ресурсов излагается следующим , образом: "Информационные ресурсы — отдельные документы и отдельные массивы документов и массивы документов в информационных системах (библиотеках, архивах, фондах, банках данных, других информационных системах)".

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

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

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

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

ванию информации; предотвращение других форм незаконного вмешательства в информационные ресурсы и информационные системы; обеспечение правового режима документированной информации как объекта собственности; защита. конституционных прав граждан на сохранение личной тайны и конфиденциальности персональных данных, имеющихся в информационных системах; сохранение государственной тайны, конфиденциальности документированной информации в соответствии с законодательством; обеспечение прав субъектов в информационных процессах и при разработке, производстве и применении информационных систем, технологии и средств их обеспечения" [1].

В настоящее время одним из широко распространенных методов НСД является "взлом" компьютерных систем, НСД могут быть подвержены сервера, на которых хранятся и обрабатываются информационные ресурсы, маршрутизаторы, через которые ведется обмен информацией между различными сегментами сетей, а также персональные компьютеры-,

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

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

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

Основная причина уязвимости, современных ОС заключается в том, что

большинство сервисных программ ОС требует для своей работы полномочий привилегированного пользователя. Область распространения действия таких программ определяется их назначением и особенностями алгоритмов их работы. В то же время, уровень привилегий таких программ может распространяться фактически на всю систему в целом. Эти обстоятельства, в определенных условиях, могут привести к ситуации, когда становится возможной организация НСД к ресурсам вычислительной системы.

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

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

Постоянное развитие различных видов программного обеспечения (ПО) и практика его эксплуатации показывает, что не существует абсолютно "правильно" написанного ПО. Очевидно, что чем сложнее ПО, тем больше вероятность того, что оно может содержать ошибки* При этом! наиболее опасными ошибками считаются ошибки "переполнения буфера". Именно с этими ошибками связана большая часть всех уязвимостей, обнаруживаемых в современном программном обеспечении [30, 32,33, 39,40, 96, 97].

Если подобная ошибка переполнения буфера присутствует в коде программ* ного обеспечения, выполняющегося с повышенными привилегиями, то при определенных условиях это может стать причиной успешного НСД к ресурсам вычислительной системы.

Обеспечение безопасности ресурсов вычислительной системы в современных ОС, как правило, осуществляется на уровне доступа к файловой системе и системным вызовам. Такой подход осуществления контроля не позволяет бороться с атаками, которые построены на использовании ошибок в коде ПО.

Для решения проблем, связанных с защитой ОС от возможных последствий, ошибок в ПО, актуальной является разработка методов комплексной оценки защищенности ОС от различных вариантов НСД, основанных на использовании ошибок в коде ПО.

Например, проблема защиты ПО от возможных последствий переполнения буфера настолько глобальна, что её последствия коснулись практически всех современных ОС. Развитие средств защиты ПО от возможных последствий переполнения буфера является в настоящее время одной из приоритетных и перспективных задач в области защиты информации.

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

Исходя из выше сказанного, была сформулирована цель диссертационной -" работы: научное обоснование методов комплексной оценки защищенности ОС от НСД и разработка на их основе универсальной защиты ПО от возмоэюных последствий переполнения буфера.

Для достижения поставленной цели в работе решались следующие задачи:

  1. Построение модели возможных вариантов НСД.

  2. Определение условий и построение модели успешной организации НСД.

  3. Выработка критериев защищенности и построение модели оценки защищенности ОС от различных вариантов НСД.

  4. Разработка средств защиты ПО от последствий переполнения буфера.,

К наиболее значимым научным результатам (научная новизна), полученным в диссертационной работе относятся:

1. Разработка обобщенной модели вариантов НСД, позволяющая комплексно

определить возможные варианты организации внешних и внутренних атак. Определение условий и построение модели успешной организации НСД, позволяющих оценить степень уязвимости ОС к различным видам НСД.

2_ Разработка критериев и модели оценки защищенности ОС от различных видов НСД.

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

Практическая ценность результатов диссертационной работы:

L Разработанные в диссертационной работе модели позволяют производить оценку степени защищенности различных ОС по отношению к возможным вариантам НСД.

  1. Разработанные алгоритмы и технология обеспечивают защиту ОС и ПО от широко распространенного метода НСД, основанного на переполнении буфера.

  2. Полученные результаты могут быть использованы при построении новых принципов построения защиты различных ОС.

Основные положения, выносимые на защиту:

1- Модель оценки защищенности ОС к различным видам НСД.

  1. Способ вызова процедуры на основе двойного стека.

  2. Технология защиты ПО от возможных последствий переполнения буфера. Материал, изложенный в главах диссертации, отражает работу, проделанную

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

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

Во второй главе строится модель возможных вариантов НСД, определяются условия, на основе которых строится модель успешной организации НСД, определяются критерии и строится модель оценки защищенности ОС от возможных вариантов НСД.

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

В четвертой главе описываются эксперименты по исследованию возможности применения технологии ТДС.

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

Базовые средства защиты ОС

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

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

Постоянное развитие различных видов программного обеспечения (ПО) и практика его эксплуатации показывает, что не существует абсолютно "правильно" написанного ПО. Очевидно, что чем сложнее ПО, тем больше вероятность того, что оно может содержать ошибки При этом! наиболее опасными ошибками считаются ошибки "переполнения буфера". Именно с этими ошибками связана большая часть всех уязвимостей, обнаруживаемых в современном программном обеспечении [30, 32,33, 39,40, 96, 97].

Если подобная ошибка переполнения буфера присутствует в коде программ ного обеспечения, выполняющегося с повышенными привилегиями, то при определенных условиях это может стать причиной успешного НСД к ресурсам вычислительной системы. Обеспечение безопасности ресурсов вычислительной системы в современных ОС, как правило, осуществляется на уровне доступа к файловой системе и системным вызовам. Такой подход осуществления контроля не позволяет бороться с атаками, которые построены на использовании ошибок в коде.

Для решения проблем, связанных с защитой ОС от возможных последствий, ошибок в ПО, актуальной является разработка методов комплексной оценки защищенности ОС от различных вариантов НСД, основанных на использовании ошибок в коде ПО. Например, проблема защиты ПО от возможных последствий переполнения буфера настолько глобальна, что её последствия коснулись практически всех современных ОС. Развитие средств защиты ПО от возможных последствий переполнения буфера является в настоящее время одной из приоритетных и перспективных задач в области защиты информации. Комплексная оценка защищенности ОС позволит выявлять наиболее вероятные угрозы безопасности ОС и принимать соответствующие меры для их устранения. Исходя из выше сказанного, была сформулирована цель диссертационной -" работы: научное обоснование методов комплексной оценки защищенности ОС от НСД и разработка на их основе универсальной защиты ПО от возмоэюных последствий переполнения буфера. Для достижения поставленной цели в работе решались следующие задачи: 1. Построение модели возможных вариантов НСД. 2. Определение условий и построение модели успешной организации НСД. 3. Выработка критериев защищенности и построение модели оценки защищенности ОС от различных вариантов НСД. 4. Разработка средств защиты ПО от последствий переполнения буфера., К наиболее значимым научным результатам (научная новизна), полученным в диссертационной работе относятся: 1. Разработка обобщенной модели вариантов НСД, позволяющая комплексно определить возможные варианты организации внешних и внутренних атак. Определение условий и построение модели успешной организации НСД, позволяющих оценить степень уязвимости ОС к различным видам НСД. 2_ Разработка критериев и модели оценки защищенности ОС от различных видов НСД. 3, Разработка новой технологии защиты ПО на основе впервые предложенного способа вызова процедуры на основе двойного стека, обеспечивающего защиту от возможных последствий переполнения буфера. Практическая ценность результатов диссертационной работы: L Разработанные в диссертационной работе модели позволяют производить оценку степени защищенности различных ОС по отношению к возможным вариантам НСД. 2, Разработанные алгоритмы и технология обеспечивают защиту ОС и ПО от широко распространенного метода НСД, основанного на переполнении буфера. 3, Полученные результаты могут быть использованы при построении новых принципов построения защиты различных ОС. Основные положения, выносимые на защиту: 1- Модель оценки защищенности ОС к различным видам НСД. 2. Способ вызова процедуры на основе двойного стека. 3. Технология защиты ПО от возможных последствий переполнения буфера. Материал, изложенный в главах диссертации, отражает работу, проделанную автором в области исследования проблемы переполнения буфера и разработки программных средств защиты от возможных последствий переполнения буфера. В первой главе проводится обзор различных информационных источников по проблеме защиты ОС от НСД, исследуются возможные причины возникновения НСД.

Построение модели возможных вариантов НСД

Известны методы НСД, нацеленные не на переполнение буфера или искажение указателей данных, а на использование специальных программных закладок,-Такие программные закладки, как правило, не могут быть выявлены в автоматическом режиме при использовании рассмотренных выше технологий защиты, ,

В качестве примера подобного варианта НСД можно привести ситуацию, которая возникнет, если в теле используемой программы, например, системного сервиса, содержится. специальный фрагмент деструктивного кода. Такой код. как раз и называют программной закладкой или "троянским конем". Программная закладка активируется при определенных условиях, запрограммированных разработчиком. Функцией такой закладки может быть предоставление недокументированного доступа к различным ресурсам системы, предоставление конфиденциальных данных или другие действия, способные скомпрометировать -атакованную систему,

В настоящее время наиболее перспективным направлением в развитии систем обеспечения компьютерной безопасности является направление, связанное с разработкой технологий обнаружения атак, основанных на методах превентивного воздействия на защищаемую систему. Применение подобных технологий делает невозможным выполнение действий, которые не должны иметь места при нормальном функционировании вычислительной системы. Ниже проводится анализ систем безопасности, основанных на превентивных методах защиты. Можно выделить два основных направления работ в области систем превентивного обеспечения безопасности [89]. Одно из этих направлений - программная изоляция ошибки. Другое направ ление связано с разработкой методов контроля над действиями активных процессов. Проведем анализ этих направлений. Одной из первых была предложена технология "Программной изоляции " ошибки" (ПИО). Суть технологии ПИО заключается в том, что каждый из процессов функционирует в рамках ограниченного адресного пространства. Такое разграничение обеспечивается механизмом статических проверок, который позволяет отслеживать все действия выполняемые.программой. В случае если программа производит действие, которое предполагает обращение к адресу памяти, выходящему за пределы адресного пространства, отведенного этой программе, то фиксируется нарушение и выполнение программы принудительно завершается» Таким образом, технология ПИО выделяет каждую активированную программу в изолированный процесс, которому выделяются требуемые системные ресурсы. Такая изолированная область называется модулем, внутри которого функционирует изолированный процесс. Взаимодействие изолированного процесса с другими модулями производится только через разрешенные системные вызовы, что позволяет полностью контролировать обмен между процессами. Если изолированный процесс произведет действия по активации нового процесса, то вновь порожденный процесс будет существовать только в пределах пространства модуля, принадлежащего родительскому процессу. Таким образом, ограничиваются возможные последствия НСД, так как деструктивный код может выполняться только в пределах выделенного модуля. При этом чаще всего, атака заканчивается безрезультатно. Кроме того, применение ПИО значительно усложняет механизмы взаимодействия процессов, что не всегда приемлемо. Поэтому данная технология не получила широкого применения в современных ОС, Другим перспективным направлением в области развития систем превентивного воздействия, является направление, связанное с разработкой методов контроля над действиями активных процессов. Это направление включает в себя две технологии обнаружения атак. Первая технология основана на обнаружении атак методом опережающего анализа действий выполняемых программ, а вторая - основана на обнаружении атак при помощи точно выверенных уровней доступа пользователей и процессов к системным ресурсам. Технология опережающего анализа выполнения программ заключается в том, что во время выполнения действия каждой активной программы контролируются на уровне системы обеспечения безопасности. Этот контроль основан на элементарном сравнении всех используемых программой системных вызовов с заранее составленными шаблонами, в которых содержится информация о том, какие из системных вызовов может использовать каждая из программ. Если какая-то из программ пытается выполнить нехарактерное для неё действие, то это расценивается системой обеспечения безопасности как вторжение или сбой в выполнении программы. При этом программа аварийно завершается. Основным достоинством этой технологии является то, что она предусматривает удаление программы из памяти только в том случае, если начинают выполняться действия, непредусмотренные в алгоритме программы. Таким образом, снижается вероятность событий типа "ложная тревога . Кроме того, необходимость тотальной сверки всех системных вызовов будет сильно сказываться на производительности вычислительной системы. Поэтому, технология опережающего анализа выполнения программ может рассматриваться как одна из наиболее перспективных технологий ближайшего будущего. На сегодняшний день наиболее перспективной является технология точно выверенных уровней доступа [91-93], для которой уже имеются примеры реального воплощения на базе ОС Linux. Как уже отмечалось ранее, основная проблема современных ОС заключается в том, что большинство сервисов, требующих высоких привилегий, работают от имени суперпользователя.

Описание принципа построения защиты на основе двойного стека

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

Этими критичными элементами являются: адрес возврата из функции и буфер, размещенный в стеке. Критичность этих элементов заключатся в том, что возможна ситуация, когда данные, размещаемые в буфере, могут подменить адрес возврата, что дает возможность организовать атаку на переполнение буфера (см- глава 1).. Причина такого положения заключается в принципах построения работы процессоров со стеком, например, в широко используемых сегодня процессорах семейства Intel Архитектура и особенности этих процессоров достаточно подробно описаны в литературе [28].

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

Избежать этого можно путем обеспечения жесткого программного контроля размеров информации, размещаемой в буфере. Это условие довольно часто по различным причинам не соблюдается программистами. Таким образом, присутствие человеческого фактора, связанное с написанием программ, с культурой: программирования, на сегодняшний день является серьезным препятствием на пути создания защищенных, с точки зрения информационной безопасности, программ. В то же время, можно пойти по пути устранения влияния человеческого фактора на процесс работы программ со стеком. Для этого необходимо внести некоторые изменения в принципы работы процессора со стеком. Возможные изменения принципов работы процессора со стеком в данном; случае могут заключаться в разделении одного стека на два независимых друг от друга стека: стек данных и стек адресов возврата (рис. 3.2). При этом стек данных должен быть предназначен исключительно для хранения данных и переменных, используемых при работе программы, а стек адресов возврата — для хранения адресов возврата. При этом сегмент, в котором будет расположен стек адресов возврата, должен быть изолирован, т,е. не пересекаться с другими сегментами программы. Для реализации подобной схемы работы со стеком необходимо внести в центральный процессор, как минимум, следующие модификации: ввести в состав процессора, как минимум, два регистра для работы с новым стеком (на рис.3.2 они отмечены как SS+ и SP+); изменить алгоритмы функционирования команд POP, PUSH, CALL, RET; внести изменения в модуль процессора, отвечающий за работу с сегментами. Такой подход в организации работы со стеком позволит решить проблему переполнения буфера, так как подмена адреса возврата в стеке станет невозможна. В то же время, наряду с положительным эффектом может возникнуть боль шое количество проблем, связанных с совместимостью модифицированного процессора с существующим системным и прикладным программным обеспечением. . Очевидно, что процедура модернизации процессора возможна только на. уровне производителя, и не может быть решена на уровне конкретного пользователя. На основании сказанного для реализации принципов разделения стека и отработки соответствующих механизмов была разработана модель программной . реализации этих принципов. При разработке модели были выполнены соответствующие исследования в области системного программирования. На основе этих исследований разработана универсальная технология защиты, как прикладного, так и системного программного обеспечения, названная технологией "двойного стека". Процесс разработки технологии двойного стека включает в себя два этапа. Первый этап заключается в выработке критериев защищенности программы при работе с буфером данных, размешенном в стеке. Второй этап включает в себя процесс переноса разработанных критериев в реальную программную сре ду. С целью формирования критериев защищенности произвольной процедуры от возможных последствий переполнения буфера и формализации вариантов активации деструктивного кода на вычислительной системе, вопреки системе контроля доступа, необходимо построение соответствующих математических-моделей и их исследование. Ниже приводится описание двух моделей, которые необходимы для решения -- задачи формирования критериев защищенности процедуры. Первая модель описывает возможные варианты поведения незащищенной процедуры в зависимости от вариантов заполнения буфера и предназначена для формирования первичных критериев защищенности процедуры. Вторая модель отроется на основании первой модели с учетом первичных критериев защиты, доопределяет первую модель и позволяет оценить эффективность введенных критериев. Построение Первой и второй моделей основано на использовании специализированного логического графа _79] ишроко используемого при решения задач в теорий принятия решений и системном анализе. Вес основные зависимости построены с использованием обозначений принятых в алгебре логиш.

Разработка программных средств оценки эффективности технологии ТДС

Для. размещения данных защиты в области .data, необходимо представить блок хранения этих данных как глобальную структуру данных. Для повышения, скорости обработки очереди истинных.адресов возврата,, хранение адресов возврата в блоке данных защиты организовано в виде стека. Это позволяет наиболее оптимально организовать процессы записи и считывания адресов возврата. Так как функции могут вызываться рекурсивно, то использование стека позволяет регламентированным образом обрабатывать любую глубину вложенности функций. При этом обеспечивается максимальная скорость обслуживания при минимальных затратах вычислительных ресурсов системы, поскольку стек является относительно простой структурой хранения данных, не требующей сложных вычислений для работы с ним. Таким образом, в соответствии с разработанной моделью (см, п.3.2), на основании рассмотрения изложенных выше принципов построения и особенностей функционирования модуля хранения и выдачи адресов возврата, можно сделать следующие выводы: в качестве основы для построения модуля хранения и выдачи данных целесообразно использовать специализированный стек; размещение данных защиты на вершине области .data обеспечивает выполнение второго критерия защищенности процедуры (функции) (см-п.3.2); Разработанные и описанные выше модели и алгоритмы защиты программного обеспечения, позволяют обеспечить комплексную защиту потенциально уязвимых программ. Ниже рассматривается технология защиты системного и прикладного про- -граммного обеспечения, названная "технологией двойного стека" (ТДС), основанная на разработанных в данной работе моделях и алгоритмах В основе технологии ТДС лежит дублирование адресов возврата в специально разработанном защищенном стеке (см, описание модуля хранения и выдачи адресов возврата, п.3.3). Ниже рассматриваются принципиальные особенности, разработанной в данной диссертации, технологии ТДС. Предварительно рассмотрим общепринятую организацию вызова процедуры [52-55], используемую в большинстве современных ОС, Вызов процедуры предусматривает следующие этапы: сохранение информации о контексте программы; восстановление сохраненного контекста программы. Под контекстом программы обычно понимают информацию о состоянии программы на момент вызова процедуры. Работа с контекстом осуществляется при помощи специальных команд процессора: команды вызова процедуры и команды возврата управления. Команда вызова процедуры размещается в коде вызывающей программы. Эта команда передает управление по адресу расположения процедуры, при этом в стеке сохраняется контекст вызвавшей процедуру программы: адрес возврата и текущий указатель вершины стека. Адрес возврата - это адрес команды, следующей за командой вызова процедуры., В результате выполнения указных этапов вызванная процедура получает управление и сведения о том, куда необходимо вернуть управление после завершения процедуры. Команда возврата управления размещается в коде вызванной процедуры. Эта команда выполняет считывание сохраненного контекста и на основании полученных данных восстанавливает значения соответствующих регистров процессора. В результате этих действий программа,, вызвавшая процедуру, получает управление в точке адреса возврата и продолжает свое дальнейшее выполнение. Данная технология имеет серьезный недостаток, связанный с тем, что при ее использовании возможно искажение адреса возврата из процедуры, который размещен в стеке. Это связано с тем, что при работе процедуры может возникнуть переполнение некоторого локального массива данных, под который заре- зервировано место в стеке процедуры. Указанный недостаток устраняется путем использования технологии ТДС, Технология ТДС базируется на введении в вызывающую программу специальной структуры данных, организации процесса передачи и процесса возврата управления с использованием дополнительных средств контроля, основанных на этой структуре данных. Применение технологии ТДС обеспечивает контроль правильности адреса возврата перед вьтолнением команды возврата управления. Наличие такого контроля позволяет эффективно обнаруживать и предотвращать.попытки несанкционированного доступа, основанные на искажении адреса возврата. В технологии ТДС вызов процедуры предусматривает резервирование истинного адреса возврата. Истинность резервируемого адреса возврата обеспечивается тем» что процесс резервирования адреса возврата производится непо средственно перед началом выполнения процедуры, т.е. в тот момент времени, когда искажение адреса возврата еще невозможно.

Перед каждым вызовом команды возврата управления в соответствии с технологией ТДС предусматривается контрольная сверка адреса возврата с истинным адресом возврата, заранее сохраненным. Если эти адреса совпадают, то передача управления вызвавшей программе разрешается, если нет, то происходит принудительное уничтожение той программы, в которой было обнаружено искажение адреса возврата. При этом в системный журнал заносится информации о произошедшей ошибке..

Резервные копии истинных адресов возврата записываются во введенную структуру данных, о которой говорилось выше. Эта структура данных реализована как специализированный стек и расположена в адресном пространстве вызывающей программы таким образом, что искажение» хранящихся в этой структуре данных, невозможно.

Похожие диссертации на Разработка модели и технологии противодействия методам несанкционированного доступа типа переполнения буфера в операционных системах