Список контроля доступа - Access-control list
An список контроля доступа (ACL) относительно компьютер файловая система, это список разрешения связанный с объект. ACL определяет, каким пользователям или системным процессам предоставлен доступ к объектам, а также какие операции разрешены для данных объектов.[1] Каждая запись в типичном ACL определяет тему и операцию. Например, если у файлового объекта есть ACL, содержащий (Алиса: читать, писать; Боб: читать), это даст Алисе разрешение на чтение и запись в файл, а Бобу - только на чтение.
Реализации
Многие типы операционных систем реализуют списки ACL или имеют историческую реализацию. Первый из них был в файловая система из Мультики в 1965 г.[2]
ACL файловой системы
ACL файловой системы - это структура данных (обычно таблица), содержащая записи, которые определяют права отдельного пользователя или группы на определенные системные объекты, такие как программы, процессы или файлы. Эти записи известны как записи управления доступом (ACE) в Microsoft Windows NT,[3] OpenVMS, Unix-подобный, и macOS операционные системы. Каждый доступный объект содержит идентификатор своего ACL. Привилегии или разрешения определяют конкретные права доступа, например, может ли пользователь читать, записывать или выполнять объект. В некоторых реализациях ACE может контролировать, может ли пользователь или группа пользователей изменять ACL для объекта.
ПРИМОС включал ACL по крайней мере еще в 1984 году.[4]
В 1990-е годы ACL и RBAC модели были тщательно протестированы[кем? ] и используется для управления правами доступа к файлам.
POSIX ACL
POSIX Рабочая группа 1003.1e / 1003.2c предприняла попытку стандартизировать ACL, в результате чего получилось то, что теперь известно как «POSIX.1e ACL» или просто «POSIX ACL».[5] Черновики POSIX.1e / POSIX.2c были отозваны в 1997 году из-за того, что участники потеряли интерес к финансированию проекта и обратились к более мощным альтернативам, таким как NFSv4 ACL.[6] По состоянию на декабрь 2019 г.[Обновить], живых источников черновика в Интернете найти не удалось, но его все еще можно найти в Интернет-архив.[7]
Большинство Unix и Unix-подобных операционных систем (например, Linux с 2.5.46 или ноября 2002 г.,[8] BSD, или Солярис ) поддерживают списки ACL POSIX.1e (не обязательно проект 17). ACL обычно хранятся в расширенных атрибутах файла в этих системах.
NFSv4 ACL
ACL NFSv4 намного мощнее, чем ACL проекта POSIX. В отличие от проекта ACL POSIX, как часть Сетевая файловая система, ACL NFSv4 определяется фактически опубликованным стандартом.
ACL NFSv4 поддерживаются многими Unix и Unix-подобными операционными системами. Примеры включают AIX, FreeBSD,[9] Mac OS X начиная с версии 10.4 ("Тигр "), или Солярис с участием ZFS файловая система,[10] поддержка NFSv4 ACL, которые являются частью стандарта NFSv4. Существует две экспериментальных реализации списков контроля доступа NFSv4 для Linux: Поддержка списков контроля доступа NFSv4 для Ext3 файловая система[11] и более поздние Richacls что обеспечивает поддержку списков ACL NFSv4 для Ext4 файловая система.[12] Как и POSIX ACL, NFSv4 ACL обычно хранится как расширенные атрибуты в Unix-подобных системах.
ACL NFSv4 организован почти идентично спискам ACL Windows NT, используемым в NTFS.[13] NFSv4.1 ACL - это надмножество как NT ACL, так и чернового ACL POSIX.[14] Samba поддерживает сохранение NT ACL для общих файлов SMB разными способами, одним из которых является ACL с кодировкой NFSv4.[15]
ACL Active Directory
Microsoft Active Directory Служба каталогов реализует LDAP сервер, который хранит и распространяет информацию о конфигурации пользователей и компьютеров в домене.[16] Active Directory расширяет спецификацию LDAP, добавляя тот же тип механизма списка контроля доступа, который Windows NT использует для файловой системы NTFS. Затем Windows 2000 расширила синтаксис для записей управления доступом, так что они могли не только предоставлять или запрещать доступ ко всем объектам LDAP, но также и к отдельным атрибутам в этих объектах.[17]
Сетевые ACL
На некоторых типах проприетарного компьютерного оборудования (в частности маршрутизаторы и переключатели ), список управления доступом содержит правила, которые применяются к номера портов или IP-адреса которые доступны на хозяин или другой слой 3, каждый со списком хостов и / или сетей, которым разрешено использовать службу. Хотя дополнительно можно настроить списки управления доступом на основе имен сетевых доменов, это сомнительная идея, поскольку отдельные лица TCP, UDP, и ICMP заголовки не содержат доменных имен. Следовательно, устройство, реализующее список управления доступом, должно отдельно разрешить имена на числовые адреса. Это представляет собой дополнительный поверхность атаки для злоумышленника, который пытается поставить под угрозу безопасность системы, которую защищает список контроля доступа. Оба индивидуальные серверы а также маршрутизаторы могут иметь сетевые ACL. Списки управления доступом обычно можно настроить для управления как входящим, так и исходящим трафиком, и в этом контексте они аналогичны брандмауэры. Как и брандмауэры, ACL могут регулироваться правилами и стандартами безопасности, такими как PCI DSS.
Реализации SQL
Алгоритмы ACL были перенесены на SQL и чтобы системы реляционных баз данных. Многие «современные» (2000-е и 2010-е) SQL -системы, такие как Планирование ресурсов предприятия и управление содержанием систем, использовали модели ACL в своих модулях администрирования.
Сравнение с RBAC
Основной альтернативой модели ACL является управление доступом на основе ролей (RBAC) модель. "Минимальная модель RBAC", RBACm, можно сравнить с механизмом ACL, ACLg, где в качестве записей в ACL разрешены только группы. Баркли (1997)[18] показало, что RBACm и ACLg эквивалентны.
В современных реализациях SQL списки управления доступом также управляют группами и наследованием в иерархии групп. Таким образом, «современные списки контроля доступа» могут выражать все, что выражают RBAC, и являются особенно мощными (по сравнению со «старыми списками контроля доступа») в своей способности выражать политику контроля доступа с точки зрения того, как администраторы рассматривают организации.
Для обмена данными и для «сравнений высокого уровня» данные ACL можно преобразовать в XACML.[19]
Смотрите также
- Cacls
- Безопасность на основе возможностей
- C-список
- Запутанная депутатская проблема
- DACL
- Расширенные атрибуты файла
- Контроль доступа на основе ролей (RBAC)
использованная литература
- ^ RFC 4949
- ^ Элементарная информационная безопасность Ричард Смит, стр. 150
- ^ «Управление авторизацией и контролем доступа». Microsoft Technet. 2005-11-03. Получено 2013-04-08.
- ^ "P.S.I. Pacer Software, Inc. Gnet-II, версия 3.0". Связь. Computerworld. 18 (21). 1984-05-21. п. 54. ISSN 0010-4841. Получено 2017-06-30.
В новой версии Gnet-II (версия 3.0) добавлен механизм защиты линии, который реализован в подсистеме Primos ACL.
- ^ Грюнбахер, Андреас. «Списки контроля доступа POSIX в Linux». Usenix. Получено 12 декабря 2019.
- ^ wurtzkurdle. "Почему был снят POSIX.1e?". Unix StackExchange. Получено 12 декабря 2019.
- ^ Трумпер, Винфрид (28 февраля 1999 г.). "Резюме о Posix.1e". Архивировано из оригинал на 2008-07-23.
- ^ «Примечания к выпуску Red Hat Enterprise Linux AS 3 (версия x86)». Красная Шапка. 2003. Получено 2013-04-08.
Функциональность EA (расширенные атрибуты) и ACL (списки контроля доступа) теперь доступна для файловых систем ext3. Кроме того, для NFS доступна функция ACL.
- ^ «Списки контроля доступа NFSv4». FreeBSD. 2011-09-12. Получено 2013-04-08.
- ^ «Глава 8 Использование списков контроля доступа и атрибутов для защиты файлов ZFS». Корпорация Oracle. 2009-10-01. Получено 2013-04-08.
- ^ Грюнбахер, Андреас (май 2008 г.). «Собственные списки ACL NFSv4 в Linux». SUSE. Архивировано из оригинал на 2013-06-20. Получено 2013-04-08.
- ^ Грюнбахер, Андреас (июль – сентябрь 2010 г.). «Richacls - собственные списки ACL NFSv4 в Linux». bestbits.at. Архивировано из оригинал на 2013-03-20. Получено 2013-04-08.
- ^ "ACL". Linux NFS.
- ^ «Сопоставление между NFSv4 и Posix Draft ACL».
- ^ "vfs_nfs4acl_xattr (8)". Руководство по Samba.
- ^ «[MS-ADTS]: техническая спецификация Active Directory».
- ^ Свифт, Майкл М. (ноябрь 2002 г.). «Повышение детализации контроля доступа для Windows 2000». Транзакции ACM по информационной и системной безопасности (Tissec). 5 (4): 398–437. Дои:10.1145/581271.581273. S2CID 10702162.
- ^ Дж. Баркли (1997) "Сравнение простых моделей управления доступом на основе ролей и списков управления доступом ", В" Протоколах второго семинара ACM по ролевому контролю доступа ", страницы 127-132.
- ^ Г. Карйот, А. Шаде и Э. Ван Херревеген (2008 г.) "Реализация политик на основе ACL в XACML ", В" Ежегодной конференции приложений компьютерной безопасности 2008 ".
дальнейшее чтение
- Родос, Том. «Списки контроля доступа к файловой системе (ACL)». Справочник FreeBSD. Получено 2013-04-08.
- Майкл Фокс; Джон Джордано; Лори Стотлер; Арун Томас (24 августа 2005 г.). «SELinux и grsecurity: пример сравнения улучшений ядра безопасности Linux» (PDF). Университет Вирджинии. Архивировано из оригинал (PDF) на 2012-02-24. Получено 2013-04-08.
- Хинрикс, Сьюзен (2005). «Безопасность операционной системы». CyberSecurity Весна 2005. Университет Иллинойса. Архивировано из оригинал на 2012-03-04. Получено 2013-04-08.
- Митчелл, Джон. «Контроль доступа и безопасность операционной системы» (PDF). Стэндфордский Университет. Получено 2013-04-08.
- Кларксон, Майкл. "Контроль доступа". Корнелл Университет. Получено 2013-04-08.
- Кляйн, Хельге (12 марта 2009 г.). «Разрешения: пример или: DACL, SACL, владелец, SID и ACE с объяснением». Получено 2013-04-08.
- «Списки контроля доступа». Библиотека MSDN. 2012-10-26. Получено 2013-04-08.
- «Как работают разрешения». Microsoft Technet. 2003-03-28. Получено 2013-04-08.