Глава 9.3 2003.ppt
- Количество слайдов: 12
Глава 9. Безопасность 9. 3 Механизмы защиты
9. 3. 1. Домены защиты Компьютерная система содержит множество «объектов» , нуждающихся в защите: оборудование (центральные процессоры, сегменты памяти, дисковые приводы, принтеры) программное обеспечение (процессы, файлы, базы данных или семафоры) У каждого объекта есть уникальное имя, по которому к нему можно обращаться, и конечный набор операций, которые могут выполняться процессами в отношении этого объекта. Файлу свойственны операции read и write, а семафору — операции up и down. Домен (domain) - множество пар (объект, права доступа). Каждая пара определяет объект и некоторое подмножество операций, которые могут быть выполнены в отношении этого объекта. Права доступа (rights) означают в данном контексте разрешение на выполнение той или иной операции. Распределение объектов по доменам зависит от особенностей того, кому и о чем нужно знать. Одним из фундаментальных понятий является принцип минимальных полномочий — POLA (Principle of Least Authority), или принцип необходимого знания. Безопасность проще соблюсти, когда у каждого домена имеется минимум объектов и привилегий для работы с ними и нет ничего лишнего. Пример Чтобы конкретизировать идею домена защиты, рассмотрим пример из системы UNIX (который также относится к Linux, Free. BSD и им подобным клонам). В UNIX домен процесса определяется его идентификаторами UID и GID. Когда пользователь входит в систему, его оболочка получает UID и GID, которые содержатся в его записи в файле паролей, и они наследуются всеми его дочерними процессами.
9. 3. 1. Домены защиты Предоставляя любую комбинацию (UID, GID), можно составить полный список всех объектов, к которым процесс может обратиться с указанием возможного типа доступа (чтение, запись, исполнение). Два процесса с одинаковой комбинацией (UID, GID) будут иметь абсолютно одинаковый доступ к одинаковому набору объектов. Процессы с различающимися значениями (UID, GID) будут иметь доступ к разным наборам файлов, хотя, может быть, и со значительным перекрытием этих наборов. Более того, каждый процесс в UNIX состоит из двух частей: пользовательской и системной (выполняемой в ядре). Когда процесс осуществляет системный вызов, он переключается из пользовательской части в системную. По сравнению с пользовательской частью системная часть имеет доступ к другому набору объектов. Важно знать, как именно система отслеживает принадлежность объекта тому или иному объекту. Концептуально можно представить себе большую матрицу, в которой строками будут домены, а колонками — объекты. В каждой ячейке перечисляются права, если таковые имеются, которыми располагает домен по отношению к объекту.
9. 3. 2. Списки управления доступом На практике матрица используется довольно редко из-за больших размеров и разряженного характера. Многие домены вообще не имеют доступа ко многим объектам, следовательно, хранение очень большой практически пустой матрицы будет напрасно тратиться дисковое пространство. Поэтому практическое применение нашли два метода: хранение матрицы по строкам или по столбцам, а затем хранение только заполненных элементов. В первом методе с каждым объектом ассоциируется упорядоченный список, содержащий все домены, которым разрешен доступ к данному объекту, а также тип доступа. Часто пользователей называют субъектами (subjects) или принципалами (principals) — то есть пользователями, имеющими учетную запись в данной среде, чтобы отличать их владельцев некими вещами, объектами (objects), к которым, к примеру, можно отнести файлы. Предварительное сравнение ACL-списка и перечней возможностей: Перечням возможностей свойственна высокая эффективность, поскольку если процесс требует открыть файл, на который указывает определенный элемент возможностей, проверки не требуется. Перечни возможностей, в отличие от ACLсписков, также позволяют процессу легко инкапсулироваться. Если группы не поддерживаются, то предоставление всем прав на доступ к чтению файла требует перечисления всех пользователей в ACL-списке. С другой стороны, ACL-списки, в отличие от перечней возможностей, позволяют выборочно отзывать права. Если объект удаляется, а перечень возможностей нет, или удаляется перечень возможностей, а объект остается, возникают проблемы. При использовании ACL-списков эти проблемы отсутствуют.
9. 3. 2. Списки управления доступом Такой список, показанный на рис. 9. 6, называется ACL (Access Control List — список управления доступом). Здесь показаны три процесса, принадлежащих различным доменам: А, В и С, а также три файла: F 1, F 2 и F 3. Предположим, что каждому домену соответствует только один пользователь - А, В или С. У каждого файла есть связанный с ним ACL. У файла F 1 в его ACL-списке имеется две записи (разделенные точкой с запятой). В первой записи сообщается, что любой процесс, которым владеет пользователь А, может проводить в отношении этого файла операции чтения и записи. Во второй записи сообщается, что любой процесс, которым владеет пользователь В, может читать этот файл. Все остальные типы доступа для данных пользователей и все виды доступа для остальных пользователей запрещаются. Обратите внимание, что права предоставляются не процессу, а пользователю. В результате работы системы защиты любой процесс, которым владеет пользователь А, может осуществлять операции чтения и записи в отношении файла F 1. Сколько таких процессов, один или сто, не имеет значения. Важно, кто владелец, а не какой идентификатор у процесса. В ACL-списке файла F 2 имеется три записи: пользователи А, В и С могут читать файл, а пользователь В может также вести в него запись. Другие типы доступа не разрешаются. Очевидно, файл F 3 представляет собой исполняемую программу, так как пользователи А и В могут как читать, так и исполнять этот файл. Пользователю В также разрешается вести в него запись.
9. 3. 3. Перечни возможностей Матрицу, показанную на рис. 9. 5, можно также разрезать по строкам. При использовании этого метода с каждым процессом будет связан список объектов, к которым может быть получен доступ, а также информация о том, какие операции разрешены с каждым объектом, иными словами, с ним будет связан его домен защиты. Такой список называется перечнем возможностей (capability list, C-list), а его элементы называются возможностями (capabilities). Набор из трех процессов и перечней их возможностей показан на рис. 9. 7. Каждый элемент перечня возможностей предоставляет владельцу определенные права по отношению к определенному объекту. К примеру, на рис. 9. 7 процесс, которым владеет пользователь А, может читать файлы F 1 и F 2. Обычно элемент перечня возможностей состоит из идентификатора файла и битового массива для различных прав. В операционных системах семейства UNIX в качестве идентификатора файла может использоваться номер его i-узла. Перечни возможностей сами являются объектами, и на них могут указывать другие перечни возможностей, таким образом облегчая совместное использование субдоменов.
9. 3. 3. Перечни возможностей должны быть защищены от их подделки со стороны пользователей. Известны три способа их защиты: теговая архитектура (tagged architecture) – аппаратная конструкция, в которой каждое слово памяти имеет дополнительный (теговый) бит, сообщающий, содержит ли данное слово памяти элемент перечня возможностей или нет хранение перечня возможностей внутри операционной системы. При этом к элементам перечня возможностей можно обращаться по их позиции в перечне хранение перечня возможностей в пространстве пользователя, но в зашифрованном виде, так чтобы пользователь не смог подделать эту информацию. Такой подход особенно хорош для распределенных систем Вдобавок к специфическим правам, зависящим от характера объекта, таким как право на чтение и исполнение, элементы перечня возможностей содержат общие права (generic rights), применимые ко всем объектам. Примерами общих прав являются: Копирование элемента возможностей: создание нового элемента для того же самого объекта. Копирование объекта: создание дубликата объекта с новым элементом возможностей. Удаление элемента возможностей: удаление записи из перечня возможностей без оказания какого-либо влияния на объект. Удаление объекта: полное удаление объекта и связанных с ним возможностей.
9. 3. 5. Высоконадежная вычислительная база В кругах специалистов по компьютерной безопасности часто ведутся разговоры не о защищенных системах, а о надежных системах (trusted systems) - системы, имеющие официально установленные требования безопасности и соблюдающие эти требования. В основе каждой надежной системы находится минимальная база ТСВ (Trusted Computing Base - высоконадежная вычислительная база). Которая состоит из: аппаратного и программного обеспечения, необходимого для принудительного выполнения всех мер безопасности. Если высоконадежная вычислительная база работает в соответствии с техническими условиями, безопасность системы не может быть нарушена ни при каких других неблагоприятных обстоятельствах. К функциям операционной системы, которые должны быть частью ТСВ, относятся следующие: создание процесса переключение процессов управление отображением памяти часть управления файлами и вводом-выводом данных. В конструкции надежной системы ТСВ зачастую полностью отделена от всей остальной операционной системы, с целью сведения к минимуму ее размера и проверки ее корректности. Важную часть высоконадежной вычислительной базы составляет монитор обращений.
9. 3. 6. Формальные модели систем безопасности Несколько десятилетий назад были определены (Harrison et al. , 1976) шесть элементарных операций (примитивов) в матрице защиты, которые могут послужить основой модели любой системы защиты. Этими элементарными операциями были: создание объекта удаление объекта создание домена удаление домена вставка права удаление права. Два последних примитива касались вставки и удаления прав из определенных записей матрицы. Эти шесть элементарных операций могли объединяться в команды защиты (protection commands), которые пользовательские программы могут выполнять для изменения матрицы. В любой момент времени согласно матрице определяется, что процесс в любом домене может делать, а не на что ему были предоставлены права. Матрица ведется системой, а предоставление прав должно относиться к политике управления. Множество всех возможных матриц должно быть разделено на два разобщенных подмножества: подмножество санкционированных состояний подмножество несанкционированных состояний. Было доказано (Harrison et al. , 1976), что в случае произвольной конфигурации для любой системы защиты безопасность теоретически недостижима. Тем не менее для определенной системы можно доказать, может ли система когда-либо перейти из санкционированного в несанкционированное состояние.
9. 3. 7. Многоуровневая защита Большинство операционных систем позволяют отдельным пользователям определять, кто может осуществлять операции чтения и записи в отношении их файлов и других объектов. Такая политика называется разграничительным управлением доступом. Для более жестких мер безопасности требуется еще и принудительное управление доступом, чтобы гарантировать, что установленная политика безопасности реализуется системой. 1. Модель Белла - Ла Падулы Правила организации информационного потока: Простое свойство безопасности: процесс, запущенный на уровне безопасности k, может проводить операцию чтения только в отношении объектов своего или более низкого уровня. Свойство *: процесс, работающий на уровне безопасности k, может вести запись только в объекты своего или более высокого уровня. То есть: процессы могут осуществлять чтение вниз и запись наверх, но не наоборот. Если система четко соблюдает эти два свойства, то можно показать, что утечки информации с более безопасного уровня на менее безопасный не будет. Важно: в этой модели процессы осуществляют операции чтения и записи в отношении объектов, но напрямую друг с другом не общаются. 2. Модель Биба Для гарантии целостности данных нужны свойства: Простой принцип целостности: процесс, работающий на уровне безопасности k, может осуществлять запись только в объекты своего или более низкого уровня (никакой записи наверх). Свойство целостности *: процесс, работающий на уровне безопасности k, может осуществлять чтение из объектов своего или более высокого уровня (никакого чтения из нижних уровней). Свойства модели Белла — Ла Падулы и модели Биба противоречат другу.
9. 3. 8. Тайные каналы Даже в системе, в основу которой заложена надлежащая модель безопасности, прошедшая апробацию и реализованная по всем правилам, могут все же происходить утечки секретных сведений. Модель Лэмпсона В модели задействованы три процесса на некой защищенной машине. Первый процесс представлен клиентом, желающим, чтобы вторым процессом, сервером, было выполнено некоторое задание. Клиент и сервер не вызывают друг у друга доверия. Третий процесс является сотрудником, вступающим в сговор с сервером именно для того, чтобы похитить конфиденциальные данные клиента. Сотрудник и сервер обычно принадлежат одному и тому же лицу. Задачей являлась разработка системы, в которой невозможна утечка от серверного процесса к процессу-сотруднику информации, которую серверный процесс получил от клиентского процесса на вполне законных основаниях. Лэмпсон назвал это проблемой ограждения. Этот канал связи, показанный на рис. 9. 12, б, называется тайным каналом (covert channel).
Стеганография Для передачи секретной информации между процессами существует несколько иная разновидность скрытого канала, позволяющая обходить ручной или автоматизированный контроль всех сообщений, проходящих между процессами и накладывающий вето на сомнительные сообщения. В качестве примера рассмотрим рисунок. На фотографии три зебры смотрят на акацию. На втором рисунке изображены, по-видимому, те же три зебры и акация, но фотография обладает дополнительно добавленной привлекательностью. В нее встроен полный текст пяти шекспировских Пьес. Общий объем их текста превышает 700 Кбайт. Каков принцип работы этого тайного канала? Оригинальное изображение состоит из 1024 х 768 пикселов. Каждый пиксель состоит из трех 8 -разрядных чисел, по одному для кодирования яркости красной, зеленой и синей составляющей пикселя. Цвет пикселов формируется за счет линейного наложения трех цветов. Метод кодирования использует в качестве тайного канала младший разряд каждого цветового значения RGB. Таким образом, в каждом пикселе появляется пространство для трех битов секретной информации, по одному в красной, зеленой и синей составляющей. При таких размерах изображения в нем может быть сохранено до 1024 х 768 х 3 бита, или 294 912 байтов секретной информации. Полный текст пяти пьес и короткого сообщения составляет 734 891 байт. Все это сначала было сжато до размера около 274 Кбайт с использованием стандартного алгоритма сжатия. Затем сжатый результат был зашифрован и вставлен в биты младшего разряда каждой цветовой составляющей. Можно убедиться в том, что присутствие информации абсолютно незаметно. Ее присутствие также незаметно на большой, полноцветной версии фотографии. Человеческий глаз не в состоянии так просто отличить 7 -разрядный цвет от 8 -разрядного. Как только этот файл с изображением благополучно пройдет цензуру, получатель просто извлечет все биты младших разрядов, применит алгоритмы дешифрации и распаковки и восстановит исходные 734 891 байт. Такое сокрытие присутствия информации называется стеганографией (steganography, от греческого слова «тайнопись» ). Стеганографию не любят диктаторские режимы, пытающиеся ограничить общение своих граждан, но она популярна среди приверженцев свободы слова.
Глава 9.3 2003.ppt