Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Нарушения безопасности и изъяны защиты




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

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

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

В середине 70-х годов подобные исследования проводились по проектам RISOS (Research in Secured Operating System — Исследования безопасности защищенных операционных систем) и PA (Protection Analysis — Анализ защиты). В обоих проектах были предприняты попытки формального описания и систематизации информации о ИЗ.

В заключительном отчете по проекту RISOS приведено описание следующих категорий ИЗ в защищенных операционных системах:

1. Неполная проверка допустимости значений критичных параметров.

2. Противоречия в проверке допустимости значений критичных параметров.

3. Неявное совместное использование несколькими пользователями конфиденциальной информации.

4. Асинхронный контроль параметров или неадекватная последовательность действий.

5. Недостаточно надежная идентификация/аутентификация/авторизация.

6. Возможность нарушения запретов и ограничений.

7. Использование ошибок в логике функционирования механизмов защиты.

В итоговом отчете по этому проекту описываются разработанные примеры атак для каждого типа ИЗ и содержится детальная информация по семнадцати реально выявленным ИЗ в трех операционных системах: IBM MVT, Univac 1100 и TENEX. Каждый из ИЗ четко соответствует одной из семи приведенных категорий.

Целью проекта PA был сбор информации и построение абстрактных моделей, которые в дальнейшем могли бы быть применены для автоматизированного поиска ИЗ. В результате исследования шести операционных систем (GCOS, Multics, Unix, IBM MVT, Univac 1100 и TENEX) было обнаружено более ста ИЗ, способных привести к несанкционированному проникновению в систему. Для анализа обнаруженных ИЗ была разработана классификационная таблица, содержащая десять категорий ИЗ, которые можно обобщить следующими классами:

1. Ошибки выделения областей (доменов), включающие незащищенное (в открытом виде) хранение и представление данных, неполное уничтожение объектов или их окружения.

2. Ошибки контроля и проверки, состоящие в некорректной проверке значений параметров и границ объектов.

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

4. Ошибки в последовательности действий, влекущие за собой некорректное использование множественных ссылок (указателей) на объект и ошибки прерывания атомарных операций.

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

 

Классификация изъянов защиты по размещению в системе

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

 

Таблица 3.1

Классификация ИЗ по размещению в вычислительной системе

Размещение в ВС Программное обеспечение ОПЕРАЦИОННАЯ СИСТЕМА Инициализация (загрузка)
Управление выделением памяти
Управление процессами
Управление устройствами
Управление файловой системой
Средства идентификации и аутентификации
Другие
Сервисные программы и утилиты Привилегированные утилиты
Непривилегированные утилиты
Прикладные программы
Аппаратное обеспечение

 

Компоненты программного обеспечения, вне зависимости от их конкретного назначения, чрезвычайно сильно связаны и взаимозависимы. Поэтому предлагаемое разделение программ по категориям носит достаточно условный характер.

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

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

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

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

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

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

Поэтому, ИЗ в операционной системе будем разделять по следующим категориям:

- инициализация (загрузка) системы;

- управление распределением памяти;

- управление устройствами;

- управление процессами;

- управление файловой системой;

- идентификация и аутентификация.

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

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

Управление процессами и управление распределением памяти — основные задачи операционной системы, и ошибки в данных механизмах приводят к получению злоумышленником контроля над всей системой и свободному доступу к любой информации.

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

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

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

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

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

 

Контрольные вопросы

1. Что такое атака?

2. Какие функции операционной системы использует файловая система?

3. Что такое изъян защиты?

4. Какие категории ИЗ выделяют в ОС?

5. Что такое сервисное программное обеспечение?

 


Лекция 4.

ДОВЕРЕННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
ОПЕРАЦИОННЫХ СИСТЕМ

 

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

При разработке механизмов контроля доступа важной является возможность под­держки ими нескольких политик безопасности. Часто одни и те же механизмы могут поддерживать секретность, целостность и доступность объектов.

Целесообразно выделить компоненты, отвечающие за поддерж­ку политики безопасности в системе и составляющие доверенное программное обес­печение системы (Trusted Computer Вазе, ТСВ), или ядро защиты. Ядро защиты – это технические, программные и микропрограммные элементы комплекса средств защиты, реализующие концепцию диспетчера доступа.

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

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

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

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

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

 

Рис. 4.1. Доверенное программное обеспечение и программное обеспечение системы в целом

 

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

Данная функциональная зависимость исче­зает, если доверенное программное обеспечение совпадает с программным обеспечением систе­мы в целом. Но это условие никогда не выполняется на практике, и доверенное программное обеспечение обычно много компактнее и проще, чем программное обеспечение системы в целом.

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

 

,

 

где:

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

· P() – предикат, определяющий выходную реакцию в системе в зависимости от входного воздействия.

Это выражение является предикатом второго порядка и определяет следующее свойство: любая операция, выполняемая пользовательским программным обеспече­нием, преобразуется в последовательность вызовов функций доверенного программ­ного обеспечения (функций множества ор') и, при условии защиты доверенного про­граммного обеспечения от модификации, свойство Р() является свойством системы в целом (данное свойство не зависит от поведения программного обеспечения, не принадлежащего доверенному программному обеспечению).

Доказательство безопасности системы в данном случае сводится к демонстра­ции инвариантности модели системы по отношению к некоторому свойству безопас­ности, определяемому предикатом Р. Таким образом, для синтеза защищенной вы­числительной системы необходимо выполнение следующих условий:

· свойства безопасности системы должны быть реализованы с помощью дове­ренного программного обеспечения;

· данные свойства должны быть выражены предикатом второго порядка.

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

Для модели системы необходимо доказать следующую теорему, называемую основной теоремой безопасности, в которой говорится следующее: "если система начинает работу в безопасном состоянии и все переходы системы из состояния в со­стояние являются безопасными, то система является безопасной".

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

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




Поделиться с друзьями:


Дата добавления: 2014-12-07; Просмотров: 2459; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.