Obowiązkowa kontrola dostępu - Mandatory access control

W bezpieczeństwa komputerowego , kontrola obowiązkowa dostępu ( MAC ) odnosi się do rodzaju kontroli dostępu za pomocą których system operacyjny lub baza danych ogranicza zdolność podmiotu lub inicjatora dostępu lub generalnie wykonują jakieś działania na przedmiot lub cel . W przypadku systemów operacyjnych tematem jest zwykle proces lub wątek; obiekty to konstrukcje, takie jak pliki, katalogi, TCP / UDP porty, segmenty pamięci współużytkowanej, urządzenia IO itp. Podmioty i obiekty mają zestaw atrybutów bezpieczeństwa. Za każdym razem, gdy podmiot próbuje uzyskać dostęp do obiektu, reguła autoryzacji wymuszona przez jądro systemu operacyjnego sprawdza te atrybuty bezpieczeństwa i decyduje, czy dostęp może mieć miejsce. Każda operacja wykonywana przez podmiot na dowolnym obiekcie jest sprawdzana pod kątem zestawu reguł autoryzacji (zwanych też zasadami ) w celu określenia, czy operacja jest dozwolona. System zarządzania bazą danych , w swoim mechanizmie kontroli dostępu, może również stosować obowiązkową kontrolę dostępu; w tym przypadku obiektami są tabele, widoki, procedury itp.

Przy obowiązkowej kontroli dostępu ta polityka bezpieczeństwa jest centralnie kontrolowana przez administratora polityki bezpieczeństwa; użytkownicy nie mają możliwości przesłonięcia zasad i, na przykład, udzielenia dostępu do plików, które w innym przypadku byłyby ograniczone. Z kolei dyskrecjonalna kontrola dostępu (DAC), która reguluje również zdolność podmiotów do uzyskiwania dostępu do obiektów, umożliwia użytkownikom podejmowanie decyzji dotyczących zasad i / lub przypisywanie atrybutów bezpieczeństwa. ( Przykładem DAC jest tradycyjny system uniksowy obejmujący użytkowników, grupy i uprawnienia do odczytu, zapisu i wykonania). Systemy obsługujące komputery MAC umożliwiają administratorom polityk wdrażanie zasad bezpieczeństwa w całej organizacji. W MAC (iw przeciwieństwie do DAC), użytkownicy nie mogą zmieniać ani modyfikować tej polityki, ani przypadkowo, ani celowo. Pozwala to administratorom bezpieczeństwa na zdefiniowanie centralnej polityki, która jest gwarantowana (w zasadzie) do egzekwowania dla wszystkich użytkowników.

Historycznie i tradycyjnie MAC był ściśle powiązany z wielopoziomowymi zabezpieczeniami (MLS) i wyspecjalizowanymi systemami wojskowymi. W tym kontekście MAC oznacza wysoki stopień rygoru, aby spełnić ograniczenia systemów MLS. Jednak ostatnio MAC wyszedł z niszy MLS i stał się bardziej powszechny. Nowsze implementacje MAC, takie jak SELinux i AppArmor dla systemu Linux i Mandatory Integrity Control dla Windows, pozwalają administratorom skupić się na problemach, takich jak ataki sieciowe i złośliwe oprogramowanie, bez rygoru i ograniczeń MLS.

Tło historyczne i implikacje dla wielopoziomowego bezpieczeństwa

Historycznie rzecz biorąc, MAC był silnie powiązany z wielopoziomowym zabezpieczeniem (MLS) jako sposobem ochrony informacji niejawnych w Stanach Zjednoczonych. W tcsec (TCSEC), The nasienny praca na ten temat, pod pierwotną definicję MAC jako „środki ograniczające dostęp do obiektów w oparciu o czułość (reprezentowane przez label) informacji zawartych w obiektach oraz formalne upoważnienie (tj. zezwolenie) podmiotom na dostęp do informacji o takiej wrażliwości ”. Wczesne wdrożenia MAC, takie jak SCOMP firmy Honeywell, USAF SACDIN, NSA Blacker i sieć LAN MLS firmy Boeing, skupiały się na MLS w celu ochrony wojskowych poziomów klasyfikacji bezpieczeństwa z solidnym egzekwowaniem.

Termin obowiązkowy w MAC nabrał specjalnego znaczenia wynikającego z jego użycia w systemach wojskowych. W tym kontekście MAC oznacza niezwykle wysoki stopień niezawodności, który zapewnia, że ​​mechanizmy kontrolne mogą oprzeć się wszelkim rodzajom działalności wywrotowej, umożliwiając im w ten sposób egzekwowanie kontroli dostępu, które są nakazane na mocy zarządzenia rządu, takiego jak rozporządzenie wykonawcze 12958 dotyczące informacji niejawnych USA. . Egzekwowanie ma być bardziej konieczne niż w przypadku zastosowań komercyjnych. To wyklucza egzekwowanie poprzez mechanizmy dołożenia wszelkich starań; tylko mechanizmy, które mogą zapewnić bezwzględne lub prawie bezwzględne egzekwowanie mandatu, są dopuszczalne w przypadku MAC. Jest to trudna sprawa i czasami uznawana za nierealistyczną przez osoby nieobeznane ze strategiami o wysokim poziomie pewności, a bardzo trudną dla tych, którzy ją znają.

siła

Stopni

W niektórych systemach użytkownicy mają uprawnienia do decydowania, czy przyznać dostęp innemu użytkownikowi. Aby to umożliwić, wszyscy użytkownicy mają dostęp do wszystkich danych. Niekoniecznie jest to prawdą w przypadku systemu MLS. Jeśli istnieją osoby lub procesy, którym można odmówić dostępu do jakichkolwiek danych w środowisku systemowym, należy zaufać systemowi, aby wymuszał MAC. Ponieważ mogą istnieć różne poziomy klasyfikacji danych i zezwoleń użytkowników, oznacza to ilościową skalę odporności. Na przykład, większa niezawodność jest wskazana w przypadku środowisk systemowych zawierających tajne informacje ściśle tajne i nieuregulowanych użytkowników niż w przypadku środowiska z informacjami tajnymi i użytkownikami, które są co najmniej poufne. Aby promować spójność i wyeliminować subiektywność w stopniach solidności, obszerna analiza naukowa i ocena ryzyka w tym temacie przyniosły przełomową standaryzację, która pozwala na ilościowe określenie odporności systemów na bezpieczeństwo i odwzorowanie ich na stopnie zaufania gwarantowane w różnych środowiskach bezpieczeństwa. Wynik został udokumentowany w CSC-STD-004-85. Zdefiniowano dwa stosunkowo niezależne komponenty solidności: poziom pewności i funkcjonalność. Oba zostały określone ze stopniem precyzji, który dawał duże zaufanie do certyfikatów opartych na tych kryteriach.

Ocena

The Common Criteria jest oparty na tej nauki i ma zamiar utrzymać poziom pewności jako poziomy EAL i specyfikacji funkcjonalnych jak Profiles Protection . Spośród tych dwóch zasadniczych elementów obiektywnych testów porównawczych solidności tylko poziomy EAL zostały wiernie zachowane. W jednym przypadku TCSEC poziom C2 (kategoria nieobsługująca MAC) został dość wiernie zachowany we wspólnych kryteriach, jako profil ochrony kontrolowanego dostępu (CAPP). Profile ochrony wielopoziomowych zabezpieczeń (MLS) (takie jak MLSOSPP podobny do B2) są bardziej ogólne niż B2. Działają zgodnie z MLS, ale brakuje im szczegółowych wymagań wdrożeniowych, które mają ich poprzednicy w Orange Book , koncentrując się bardziej na celach. Daje to jednostkom certyfikującym większą subiektywną elastyczność w decydowaniu, czy cechy techniczne ocenianego produktu odpowiednio osiągają cel, potencjalnie obniżając spójność ocenianych produktów i ułatwiając uzyskanie certyfikacji dla produktów mniej godnych zaufania. Z tych powodów znaczenie szczegółów technicznych profilu ochrony ma kluczowe znaczenie dla określenia przydatności produktu.

Taka architektura uniemożliwia uwierzytelnionemu użytkownikowi lub procesowi o określonej klasyfikacji lub poziomie zaufania uzyskanie dostępu do informacji, procesów lub urządzeń na innym poziomie. Zapewnia to mechanizm powstrzymywania użytkowników i procesów, zarówno znanych, jak i nieznanych (nieznany program (na przykład) może obejmować niezaufaną aplikację, w której system powinien monitorować i / lub kontrolować dostęp do urządzeń i plików).

Wdrożenia

Kilka implementacje MAC, takie jak Unisys ' Blacker projekcie otrzymały certyfikat na tyle solidne, aby oddzielić od Top Secret niesklasyfikowanych późno w ostatnim tysiącleciu. Ich podstawowa technologia stała się przestarzała i nie zostały odświeżone. Obecnie nie ma obecnie wdrożeń certyfikowanych przez TCSEC do tego poziomu solidnej implementacji. Istnieją jednak mniej solidne produkty.

  • RSBAC (Rule Set Based Access Control) firmy Amon Otta zapewnia strukturę dla jądra Linuksa, która pozwala na kilka różnych polityk bezpieczeństwa / modułów decyzyjnych. Jednym z wdrożonych modeli jest model Obowiązkowej kontroli dostępu. Ogólnym celem projektowania RSBAC była próba osiągnięcia (przestarzałego) poziomu Orange Book (TCSEC) B1. Model obowiązkowej kontroli dostępu stosowany w RSBAC jest w większości taki sam jak w Unix System V / MLS, wersja 1.2.1 (opracowana w 1989 roku przez National Computer Security Center USA z klasyfikacją B1 / TCSEC). RSBAC wymaga zestawu łatek do podstawowego jądra, które są dość dobrze utrzymywane przez właściciela projektu.
  • Projekt badawczy NSA o nazwie SELinux dodał architekturę obowiązkowej kontroli dostępu do jądra Linuksa , która została włączona do głównej wersji Linuksa w sierpniu 2003 roku. Wykorzystuje ona funkcję jądra Linuksa 2.6 o nazwie LSM (interfejs modułów bezpieczeństwa Linuksa). Red Hat Enterprise Linux w wersji 4 (i nowsze) są dostarczane z jądrem obsługującym SELinux. Chociaż SELinux jest w stanie ograniczyć wszystkie procesy w systemie, domyślna polityka ukierunkowana w RHEL ogranicza najbardziej narażone programy do nieograniczonej domeny, w której działają wszystkie inne programy. RHEL 5 dostarcza 2 inne binarne typy zasad: ścisłą , która próbuje zaimplementować najmniejsze przywileje , oraz MLS , która jest oparta na ścisłych i dodaje etykiety MLS . RHEL 5 zawiera dodatkowe ulepszenia MLS i otrzymał 2 certyfikaty LSPP / RBACPP / CAPP / EAL4 + w czerwcu 2007.
  • TOMOYO Linux to lekka implementacja MAC dla systemów Linux i Embedded Linux , opracowana przez NTT Data Corporation . Został on włączony do głównej wersji jądra Linuksa 2.6.30 w czerwcu 2009 roku. W odróżnieniu od podejścia opartego na etykietach używanego przez SELinux , TOMOYO Linux wykonuje obowiązkową kontrolę dostępu opartą na ścieżkach , oddzielając domeny bezpieczeństwa zgodnie z historią wywołań procesu, która opisuje zachowanie systemu. Zasady są opisane za pomocą nazw ścieżek. Domena bezpieczeństwa jest po prostu definiowana przez łańcuch wywołań procesu i reprezentowana przez ciąg. Istnieją 4 tryby: wyłączony, uczący się , pobłażliwy, egzekwujący. Administratorzy mogą przypisywać różne tryby do różnych domen. TOMOYO Linux wprowadził tryb „uczenia się”, w którym dostęp do jądra jest automatycznie analizowany i zapisywany w celu wygenerowania polityki MAC: ten tryb może być wówczas pierwszym krokiem do napisania polityki, ułatwiając późniejsze dostosowanie.
  • SUSE Linux i Ubuntu 7.10 dodały implementację MAC o nazwie AppArmor . AppArmor wykorzystuje funkcję jądra Linuksa 2.6 o nazwie LSM (interfejs modułów bezpieczeństwa Linuksa). LSM udostępnia API jądra, które umożliwia modułom kodu jądra zarządzanie listami ACL (DAC ACL, listy kontroli dostępu). AppArmor nie jest w stanie ograniczyć wszystkich programów i jest opcjonalnie dostępny w jądrze Linuksa od wersji 2.6.36.
  • Linux i wiele innych dystrybucji Uniksa ma MAC dla procesora (multi-ring), dysku i pamięci; Podczas gdy oprogramowanie systemu operacyjnego może nie zarządzać dobrze uprawnieniami, Linux stał się sławny w latach 90. jako bezpieczniejszy i znacznie stabilniejszy niż alternatywy nieunixowe. Dystrybutorzy Linuksa wyłączają MAC, aby był najlepszym przetwornikiem cyfrowo-analogowym dla niektórych urządzeń - chociaż jest to prawdą w przypadku każdej dostępnej obecnie elektroniki użytkowej.
  • grsecurity to łatka do jądra Linuksa zapewniająca implementację MAC (dokładnie jest to implementacja RBAC ). grsecurity nie jest implementowane za pośrednictwem interfejsu API LSM .
  • Microsoft Począwszy od systemu Windows Vista i Server 2008, system Windows zawiera obowiązkową kontrolę integralności , która dodaje poziomy integralności (IL) do procesów działających w sesji logowania. MIC ogranicza uprawnienia dostępu do aplikacji działających na tym samym koncie użytkownika, które mogą być mniej godne zaufania. Zdefiniowano pięć poziomów integralności: niski, średni, wysoki, systemowy i zaufany instalator. Procesy rozpoczęte przez zwykłego użytkownika otrzymują Medium IL; podwyższone procesy mają wysoki IL. Podczas gdy procesy dziedziczą poziom integralności procesu, który je zrodził, poziom integralności można dostosować w zależności od procesu: np. IE7 i pobrane pliki wykonywalne działają z niskim IL. System Windows kontroluje dostęp do obiektów opartych na IL, a także definiuje granice komunikatów okien za pomocą izolacji uprawnień interfejsu użytkownika . Nazwane obiekty , w tym pliki , klucze rejestru lub inne procesy i wątki , mają wpis na liście ACL regulujący dostęp do nich, który określa minimalną liczbę IL procesu, który może korzystać z obiektu. MIC wymusza, aby proces mógł zapisywać lub usuwać obiekt tylko wtedy, gdy jego IL jest równy lub wyższy niż IL obiektu. Ponadto, aby uniemożliwić dostęp do poufnych danych w pamięci, procesy nie mogą otwierać procesów z wyższym IL w celu uzyskania dostępu do odczytu.
  • FreeBSD obsługuje Obowiązkową Kontrolę Dostępu , zaimplementowaną w ramach projektu TrustedBSD. Został wprowadzony we FreeBSD 5.0. Od FreeBSD 7.2 obsługa MAC jest domyślnie włączona. Struktura jest rozszerzalna; różne moduły MAC implementują zasady, takie jak Biba i wielopoziomowe zabezpieczenia .
  • Sun Trusted Solaris używa obowiązkowego i wymuszanego przez system mechanizmu kontroli dostępu (MAC), w którym zezwolenia i etykiety służą do egzekwowania polityki bezpieczeństwa. Należy jednak pamiętać, że możliwość zarządzania etykietami nie oznacza siły jądra do działania w wielopoziomowym trybie zabezpieczeń . Dostęp do etykiet i mechanizmów kontrolnych nie jest solidnie chroniony przed uszkodzeniem w chronionej domenie utrzymywanej przez jądro. Aplikacje uruchamiane przez użytkownika są łączone z etykietą bezpieczeństwa, na której użytkownik pracuje w sesji. Dostęp do informacji, programów i urządzeń jest tylko słabo kontrolowany.
  • Struktura Mac OS X firmy Apple jest implementacją struktury TrustedBSD MAC. Ograniczony interfejs piaskownicy wysokiego poziomu zapewnia funkcja wiersza polecenia sandbox_init. Zobacz stronę podręcznika sandbox_init, aby uzyskać dokumentację.
  • Oracle Label Security to implementacja obowiązkowej kontroli dostępu w Oracle DBMS .
  • SE-PostgreSQL jest w toku na dzień 2008-01-27, zapewniając integrację z SE-Linux. Ma na celu integrację z wersją 8.4 wraz z ograniczeniami na poziomie wiersza.
  • Trusted RUBIX to system DBMS z obowiązkową kontrolą dostępu, który w pełni integruje się z SE-Linux w celu ograniczenia dostępu do wszystkich obiektów bazy danych.
  • System operacyjny Astra Linux opracowany dla armii rosyjskiej ma własną obowiązkową kontrolę dostępu.
  • Smack ( Simplified Mandatory Access Control Kernel ) to moduł bezpieczeństwa jądra Linux , który chroni dane i interakcje procesu przed złośliwymi manipulacjami przy użyciu zestawu niestandardowych obowiązkowych reguł kontroli dostępu, których głównym celem jest prostota. Został oficjalnie połączony od wydania Linuksa 2.6.25.
  • ZeroMAC napisany przez Petera Gabor Gyulay to łatka na jądro Linux LSM.

Zobacz też

Przypisy

Bibliografia

Zewnętrzne linki