Как сделать разграничение доступа и защита данных

Обновлено: 16.05.2024

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

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

Владелец объекта – субъект, который создал объект несет ответственность за конфиденциальность информации, содержащейся в объекте, и за доступ к нему.

Право доступа к объекту – право на доступ к объекту по одному или нескольким методам доступа.

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

Модели разграничения доступа

Наиболее распространенные модели разграничения доступа:

  • дискреционная (избирательная) модель разграничения доступа;
  • полномочная (мандатная) модель разграничения доступа.

Дискреционная модель характеризуется следующими правилами:

Готовые работы на аналогичную тему

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

В дискреционной модели определение прав доступа хранится в матрице доступа: в строках перечислены субъекты, а в столбцах – объекты. В каждой ячейке матрицы хранятся права доступа данного субъекта к данному объекту. Матрица доступа современной операционной системы занимает десятки мегабайт.

Полномочная модель характеризуется следующими правилами:

  • каждый объект обладает грифом секретности. Гриф секретности имеет числовое значение: чем оно больше, тем выше секретность объекта;
  • у каждого субъекта доступа есть уровень допуска.

Допуск к объекту в этой модели субъект получает только в случае, когда у субъекта значение уровня допуска не меньше значения грифа секретности объекта.

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

Методы разграничения доступа

Виды методов разграничения доступа:

Разграничение доступа по спискам

Суть метода состоит в задании соответствий: для каждого пользователя задается список ресурсов и права доступа к ним или для каждого ресурса определяется список пользователей и права доступа к этим ресурсам. С помощью списков возможно установление прав с точностью до каждого пользователя. Возможен вариант добавления прав или явного запрета доступа. Метод доступа по спискам используется в подсистемах безопасности операционных систем и систем управления базами данных.

Использование матрицы установления полномочий

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

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

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

Разграничение доступа по уровням секретности и категориям

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

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

Парольное разграничение доступа

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

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


Есть разные способы показать пользователю только те данные, которые ему нужны. Row level security — один из самых универсальных, простых и надежных. Прочитав эту статью, ты поймешь, что это несложно, и научишься организовывать разграничение доступа к записям средствами самой БД без особого ущерба для производительности.

Механизм row level security позволяет реализовать разграничение доступа к данным средствами базы данных прозрачно для работающих с ней приложений. Даже если злоумышленник получил прямой доступ к базе, например под учетной записью владельца схемы с данными, RLS может не дать ему увидеть защищенную информацию. Политики RLS позволяют убирать строки из выборки целиком или скрывать значения столбцов для строк, к которым пользователь не имеет доступа. В этом отличие от обычного управления правами в БД, которые можно выдать только на объект целиком.

Как это работает? При выполнении любого запроса к базе планировщик проверяет, есть ли для этих таблиц политики доступа. Если есть, он вычисляет на основе каждой политики дополнительный предикат, который добавляет к запросу. Предикаты могут быть любой сложности. Например, вот такими:

Плюс в том, что предикаты работают для любых запросов, в том числе сделанных через инструменты администрирования (SQL Developer, Toad, PgAdmin и так далее) и даже при экспорте дампов. Это единый механизм управления доступом для всех приложений на уровне ядра СУБД. Почему он не так часто используется на практике? Вот несколько причин.

  • Людей, которые умеют работать с базами на достаточном уровне, много меньше, чем обычных программистов. Часто проще и дешевле реализовать механизмы контроля доступа в слое приложения.
  • Прозрачность. Если RLS выключен, это может обнаружиться не сразу. Приложения продолжат работать нормально, но будут выдавать данных больше, чем нужно. Само по себе это не страшно, но при плохих процессах и в сочетании с предыдущим пунктом чревато проблемами.
  • Дополнительный расход ресурсов на выполнение запроса. Обычно этот фактор не играет решающей роли. Если RLS действительно нужен, его включают и принимают чуть более медленную работу как данность. Но при неумелом применении можно тратить на RLS в разы больше, чем на полезную работу.

В общем, row level security — это инструмент для централизованного управления доступом к данным. Он реализован во многих современных СУБД — например, Oracle, PostgreSQL и MS SQL Server. В этой статье я покажу, как это работает в первых двух.

Oracle

Начнем с реализации RLS в Oracle и сразу нырнем в практику.

Пример для Oracle

Мы попробуем реализовать простую политику на стандартной схеме HR. Обычный пользователь может видеть только свои данные. Руководитель департамента может видеть все данные по департаменту. Для этого нам понадобится:

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

Мы будем считать, что приложение подключается к базе под учетной записью пользователя HR и в этой программе есть инструмент аутентификации, который позволяет понять, какой именно из сотрудников с ней работает. Данные о том, какой сотрудник подключен, мы будем сохранять в контексте — специальном key-value хранилище атрибутов, управляющих приложениями. Можно использовать стандартный CLIENT_IDENTIFIER , но мы создадим свой собственный. Для этого придется создать и пакет, который будет с ним работать.

Для начала создадим от имени привилегированного пользователя контекст и сразу укажем, какой пакет может его менять:

Создаем пакет для работы с контекстом:

Теперь p_sec_context.set_employee будет использоваться приложением, чтобы задать код сотрудника в таблице EMPLOYEES , который работает в этой сессии БД.

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

При использовании CLIENT_IDENTIFIER вместо p_sec_context.set_employee нужно указать dbms_session.set_identifier .

Продолжение доступно только участникам

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

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

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

Какими бывают политики управления доступом к данным

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

Сегодня наиболее распространены следующие:

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

3. Ролевое управление доступом. Данная политика предусматривает модернизированную версию избирательной. Предусматривает группировку прав доступа нескольких субъектов, за счет чего появляются своеобразные роли, то есть определенная совокупность прав доступа. Благодаря этому значительно упрощается процедура назначения прав, выдаваемых сразу большому количеству пользователей, а также возможность их удобной корректировки по необходимости. Благодаря этому уполномоченные сотрудники компании могут в любой момент усовершенствовать текущую политику информационной безопасности компании.

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

Принципы управления политикой доступа

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

Стандартные принципы разграничения выглядят следующим образом:

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

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

В результате вычисления тех или иных правил в итоге может быть вынесено одно из четырех решений:

  • разрешение;
  • запрет;
  • не определено (не относится ни к одному из вышеперечисленных);
  • неприменимо (не относится ни к одному из вышеперечисленных).

Комбинации правил

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

Они могут быть следующими:

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

Полнофункциональное ПО без ограничений по пользователям и функциональности.


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

  • мандатное разграничение доступа;
  • дискреционное (избирательное) разграничение доступа.

Мандатное разграничение доступа

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


Дискреционное разграничение доступа

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

Владелец

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

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

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

Привилегии

Другим понятием, возникающим в реализациях дискреционной модели доступа, является понятие привилегии на определенный метод доступа. Говорят, что субъект имеет некоторую привилегию, если он имеет право на доступ по некоторому методу ко всем объектам, поддерживающим данный метод доступа.

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

Ролевая модель

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

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

Читайте также: