От проникновения в целях дезорганизации их работы и НСД к информации
Определим ряд понятий, необходимых в дальнейшем. Объект — пассивный компонент системы, единица ресурса автоматизированной системы (устройство, диск, каталог, файл и т.п.), доступ к которому регламентируется правилами разграничения доступа. Субъект — активный компонент системы (пользователь, процесс, программа), действия которого регламентируются правилами разграничения доступа. Доступ к информации — ознакомление с информацией (копирование, тиражирование), ее модификация (корректировка) или уничтожение (удаление). Доступ к ресурсу — получение субъектом возможности манипулировать (использовать, управлять, изменять характеристики и т.п.) данным ресурсом. Правила разграничения доступа — совокупность правил, регламентирующих права доступа субъектов к объектам в некоторой системе. Разграничение доступа к ресурсам АС — порядок использования ресурсов автоматизированной системы, при котором субъекты получают доступ к объектам в строгом соответствии с установленными правилами. Авторизованный субъект доступа — субъект, которому предоставлены соответствующие права доступа к объектам системы (полномочия). Несанкционированный доступ (НСД ) — доступ субъекта к объекту в нарушение установленных в системе правил разграничения доступа. Несанкционированное действие —действие субъекта в нарушение установленных в системе правил обработки информации. Для реализации приведенных выше мер защиты компьютерных систем используются универсальные механизмы защиты информации [6]: · идентификация (именование и опознавание), аутентификация (подтверждение подлинности) и авторизация (присвоение полномочий) субъектов;
· контроль (разграничение) доступа к ресурсам системы; · регистрация и анализ событий, происходящих в системе; · контроль целостности ресурсов системы. Механизмы идентификации, аутентификации и авторизации необходимы для подтверждения подлинности субъекта, обеспечения его работы в системе и определения законности прав субъекта на данный объект или на определенные действия с ним. Идентификация — это процесс распознавания элемента системы, обычно с помощью заранее определенного идентификатора или другой уникальной информации; каждый субъект или объект системы должен быть однозначно идентифицируем. Аутентификация — это проверка подлинности идентификации пользователя, процесса, устройства или другого компонента системы (обычно осуществляется перед разрешением доступа); а также проверка целостности и авторства данных при их хранении или передачи для предотвращения несанкционированной модификации. Авторизация — это предоставление субъекту прав на доступ к объекту. Под контролем доступа понимается ограничение возможностей использования ресурсов системы программами, процессами или другими системами (для сети) в соответствии с правилами разграничения доступа. Основным объектом внимания средств контроля доступа являются совместно используемые ресурсы системы. Совместное использование объектов порождает ситуацию «взаимного недоверия», при которой разные пользователи одного объекта не могут до конца доверять друг другу. Тогда, если с этим объектом что-нибудь случиться, все они попадают в круг подозреваемых. Существуют четыре основных способа разделения доступа субъектов к совместно используемым объектам: · физический — субъекты обращаются к физически различным объектам (однотипным устройствам, наборам данных на разных носителях и т.д.). · временный — субъекты с различными правами доступа к объекту получают его в различные промежутки времени.
· логический — субъекты получают доступ к совместно используемому объекту в рамках единой операционной среды, но под контролем средств разграничения доступа, которые моделируют виртуальную операционную среду "один субъект - все объекты"; в этом случае разделение может быть реализовано различными способами: разделение оригинала объекта, разделение с копированием объекта и т.д. · криптографический — все объекты хранятся в зашифрованном виде, права доступа определяются наличием ключа для расшифрования объекта. Существует множество различных вариантов одних и тех же способов разделения доступа, они могут иметь разную реализацию в различных средствах защиты. Механизм регистрации обеспечивает получение и анализ информации о состоянии ресурсов системы с помощью специальных средств контроля, а также регистрацию действий, признанных администрацией АС потенциально опасными для безопасности системы. Анализ собранной информации позволяет выявить средства и априорную информацию, использованные нарушителем при воздействии на систему, и определить, как далеко зашло нарушение, подсказать метод его расследования и способы исправления ситуации. Механизм контроля целостности ресурсов системы предназначен для своевременного обнаружения модификации ресурсов системы. Это позволяет обеспечить правильность функционирования системы защиты и целостность обрабатываемой информации. Эти универсальные механизмы защиты могут применяться в различных вариациях и совокупностях в конкретных методах и средствах защиты. Стоит отметить, что наибольший эффект достигается при использовании всех механизмов.
Основные понятия программно-технического уровня информационной безопасности Программно-технические меры, то есть меры, направленные на контроль компьютерных сущностей — оборудования, программ и/или данных, образуют последний и самый важный рубеж информационной безопасности. Напомним, что ущерб наносят в основном действия легальных пользователей, по отношению к которым процедурные регуляторы малоэффективны. Главные враги — некомпетентность и неаккуратность при выполнении служебных обязанностей, и только программно-технические меры способны им противостоять.
Компьютеры помогли автоматизировать многие области человеческой деятельности. Вполне естественным представляется желание возложить на них и обеспечение собственной безопасности. Даже физическую защиту все чаще поручают не охранникам, а интегрированным компьютерным системам, что позволяет одновременно отслеживать перемещения сотрудников и по организации, и по информационному пространству. Следует, однако, учитывать, что быстрое развитие информационных технологий не только предоставляет обороняющимся новые возможности, но и объективно затрудняет обеспечение надежной защиты, если опираться исключительно на меры программно-технического уровня. Причин тому несколько: · повышение быстродействия микросхем, развитие архитектур с высокой степенью параллелизма позволяет методом грубой силы преодолевать барьеры (прежде всего, криптографические), ранее казавшиеся неприступными; · развитие сетей и сетевых технологий, увеличение числа связей между информационными системами, рост пропускной способности каналов расширяют круг злоумышленников, имеющих техническую возможность организовывать атаки; · появление новых информационных сервисов ведет и к образованию новых уязвимых мест как «внутри» сервисов, так и на их стыках; · конкуренция среди производителей программного обеспечения заставляет сокращать сроки разработки, что приводит к снижению качества тестирования и выпуску продуктов с дефектами защиты; · навязываемая потребителям парадигма постоянного наращивания мощности аппаратного и программного обеспечения не позволяет долго оставаться в рамках надежных, апробированных конфигураций и, кроме того, вступает в конфликт с бюджетными ограничениями, из-за чего снижается доля ассигнований на безопасность. Перечисленные соображения лишний раз подчеркивают важность комплексного подхода к информационной безопасности, а также необходимость гибкой позиции при выборе и сопровождении программно-технических регуляторов.
Центральным для программно-технического уровня является понятие сервиса безопасности. Следуя объектно-ориентированному подходу, при рассмотрении информационной системы с единичным уровнем детализации мы увидим совокупность предоставляемых ею информационных сервисов. Назовем их основными. Чтобы они могли функционировать и обладали требуемыми свойствами, необходимо несколько уровней дополнительных (вспомогательных) сервисов — от СУБД и мониторов транзакций до ядра операционной системы и оборудования. К вспомогательным относятся сервисы безопасности (мы уже сталкивались с ними при рассмотрении стандартов и спецификаций в области ИБ); среди них нас в первую очередь будут интересовать универсальные, высокоуровневые, допускающие использование различными основными и вспомогательными сервисами. Далее мы рассмотрим следующие сервисы: · идентификация и аутентификация; · управление доступом; · протоколирование и аудит; · шифрование; · контроль целостности; · экранирование; · анализ защищенности; · обеспечение отказоустойчивости; · обеспечение безопасного восстановления; · туннелирование; · управление.
Идентификация и аутентификация
Идентификацию и аутентификацию можно считать основой программно-технических средств безопасности, поскольку остальные сервисы рассчитаны на обслуживание именованных субъектов. Идентификация и аутентификация — это первая линия обороны, «проходная» информационного пространства организации. Идентификация позволяет субъекту (пользователю, процессу, действующему от имени определенного пользователя, или иному аппаратно-программному компоненту) назвать себя (сообщить свое имя). Посредством аутентификации вторая сторона убеждается, что субъект действительно тот, за кого себя выдает. В качестве синонима слова «аутентификация» иногда используют словосочетание «проверка подлинности». (Заметим, что происхождение русскоязычного термина "аутентификация" не совсем понятно. Английское "authentication" скорее можно прочитать как "аутентикация"; трудно сказать, откуда в середине взялось еще "фи" — может, из идентификации? Тем не менее термин устоялся, он закреплен в Руководящих документах Гостехкомиссии России, использован в многочисленных публикациях, поэтому исправить его уже невозможно.) Аутентификация бывает односторонней (обычно клиент доказывает свою подлинность серверу) и двусторонней (взаимной). Пример односторонней аутентификации — процедура входа пользователя в систему.
В сетевой среде, когда стороны идентификации/аутентификации территориально разнесены, у рассматриваемого сервиса есть два основных аспекта: · что служит аутентификатором (то есть используется для подтверждения подлинности субъекта); · как организован (и защищен) обмен данными идентификации/аутентификации. Субъект может подтвердить свою подлинность, предъявив, по крайней мере, одну из следующих сущностей: · нечто, что он знает (пароль, личный идентификационный номер, криптографический ключ и т.п.); · нечто, чем он владеет (личную карточку или иное устройство аналогичного назначения); · нечто, что есть часть его самого (голос, отпечатки пальцев и т.п., то есть свои биометрические характеристики). В открытой сетевой среде между сторонами идентификации/аутентификации не существует доверенного маршрута; это значит, что в общем случае данные, переданные субъектом, могут не совпадать с данными, полученными и использованными для проверки подлинности. Необходимо обеспечить защиту от пассивного и активного прослушивания сети, то есть от перехвата, изменения и/или воспроизведения данных. Передача паролей в открытом виде, очевидно, неудовлетворительна; не спасает положение и шифрование паролей, так как оно не защищает от воспроизведения. Нужны более сложные протоколы аутентификации. Надежные идентификация и аутентификация затруднены не только из-за сетевых угроз, но и по целому ряду причин. Во-первых, почти все аутентификационные сущности можно узнать, украсть или подделать. Во-вторых, имеется противоречие между надежностью аутентификации, с одной стороны, и удобствами пользователя и системного администратора, с другой. Так, из соображений безопасности необходимо с определенной частотой просить пользователя повторно вводить аутентификационную информацию (ведь на его место мог сесть другой человек), а это не только хлопотно, но и повышает вероятность того, что кто-то может подсмотреть за вводом данных. В-третьих, чем надежнее средство защиты, тем оно дороже. Современные средства идентификации или аутентификации должны поддерживать концепцию единого входа в сеть. Единый вход в сеть — это, в первую очередь, требование удобства для пользователей. Если в корпоративной сети много информационных сервисов, допускающих независимое обращение, то многократная идентификация или аутентификация становится слишком обременительной. К сожалению, пока нельзя сказать, что единый вход в сеть стал нормой, доминирующие решения пока не сформировались. Таким образом, необходимо искать компромисс между надежностью, доступностью по цене и удобством использования и администрирования средств идентификации и аутентификации. Любопытно отметить, что сервис идентификации или аутентификации может стать объектом атак на доступность. Если система сконфигурирована так, что после определенного числа неудачных попыток устройство ввода идентификационной информации (например, терминал) блокируется, то злоумышленник может остановить работу легального пользователя буквально несколькими нажатиями клавиш.
Парольная аутентификация
Главное достоинство парольной аутентификации — простота и привычность. Пароли давно встроены в операционные системы и иные сервисы. При правильном использовании они могут обеспечить приемлемый для многих организаций уровень безопасности. Тем не менее по совокупности характеристик их следует признать самым слабым средством проверки подлинности. Чтобы пароль был запоминающимся, его зачастую делают простым (имя подруги, название спортивной команды и т.п.). Однако простой пароль нетрудно угадать, особенно если знать пристрастия данного пользователя. Известна классическая история про советского разведчика Рихарда Зорге, объект внимания которого через слово говорил «карамба»; разумеется, этим же словом открывался сверхсекретный сейф. Иногда пароли с самого начала не хранятся в тайне, так как имеют стандартные значения, указанные в документации, и далеко не всегда после установки системы производится их смена. Ввод пароля можно подсмотреть. Иногда для подглядывания используются даже оптические приборы. Пароли нередко сообщают коллегам, чтобы те могли, например, подменить на некоторое время владельца пароля. Теоретически в подобных случаях более правильно задействовать средства управления доступом, но на практике так никто не поступает; а тайна, которую знают двое, это уже не тайна. Пароль можно угадать «методом грубой силы», используя, скажем, словарь. Если файл паролей зашифрован, но доступен для чтения, его можно скачать к себе на компьютер и попытаться подобрать пароль, запрограммировав полный перебор (предполагается, что алгоритм шифрования известен). Тем не менее позволяют значительно повысить надежность парольной защиты следующие меры: · наложение технических ограничений (пароль должен быть не слишком коротким, он должен содержать буквы, цифры, знаки пунктуации и т.п.); · управление сроком действия паролей, их периодическая смена; · ограничение доступа к файлу паролей; · ограничение числа неудачных попыток входа в систему (это затруднит применение "метода грубой силы"); · обучение пользователей; · использование программных генераторов паролей (такая программа, основываясь на несложных правилах, может порождать только благозвучные и, следовательно, запоминающиеся пароли). Перечисленные меры целесообразно применять всегда, даже если наряду с паролями используются другие методы аутентификации.
Одноразовые пароли
Рассмотренные выше пароли можно назвать многоразовыми; их раскрытие позволяет злоумышленнику действовать от имени легального пользователя. Гораздо более сильным средством, устойчивым к пассивному прослушиванию сети, являются одноразовые пароли. Наиболее известным программным генератором одноразовых паролей является система S/KEY компании Bellcore. Идея этой системы состоит в следующем. Пусть имеется односторонняя функция f (то есть функция, вычислить обратную которой за приемлемое время не представляется возможным). Эта функция известна и пользователю, и серверу аутентификации. Пусть, далее, имеется секретный ключ К, известный только пользователю. На этапе начального администрирования пользователя функция f применяется к ключу К n раз, после чего результат сохраняется на сервере. После этого процедура проверки подлинности пользователя выглядит следующим образом: · сервер присылает на пользовательскую систему число (п-1); · пользователь применяет функцию f к секретному ключу К (п-1) раз и отправляет результат по сети на сервер аутентификации; · сервер применяет функцию f к полученному от пользователя значению и сравнивает результат с ранее сохраненной величиной. В случае совпадения подлинность пользователя считается установленной, сервер запоминает новое значение (присланное пользователем) и уменьшает на единицу счетчик (п). На самом деле, реализация устроена чуть сложнее (кроме счетчика сервер посылает затравочное значение, используемое функцией 0, но для нас сейчас это не важно. Поскольку функция f необратима, перехват пароля, равно как и получение доступа к серверу аутентификации, не позволяет узнать секретный ключ К и предсказать следующий одноразовый пароль. Система S/KEY имеет статус Internet-стандарта (RFC 1938). Другой подход к надежной аутентификации состоит в генерации нового пароля через небольшой промежуток времени (например, каждые 60 секунд), для чего могут использоваться программы или специальные интеллектуальные карты (с практической точки зрения такие пароли можно считать одноразовыми). Серверу аутентификации должен быть известен алгоритм генерации паролей и ассоциированные с ним параметры; кроме того, часы клиента и сервера должны быть синхронизированы.
Сервер аутентификации Kerberos
Kerberos — это программный продукт, разработанный в середине 1980-х годов в Массачусетском технологическом институте и претерпевший с тех пор ряд принципиальных изменений. Клиентские компоненты Kerberos присутствуют в большинстве современных операционных систем. Kerberos предназначен для решения следующей задачи. Имеется открытая (незащищенная) сеть, в узлах которой сосредоточены субъекты — пользователи, а также клиентские и серверные программные системы. Каждый субъект обладает секретным ключом. Чтобы субъект С мог доказать свою подлинность субъекту S (без этого S не станет обслуживать С), он должен не только назвать себя, но и продемонстрировать знание секретного ключа (рис 9.1). Рис. 9.1. Схема формирования доступа
С и s — сведения (например, имя), соответственно, о клиенте и сервере. dl и d2 — дополнительная (по отношению к билету) информация. Tc.s — билет для клиента С на обслуживание у сервера S. Кс и Ks — секретные ключи клиента и сервера. {info}K — информация info, зашифрованная ключом К Приведенная схема — крайне упрощенная версия реальной процедуры проверки подлинности. Более подробное рассмотрение системы Kerberos можно найти, например, в статье В. Галатенко «Сервер аутентификации Kerberos» (Jet Info, 1996, 12-13). Нам же важно отметить, что Kerberos не только устойчив к сетевым угрозам, но и поддерживает концепцию единого входа в сеть.
Идентификация и аутентификация с помощью биометрических данных
Биометрия представляет собой совокупность автоматизированных методов идентификации и/или аутентификации людей на основе их физиологических и поведенческих характеристик. К числу физиологических характеристик принадлежат особенности отпечатков пальцев, сетчатки и роговицы глаз, геометрия руки и лица и т.п. К поведенческим характеристикам относятся динамика подписи (ручной), стиль работы с клавиатурой. На стыке физиологии и поведения находятся анализ особенностей голоса и распознавание речи. Биометрией во всем мире занимаются очень давно, однако долгое время все, что было связано с ней, отличалось сложностью и дороговизной. В последнее время спрос на биометрические продукты, в первую очередь в связи с развитием электронной коммерции, постоянно и весьма интенсивно растет. Это понятно, поскольку, с точки зрения пользователя, гораздо удобнее предъявить себя самого, чем что-то запоминать. Спрос рождает предложение, и на рынке появились относительно недорогие аппаратно-программные продукты, ориентированные в основном на распознавание отпечатков пальцев. В общем виде работа с биометрическими данными организована следующим образом. Сначала создается и поддерживается база данных характеристик потенциальных пользователей. Для этого биометрические характеристики пользователя снимаются, обрабатываются и результат обработки (называемый биометрическим шаблоном) заносится в базу данных (исходные данные, такие как результат сканирования пальца или роговицы, обычно не хранятся). В дальнейшем для идентификации (и одновременно аутентификации) пользователя процесс снятия и обработки повторяется, после чего производится поиск в базе данных шаблонов. В случае успешного поиска личность пользователя и ее подлинность считаются установленными. Для аутентификации достаточно произвести сравнение с одним биометрическим шаблоном, выбранным на основе предварительно введенных данных. Обычно биометрию применяют вместе с другими аутентификатерами, такими, например, как интеллектуальные карты. Иногда биометрическая аутентификация является лишь первым рубежом зашиты и служит для активизации интеллектуальных карт, хранящих криптографические секреты; в таком случае биометрический шаблон хранится на той же карте. Активность в области биометрии очень велика. Организован соответствующий консорциум (см.. http://www.biometrics.org), активно ведутся работы по стандартизации разных аспектов технологии (формата обмена данными, прикладного программного интерфейса и т.п.), публикуется масса рекламных статей, в которых биометрия преподносится как средство обеспечения сверхбезопасности, ставшее доступным широким массам. На наш взгляд, к биометрии следует относиться весьма осторожно. Необходимо учитывать, что она подвержена тем же угрозам, что и другие методы аутентификации. Во-первых, биометрический шаблон сравнивается не с результатом первоначальной обработки характеристик пользователя, а с тем, что пришло к месту сравнения. А, как известно, за время «пути» много чего может произойти. Во-вторых, биометрические методы не более надежны, чем база данных шаблонов. В-третьих, следует учитывать разницу между применением биометрии на контролируемой территории под бдительным оком охраны и в «полевых» условиях, когда, например, к устройству сканирования роговицы могут поднести муляж и т.п. В-четвертых, биометрические данные человека меняются, так что база шаблонов нуждается в сопровождении, что создает определенные проблемы и для пользователей, и для администраторов. Но главная опасность состоит в том, что любая "пробоина" для биометрии оказывается фатальной. Пароли, при всей их ненадежности, в крайнем случае можно сменить. Утерянную аутентификационную карту можно аннулировать и завести новую. Палец же, глаз или голос сменить нельзя. Если биометрические данные окажутся скомпрометированы, придется, как минимум, производить существенную модернизацию всей системы.
Управление доступом
С традиционной точки зрения средства управления доступом позволяют специфицировать и контролировать действия, которые субъекты (пользователи и процессы) могут выполнять над объектами (информацией и другими компьютерными ресурсами). В данном разделе речь идет о логическом управлении доступом, которое, в отличие от физического, реализуется программными средствами. Логическое управление доступом — это основной механизм многопользовательских систем, призванный обеспечить конфиденциальность и целостность объектов и, до некоторой степени, их доступность (путем запрещения обслуживания неавторизованных пользователей). Рассмотрим формальную постановку задачи в традиционной трактовке. Имеется совокупность субъектов и набор объектов. Задача логического управления доступом состоит в том, чтобы для каждой пары «субъект — объект» определить множество допустимых операций (зависящее, быть может, от некоторых дополнительных условий) и контролировать выполнение установленного порядка. Отношение «субъекты — объекты» можно представить в виде матрицы доступа, в строках которой перечислены субъекты, в столбцах — объекты, а в клетках, расположенных на пересечении строк и столбцов, записаны дополнительные условия (например, время и место действия) и разрешенные виды доступа. Фрагмент матрицы представлен в табл.9.1:
Таблица 9.1. Фрагмент матрицы доступа
Примечание:"о" — обозначает разрешение на передачу прав доступа другим пользователям, "г" - чтение, "w" — запись, "е" — выполнение, "а" — добавление информации. Тема логического управления доступом - одна из сложнейших в области информационной безопасности. Дело в том, что само понятие объекта (а тем более видов доступа) меняется от сервиса к сервису. Для операционной системы к объектам относятся файлы, устройства и процессы. Применительно к файлам и устройствам обычно рассматриваются права на чтение, запись, выполнение (для программных файлов), иногда на удаление и добавление. Отдельным правом может быть возможность передачи полномочий доступа другим субъектам (так называемое право владения). Процессы можно создавать и уничтожать. Современные операционные системы могут поддерживать и другие объекты. Для систем управления реляционными базами данных объект — это база данных, таблица, представление, хранимая процедура. К таблицам применимы операции поиска, добавления, модификации и удаления данных, у других объектов иные виды доступа. Разнообразие объектов и применимых к ним операций приводит к принципиальной децентрализации логического управления доступом. Каждый сервис должен сам решать, позволить ли конкретному субъекту ту или иную операцию. Теоретически это согласуется с современным объектно-ориентированным подходом, на практике же приводит к значительным трудностям. Главная проблема в том, что ко многим объектам можно получить доступ с помощью разных сервисов (возможно, при этом придется преодолеть некоторые технические трудности). Так, до реляционных таблиц можно добраться не только средствами СУБД, но и путем непосредственного чтения файлов или дисковых разделов, поддерживаемых операционной системой (разобравшись предварительно в структуре хранения объектов базы данных). В результате при задании матрицы доступа нужно принимать во внимание не только принцип распределения привилегий для каждого сервиса, но и существующие связи между сервисами (приходится заботиться о согласованности разных частей матрицы). Аналогичная трудность возникает при экспорте/импорте данных, когда информация о правах доступа, как правило, теряется (поскольку на новом сервисе она не имеет смысла). Следовательно, обмен данными между различными сервисами представляет особую опасность с точки зрения управления доступом, а при проектировании и реализации разнородной конфигурации необходимо позаботиться о согласованном распределении прав доступа субъектов к объектам и о минимизации числа способов экспорта/импорта данных. Контроль прав доступа производится разными компонентами программной среды — ядром операционной системы, сервисами безопасности, системой управления базами данных, программным обеспечением промежуточного слоя (таким, как монитор транзакций) и т.д. Тем не менее можно выделить общие критерии, на основании которых решается вопрос о предоставлении доступа, и общие методы хранения матрицы доступа. При принятии решения о предоставлении доступа обычно анализируется следующая информация: · идентификатор субъекта (идентификатор пользователя, сетевой адрес компьютера и т.п.); подобные идентификаторы являются основой произвольного (или дискреционного) управления доступом; · атрибуты субъекта (метка безопасности, группа пользователя и т.п.); метки безопасности — основа принудительного (мандатного) управления доступом. Матрицу доступа ввиду ее разреженности (большинство клеток пустые) неразумно хранить в виде двухмерного массива. Обычно ее хранят по столбцам, то есть для каждого объекта поддерживается — список «допущенных» субъектов вместе с их правами. Элементами списков могут быть имена групп и шаблоны субъектов, что служит большим подспорьем администратору. Некоторые проблемы возникают только при удалении субъекта, когда приходится удалять его имя из всех списков доступа; впрочем, эта операция производится нечасто. Списки доступа — исключительно гибкое средство. С их помощью легко выполнить требование о гранулярности прав с точностью до пользователя. Посредством списков несложно добавить права или явным образом запретить доступ (например, чтобы наказать нескольких членов группы пользователей). Безусловно, списки являются лучшим средством произвольного управления доступом. Подавляющее большинство операционных систем и систем управления базами данных реализуют именно произвольное управление доступом. Основное достоинство произвольного управления — гибкость. Вообще говоря, для каждой пары «субъект-объект» можно независимо задавать права доступа (особенно легко это делать, если используются списки управления доступом). К сожалению, у «произвольного» подхода есть ряд недостатков. Рассредоточенность управления доступом ведет к тому, что доверенными должны быть многие пользователи, а не только системные операторы или администраторы. Из-за рассеянности или некомпетентности сотрудника, владеющего секретной информацией, эту информацию могут узнать и все остальные пользователи. Следовательно, произвольность управления должна быть дополнена жестким контролем за реализацией избранной политики безопасности. Второй недостаток, который представляется основным, состоит в том, что права доступа существуют отдельно от данных. Ничто не мешает пользователю, имеющему доступ к секретной информации, записать ее в доступный всем файл или заменить полезную утилиту ее «троянским» аналогом. Подобная «разделенность» прав и данных существенно осложняет проведение несколькими системами согласованной политики безопасности и, главное, делает практически невозможным эффективный контроль согласованности. Возвращаясь к вопросу представления матрицы доступа, укажем, что для этого можно использовать также функциональный способ, когда матрицу не хранят в явном виде, а каждый раз вычисляют содержимое соответствующих клеток. Например, при принудительном управлении доступом применяется сравнение меток безопасности субъекта и объекта. Удобной надстройкой над средствами логического управления доступом является ограничивающий интерфейс, когда пользователя лишают самой возможности попытаться совершить несанкционированные действия, включив в число видимых ему объектов только те, к которым он имеет доступ. Подобный подход обычно реализуют в рамках системы меню (пользователю показывают лишь допустимые варианты выбора) или посредством ограничивающих оболочек, таких как restricted shell в ОС Unix. В заключение подчеркнем важность управления доступом не только на уровне операционной системы, но и в рамках других сервисов, входящих в состав современных приложений, а также, насколько это возможно, на «стыках» между сервисами. Здесь на первый план выходит существование единой политики безопасности организации, а также квалифицированное и согласованное системное администрирование.
Ролевое управление доступом
При большом количестве пользователей традиционные подсистемы управления доступом становятся крайне сложными для администрирования. Число связей в них пропорционально произведению количества пользователей и количества объектов. Необходимы решения в объектно-ориентированном стиле, способные эту сложность понизить. Таким решением является ролевое управление доступом (РУД). Суть его в том, что между пользователями и их привилегиями появляются промежуточные сущности — роли. Для каждого пользователя одновременно могут быть активными несколько ролей, каждая из которых дает ему определенные права (рис. 9.2). Ролевой доступ нейтрален по отношению к конкретным видам прав и способам их проверки; его можно рассматривать как объектно-ориентированный каркас, облегчающий администрирование, поскольку он позволяет сделать подсистему разграничения доступа управляемой при сколь угодно большом числе пользователей, прежде всего за счет установления между ролями связей, аналогичных наследованию в объектно-ориентированных системах. Кроме того, ролей должно быть значительно меньше, чем пользователей. В результате число администрируемых связей становится пропорциональным сумме (а не произведению) количества пользователей и объектов, что по порядку величины уменьшить уже невозможно. Ролевой доступ развивается более 10 лет (сама идея ролей, разумеется, значительно старше) как на уровне операционных систем, так и в рамках СУБД и других информационных сервисов. В частности, существуют реализации ролевого доступа для Web-серверов. В 2001 г. Национальный институт стандартов и технологий США предложил проект стандарта ролевого управления доступом (см. http://csrc.nist.gov/rbac/), основные положения которого мы и рассмотрим. Ролевое управление доступом оперирует следующими основными понятиями: · пользователь (человек, интеллектуальный автономный агент и т.п.); · сеанс работы пользователя; · роль (обычно определяется в соответствии с организационной структурой); · объект (сущность, доступ к которой разграничивается; например, файл ОС или таблица СУБД); · операция (зависит от объекта; для файлов ОС — чтение, запись, выполнение и т.п.; для таблиц СУБД — вставка, удаление и т.п., для прикладных объектов операции могут быть более сложными); · право доступа (разрешение выполнять определенные операции над определенными объектами). Ролям приписываются пользователи и права доступа; можно считать, что они (роли) именуют отношения «многие ко многим» между пользователями и правами. Роли могут быть приписаны многим пользователям; один пользователь может быть приписан нескольким ролям. Во время сеанса работы пользователя активизируется подмножество ролей, которым он приписан, в результате чего он становится обладателем объединения прав, приписанных активным ролям. Одновременно пользователь может открыть несколько сеансов. Между ролями может быть определено отношение частичного п
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|