Лекции по информационной безопасности

       

Возможный подход к управлению доступом в распределенной объектной среде


Представляется, что в настоящее время проблема управления доступом существует в трех почти не связанных между собой проявлениях:

  • традиционные модели (дискреционная и мандатная);
  • модель "песочница" (предложенная для Java-среды и близкой ей системы Safe-Tcl);
  • модель фильтрации (используемая в межсетевых экранах).
  • На наш взгляд, необходимо объединить существующие подходы на основе их развития и обобщения.

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

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

    С каждым объектом ассоциирован набор интерфейсов, снабженных дескрипторами (ДИ). К объекту можно обратиться только посредством ДИ. Разные интерфейсы могут предоставлять разные методы и быть доступными для разных объектов.

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

    Объекты изолированы друг от друга. Единственным видом межобъектного взаимодействия является вызов метода.

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

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

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

    задаются в виде предикатов над объектами.



    Рассматривается задача разграничения доступа для выделенного контейнера CC, компонентами которого должны являться вызывающий и/или вызываемый объекты.
    ДИ этого контейнера полагается общеизвестным. Считается также, что между внешними по отношению к выделенному контейнеру объектами возможны любые вызовы.

    Выполнение ПРД контролируется монитором обращений.

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

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

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

    Структурируем множество всех ПРД, выделив четыре группы правил:

    • политика безопасности контейнера;


    • ограничения на вызываемый метод;


    • ограничения на вызывающий метод;


    • добровольно налагаемые ограничения.


    • Правила, общие для всех объектов, входящих в контейнер C, назовем политикой безопасности данного контейнера.

      Пусть метод M1 объекта O1 в точке P1 своего выполнения должен вызвать метод M объекта O. Правила, которым должен удовлетворять M, можно разделить на три следующие подгруппы:

      • правила, описывающие требования к формальным параметрам

        вызова;


      • правила, описывающие требования к семантике M;


      • реализационные правила, накладывающие ограничения на возможные реализации M;


      • правила, накладывающие ограничения на вызываемый объект O.


      • Метод M объекта O, потенциально доступный для вызова, может предъявлять к вызывающему объекту следующие группы требований:

        • правила, описывающие требования к фактическим параметрам вызова;


        • правила, накладывающие ограничения на вызывающий объект.


        • Можно выделить три разновидности предикатов, соответствующих семантике и/или особенностям реализации методов:

          • утверждения о фактических параметрах вызова метода M в точке P1;


          • предикат, описывающий семантику метода M;


          • предикат, описывающий особенности реализации метода M.


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

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






            Содержание раздела