Проблема разграничения доступа к информации существовала испокон веков. Полководцы хотели сберечь свои планы о наступлении, торговцы скрывали свои доходы, а революционеры - заговоры. Перед всеми ними стоял вопрос: как избежать утечки информации? Полного решения этой проблемы не существует и по сей день. Однако, некоторые современные стратегии управления доступом обеспечивают очень высокий уровень безопасности информации.
С приходом эпохи компьютеров озвученная проблема встала особо остро. В поисках решения было разработано множество систем управления доступом, которые использовали и новые и старые знания и наработки в этой области. На сегодняшний день наиболее надежной с точки зрения защиты информации считается мандатная система управления доступом, о которой мы и поговорим в этой статье.
Зачастую двигателем к прогрессу в компьютерных технологиях, а особенно в информационной безопасности выступают военные ведомства. Существующие в операционных системах стандартные стратегии контроля за доступом не удовлетворяли военных США. Поэтому Агентство Национальной Безопасности взяло этот вопрос под свой контроль и организовало разработку новой операционной системы SELinux (Security-Enhanced Linux), которая бы обеспечивала высочайший уровень безопасности на основе отработанных годами в государственных структурах моделей контроля доступа к секретным документам. В результате появилась система Мандатного Управления Доступом. Разработками занимались компании Secure Computing Corporation и MITRE, результатом их работы, как уже говорилось выше, стала ОС SELinux. Она был выпущена, как общедоступный продукт по лицензии GPL.
Мандатное управление доступом (Mandatory Access Control, MAC) - это система разграничения доступа на основе уровня доступа субъекта (конфиденциально, секретно, совершенно секретно) и защитной метки объекта. Смысл в том, что субъект может получить доступ к тем объектам, у которых метка безопасности имеет тот же уровень или ниже, что и у объекта.
Субъект - это пользователь, вернее процесс, который он инициализирует.
Объект - это файл, программа, база данных и любой из ее объектов, даже сетевой пакет.
Также предусмотрена иерархическая структура уровней доступа(конфиденциально, секретно, совершенно секретно).
Всем субъектам и объектам назначаются так называемые метки - значение уровня доступа у субъекта и значение уровня конфиденциальности для объекта.
Каждый раз, когда субъект запрашивает объект происходит проверка соответствия меток и принимается решение о разрешении или запрете доступа. Так как структура уровней доступа иерархическая, то субъект имеет доступ к объектам соответствующего уровня конфиденциальности, а также ко всем другим уровням, находящимся по иерархии ниже. Проверка уровня доступа это вертикальная безопасность, но в MAC предусмотрена и горизонтальная. В дополнение к уровням безопасности, существуют категории. Благодаря им можно разграничивать доступ среди субъектов с одинаковым уровнем доступа. Тут нужно сказать, что категории - это не обязательная часть MAC, а лишь дополнительная возможность управления доступами.
Субъекты не могут наделять правами доступа другие субъекты. Это может делать либо администратор, либо специальное лицо, обладающее знаниями о необходимых правах для пользователей (как правило сотрудник безопасности).
1) Многоуровневая система безопасности (MLS) - это первая реализация MAC, которую многие называют классической. Она как раз-таки описывает вертикальную структуру уровней безопасности, которую мы рассмотрели выше.
Наиболее известным примером MLS является модель Белла - Лападулы, разработанная в 1973 году для U.S.AirForce.
Вся суть этой модели отражена в схеме:
Из схемы видно, что субъект с высоким уровнем доступа имеет право на запись и чтение объекта с высоким уровнем конфиденциальности. Он также может читать документы с более низким уровнем конфиденциальности, но не изменять. В свою очередь субъект с низким уровнем доступа может читать и записывать в объект с низким уровнем конфиденциальности. Чтение объектов с высоким уровнем конфиденциальности ему запрещено, но разрешена запись.
Хоть данная схема и предусматривает возможность субъектом с низким уровнем доступа записи данных в объект с высоким уровнем секретности, фактически это не работает, так как “секретные” файлы попросту не видны в каталоге.
2) Многосторонние системы безопасности (Multilateral security systems)
Эта форма более сложная. Помимо вертикального уровня безопасности с политикой конфиденциальности, накладывается и горизонтальный уровень безопасности. Он нужен для разграничения доступа внутри одного уровня доступа. Зачастую это просто необходимо даже в рамках одного отдела в компании. Имея один уровень доступа к секретным документам, нужно ограничить знания о каких-либо проектах. Для этого используется сегментирование, которое в свою очередь образует группы, или категории. Как показала практика, многосторонняя безопасность во многих случаях имеет большее значение, чем многоуровневая. Пренебрежение рисками утечки информации на одном уровне не раз приводило к громким провалам в мировой практике.
Но, как уже говорилось выше, многосторонняя система безопасности сложнее. За время ее существования был разработан ряд моделей организации безопасного доступа к данным. Три основные из них:
Модель секционирования (Compartmentation): Данная модель уходит корнями еще во времена Второй Мировой войны. Тогда она использовалась разведкой. Она основана на использовании кодовых слов и классификаций для разграничения доступа. Такая модель имеет ряд недостатков. Распространение кодовых слов приводит к появлению большого количества секций, особенно на уровнях классификации выше Совершенно секретно. Каждое сочетание кодовых слов дает новую секцию. В итоге их количество может быть огромным, и управление ими становится затруднительным.
Модель “Китайская стена”. Принципы этой модели строятся на опыте бизнес отношений. Согласно этой модели субъект может иметь доступ к информации, которая не входит в конфликт с информацией, с которой он работал ранее. Но изначально субъект может получить доступ к любой информации. Таким образом информация анализируется на предмет конфликта интересов. Если запрашиваемая информация входит в ту же группу конфликта интересов, что и предыдущая, то субъект получит отказ.
Британская медицинская ассоциация (BMA) представила свою модель управления доступом. Суть ее в том, что для определенных категорий субъект данных должен сам давать согласие на доступ, либо - запрет. Таким образом решение по управлению доступом принимает не централизованный орган, а субъект.
Основные принципы этой модели:
У каждого пациента будет несколько записей;
Каждая запись имеет список контроля доступа;
Любое изменение в списке контроля доступа возможно с одобрения пациента;
Должны быть предприняты меры противодействия по сбору личной информации о пациенте (в том числе и здоровье).
Как и любая система безопасности, MAC имеет плюсы и минусы. Рассмотрим их кратко.
Плюсы:
Высокая степень надежности. Практически исключен взлом;
Автоматизированная проверка и обеспечение прав доступа;
Данные не могут быть изменены несанкционированно.
Минусы:
Требует много планирования;
Так как система MAC достаточно громоздкая, администраторы сильно загружены. Необходимо регулярно проверять назначение прав доступа;
Долгий и дорогостоящий процесс перехода на MAC, например с DAC.
Изначально мандатное управление доступом было реализовано в специализированной операционной системе SELinux на основе архитектуры Flux Advanced Security Kernel (FLASK). Позже она появилась в FreeBSD Unix, SUSELinux и даже в распространенной Ubuntu Linux (AppArmor).
Среди отечественных операционных систем MAC поддерживается в Astra Linux Special Edition. В дополнение к мандатной безопасности в ОС, в поставке Astra Linux имеется СУБД с мандатным управлением доступом - PostgreSQL Pro. Эта СУБД была специально доработана для поддержки MAC. Начиная с версии 9.4 поддерживается ДП-модель управления доступом (ДП-модель — модель логического управления доступом «Д» и информационными потоками «П»). В рамках MAC СУБД управляет доступом к ресурсам баз данных используя определенные в ОС метки доступа и конфиденциальности. Однако PostgreSQL Pro не единственная отечественная СУБД, поддерживающая MAC. СУБД ЛИНТЕР тоже обеспечивает мандатное управление доступом к данным на уровне таблиц, столбцов и полей данных. единственной отечественной СУБД, поддерживающей MAC.
Мандатное управление доступом в России является отличительной чертой систем защиты Государственной тайны. Astra Linux Special Edition соответствует всем требованиям к системам обеспечивающим защиту данных уровня “совершенно секретно”. Поэтому она применяется в государственных структурах силовых ведомств и не только.
Так как отчеты в генераторах отчетов FastReport - это по сути файлы шаблонов, которые наполняются данными из баз данных, файлов или кода приложения, то для регулирования доступа к получению отчётов достаточно лишь ограничить доступ субъекта к шаблонам. Это относится к файлам шаблонов отчетов всей продукции компании Fast Reports.
И хотя генераторы отчетов FastReport не имеют собственной реализации MAC, они легко вписываются в операционные системы с мандатным управлением доступом.
Можно выделить три сценария использования мандатной системы управления доступом в отношении отчетов:
Первая и третья части реализуются штатными средствами операционной системы при включенной MAC. То есть на шаблоны отчетов и на документы устанавливается метка уровня доступа. Таким образом, при попытке запустить отчет на построение или на просмотр сначала будет проверен процесс, запрашивающий доступ к файлу. Если уровень доступа пользователя системы, от имени которого запущен данный процесс, имеет соответствующий или высший уровень доступа, то отчет будет построен (или, соответственно, выдан на просмотр). В противном случае – пользователь получит ошибку типа: «Не найден файл», ведь система попросту скроет от пользователя не положенные ему «по статусу» файлы.
Не только файлу можно задавать метки конфиденциальности, но и папкам. А значит – вы можете ограничить доступ сразу к группе отчетов или документов. Для построения отчетов используются либо штатные приложения из поставки генератора отчетов, либо пользовательские. Если вам нужно разграничить доступ к построению отчетов в принципе, то логичным будет установить соответствующую метку на исполняемый файл программы.
Вторая часть реализуется средствами СУБД. При создании подключения к источнику данных в отчете, вы заполняете помимо прочих поля: имя пользователя и пароль. Таким образом СУБД узнает какой пользователь системы пытается запросить доступ к базе данных или к конкретной таблице. При этом вы получите ошибку доступа к данным, сгенерированную при построении отчета.
Все три способа применения MAC в отношении отчетов вызовет исключение в программе в случае попытки несанкционированного доступа к файлу отчета или к данным. Зная эти исключения, было бы правильным все же создать собственный просмотрщик (Viewer) отчетов, в котором можно обработать эти исключения и выдавать пользователю более уместные сообщения. В остальном же, можно смело сказать, что нет никаких сложностей в использовании генераторов отчетов FastReport в операционных системах с настроенной системой мандатного управления доступом. В частности, если говорить о Linux системах с поддержкой MAC, то в них возможно использование нескольких генераторов отчетов: FastReport Core, FastReport Mono, FastReport Open Source и FastReport VCL.
Подводя итоги статьи хочется отметить нарастающий в последнее время интерес к системам мандатного управления доступом со стороны IT-комьюнити. Несомненно, появление операционной системы Astra Linux Special Edition и ее внедрение во многих государственных, получастных и частных предприятиях, где требуется соблюдение секретности – вот основные факторы популяризации MAC в России.