Для чего используется механизм разграничения доступа на уровне субд

Обновлено: 30.06.2024

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

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

SElinux

Зачастую двигателем к прогрессу в компьютерных технологиях, а особенно в информационной безопасности выступают военные ведомства. Существующие в операционных системах стандартные стратегии контроля за доступом не удовлетворяли военных США. Поэтому Агентство Национальной Безопасности взяло этот вопрос под свой контроль и организовало разработку новой операционной системы SELinux (Security-Enhanced Linux), которая бы обеспечивала высочайший уровень безопасности на основе отработанных годами в государственных структурах моделей контроля доступа к секретным документам. В результате появилась система Мандатного Управления Доступом. Разработками занимались компании Secure Computing Corporation и MITRE, результатом их работы, как уже говорилось выше, стала ОС SELinux. Она был выпущена, как общедоступный продукт по лицензии GPL.

Мандатное управление доступом (Mandatory Access Control, MAC) - это система разграничения доступа на основе уровня доступа субъекта (конфиденциально, секретно, совершенно секретно) и защитной метки объекта. Смысл в том, что субъект может получить доступ к тем объектам, у которых метка безопасности имеет тот же уровень или ниже, что и у объекта.

Субъект - это пользователь, вернее процесс, который он инициализирует.

Объект - это файл, программа, база данных и любой из ее объектов, даже сетевой пакет.

Также предусмотрена иерархическая структура уровней доступа (конфиденциально, секретно, совершенно секретно).

Всем субъектам и объектам назначаются так называемые метки - значение уровня доступа у субъекта и значение уровня конфиденциальности для объекта.

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

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

Мандатный контроль доступа имеет две формы:

1) Многоуровневая система безопасности (MLS) - это первая реализация MAC, которую многие называют классической. Она как раз-таки описывает вертикальную структуру уровней безопасности, которую мы рассмотрели выше.

Наиболее известным примером MLS является модель Белла - Лападулы, разработанная в 1973 году для U.S.AirForce.

Вся суть этой модели отражена в схеме:

Bell-Lapadula model

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

Хоть данная схема и предусматривает возможность субъектом с низким уровнем доступа записи данных в объект с высоким уровнем секретности, фактически это не работает, так как “секретные” файлы попросту не видны в каталоге.

2) Многосторонние системы безопасности (Multilateral security systems)

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

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

Модель секционирования (Compartmentation): Данная модель уходит корнями еще во времена Второй Мировой войны. Тогда она использовалась разведкой. Она основана на использовании кодовых слов и классификаций для разграничения доступа. Такая модель имеет ряд недостатков. Распространение кодовых слов приводит к появлению большого количества секций, особенно на уровнях классификации выше Совершенно секретно. Каждое сочетание кодовых слов дает новую секцию. В итоге их количество может быть огромным, и управление ими становится затруднительным.

Модель “Китайская стена”. Принципы этой модели строятся на опыте бизнес отношений. Согласно этой модели субъект может иметь доступ к информации, которая не входит в конфликт с информацией, с которой он работал ранее. Но изначально субъект может получить доступ к любой информации. Таким образом информация анализируется на предмет конфликта интересов. Если запрашиваемая информация входит в ту же группу конфликта интересов, что и предыдущая, то субъект получит отказ.

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

Основные принципы этой модели:

У каждого пациента будет несколько записей;

Каждая запись имеет список контроля доступа;

Любое изменение в списке контроля доступа возможно с одобрения пациента;

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

Преимущества и недостатки MAC

Как и любая система безопасности, MAC имеет плюсы и минусы. Рассмотрим их кратко.

Высокая степень надежности. Практически исключен взлом;

Автоматизированная проверка и обеспечение прав доступа;

Данные не могут быть изменены несанкционированно.

Требует много планирования;

Так как система MAC достаточно громоздкая, администраторы сильно загружены. Необходимо регулярно проверять назначение прав доступа;

Долгий и дорогостоящий процесс перехода на MAC, например с DAC.

Где применяется MAC

Изначально мандатное управление доступом было реализовано в специализированной операционной системе SELinux на основе архитектуры Flux Advanced Security Kernel (FLASK). Позже она появилась в FreeBSD Unix, SUSELinux и даже в распространенной Ubuntu Linux (AppArmor).

Мандатное управление доступом в России является отличительной чертой систем защиты Государственной тайны. Astra Linux Special Edition соответствует всем требованиям к системам обеспечивающим защиту данных уровня “совершенно секретно”. Поэтому она применяется в государственных структурах силовых ведомств и не только.

Как обеспечить мандатное управление доступом к отчетам FastReport

Так как отчеты в генераторах отчетов FastReport - это по сути файлы шаблонов, которые наполняются данными из баз данных, файлов или кода приложения, то для регулирования доступа к получению отчётов достаточно лишь ограничить доступ субъекта к шаблонам. Это относится к файлам шаблонов отчетов всей продукции компании Fast Reports.

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

Можно выделить три сценария использования мандатной системы управления доступом в отношении отчетов:

  • Управление доступом к файлам шаблонов отчетов;
  • Управление доступом к данным;
  • Управление доступом к полученным, сформированным отчётам.

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

Вторая часть реализуется средствами СУБД. При создании подключения к источнику данных в отчете, вы заполняете помимо прочих поля: имя пользователя и пароль. Таким образом СУБД узнает какой пользователь системы пытается запросить доступ к базе данных или к конкретной таблице. При этом вы получите ошибку доступа к данным, сгенерированную при построении отчета.

Подводя итоги статьи хочется отметить нарастающий в последнее время интерес к системам мандатного управления доступом со стороны IT-комьюнити. Несомненно, появление операционной системы Astra Linux Special Edition и ее внедрение во многих государственных, получастных и частных предприятиях, где требуется соблюдение секретности – вот основные факторы популяризации MAC в России.

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