Lista kontroli dostępu - Access-control list

W bezpieczeństwa komputerowego , lista kontroli dostępu ( ACL ) to lista uprawnień związanych z zasobów systemu (Object). Lista ACL określa, którzy użytkownicy lub procesy systemowe mają dostęp do obiektów, a także jakie operacje są dozwolone na danych obiektach. Każdy wpis w typowej liście ACL określa podmiot i operację. Na przykład, jeśli obiekt pliku ma listę ACL zawierającą:(Alicja: czytaj, pisz; Bob: czytaj), dałoby to Alicji uprawnienia do odczytu i zapisu pliku, a Bobowi tylko do odczytu.

Realizacje

Wiele rodzajów systemów operacyjnych implementuje listy ACL lub ma implementację historyczną; pierwsze wdrożenie było ACL w systemie plików z Multics w 1965 roku.

Listy ACL systemu plików

Lista ACL systemu plików to struktura danych (zwykle tabela) zawierająca wpisy określające prawa poszczególnych użytkowników lub grup do określonych obiektów systemowych, takich jak programy, procesy lub pliki. Wpisy te są znane jako wpisy kontroli dostępu (ACE) w systemach operacyjnych Microsoft Windows NT , OpenVMS i uniksopodobnych , takich jak Linux , macOS i Solaris . Każdy dostępny obiekt zawiera identyfikator swojej listy ACL. Uprawnienia lub uprawnienia określają określone prawa dostępu, takie jak to, czy użytkownik może odczytywać, zapisywać lub wykonywać obiekt. W niektórych implementacjach pozycja ACE może kontrolować, czy użytkownik lub grupa użytkowników może zmieniać listę ACL obiektu.

Jednym z pierwszych systemów operacyjnych, który udostępniał listy ACL systemu plików, był Multics . PRIMOS zawierał listy ACL co najmniej w 1984 roku.

W latach 90. modele ACL i RBAC zostały gruntownie przetestowane i wykorzystane do administrowania uprawnieniami do plików.

POSIX ACL

Grupa robocza POSIX 1003.1e/1003.2c podjęła wysiłek standaryzacji list ACL, co zaowocowało tym, co jest obecnie znane jako „POSIX.1e ACL” lub po prostu „POSIX ACL”. Wersje robocze POSIX.1e/POSIX.2c zostały wycofane w 1997 r., ponieważ uczestnicy stracili zainteresowanie finansowaniem projektu i zwrócili się ku potężniejszym alternatywom, takim jak NFSv4 ACL. Według stanu na grudzień 2019 r. w Internecie nie można było znaleźć żywych źródeł projektu, ale nadal można je znaleźć w Internetowym Archiwum .

Większość systemów operacyjnych uniksowych i podobnych do Uniksa (np. Linux od 2.5.46 lub listopada 2002 r., BSD lub Solaris ) obsługuje listy ACL POSIX.1e (niekoniecznie wersja robocza 17). Listy ACL są zwykle przechowywane w rozszerzonych atrybutach pliku w tych systemach.

Lista ACL NFSv4

Listy ACL NFSv4 są znacznie bardziej zaawansowane niż robocze listy ACL POSIX. W przeciwieństwie do roboczych list ACL POSIX, listy ACL NFSv4 są zdefiniowane przez faktycznie opublikowany standard, jako część Network File System .

Listy ACL NFSv4 są obsługiwane przez wiele systemów operacyjnych uniksowych i uniksopodobnych. Przykłady obejmują AIX , FreeBSD , Mac OS X począwszy od wersji 10.4 („ Tiger ”) lub Solaris z systemem plików ZFS , obsługują listy ACL NFSv4 , które są częścią standardu NFSv4. Istnieją dwie eksperymentalne implementacje list ACL NFSv4 dla systemu Linux: obsługa list ACL NFSv4 dla systemu plików Ext3 i nowsza Richacls , która zapewnia obsługę list ACL NFSv4 dla systemu plików Ext4 . Podobnie jak w przypadku list ACL POSIX, listy ACL NFSv4 są zwykle przechowywane jako rozszerzone atrybuty w systemach uniksopodobnych.

Listy ACL NFSv4 są zorganizowane prawie identycznie jak listy ACL systemu Windows NT używane w systemie NTFS. Listy ACL NFSv4.1 są nadzbiorem zarówno NT ACL, jak i roboczych list ACL POSIX. Samba obsługuje zapisywanie list ACL NT plików współużytkowanych przez SMB na wiele sposobów, z których jeden to listy ACL zakodowane przez NFSv4.

Listy ACL Active Directory

Microsoft „s Active Directory narzędzi usługowym LDAP serwer, przechowywania i rozpowszechniania informacji na temat konfiguracji użytkowników i komputerów w domenie. Active Directory rozszerza specyfikację LDAP, dodając ten sam typ mechanizmu listy kontroli dostępu, którego używa Windows NT dla systemu plików NTFS. Następnie Windows 2000 rozszerzył składnię wpisów kontroli dostępu tak, że mogły one nie tylko udzielać lub odmawiać dostępu do całych obiektów LDAP, ale także do poszczególnych atrybutów w tych obiektach.

Sieciowe listy ACL

W przypadku niektórych typów zastrzeżonego sprzętu komputerowego (w szczególności routerów i przełączników ) lista kontroli dostępu zawiera reguły stosowane do numerów portów lub adresów IP dostępnych na hoście lub innej warstwie 3 , każda z listą hostów i /lub sieci uprawnione do korzystania z usługi. Chociaż dodatkowo można skonfigurować listy kontroli dostępu na podstawie nazw domen sieciowych , jest to wątpliwy pomysł, ponieważ poszczególne nagłówki TCP , UDP i ICMP nie zawierają nazw domen. W konsekwencji urządzenie wymuszające listę kontroli dostępu musi oddzielnie rozwiązywać nazwy na adresy numeryczne. Stanowi to dodatkową powierzchnię ataku dla napastnika, który chce złamać zabezpieczenia systemu chronionego przez listę kontroli dostępu. Sieciowe listy ACL mogą mieć zarówno pojedyncze serwery, jak i routery . Listy kontroli dostępu można generalnie skonfigurować tak, aby kontrolować zarówno ruch przychodzący, jak i wychodzący iw tym kontekście są one podobne do zapór ogniowych . Podobnie jak zapory, listy ACL mogą podlegać przepisom i standardom bezpieczeństwa, takim jak PCI DSS .

Implementacje SQL

Algorytmy ACL zostały przeniesione do SQL i relacyjnych baz danych . Wiele „nowoczesnych” (2000 i 2010) systemów opartych na SQL , takich jak systemy planowania zasobów przedsiębiorstwa i systemy zarządzania treścią , używa modeli ACL w swoich modułach administracyjnych.

W porównaniu z RBAC

Główną alternatywą dla modelu ACL jest model kontroli dostępu oparty na rolach (RBAC). „Minimalny model RBAC”, RBACm , można porównać z mechanizmem ACL, ACLg , w którym tylko grupy są dozwolone jako wpisy na liście ACL. Barkley (1997) wykazał, że RBACm i ACLg są równoważne.

W nowoczesnych implementacjach SQL listy ACL zarządzają również grupami i dziedziczeniem w hierarchii grup. Tak więc „nowoczesne listy ACL” mogą wyrażać wszystko, co wyraża RBAC i są szczególnie wydajne (w porównaniu ze „starymi listami ACL”) pod względem możliwości wyrażania zasad kontroli dostępu w zakresie sposobu, w jaki administratorzy postrzegają organizacje.

W przypadku wymiany danych i „porównań wysokiego poziomu” dane ACL można przetłumaczyć na XACML .

Zobacz też

Bibliografia

Dalsza lektura