SELinux


MAC
Główna zasadą MAC (Mandatory Access Control) jest, to że użytkownik nie decyduje o zabezpieczeniach i prawach dostepu do obiektów. Prawa te są ustalane odgórnie. Zbiór tych zasad nazywamy Policy. Zwykłe prawa dostępu do obiektu nie realizują MAC.

DTAC
DTAC (Dynamically Typed Access Control) czyli domenowy system kontroli dostępu. Najważniejsze jego cechy
  1. Każdy obiekt (plik, port) ma pojedynczy typ
  2. Typ obiektu jest ustalony odgórnymi regułami
  3. Są zbiory reguł mówiące o działaniach na obiektach dużego typu
  4. System musi być przygotowany na dużą ilość reguł działań na obiektach


RBAC RBAC (Role Base Access Control), system dostępujący bazujacy na rolach. Najważniejsze cechy
  1. użytkonikowi jest przypisana rola lub role i na podstawie tych ról są określone jego uprawnienia
  2. Zbiór tych ról jest ustalony odgórnymi regułami
  3. Użytkownik może zmieniać role zgodnie z odgórnymi zasadami


SELinux
SELinux (Security Enhanced Linux), jest patchem na jądro, który rozszerza mechanizmy kontroli dostępu i uprawnień użytkownika. Jego cechy to
  1. Wśród zbioru ról którymi może być użytkownik jest jedna domyślna
  2. Każda rola użytkownika posiada zbiór domen dostępu, z których jedna jest domyślna
  3. W każdej chwili użytkownikowi jest przypisana jedna rola i jedna domena
  4. Mogą następować zmiany ról i zmiany domen w zakresie jednej roli zgodnie z zasadami z Police
  5. SELinux współpracuje też z systemem capabilities, są one ustalane na podstawie domeny
  6. Ogranicza prawa użytkownika, nie daje dodatkowych uprawnień. Gdyby Police pozwalało na wszystko mielibyśmy czystego Linuxa

Security Context SC
Przykładowy kontekst bezpieczeństwa użytkownika to
tom:user_r:user_t
tom - nazwa użytkownika
user_r - domylśna rola dla wszystkich użytkowników
user_t - domylśna domena dla roli user_t
Police: Reguły Police są zdefiniowane dla domeny i dla typu. Poniżej są podane niektóre możliwe konstrukcje reguł
  1. definiowanie praw do odczytu, pisania, wykonywania, tworzenie itd.
  2. zmiana roli
  3. zmiana domeny w ramach roli
  4. automatyczna zmiana roli przy wykonywaniu programu

Przykładowa reguła: type_change user_t tty_device_t:chr_file user_tty_device_t;
Pozwala użytkownikowi o domenie user_t na zmiane typu obiektu z tty_device_t na user_tty_device_t;
Problem: reguł może być dziesiątki tysięcy, skąd je wziąć?
Sciagnąć! W Police jest także cześć odpowiedzialna za przypisanie obiektom początkowych wartości (typów). Czasami mimo tego coś nie działa. W takim wypadku zwykle trzeba cos zmienić w Police nie będąc w trybie enforcing (czyli kiedy zasady nie działają).

dalej