Obowiązkowa kontrola integralności
Obowiązkowa kontrola integralności (MIC) zapewnia mechanizm kontrolowania dostępu do zabezpieczanych obiektów. Ten mechanizm jest oprócz uznaniowej kontroli dostępu i ocenia dostęp przed sprawdzeniem dostępu względem dyskrecjonalnych list kontroli dostępu obiektu (DACL) są oceniane.
Mikrofon używa poziomów integralności i obowiązkowych zasad do oceny dostępu. podmioty zabezpieczeń i zabezpieczane obiekty mają przypisane poziomy integralności, które określają ich poziomy ochrony lub dostępu. Na przykład podmiot zabezpieczeń o niskim poziomie integralności nie może zapisywać w obiekcie o średnim poziomie integralności, nawet jeśli lista DACL tego obiektu zezwala na dostęp do zapisu do podmiotu zabezpieczeń.
System Windows definiuje cztery poziomy integralności: niski, średni, wysoki i system. Użytkownicy standardowi otrzymują średni, podwyższony poziom użytkowników otrzymuje wysoki poziom. Procesy uruchamiane i tworzone obiekty otrzymują poziom integralności (średni lub wysoki) lub niski, jeśli poziom pliku wykonywalnego jest niski; usługi systemowe odbierają integralność systemu. Obiekty, które nie mają etykiety integralności, są traktowane jako nośnik przez system operacyjny; Zapobiega to modyfikowaniu obiektów bez etykiet w kodzie o niskiej integralności. Ponadto system Windows zapewnia, że procesy uruchomione z niskim poziomem integralności nie mogą uzyskać dostępu do procesu skojarzonego z kontenerem aplikacji.
Etykiety integralności
Etykiety integralności określają poziomy integralności zabezpieczanych obiektów i podmiotów zabezpieczeń. Etykiety integralności są reprezentowane przez identyfikatory SID integralności. Identyfikator SID integralności zabezpieczanego obiektu jest przechowywany w systemowej liście kontroli dostępu (SACL). SACL zawiera SYSTEM_MANDATORY_LABEL_ACEwpis kontroli dostępu (ACE), który z kolei zawiera identyfikator SID integralności. Każdy obiekt bez identyfikatora SID integralności jest traktowany tak, jakby miał średnią integralność.
Identyfikator SID integralności podmiotu zabezpieczeń jest przechowywany w tokenie dostępu. Token dostępu może zawierać jeden lub więcej identyfikatorów SID integralności.
Aby uzyskać szczegółowe informacje na temat zdefiniowanych identyfikatorów SID integralności, zobacz dobrze znanych identyfikatorów SID.
Tworzenie procesu
Gdy użytkownik próbuje uruchomić plik wykonywalny, zostanie utworzony nowy proces z minimalnym poziomem integralności użytkownika i poziomem integralności pliku. Oznacza to, że nowy proces nigdy nie będzie wykonywany z wyższą integralnością niż plik wykonywalny. Jeśli administrator wykonuje program o niskiej integralności, token dla nowych funkcji procesu z niskim poziomem integralności. Pomaga to chronić użytkownika, który uruchamia niezaufany kod przed złośliwymi działaniami wykonywanymi przez ten kod. Dane użytkownika, które są na typowym poziomie integralności użytkownika, są chronione przed tym nowym procesem.
Obowiązkowe zasady
SYSTEM_MANDATORY_LABEL_ACE ACE w SACL zabezpieczanego obiektu zawiera maskę dostępu określającą dostęp podmiotów z poziomami integralności niższymi niż obiekt. Wartości zdefiniowane dla tej maski dostępu to SYSTEM_MANDATORY_LABEL_NO_WRITE_UP, SYSTEM_MANDATORY_LABEL_NO_READ_UPi SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP. Domyślnie system tworzy każdy obiekt z maską dostępu SYSTEM_MANDATORY_LABEL_NO_WRITE_UP.
Każdy token dostępu określa również obowiązkowe zasady ustawione przez lokalnego urzędu zabezpieczeń (LSA) podczas tworzenia tokenu. Te zasady są określane przez TOKEN_MANDATORY_POLICY struktury skojarzonej z tokenem. Tę strukturę można odpytować, wywołując funkcję GetTokenInformation z wartością parametru TokenInformationClass ustawioną na TokenMandatoryPolicy.