|
||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Классификация ИЗ по размещению в вычислительной системе
Компоненты программного обеспечения, вне зависимости от их конкретного назначения, чрезвычайно сильно связаны и взаимозависимы. Поэтому предлагаемое разделение программ по категориям носит достаточно условный характер. Термин “сервисное программное обеспечение” включает в себя компиляторы, отладчики, редакторы, библиотеки функций, системы управления базами данных и т.п. Операционная система при запуске таких программ обычно предоставляет им специальные привилегии, превышающие привилегии работающего с ними пользователя. Поэтому о сервисном программном обеспечении можно говорить как о множестве привилегированных утилит. Привилегированные утилиты, как правило, являются сложными программами, и часто обеспечивают выполнение функций, не предусмотренных операционной системой. Кроме того, они разрабатываются отдельно от последней и могут не поддерживать принятые в ней ограничения и требования безопасности, даже при наличии собственной защиты. Это означает, что привилегированные утилиты являются потенциально опасными с точки зрения защиты ВС в целом. Наличие ошибок в реализации защиты привилегированных утилит или каналов утечки информации в них может быть использовано злоумышленником, который в случае успеха получит возможности, соответствующие специальным привилегиям утилиты, с которой он работает. Наиболее известным примером подобного родя является наличие специального бита доступа SUID у многих программ ОС. Нарушения в функционировании вычислительных систем, вызванные неумышленными ошибками в прикладном программном обеспечении, обычно ограничиваются только содержащим эту ошибку процессом, который либо некорректно функционирует либо останавливается или зацикливается. Однако это не означает, что все ошибки в прикладном программном обеспечении столь же безобидны. Преднамеренно внесенные программные закладки, вирусы, троянские кони и логические бомбы находятся именно на уровне прикладного программного обеспечения. Объектами их атак потенциально могут стать любые компоненты вычислительной системы, и последствия такого воздействия могут быть очень серьезными — вплоть до выведения операционной системы из строя. В этом случае успех атаки зависит от того, насколько защищена конкретная ОС от разрушительных действий прикладных программ. Многопользовательские многозадачные ОС (такие как Unix) сравнительно легко справляются с подобной проблемой. Среди всего комплекса программного обеспечения отдельную категорию составляет операционная система. Непосредственно с ОС связано сервисное программное обеспечение, обеспечивающее поддержку различных аспектов функционирования системы. Кроме того, существует прикладное программное обеспечение, с которым непосредственно работают пользователи. Операционные системы обычно включают в себя функции управления процессами, устройствами, распределением памяти, файловой системой и т.д. Кроме того, они обеспечивают инициализацию вычислительной системы при загрузке и содержат основные механизмы обеспечения безопасности. Однако, поскольку состав этих механизмов не стандартизован и сильно различается от системы к системе, в данной классификации выделен только механизм идентификации/аутентификации — как один из важнейших и присущий всем системам без исключения. Поэтому, ИЗ в операционной системе будем разделять по следующим категориям: - инициализация (загрузка) системы; - управление распределением памяти; - управление устройствами; - управление процессами; - управление файловой системой; - идентификация и аутентификация. Для ошибок, не попадающих ни в одну из данных категорий, введем дополнительную категорию “другие”. Процесс инициализации системы достаточно четко определен по своим функциям, но все же достаточно сложен и значительно различается от системы к системе. Ошибки на этапе инициализации могут возникнуть в результате неправильного взаимодействия с аппаратурой (например, если произошли изменения в составе аппаратных средств), или при задании неверных параметров конфигурации. Ошибки такого рода приводят, как правило, к неправильному назначению полномочий доступа к ресурсам системы. Управление процессами и управление распределением памяти — основные задачи операционной системы, и ошибки в данных механизмах приводят к получению злоумышленником контроля над всей системой и свободному доступу к любой информации. Управление устройствами подразумевает наличие комплекса программ ввода/вывода, обеспечивающих функционирование этих устройств параллельно и независимо от центрального процессора. Ошибки в таких программах, например, ошибки приема/передачи управляющих параметров и команд устройствам (возможно являющиеся результатом преднамеренной подмены после проверки допустимости значений) приводят либо к отказам и сбоям в работе устройств, либо позволяют злоумышленнику получить информацию, доступ к которой ему запрещен. Файловая система использует значительное число функций операционной системы — управление процессами, устройствами, распределением памяти и т.д. Соответственно, ошибки в этих компонентах автоматически распространяются и на файловую систему. Кроме того, файловая система может содержать и собственные ошибки, касающиеся хранения данных и ограничения доступа к ним. Неверное представление данных влечет за собой неправильное функционирование механизмов контроля. Таким образом, средства обеспечения безопасности, принадлежащие операционной системе, оказываются непосредственно связанными с механизмами управления файловой системой. Наличие ошибок в механизмах управления файловой системой способно привести к нарушению функционирования и безопасности всей ВС в целом. Идентификация и аутентификация являются отправными точками в функционировании любой системы защиты. Как правило, операционная система содержит специальные файлы, в которых хранятся имена и пароли, на основании которых и выполняются указанные процедуры. Чрезвычайно важно обеспечить не только адекватную реализацию процедур идентификации и аутентификации, но и всестороннюю защиту этих файлов от несанкционированного доступа и изменения, иначе злоумышленник легко сможет выдать себя за легального пользователя и получить соответствующие полномочия. Именно операционные системы и механизмы обеспечения их безопасности составляют основной объект дальнейшего изучения в рамках настоящего курса. Именно в операционной системе определена и реализована архитектура всей вычислительной системы, а наличие в ней ошибок, связанных с обеспечением безопасности, автоматически влечет за собой серьезные последствия для всей ВС в целом. Понимание принципов защиты операционных систем обеспечит успешную реализацию безопасности не только на низком, системном, уровне, но и на уровне всей вычислительной системы в целом.
Контрольные вопросы 1. Что такое атака? 2. Какие функции операционной системы использует файловая система? 3. Что такое изъян защиты? 4. Какие категории ИЗ выделяют в ОС? 5. Что такое сервисное программное обеспечение?
Лекция 4. ДОВЕРЕННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
Механизмы, отвечающие за поддержку политики безопасности в системе, должны быть реализованы в виде низкоуровневых аппаратных и программных функций, которые могут быть сконфигурированы в соответствии с политикой безопасности. При разработке механизмов контроля доступа важной является возможность поддержки ими нескольких политик безопасности. Часто одни и те же механизмы могут поддерживать секретность, целостность и доступность объектов. Целесообразно выделить компоненты, отвечающие за поддержку политики безопасности в системе и составляющие доверенное программное обеспечение системы (Trusted Computer Вазе, ТСВ), или ядро защиты. Ядро защиты – это технические, программные и микропрограммные элементы комплекса средств защиты, реализующие концепцию диспетчера доступа. Возникает вопрос, связанный с разработкой архитектуры системы: поместить реализации функций безопасности в единый модуль (централизованное решение) или распределить их между различными компонентами системы или даже между системами (распределенное решение). Так, механизм аудита в системе может быть централизованным, сохраняющим информацию аудита в едином хранилище данных, или распределенным, позволяющим программным компонентам вести собственные журналы данных. То же самое можно сказать и о реализации механизмов контроля доступа. Для каждого подхода существуют свои "за" и "против". Использование централизованного доверенного программного обеспечения облегчает процесс верификации доверенного программного обеспечения. Это связано с тем, что достаточно верифицировать сам механизм и в дальнейшем проверять только корректность его использования. К недостаткам использования централизованного доверенного программного обеспечения можно отнести возможное значительное влияние на производительность системы по сравнению с распределенным решением. Последнее положение и привело к тому, что в современных вычислительных системах используется распределенный подход к реализации доверенного программного обеспечения. При моделировании важно выбрать соответствующий уровень абстракции. Рассмотрение модели всего программного обеспечения системы при исследовании вопросов, связанных с безопасностью системы, скорее всего приведет к некорректному выбору уровня абстракции при описании модели системы (данный уровень будет либо слишком простым, не учитывающим особенности поведения программного обеспечения, либо слишком сложным, что приведет к потере общности при анализе и очень сложному анализу). Таким образом, целесообразным является выделение компактного доверенного программного обеспечения, позволяющего говорить об обеспечении независимости свойства безопасности системы от остального программного обеспечения системы, не входящего в состав доверенного программного обеспечения. При этом программное обеспечение системы использует доверенное программное обеспечение, как это показано на рис. 4.1.
Рис. 4.1. Доверенное программное обеспечение и программное обеспечение системы в целом
Таким образом, на основании выделения доверенного программного обеспечения при верификации системы можно сделать заключение о свойствах безопасности системы в целом, если поведение программ, имеющее отношение к безопасности, может быть выражено в форме функций обращения программ к доверенному программному обеспечению. Данная функциональная зависимость исчезает, если доверенное программное обеспечение совпадает с программным обеспечением системы в целом. Но это условие никогда не выполняется на практике, и доверенное программное обеспечение обычно много компактнее и проще, чем программное обеспечение системы в целом. Таким образом, доверенное программное обеспечение должно гарантировать безопасность системы вне зависимости от того, какие его функции и в какой последовательности задействованы. При этом свойства безопасности системы в целом могут быть описаны следующим выражением:
,
где: · op' – множество всех возможных последовательностей вызовов функции, предоставляемых доверенным программным обеспечением системы; · P() – предикат, определяющий выходную реакцию в системе в зависимости от входного воздействия. Это выражение является предикатом второго порядка и определяет следующее свойство: любая операция, выполняемая пользовательским программным обеспечением, преобразуется в последовательность вызовов функций доверенного программного обеспечения (функций множества ор') и, при условии защиты доверенного программного обеспечения от модификации, свойство Р() является свойством системы в целом (данное свойство не зависит от поведения программного обеспечения, не принадлежащего доверенному программному обеспечению). Доказательство безопасности системы в данном случае сводится к демонстрации инвариантности модели системы по отношению к некоторому свойству безопасности, определяемому предикатом Р. Таким образом, для синтеза защищенной вычислительной системы необходимо выполнение следующих условий: · свойства безопасности системы должны быть реализованы с помощью доверенного программного обеспечения; · данные свойства должны быть выражены предикатом второго порядка. В анализируемых в дальнейшем моделях безопасности предикат Р конкретизируется, а вместо исследования выражений, описываемых логикой второго порядка, изучаются модели состояний системы. Для модели системы необходимо доказать следующую теорему, называемую основной теоремой безопасности, в которой говорится следующее: "если система начинает работу в безопасном состоянии и все переходы системы из состояния в состояние являются безопасными, то система является безопасной". Приведенные выше рассуждения справедливы для систем разграничения доступа, защищающих от угроз секретности и целостности информации, но они не относятся к доступности информации. Секретность и целостность информации могут быть выражены в терминах свойств компьютерной системы (четко определенных, общих и постоянных), тогда как доступность – нет. То есть свойства конфиденциальности и целостности теоретически могут быть вычислимыми (существует алгоритм для проверки этих свойств) и, хотя в общем данная проблема неразрешима, в частных случаях можно определить свойства конфиденциальности и целостности. Свойство доступности, так же как и надежности, теоретически не является вычислимым. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.006 сек.) |