Принудительное применение типа
Принудительное применение типа (англ. type enforcement, TE) — это механизм управления доступом, используемый для регулирования доступа в компьютерных системах. Реализация принудительного применения типа обеспечивает приоритет обязательного управления доступом (MAC) над дискреционным управлением доступом (DAC). Разрешение на доступ сначала предоставляется субъекту (например, процессу), обращающемуся к объектам (таким как файлы, записи, сообщения), на основании правил, определённых в присоединённом контексте безопасности. Контекст безопасности в домене задаётся политикой безопасности домена. В модуле безопасности Linux (англ. Linux Security Module, LSM) в SELinux контекст безопасности реализуется как расширенный атрибут. Реализация принудительного применения типа является необходимым предварительным условием для обязательного управления доступом и первым шагом на пути к многоуровневая безопасность (MLS) или её замене — многокатегорийная безопасность (MCS). Этот подход дополняет механизм распределённого управления доступом на основе ролей (RBAC).
Управление
Принудительное применение типа допускает детализированное управление операционной системой, позволяя не только контролировать выполнение процессов, но также и переходы между доменами или схемы авторизации. По этой причине механизм чаще всего реализуется в виде модуля ядра, как это реализовано в SELinux. Использование принудительного применения типа является способом реализации архитектуры FLASK.
Доступ
С использованием принудительного применения типа пользователи могут (как в Microsoft Active Directory) или не могут (как в SELinux) быть ассоциированы с областью англ. Kerberos, хотя исходная модель TE предполагает такую ассоциацию. Необходимо обязательно определять TE-матрицу доступа, содержащую правила о правах доступа для заданного контекста безопасности, либо права субъекта на объекты в соответствии с определённой схемой авторизации.
Безопасность
На практике принудительное применение типа предполагает оценку набора правил исходного контекста безопасности субъекта по отношению к набору правил целевого контекста безопасности объекта. Решение о разрешении доступа принимается на основании TE-описания доступа (матрицы). После этого применяются DAC и другие механизмы контроля доступа (MLS / MCS и др.).
История
Концепция принудительного применения типа была впервые представлена в архитектуре Secure Ada Target в конце 1980-х годов, а её полная реализация была осуществлена в логическом сопроцессорном ядре (англ. Logical Coprocessing Kernel, система LOCK)[1][2]. Межсетевой экран Sidewinder был реализован на специальной версии Unix, включающей принудительное применение типа.
Вариант, известный как принудительное применение типа домена (англ. domain type enforcement), был разработан в системе Trusted MACH.
Изначально модель принудительного применения типа предполагала, что метки должны быть прикреплены и к субъектам, и к объектам: «метка домена» для субъекта и «метка типа» для объекта. Механизм реализации был усовершенствован архитектурой FLASK, которая заменила сложные структуры и неявные отношения. Также оригинальная TE-матрица доступа была расширена на другие структуры: построенные на решётках, базирующиеся на истории, зависящие от окружения, реализующие определённую логику политики и др. Особенности реализации TE зависят от конкретной операционной системы. В SELinux реализация не различает TE-домены и TE-типы на внутреннем уровне. Считается недостатком исходной модели TE слишком детальное описание аспектов реализации, таких как метки и матрицы, особенно с использованием терминов «домен» и «тип», которые имеют иные, более общие и широко употребимые значения.
Примечания
Литература
- P. A. Loscocco, S. D. Smalley, P. A. Muckelbauer, R. C. Taylor, S. J. Turner, J. F. Farrell. англ. The Inevitability of Failure: The Flawed Assumption of Security in Modern Computing Environments. In Proceedings of the 21st National Information Systems Security Conference, стр. 303–314, октябрь 1998. The Inevitability of Failure: The Flawed Assumption of Security in Modern Computing Environments (англ.). National Information Systems Security Conference. Jya (октябрь 1998). Дата обращения: 29 июня 2024. Архивировано 21 июня 2007 года.
- L. Badger, D. F. Sterne, D. L. Sherman, K. M. Walker, S. A. Haghighat. англ. A Domain and Type Enforcement UNIX Prototype. In Proceedings of the 5th USENIX UNIX Security Symposium, июнь 1995. A Domain and Type Enforcement UNIX Prototype (англ.). USENIX UNIX Security Symposium. CiteSeerX (июнь 1995). Дата обращения: 29 июня 2024. Архивировано 10 октября 2017 года.
- W. E. Boebert, R. Y. Kain. A Practical Alternative to Hierarchical Integrity Policies. In Proceedings of the 8th National Computer Security Conference, стр. 18, 1985.
- LOCK — доверенная вычислительная система (англ.). cryptosmith.com. Дата обращения: 29 июня 2024. Архивировано 11 апреля 2019 года.


