СПОСОБ ПРОВЕДЕНИЯ РАЗДЕЛЕНИЯ ОБЪЕКТОВ БАЗЫ ДАННЫХ НА ОСНОВЕ МЕТОК КОНФИДЕНЦИАЛЬНОСТИ
METHOD FOR SEPARATING DATABASE OBJECTS BASED ON PRIVACY LABELS

ОБЛАСТЬ ТЕХНИКИ
Техническое решение относится к области обработки цифровых данных с помощью электрических устройств, а именно рассматривает способ и устройство для обработки данных с воздействием на порядок их расположения или на содержание обрабатываемых данных - предлагается способ постраничного разделения записей базы данных на основе меток конфиденциальности, в котором каждому субъекту (пользователь, процесс) назначен один из уровней доступа, а каждому объекту (запись) - одна из меток конфиденциальности, метки конфиденциальности разделены на группы, каждой странице запоминающего устройства назначена группа конфиденциальности, каждая страница может хранить только те объекты (записи), которые относятся к назначенной группе конфиденциальности.
УРОВЕНЬ ТЕХНИКИ
Из уровня техники известны следующие системы управлениями базами данных, поддерживающие мандатное управление доступом на уровне строк: Oracle Database, PostgreSQL, Microsoft SQL Server.
- Oracle Database или Oracle RDBMS - объектно-реляционная система управления базами данных компании Oracle, обеспечивающая многоуровневое управление доступа к данным в дополнении Oracle Label Security).
- PostgreSQL - объектно-реляционная система управления базами данных с открытым исходным кодом, поддерживающая мандатное управление доступом с помощью загружаемого модуля sepgsql
- Microsoft SQL Server - система управления реляционными базами данных (РСУБД), разработанная корпорацией Microsoft. Начиная с версии SQL Server 2016 эта СУБД обеспечивает безопасность на уровне строк
Указанные выше продукты обеспечивают хранение и использование меток конфиденциальности для записей базы данных, хранят записи в страницах на запоминающем устройстве, но не предоставляют механизм распределения записей по страницам запоминающего устройства на основании значений меток.
Из уровня техники известно US 7539682 B2 «MultiIevel secure database», патентообладатель Microsoft Corporation, в котором, помимо всего прочего, описывается способ организации безопасности на уровне строк (Row level security (RLS)) и на уровне ячеек (cell level security (CLS)) при помощи представлений СУБД. Способ никак не рассматривает вопросы расположения объектов на запоминающем устройстве.
Из уровня техники известно US 7240046 B2 «Row-level security in a relational database management system», патентообладатель International Business Machines Corporation, в котором описывается система и метод контроля доступа к объектам базы данных на основе интегрированных в запись меток безопасности. Описанные система и метод не рассматривают вопросы размещения объектов на запоминающем устройстве.
СУЩНОСТЬ ТЕХНИЧЕСКОГО РЕШЕНИЯ
Данное техническое решение направлено на устранение недостатков, присущих существующим аналогам.
Технический результат от использования данного технического решения заключается в повышении надежности СУБД и предотвращении несанкционированного доступа к объектам в БД.
Данный технический результат достигается за счет групповой обработки страницы запоминающего устройства на основании информации о назначенной группе конфиденциальности.
В одном из предпочтительных вариантов реализации предложен способ проведения разделения объектов базы данных на основе меток конфиденциальности, характеризующийся тем, что: генерируют для каждого объекта в базе данных метку конфиденциальности, характеризующую уровень конфиденциальности информации, содержащейся в объекте; формируют для каждой страницы памяти запоминающего устройства, хранящего базу данных, параметр, идентифицирующий группу конфиденциальности, связанную с упомянутыми метками конфиденциальности, причем каждая страница памяти хранит только те объекты базы данных, которые относятся к назначенной группе конфиденциальности; определяют запрос на предоставление доступа к объектам базы данных, содержащий данные об уровне конфиденциальности; осуществляют сравнение информации, полученной в запросе на доступ, с информацией, содержащейся в упомянутых метках конфиденциальности; определяют на основании выполненного сравнения меток конфиденциальности соответствующую одну или более групп конфиденциальности и связанные с ними страницы памяти запоминающего устройства.
При операциях создания новых объектов базы данных производится поиск свободных страниц памяти запоминающего устройства с соответствующей группой конфиденциальности, если нет ни одной страницы памяти, удовлетворяющих этому условию, то выделяется пустая страница памяти, которой назначают необходимую группу, и в нее производят запись нового объекта базы данных.
При операциях создания новых объектов базы данных производится поиск свободных страниц памяти запоминающего устройства с соответствующей группой конфиденциальности и в найденную страницу памяти запоминающего устройства производят запись нового объекта базы данных.
При операциях изменения уже хранящегося в базе данных объекта определяют возможность изменения метки конфиденциальности данного объекта перед данной операцией.
Состав групп конфиденциальности может адаптироваться с учетом накопленной статистики по частоте использования конкретных меток доступа.
Каждая из групп конфиденциальности может состоять только из одного значения.
Операция записи уже хранящегося в базе данных объекта не является единичной операцией и осуществляется как последовательные операции удаления старого объекта и вставки нового с обновленными данными.
Данное техническое решение может быть выполнено в виде системы проведения разделения объектов базы данных на основе меток конфиденциальности, содержащую: по крайней мере, одно устройство обработки команд; по крайней мере, одно устройство хранения данных; одну или более компьютерных программ, загружаемых в, по крайней мере, одно вышеупомянутое устройство хранения данных и выполняемых на, по крайне мере, одном из вышеупомянутых устройств обработки команд, при этом одна или более компьютерных программ содержат следующие инструкции: генерируют для каждого объекта в базе данных метку конфиденциальности, характеризующую уровень конфиденциальности информации, содержащейся в объекте; формируют для каждой страницы памяти запоминающего устройства, хранящего базу данных, параметр, идентифицирующий группу конфиденциальности, связанную с упомянутыми метками конфиденциальности, причем каждая страница памяти хранит только те объекты базы данных, которые относятся к назначенной группе конфиденциальности; определяют запрос на предоставление доступа к объектам базы данных, содержащий данные об уровне конфиденциальности; осуществляют сравнение информации, полученной в запросе на доступ, с информацией, содержащейся в упомянутых метках конфиденциальности; определяют на основании выполненного сравнения меток конфиденциальности соответствующую одну или более групп конфиденциальности и связанные с ними страницы памяти запоминающего устройства.
При операциях создания новых объектов базы данных производится поиск свободных страниц памяти запоминающего устройства с соответствующей группой конфиденциальности, если нет ни одной страницы памяти, удовлетворяющих этому условию, то выделяется пустая страница памяти, которой назначают необходимую группу, и в нее производят запись нового объекта базы данных.
При операциях создания новых объектов базы данных производится поиск свободных страниц памяти запоминающего устройства с соответствующей группой конфиденциальности и в найденную страницу памяти запоминающего устройства производят запись нового объекта базы данных.
При операциях изменения уже хранящегося в базе данных объекта определяют возможность изменения метки конфиденциальности данного объекта перед данной операцией.
Состав групп конфиденциальности может адаптироваться с учетом накопленной статистики по частоте использования конкретных меток доступа.
Каждая из групп конфиденциальности может состоять только из одного значения.
Операция записи уже хранящегося в базе данных объекта не является единичной операцией и осуществляется как последовательные операции удаления старого объекта и вставки нового с обновленными данными.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 - структура страниц на запоминающем устройстве с указанием групп и меток конфиденциальности;
Фиг. 2 - блок-схема, иллюстрирующая запись нового объекта с использованием способа проведения разделения объектов базы данных на основе меток конфиденциальности;
Фиг. 3 - система для реализации способа проведения разделения объектов базы данных на основе меток конфиденциальности.
ПОДРОБНОЕ ОПИСАНИЕ ТЕХНИЧЕСКОГО РЕШЕНИЯ
В данном устройстве под системой подразумевается компьютерная система, ЭВМ (электронно-вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированные системы управления и любые другие устройства, способные выполнять заданную, четко определенную последовательность операций (действий, инструкций).
Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы).
Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройства хранения данных. В роли устройства хранения данных могут выступать, но, не ограничиваясь, жесткие диски (HDD), флеш-память, ПЗУ (постоянное запоминающее устройство), твердотельные накопители (SSD), оптические приводы.
Ниже будут рассмотрены некоторые термины, которые в дальнейшем будут использоваться при описании технического решения.
Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.
База данных, database - представленная в объективной форме совокупность самостоятельных материалов (статей, расчетов, нормативных актов, судебных решений и иных подобных материалов), систематизированных таким образом, чтобы эти материалы могли быть найдены и обработаны с помощью электронной вычислительной машины (ЭВМ).
Система управления базами данных, Database Management System, СУБД, DBMS - совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных.
Запоминающее устройство, ЗУ - устройство, предназначенное для записи и хранения данных.
Мандатное управление доступом, mandatory access control, MAC - разграничение доступа субъектов к объектам, основанное на назначении метки конфиденциальности для информации, содержащейся в объектах, и выдаче официальных разрешений (допуска) субъектам на обращение к информации такого уровня конфиденциальности. Также иногда переводится как принудительный контроль доступа.
Row Level Security или безопасность на уровне строк - механизм разграничения доступа к информации к БД, позволяющий ограничить доступ пользователей к отдельным строкам в таблицах.
Multilevel security, защита многоуровневая - защита, обеспечивающая разграничение доступа субъектов с различными правами доступа к объектам различных уровней конфиденциальности.
Запись - набор значений различных типов, предназначенный к хранению на ЗУ.
Объект доступа (Объект, Access object) - единица информационного ресурса автоматизированной системы, доступ к которой регламентируется правилами разграничения доступа.
Субъект доступа (Субъект, Access subject) - лицо или процесс, действия которого регламентируются правилами разграничения доступа.
Страницы запоминающего устройства - блоки фиксированного размера, на которые делится память ЗУ.
Данное техническое решение обеспечивает повышение надежности СУБД и предотвращение несанкционированного доступа к объектам в БД за счет групповой обработки страницы запоминающего устройства на основании информации о назначенной группе конфиденциальности.
Согласно предлагаемому техническому решению, способ проведения разделения объектов базы данных на основе меток конфиденциальности заключается в выполнении нижеперечисленных этапов.
Сначала генерируют для каждого объекта в базе данных метку конфиденциальности, характеризующую уровень конфиденциальности информации, содержащейся в объекте. Метками снабжается непосредственно запись на диске/памяти, т.е. уровни доступа являются характеристикой этих данных. Метки могут быть представлены парой значений в диапазоне от 1 до 16: уровнем чтения данных (RAL) и уровнем доступа данных (WAL). Метка назначается при создании объекта и обновляется при его модификации на основании уровня доступа субъекта, который создал этот объект.
Представление метки доступа не является ограничивающим.
Каждому субъекту (пользователю, процессу) назначают один из уровней доступа. Уровни доступа вводятся для проверки на уровне ядра СУБД прав субъектов на осуществление чтения/записи информации. Уровень доступа может быть представляен парой числовых значений в диапазоне от 1 до 16: уровенем доступа на чтение - RAL (Read Access Level) и уровенем доступа на запись - WAL (Write Access Level), которые отображают действующие ограничения на действия связанные с соответствующей операцией.
Уровни доступа субъектам назначает субъект с соответствующей ролью (например администратор безопасности может назначать уровни доступа другим пользователям).
Представление уровня доступа не являются ограничивающими.
Затем формируют для каждой страницы памяти запоминающего устройства, хранящего базу данных, параметр, идентифицирующий группу конфиденциальности, связанную с упомянутыми метками конфиденциальности, причем каждая страница памяти хранит только те объекты базы данных, которые относятся к назначенной группе конфиденциальности.
Обращение субъекта к объекта регулируется СУБД в соответствии с моделью контроля и управления доступом, которая не является ограничивающей. Такой моделью, например, может быть модель Белла - Лападулы (Bell-LaPadula Model (BLP)).
Выделение и освобождение страниц ЗУ регулируется СУБД в соответствии с правилами управления пространством (space management) ЗУ, которые не являются ограничивающими. Управление пространством может быть основано, например, на использовании порогового значения заполнения страниц.
На Фиг. 1 изображены страницы (102, 103, 104) на запоминающем устройстве (101). Страницы 103 и 104 детализированы в 103' и 104' Страница 103' имеет назначенную группу конфиденциальности (105) позволяющую содержать объекты (107, 108) только с меткой s0 (105). Страница 104' имеет назначенную группу конфиденциальности (106) позволяющую содержать объекты (109, 110) только с метками s0 и s1 (106).
СУБД хранит для каждой страницы информацию о назначенной группе конфиденциальности.
СУБД разделяет объекты только по фактически существующим группам конфиденциальности. Т.е. если в БД существуют, например, записи с WAL:RAL=5:5 и с WAL:RAL=10:10, то будут использоваться эти две группы. Когда появится запись с отличным значением метки - будет создана третья группа и т.д.
Разделение записей происходит на этапе их создания, поскольку, - в этот момент происходит назначение метки. Модификация записи рассматривается как пара операций: удаление старой и запись ново, т.е. метка (и группа) может поменяться.
Далее определяют запрос на предоставление доступа к объектам базы данных, содержащий данные об уровне конфиденциальности.
После этого осуществляют сравнение информации, полученной в запросе на доступ, с информацией, содержащейся в упомянутых метках конфиденциальности.
Все запросы субъекта на чтение или запись объекта СУБД проверяют на соответствие принятой модели доступа, и только в случае положительного решения о разрешении операции производят обращение к странице ЗУ.
Для операций записи для новых объектов СУБД производит поиск свободных страниц с соответствующей группой конфиденциальности, если нет ни одной страницы удовлетворяющих этому условию, то выделяется пустая страница без записей, которой назначают необходимую группу. В найденную или выделенную страницу производят запись.
В качестве частного примера на Фиг. 2 приведена блок-схема, иллюстрирующая запись нового объекта. Принятие решения (203) о разрешении или запрете операции производится в соответствии с моделью контроля и управления доступом, а выделение новой страницы (207) - в соответствии с правилами управления пространством ЗУ.
Определяют на основании выполненного сравнения меток конфиденциальности соответствующую одну или более групп конфиденциальности и связанные с ними страницы памяти запоминающего устройства.
Для операций записи уже хранящегося в БД объекта (включая его удаление) СУБД определяет, приведет ли операция к изменению метки конфиденциальности таким образом, что ее новое значение не будет соответствовать текущей группе конфиденциальности страницы, а также применяет правила управления пространством ЗУ. Если измененный объект не может располагаться на текущей странице, то поиск новой страницы производят образом, аналогичным поиску страницы для новых объектов, в найденную или выделенную страницу переносят запись.
Все дальнейшие результаты достигаются благодаря физически раздельному хранению записей с разными группами/метками доступа в разных страницах, что позволяет применить групповую обработку страниц ЗУ.
Групповая обработка страниц запоминающего устройства, таким образом, включает:
- принятие решения о запрете или разрешения операций чтения или записи объекта на странице на основании группы конфиденциальности без необходимости чтения непосредственно записей, т.е. при запросе на чтение записи со страницы возможно предварительно прочесть заголовок страницы и если уровень читателя не соответствует группе, то прекратить операцию как заведомо невозможную;
- возможность ведения различных механизмов аудита для страниц с разными группами конфиденциальности; например, пусть в БД есть всего лишь две группы - «секретно» и «не секретно», тогда для страниц «не секретно» можно отключить аудит полностью.
- возможность хранить страницы с разными группами конфиденциальности на разных носителях, т.е., например, можно хранить более ценные группы страниц на более надежных и/или защищенных носителях.
- возможность использовать для страниц разных групп раздельные механизмы кеширования, т.е., например, можно отключить кеширование для страниц с ценными данными, убрав остаточные следы данных в ОЗУ.
Согласно Фиг. 3, примерная система для реализации технического решения включает в себя устройство обработки данных 300. Устройство обработки данных 300 может быть сконфигурировано как клиент, сервер, мобильное устройство или любое другое вычислительное устройство, которое взаимодействует с данными в системе совместной работы, основанной на сети. В самой базовой конфигурации устройство обработки данных 300, как правило, включает в себя, по меньшей мере, один процессор 301 и устройство хранения данных 302. В зависимости от точной конфигурации и типа вычислительного устройства системная память 302 может быть энергозависимой (например, оперативное запоминающее устройство (ОЗУ, RAM)), энергонезависимой (например, постоянное запоминающее устройство (ПЗУ, ROM)) или некоторой их комбинацией. Устройство хранения данных 302, как правило, включает в себя одну или более прикладных программ 303 и может включать в себя данные 304 программ. Настоящее техническое решение как способ, описанное в деталях выше, реализовано в прикладных программах 303.
Устройство обработки данных 300 может иметь дополнительные особенности или функциональные возможности. Например, устройство обработки данных 300 может также включать в себя дополнительные устройства хранения данных (съемные и несъемные), такие как, например, магнитные диски, оптические диски или лента. Такие дополнительные хранилища проиллюстрированы на Фиг. 3 посредством несъемного хранилища 307 и съемного хранилища 308. Компьютерные носители данных могут включать в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные любым способом или при помощи любой технологии для хранения информации. Устройство хранения данных 302, несъемное хранилище 307 и съемное хранилище 308 являются примерами компьютерных носителей данных. Компьютерные носители данных включают в себя, но не в ограничительном смысле, оперативное запоминающее устройство (ОЗУ), постоянное запоминающее устройство (ПЗУ), электрически стираемое программируемое ПЗУ (EEPROM), флэш-память или память, выполненную по другой технологии, ПЗУ на компакт-диске (CD-ROM), универсальные цифровые диски (DVD) или другие оптические запоминающие устройства, магнитные кассеты, магнитные ленты, хранилища на магнитных дисках или другие магнитные запоминающие устройства, или любую другую среду, которая может быть использована для хранения желаемой информации и к которой может получить доступ устройство обработки данных 300. Любой такой компьютерный носитель данных может быть частью устройства 300. Устройство обработки данных 300 может также включать в себя устройство(а) 305 ввода, такие как клавиатура, мышь, перо, устройство с речевым вводом, устройство сенсорного ввода, и так далее. Устройство (а) 306 вывода, такие как дисплей, динамики, принтер и тому подобное, также могут быть включены в состав устройства.
Устройство обработки данных 300 содержит коммуникационные соединения, которые позволяют устройству связываться с другими вычислительными устройствами, например по сети. Сети включают в себя локальные сети и глобальные сети наряду с другими большими масштабируемыми сетями, включая, но не в ограничительном смысле, корпоративные сети и экстрасети. Коммуникационное соединение является примером коммуникационной среды. Как правило, коммуникационная среда может быть реализована при помощи машиночитаемых инструкций, структур данных, программных модулей или других данных в модулированном информационном сигнале, таком как несущая волна, или в другом транспортном механизме, и включает в себя любую среду доставки информации. Термин «модулированный информационный сигнал» означает сигнал, одна или более из его характеристик изменены или установлены таким образом, чтобы закодировать информацию в этом сигнале. Для примера, но без ограничения, коммуникационные среды включают в себя проводные среды, такие как проводная сеть или прямое проводное соединение, и беспроводные среды, такие как акустические, радиочастотные, инфракрасные и другие беспроводные среды. Термин «машиночитаемый носитель», как употребляется в этом документе, включает в себя как носители данных, так и коммуникационные среды.