domenowa kontrola RBAC

Kontrola dostępu oparta na rolach (Role-based access control - RBAC) została wprowadzona w systemie AIX 6.1. Udostępnia ona mechanizm służący do rozdzielenia różnych funkcji administratora na role, które można delegować do innych użytkowników w systemie. Kontrola RBAC umożliwia delegowanie obowiązków i poprawę bezpieczeństwa systemu, ułatwiając kontrolę i śledzenie działań w systemie. Kontrola RBAC umożliwia delegację odpowiedzialności do innego użytkownika (nazywanego autoryzowanym użytkownikiem), ale nie udostępnia mechanizmu do ograniczenia uprawnień administracyjnych autoryzowanego użytkownika do konkretnych zasobów systemu. Na przykład użytkownik z uprawnieniami administracyjnymi do sieci może zarządzać wszystkimi interfejsami sieciowymi w systemie. Nie można ograniczyć uprawnień autoryzowanego użytkownika tylko do modyfikacji zbioru interfejsów.

Opcja domeny dla kontroli RBAC służy do ograniczania dostępu dla autoryzowanych użytkowników. Użytkownicy i zasoby w systemie zostają oznaczeni przez przyłączenie znaczników nazywanych domenami i konkretne reguły dostępu określają dostęp do zasobów według użytkowników.

Definicje
Z regułami dostępu są związane następujące definicje:
podmiot: podmiot jest jednostką żądającą dostępu do obiektu. Przykładem podmiotu jest proces.
obiekt: obiekt jest jednostką zawierającą informacje o wartości. Przykładami obiektów są pliki, urządzenia i porty sieciowe.
domena: domena jest zdefiniowana jako kategoria, do której należy jednostka. Jeśli jednostka należy do domeny, kontrolą dostępu do jednostki zarządzają reguły dostępu w następujący sposób:
Reguły dostępu
  • Podmiot może uzyskać dostęp do obiektu, jeśli ma wszystkie domeny, do których należy obiekt. Wymaga to, aby lista domen, do których należy podmiot, była nadzbiorem domen obiektu. Jest to zachowanie domyślne.
  • Podmiot może uzyskać dostęp do obiektu, jeśli ma co najmniej jedną z domen obiektu. Oznacza to, że podmiot i obiekt mają jedną wspólną domenę. Takie zachowanie zależy od opcji bezpieczeństwa obiektu.
  • Dostęp do obiektu może być zabroniony dla określonych domen. Jeśli dla obiektu zostanie zdefiniowany zestaw domen nazwany zestawami konfliktów i jedna z domen podmiotu będzie należeć do zestawu konfliktów, nastąpi odmowa dostępu do obiektu dla podmiotu.

Bazy danych domen

Domeny obsługiwane przez system muszą być przechowywane w pliku konfiguracyjnym w katalogu /etc/security/domains. Format sekcji w pliku jest następujący:
domain-name:
id = <liczba>
dfltmsg = <komunikat>
msgcat = <katalog komunikatów>
msgset = <Zestaw komunikatów w katalogu>
msgnum = <Identyfikator komunikatu w katalogu>
Do operacji na bazie danych służą komendy mkdom i chdom. Komenda lsdom umożliwia wyświetlenie bazy danych. Do usuwania pozycji służy komenda rmdom.

Pozycje w bazie danych nie są obowiązujące, dopóki nie zostaną przesłane do jądra za pomocą komendy setkst.

System obsługuje maksymalnie 1024 domeny i najwyższa możliwa wartość identyfikatora domeny (atrybut ID) wynosi 1024.

Obiekty przypisane do domeny

Aby przypisać domenę do obiektu, należy zdefiniować go w bazie danych obiektów przypisanych do domeny. Domeny dla wszystkich jednostek w systemie są przechowywane w pliku konfiguracyjnym w katalogu /etc/security/domobjs. Format sekcji w pliku przedstawiono poniżej. Jest to przykład przypisania domeny do obiektu.
/dev/hrvg:
domains=HR,IT
conflictsets=payroll
objtype=device
secflags=FSF_DOM_ANY
domains: określa domeny, które mają prawo dostępu do obiektu. Przykłady domen: IT, HR i Payroll.
objtype: oznacza typ obiektu przypisywany do domeny. Rodzaje typów obiektów: device, file, netint i netport.
conflict sets: oznacza, że podmiot należący do dowolnej domeny wymienionej w tym atrybucie w tym zestawie nie ma prawa dostępu do obiektu.
secflags: ta flaga określa specjalne właściwości obiektu. Można ustawić wartość FSF_DOM_ANY lub FSF_DOM_ALL. Jeśli flaga zostanie ustawiona na wartość FSF_DOM_ANY, podmiot może uzyskać dostęp do obiektu, jeśli zawiera dowolną z domen określonych na liście atrybutu domains. Jeśli ta flaga zostanie ustawiona na wartość FSF_DOM_ALL, aby podmiot uzyskał dostęp do obiektu, musi mieć wszystkie wymienione domeny. Jeśli nie zostanie podana żadna wartość, używana jest wartość FSF_DOM_ALL. Flaga secflag dotyczy tylko zachowania atrybutu domains obiektu.
Domeny można przypisywać do plików w systemach plików. Domyślnie wszystkie domeny obiektu muszą być podzbiorem domen procesu, aby proces mógł uzyskać dostęp do obiektu.
  1. Urządzenia: do domeny można przypisać wszystkie urządzenia, włącznie z systemami plików. Sprawdzenie domeny jest przeprowadzane podczas działań związanych z zarządzaniem, na przykład podczas konfigurowania urządzenia.
    /dev/hrvg:
    domains=HR,IT
    conflictsets=payroll
    objtype=device
    secflags=FSF_DOM_ANY
    
  2. Interfejsy sieciowe: jeśli interfejsy sieciowe, na przykład en0, są przypisane do domeny, działania związane z zarządzaniem, na przykład wyłączenie interfejsu, będą wymagać wykonania dla interfejsu kontroli domeny.
    en0:
    domains=NETIF,ADMIN
    objtype=netint
    flags=FSF_DOM_ALL
  3. Porty sieciowe: porty TCP i UDP można przypisać do domeny. Sprawdzenia domeny są wymuszane w momencie, gdy aplikacja próbuje powiązać port.
    TCP_<numer_portu>:
    domains=NETIF,ADMIN
    type=netport
    flags=FSF_DOM_ALL
  4. Procesy: proces dziedziczy domeny użytkownika, z którego prawami jest uruchomiony. Gdy użytkownik się loguje, proces powłoki użytkownika ma domeny użytkownika. Ustawione domeny procesu pozostają niezmienione w czasie życia tego procesu. Domen procesu nie można zmienić ani interfejsem użytkownika, ani wywołaniem systemowym. Jedynym procesem, który może ustawiać domeny, jest proces logowania. Procesy nie mają atrybutów conflict set ani secflags.

Obecne ograniczenia

Poniżej przedstawiono ograniczenia domenowej kontroli RBAC:
  • Konfiguracja domeny jest obecnie obsługiwana w systemie lokalnym i na serwerze LDAP (Lightweight Directory Access Protocol).
  • Domeny RBAC nie są obsługiwane w obrębie partycji zarządzania obciążeniem AIX (WPAR).
  • Domen RBAC nie można stosować do plików przejściowych.

Wymagania rozszerzonego trybu RBAC

Domenowa kontrola RBAC jest utworzona na podstawie rozszerzonego trybu RBAC i do działania wymaga włączenia w systemie rozszerzonego trybu RBAC.

Tabele bezpieczeństwa jądra

Domeny i obiekty przypisane do domeny zdefiniowane w bazie danych domen i bazie danych obiektów domen są obowiązujące od momentu przesłania do jądra za pomocą komendy setkst. Te dwie tabele są nazywane odpowiednio tabelą domen jądra (Kernel Domain Table - KDOMT) i tabelą obiektów domen jądra (Kernel Domain Object Table - KDOT).

Dodatkowe szczegóły dotyczące tabel zabezpieczeń jądra i komendy setkst zawiera temat Kontrola dostępu oparta na rolach (RBAC) w podręczniku bezpieczeństwa systemu AIX.

Komendy domen

Poniższa tabela zawiera komendy związane z domenową kontrolą RBAC udostępnione w systemie operacyjnym AIX do zarządzania środowiskiem domenowej kontroli RBAC i korzystania z niego:
Komenda Opis
mkdom Tworzy nową domenę
lsdom Wyświetla atrybuty domeny
rmdom Usuwa domenę
chdom Zmienia atrybuty domeny
setsecattr Ustawia atrybuty bezpieczeństwa bazy danych obiektów domen
lssecattr Wyświetla atrybuty bezpieczeństwa bazy danych obiektów domen
rmsecattr Usuwa definicję bazy danych obiektów domen
setkst Wysyła pozycje z baz danych na poziomie użytkownika domenowej kontroli RBAC do tabel bezpieczeństwa jądra

Pliki związane z domenową kontrolą RBAC

Poniższa tabela zawiera pliki związane z kontrolą RBAC udostępnione w systemie operacyjnym AIX do konfigurowania i przechowywania informacji o bazie danych:
Plik Opis
/etc/security/domains Baza danych domen
/etc/security/domobjs Baza danych obiektów domen

Korzystanie z domen

Definiowanie domen: domeny są definiowane w bazie danych domen za pomocą komendy mkdom.
mkdom id=24 HR
Przypisywanie domen: domeny można przypisać do jednostek, na przykład użytkowników, plików, urządzeń, portów sieciowych i interfejsów. Wszystkie jednostki oprócz użytkowników obsługują zestawy konfliktów i opcje bezpieczeństwa (secflags).

Użytkownicy: użytkownicy są przypisywani do domen za pomocą komend chuser i chsec.

Składnia:

chuser domains = <rozdzielona przecinkami lista domen> nazwa użytkownika
Przykład:
chuser domains=INET john

Podczas logowania następuje aktywowanie domen przypisanych do użytkownika. W przypadku zmiany domen podczas aktywności sesji, aby nowe domeny odniosły skutek, konieczne jest ponowne zalogowanie.

Obiekty: Aby ograniczyć dostęp do obiektów za pomocą domen, obiekty muszą zostać zdefiniowane w bazie danych obiektów domen za pomocą komendy setsecattr.

Składnia:
setsecattr -o domains=<rozdzielona przecinkami lista dozwolonych domen>
conflictsets=<rozdzielona przecinkami lista domen z ograniczeniami>
secflags=<FSF_DOM_ALL lub FSF_DOM_ANY>
objtype=<file lub device lub netint lub netport>
object-path
Przykład:
setsecattr -o domains=INET,WEB conflictsets=DB secflags=FSF_DOM_ANY objtype=netint en0