Открыть сервис

Базовый контроль доступа

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

История

Концепция контроля доступа возникла вместе с первыми многопользовательскими компьютерными системами в 1960-х годах. В операционной системе Multics (1965) впервые были реализованы механизмы, позволяющие разграничивать права пользователей на чтение, запись и выполнение файлов. В 1970-х годах модель дискреционного управления доступом (DAC) была формализована в работах Дэвида Белла и Леонарда ЛаПадулы, а также в стандарте Министерства обороны США «Оранжевая книга» (TCSEC, 1983). В 1980-х годах для операционных систем семейства Unix (включая BSD и System V) был разработан стандартный набор прав доступа, основанный на трёх категориях: владелец, группа, остальные. Этот подход, дополненный списками контроля доступа (ACL), стал основой для большинства современных ОС общего назначения.

Основные понятия

Субъект и объект

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

Операции доступа

Типовые операции включают:

  • Чтение (read) — получение содержимого объекта.
  • Запись (write) — изменение или создание объекта.
  • Выполнение (execute) — запуск программы или скрипта.
  • Удаление (delete) — уничтожение объекта.
  • Изменение атрибутов (chmod, chown) — управление метаданными.

Идентификация и аутентификация

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

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

Дискреционное управление доступом (DAC)

В модели DAC (Discretionary Access Control) владелец объекта самостоятельно определяет, кто и как может с ним работать. Права передаются по усмотрению владельца. Примеры:

  • Права доступа в файловых системах Unix (rwx для владельца, группы, остальных).
  • Списки ACL в Windows NTFS.
  • Разрешения на уровне приложений (например, настройки приватности в социальных сетях).

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

Мандатное управление доступом (MAC)

В модели MAC (Mandatory Access Control) права назначаются централизованно на основе меток безопасности (например, «секретно», «совершенно секретно»). Субъект может получить доступ к объекту только если его уровень допуска не ниже метки объекта. Эта модель применяется в государственных и военных системах (например, в ОС SELinux (Security-Enhanced Linux) и FreeBSD с модулем MAC). Базовый контроль доступа в контексте MAC реализуется через жёсткие правила, не подлежащие изменению пользователем.

Ролевое управление доступом (RBAC)

В модели RBAC (Role-Based Access Control) права назначаются не отдельным пользователям, а ролям (например, «администратор», «бухгалтер», «гость»). Пользователь получает доступ, будучи назначенным на одну или несколько ролей. Эта модель широко используется в корпоративных системах (Microsoft Active Directory, Oracle Database). Базовый контроль доступа в RBAC упрощает администрирование за счёт группировки прав.

Реализация в операционных системах

Unix-подобные системы

В Linux и FreeBSD базовый контроль доступа основан на трёх категориях:

  • Владелец (user) — создатель файла или каталога.
  • Группа (group) — набор пользователей, объединённых общими правами.
  • Остальные (others) — все прочие пользователи.

Каждой категории назначаются три бита: чтение (r), запись (w), выполнение (x). Для каталогов бит выполнения означает возможность входа в каталог и доступа к его содержимому. Дополнительно существуют специальные биты:

  • SUID (Set User ID) — при запуске файла процесс получает права владельца файла.
  • SGID (Set Group ID) — при запуске файла процесс получает права группы файла; для каталогов — новые файлы наследуют группу каталога.
  • Sticky bit — только владелец файла может удалить или переименовать его в каталоге (используется в /tmp).

Windows NTFS

В файловой системе NTFS используется список контроля доступа (ACL), который состоит из записей (ACE), каждая из которых определяет разрешение или запрет для конкретного субъекта. Разрешения включают:

  • Полный доступ (Full Control)
  • Изменение (Modify)
  • Чтение и выполнение (Read & Execute)
  • Чтение (Read)
  • Запись (Write)

ACL в Windows поддерживает наследование прав от родительских каталогов.

Применение

В операционных системах

Базовый контроль доступа является неотъемлемой частью ядра ОС. Он защищает системные файлы, конфигурации и процессы от несанкционированного изменения. Например, в Linux корневой каталог / обычно доступен только для чтения обычным пользователям, а /etc/passwd — только для чтения владельцем root.

В базах данных

Системы управления базами данных (СУБД), такие как PostgreSQL, MySQL, Oracle, реализуют контроль доступа на уровне таблиц, представлений и хранимых процедур. Пользователям назначаются привилегии (SELECT, INSERT, UPDATE, DELETE) с возможностью каскадной передачи прав (GRANT OPTION).

В веб-приложениях

Базовый контроль доступа на уровне приложений проверяет, имеет ли аутентифицированный пользователь право на выполнение определённого действия (например, редактирование статьи, просмотр административной панели). Часто реализуется через middleware (промежуточное ПО) в фреймворках (Django, Spring Security, ASP.NET Core).

В облачных сервисах

Провайдеры облачных услуг (AWS, Microsoft Azure, Яндекс.Облако) предоставляют инструменты для управления доступом к ресурсам: виртуальным машинам, хранилищам, сетям. Например, в AWS используется IAM (Identity and Access Management), где политики доступа определяют разрешения для пользователей, групп и ролей.

Критика и ограничения

Базовый контроль доступа, особенно в модели DAC, имеет ряд недостатков:

  • Сложность управления — в больших системах с тысячами пользователей и объектов ручное назначение прав становится трудоёмким и подверженным ошибкам.
  • Недостаточная защита от вредоносного кода — если пользователь с высокими привилегиями запускает вредоносную программу, она может получить доступ к его ресурсам.
  • Отсутствие контекстной проверки — базовый контроль доступа не учитывает время, местоположение, состояние системы или историю действий субъекта.
  • Уязвимость к атакам — например, атака «повышение привилегий» (privilege escalation) может быть выполнена через ошибки в реализации ACL или SUID-битов.

Для преодоления этих ограничений применяются более сложные модели, такие как контроль доступа на основе атрибутов (ABAC), где решение принимается на основе набора атрибутов субъекта, объекта и окружения, а также динамический контроль доступа (например, в системах Zero Trust).

Интересные факты

  • В 1970-х годах в системе Multics была впервые реализована концепция «кольца защиты» (ring protection), где код выполнялся на разных уровнях привилегий (0 — ядро, 3 — пользователь). Эта идея позже была адаптирована в архитектуре x86.
  • В операционной системе OpenVMS использовалась модель «идентификаторов» (UIC), где каждый пользователь имел числовой идентификатор, а права задавались в виде маски.
  • В 2020 году в ядре Linux была обнаружена уязвимость CVE-2020-8835 в модуле bpf, позволяющая обойти контроль доступа и выполнить произвольный код с правами root.

Источники

  1. Bell, D. E., & LaPadula, L. J. (1976). Secure Computer System: Unified Exposition and Multics Interpretation. MITRE Corporation.
  2. Sandhu, R. S., Coyne, E. J., Feinstein, H. L., & Youman, C. E. (1996). Role-Based Access Control Models. IEEE Computer, 29(2), 38–47.
  3. «Linux man pages: chmod, chown, umask, setfacl» — документация ядра Linux.
  4. «Windows NTFS Security: ACLs and Permissions» — Microsoft Docs.
  5. «Оранжевая книга» (TCSEC, 1983) — Министерство обороны США.
  6. «SELinux: Security-Enhanced Linux» — проект National Security Agency (NSA).
  7. «IAM: Identity and Access Management» — документация Amazon Web Services.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →