Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

От проникновения в целях дезорганизации их работы и НСД к информации




 

Определим ряд понятий, необходимых в дальнейшем.

Объект — пассивный компонент системы, единица ресурса автоматизированной системы (устройство, диск, каталог, файл и т.п.), доступ к которому регламентируется правилами разграничения доступа.

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

Доступ к информации — ознакомление с информацией (копирование, тиражирование), ее модификация (корректировка) или уничтожение (удаление).

Доступ к ресурсу — получение субъектом возможности манипулировать (использовать, управлять, изменять характеристики и т.п.) данным ресурсом.

Правила разграничения доступа — совокупность правил, регламентирующих права доступа субъектов к объектам в некоторой системе.

Разграничение доступа к ресурсам АС — порядок использования ресурсов автоматизированной системы, при котором субъекты получают доступ к объектам в строгом соответствии с установленными правилами.

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

Несанкционированный доступ (НСД ) — доступ субъекта к объекту в нарушение установленных в системе правил разграничения доступа.

Несанкционированное действие —действие субъекта в нарушение установленных в системе правил обработки информации.

Для реализации приведенных выше мер защиты компьютерных систем используются универсальные механизмы защиты информации [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. Фрагмент матрицы доступа

  Файл Программа Линия связи Реляцион­ная таблица
Пользователь_1 orw с системной консоли е rw с 8:00 до 18:00  
Пользователь_2       а

Примечание:"о" — обозначает разрешение на передачу прав доступа другим пользователям, "г" - чтение, "w" — запись, "е" — выполнение, "а" — добавление информации.

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

Для систем управления реляционными базами данных объект — это база данных, таблица, представление, хранимая процедура. К таблицам применимы операции поиска, добавления, модификации и удаления данных, у других объектов иные виды доступа.

Разнообразие объектов и применимых к ним операций приводит к принципиальной децентрализации логического управления доступом. Каждый сервис должен сам решать, позволить ли конкретному субъекту ту или иную операцию. Теоретически это согласуется с современным объект­но-ориентированным подходом, на практике же приводит к значительным трудностям. Главная проблема в том, что ко многим объектам можно полу­чить доступ с помощью разных сервисов (возможно, при этом придется преодолеть некоторые технические трудности). Так, до реляционных таб­лиц можно добраться не только средствами СУБД, но и путем непосредст­венного чтения файлов или дисковых разделов, поддерживаемых операци­онной системой (разобравшись предварительно в структуре хранения объ­ектов базы данных). В результате при задании матрицы доступа нужно при­нимать во внимание не только принцип распределения привилегий для каждого сервиса, но и существующие связи между сервисами (приходится заботиться о согласованности разных частей матрицы). Аналогичная труд­ность возникает при экспорте/импорте данных, когда информация о пра­вах доступа, как правило, теряется (поскольку на новом сервисе она не имеет смысла). Следовательно, обмен данными между различными серви­сами представляет особую опасность с точки зрения управления доступом, а при проектировании и реализации разнородной конфигурации необхо­димо позаботиться о согласованном распределении прав доступа субъектов к объектам и о минимизации числа способов экспорта/импорта данных.

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

При принятии решения о предоставлении доступа обычно анализи­руется следующая информация:

· идентификатор субъекта (идентификатор пользователя, сете­вой адрес компьютера и т.п.); подобные идентификаторы явля­ются основой произвольного (или дискреционного) управле­ния доступом;

· атрибуты субъекта (метка безопасности, группа пользователя и т.п.); метки безопасности — основа принудительного (мандат­ного) управления доступом.

Матрицу доступа ввиду ее разреженности (большинство клеток пустые) неразумно хранить в виде двухмерного массива. Обычно ее хра­нят по столбцам, то есть для каждого объекта поддерживается — список «до­пущенных» субъектов вместе с их правами. Элементами списков могут быть имена групп и шаблоны субъектов, что служит большим подспорь­ем администратору. Некоторые проблемы возникают только при удале­нии субъекта, когда приходится удалять его имя из всех списков доступа; впрочем, эта операция производится нечасто.

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

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

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

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

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

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

 

Ролевое управление доступом

 

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

Таким решением является ролевое управление доступом (РУД). Суть его в том, что между пользователями и их привилегиями появляются про­межуточные сущности — роли. Для каждого пользователя одновременно могут быть активными несколько ролей, каждая из которых дает ему оп­ределенные права (рис. 9.2).

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

Ролевой доступ развивается более 10 лет (сама идея ролей, разумеет­ся, значительно старше) как на уровне операционных систем, так и в рам­ках СУБД и других информационных сервисов. В частности, существуют реализации ролевого доступа для Web-серверов.

В 2001 г. Национальный институт стандартов и технологий США предложил проект стандарта ролевого управления доступом (см. http://csrc.nist.gov/rbac/), основные положения которого мы и рассмотрим.

Ролевое управление доступом оперирует следующими основными понятиями:

· пользователь (человек, интеллектуальный автономный агент и т.п.);

· сеанс работы пользователя;

· роль (обычно определяется в соответствии с организационной структурой);

· объект (сущность, доступ к которой разграничивается; напри­мер, файл ОС или таблица СУБД);

· операция (зависит от объекта; для файлов ОС — чтение, запись, выполнение и т.п.; для таблиц СУБД — вставка, удаление и т.п., для прикладных объектов операции могут быть более сложными);

· право доступа (разрешение выполнять определенные операции над определенными объектами).

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

Между ролями может быть определено отношение частичного п

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...