Co to jest mechanizm integralności systemu Windows?

Mechanizm integralności systemu Windows jest podstawowym składnikiem architektury zabezpieczeń systemu Windows, który ogranicza uprawnienia dostępu aplikacji działających na tym samym koncie użytkownika i które są mniej wiarygodne.

Mechanizm integralności systemu Windows Vista® rozszerza architekturę zabezpieczeń systemu operacyjnego, przypisując poziom integralności do procesów aplikacji i zabezpieczanych obiektów.

Poziom integralności to reprezentacja wiarygodności uruchamiania procesów i obiektów aplikacji, takich jak pliki utworzone przez aplikację. Mechanizm integralności zapewnia możliwość menedżerów zasobów, takich jak system plików, do używania wstępnie zdefiniowanych zasad, które blokują procesy niższej integralności lub niższej wiarygodności, odczytu lub modyfikowania obiektów o większej integralności. Mechanizm integralności umożliwia modelowi zabezpieczeń systemu Windows wymuszanie nowych ograniczeń kontroli dostępu, których nie można zdefiniować, udzielając uprawnień użytkownika lub grupy na listach kontroli dostępu (ACL).

Architektura zabezpieczeń systemu Windows opiera się głównie na udzielaniu praw dostępu (uprawnienia do odczytu, zapisu i wykonywania) oraz uprawnienia do użytkowników lub grup reprezentowanych wewnętrznie przez identyfikatory zabezpieczeń (SID). Gdy użytkownik loguje się do systemu Windows, podsystem zabezpieczeń ustawia identyfikatory SID użytkownika i identyfikatory SID członkostwa w grupie w tokenie dostępu do zabezpieczeń. Token dostępu do zabezpieczeń jest przypisywany do każdego procesu aplikacji, który jest uruchamiany przez tego użytkownika. Za każdym razem, gdy proces aplikacji otwiera obiekt, taki jak plik lub klucz rejestru, menedżer zasobów, który zarządza obiektem wywołuje podsystem zabezpieczeń w celu podjęcia decyzji o dostępie. Kontrola dostępu określa dozwolone uprawnienia dostępu dla tego użytkownika. Podsystem zabezpieczeń (znany również jako Monitor odwołań do zabezpieczeń) porównuje identyfikatory SID użytkownika i grupy w tokenie dostępu z prawami dostępu w deskryptorze zabezpieczeń skojarzonym z obiektem. Jeśli identyfikator SID użytkownika ma przyznane pełne prawa dostępu do listy ACL obiektu, proces aplikacji, który jest uruchamiany przez użytkownika, ma pełny dostęp do obiektu. Aby uzyskać więcej informacji na temat architektury zabezpieczeń systemu Windows, zobacz Zasoby mechanizmu integralności systemu Windows.

Rozszerzanie architektury zabezpieczeń systemu Windows

Mechanizm integralności systemu Windows rozszerza architekturę zabezpieczeń, definiując nowy typ wpisu kontroli dostępu (ACE), aby reprezentować poziom integralności w deskryptorze zabezpieczeń obiektu. Nowa usługa ACE reprezentuje poziom integralności obiektu. Poziom integralności jest również przypisywany do tokenu dostępu zabezpieczeń po zainicjowaniu tokenu dostępu. Poziom integralności w tokenie dostępu reprezentuje poziom integralności podmiotu. Poziom integralności w tokenie dostępu jest porównywany z poziomem integralności w deskryptorze zabezpieczeń, gdy monitor odwołania do zabezpieczeń wykonuje kontrolę dostępu. System Windows Vista używa funkcji AccessCheck , aby określić, jakie prawa dostępu mogą być zabezpieczane. System Windows ogranicza dozwolone prawa dostępu w zależności od tego, czy poziom integralności podmiotu jest wyższy lub niższy niż obiekt, i w zależności od flag zasad integralności w nowej kontroli dostępu ACE. Podsystem zabezpieczeń implementuje poziom integralności jako obowiązkową etykietę, aby odróżnić go od uznaniowego dostępu w ramach kontroli użytkownika zapewnianej przez listy ACL.

Cele projektowania mechanizmu integralności systemu Windows

Mechanizm integralności systemu Windows umożliwia szereg ważnych scenariuszy w systemie Windows Vista. Aby spełnić wymagania, projekt mechanizmu integralności systemu Windows musiał spełnić następujące cele.

  • Poziomy integralności muszą być przypisywane automatycznie do każdego tokenu dostępu zabezpieczeń podczas tworzenia tokenu dostępu, dzięki czemu każdy proces i wątek mają skuteczny poziom integralności kontroli dostępu.
  • Podsystem zabezpieczeń automatycznie przypisuje obowiązkowe etykiety do określonych typów obiektów.
  • System musi używać jak najmniejszej liczby poziomów integralności, aby zachować podstawową architekturę prostą do zrozumienia i użycia.
  • Zasady integralności muszą być elastyczne, aby spełnić wymagania dostępu różnych menedżerów zasobów obiektów i umożliwić przyszłe rozszerzanie.
  • Mechanizm integralności musi zostać zintegrowany z istniejącą architekturą zabezpieczeń, aby zminimalizować wpływ na dużą starszą częścią systemu i kodu aplikacji, który zależy od zabezpieczeń systemu Windows.
  • Nie ma potrzeby, aby administratorzy ani użytkownicy konfigurowali poziomy integralności dla mechanizmu wymuszania, aby działał prawidłowo.

Mechanizm integralności systemu Windows spełnia te cele, definiując nowy obowiązkowy typ ACE etykiety na potrzeby przypisywania poziomu integralności do obiektów. Szczegóły tej struktury opisano w dalszej części tego artykułu. Jednak obowiązkowa etykieta ACE definiuje poziom integralności obiektu bez zmian w istniejącej definicji struktury danych deskryptora zabezpieczeń lub do powszechnie używanej listy kontroli dostępu dyskrecjonalnych.

Mechanizm integralności systemu Windows jest oparty na obowiązkowej etykiecie przypisanej przez system operacyjny w celu odróżnienia go od uznaniowego dostępu pod kontrolą użytkownika. Uznaniowa kontrola dostępu umożliwia właścicielowi obiektu lub grupie, której udzielono uprawnień, w celu zmiany uprawnień dostępu obiektu. System Windows udostępnia graficzny interfejs użytkownika dla zaawansowanych użytkowników w celu wyświetlania i modyfikowania uprawnień zabezpieczeń (reprezentowanych przez uznaniową listę ACL) na obiektach, takich jak pliki i klucze rejestru. Obowiązkowe etykiety są zawsze przypisywane do określonych obiektów i istnieją kontrolki dotyczące sposobu, w jaki twórca obiektu może ustawić lub zainicjować etykietę podczas tworzenia obiektu. Nie zaimplementowano graficznego interfejsu użytkownika do zarządzania etykietami integralności dla systemu Windows Vista, ponieważ zarządzanie etykietami jest dostępne lub konieczne dla stosunkowo niewielu obszarów.

Dlaczego istnieje mechanizm integralności systemu Windows?

Celem mechanizmu integralności systemu Windows jest ograniczenie uprawnień dostępu aplikacji, które działają na tym samym koncie użytkownika i które są mniej wiarygodne. Nieznany, potencjalnie złośliwy kod pobrany z Internetu musi być uniemożliwiony modyfikowanie stanu systemu, zmienianie plików danych użytkownika lub manipulowanie zachowaniem innych programów aplikacji. Podsystem zabezpieczeń systemu Windows przypisuje prostą hierarchię poziomów integralności do kodu działającego na różnych poziomach uprawnień dla tego samego użytkownika. Poprzednie wersje systemu Windows mogą dostosować uprawnienia tokenu dostępu do zabezpieczeń procesu aplikacji, chociaż taka korekta nie jest powszechna. Przed systemem Windows Vista większość aplikacji była uruchamiana przy użyciu konta administracyjnego z pełnymi uprawnieniami administratora. System Windows Vista obejmuje koncepcję najmniejszych uprawnień, umożliwiając szersze korzystanie ze standardowych kont użytkowników. Kontrola konta użytkownika (UAC) w trybie zatwierdzania Administracja dla kont administratorów oznacza, że wiele aplikacji na tym samym pulpicie działa z różnymi poziomami uprawnień. Na przykład program Internet Explorer w trybie chronionym używa mechanizmu integralności do uruchamiania przeglądarki sieci Web w procesie z ograniczonymi uprawnieniami dostępu.

Podstawowym problemem z zabezpieczeniami, który dotyczy mechanizmu integralności systemu Windows, jest nieautoryzowane manipulowanie danymi użytkownika i pośrednio ze stanem systemu. Pomocniczym problemem, z który pomaga mechanizm integralności, jest ujawnienie informacji. Ujawnienie informacji jest jednak blokowane tylko w odniesieniu do dostępu do przestrzeni adresowej przetwarzania. Udostępnianie informacji jest bardzo powszechne między aplikacjami systemu Windows, a wygodne udostępnianie informacji między aplikacjami jest fundamentalne dla środowiska użytkownika. Jednym z przykładów jest kopiowanie i wklejanie. Sztywne granice zabezpieczeń dotyczące udostępniania informacji między aplikacjami działającymi na tym samym koncie użytkownika mogą poważnie wpływać na zgodność aplikacji i środowisko użytkownika.

Niezaufny kod może próbować zmodyfikować dane użytkownika na wiele sposobów. Niektóre ataki mogą próbować manipulować danymi bezpośrednio, tworząc, modyfikując lub usuwając pliki. Inne ataki są celem innego procesu działającego na wyższym poziomie uprawnień, a celem uzyskania dowolnego kodu do wykonania w innej aplikacji, która ma wymagany poziom dostępu. Istnieje wiele typów ataków obejmujących wiele procesów. Ze względu na szeroki zakres projektowania i implementacji aplikacji mechanizm integralności nie może zapewnić pełnej bariery izolacji. Mechanizm integralności systemu Windows nie jest przeznaczony jako piaskownica aplikacji. Może to być jednak jedno z narzędzi zabezpieczeń używanych przez deweloperów aplikacji w celu ograniczenia zachowania mniej zaufanych aplikacji.

Mechanizm integralności systemu Windows Vista i starsze modele integralności

Niektóre cechy mechanizmu integralności systemu Windows są podobne do wcześniejszych modeli integralności dla zabezpieczeń komputerów. Jednak mechanizm integralności systemu Windows jest przeznaczony przede wszystkim do rozwiązywania problemów z naruszeniem lub podniesieniem uprawnień w wysoce współpracy środowiska aplikacji systemu Windows. Poprzednie modele integralności były bardziej zaniepokojone utrzymaniem integralności zaufanych procesów przez wymuszanie zasad, które uniemożliwiają odczytywanie niezaufanych danych.

Model zabezpieczeń usługi Biba jest oparty na hierarchii etykiet integralności i zasad dostępu, które są dozwolone, gdy poziom integralności podmiotu dominuje na poziomie integralności obiektu. Mechanizm integralności systemu Windows przypomina model Biba w następujący sposób:

  • Używa ona hierarchii etykiet integralności (etykiety integralności nie są takie same jak etykiety zabezpieczeń w modelu Bell-LePadula).
  • System używa zestawu uporządkowanych obiektów, obiektów i poziomów integralności.
  • Poziom integralności podmiotu dominuje (jest większy lub równy) poziom integralności obiektu.
  • Zasady integralności hamują dostęp do obiektów, ale nie są używane głównie do ograniczania przepływu informacji.
  • Zapobieganie ujawnieniu informacji nie jest celem mechanizmu integralności w systemie Windows Vista.

Poziomy integralności systemu Windows są uporządkowane tak, aby niższa wartość oznaczała mniej wiarygodności, a wyższa wartość wskazuje większą wiarygodność. Podmiot niższego poziomu nie może zmodyfikować obiektu wyższego poziomu. Poziom integralności podmiotu nie jest dynamiczny. Na przykład poziom integralności podmiotu nie zmienia się na niższą wartość, jeśli proces odczytuje dane z obiektu o niskiej integralności. Model ścisłej integralności w usłudze Biba nie zezwala na odczyt danych o niższej integralności. Jest to czasami nazywane zasadami integralności "no-read-down". Zasady integralności systemu Windows, które zostały opisane bardziej szczegółowo poniżej, nie hamują ani nie uniemożliwiają podmiotom o większej integralności odczytywanie ani wykonywanie obiektów o niższej integralności. Istnieje wiele przykładów ataków, w których odczytywanie nieprawidłowo sformułowanych, niezaufanych danych wejściowych powoduje wykorzystanie luki w zabezpieczeniach aplikacji i dowolne wykonywanie kodu. Mechanizm integralności systemu Windows nie hamuje ani nie zapobiega odczytywaniu danych na żadnym poziomie. System Windows nie wymusza zasad ścisłej integralności opisanych w modelu Biba. Projekt integralności zakłada, że procesy przeznaczone do obsługi niezaufanych danych z nieznanego lub niezaufanego źródła są uruchamiane na niższym poziomie integralności lub że niezaufane dane są weryfikowane przed użyciem. Jednak mechanizm integralności systemu Windows nie wymusza tego ograniczenia.

Mechanizm integralności systemu Windows nie implementuje zasad dynamicznych ani "Low-Water-Mark". Zasady dynamiczne zmieniają poziom integralności podmiotu, gdy temat otwiera obiekty o mniejszej integralności. Problem z integralnością dynamiczną polega na tym, że proces o wysokiej integralności uzyskuje otwarte uchwyty dla wielu obiektów na podstawie wysokiej integralności, a następnie nagle staje się podmiotem o niższej integralności po otwarciu określonego pliku o niskiej integralności. Wymuszanie zamknięcia wszystkich otwartych dojść do obiektów o większej integralności, gdy poziom integralności zmienia się znacząco wpływa na zachowanie aplikacji. Dynamiczny proces o niższej integralności staje się obiektem docelowym innych procesów na niższym poziomie integralności. Takie procesy mogą teraz modyfikować zachowanie aplikacji (na tym samym niższym poziomie), który ma otwarte uchwyty do obiektów o większej integralności.

Mechanizm integralności systemu Windows nie jest przeznaczony do ochrony integralności danych w celu obsługi wymagań wojskowych lub komercyjnych zgodnie z opisem w modelu Clark-Wilson. Implementacja mechanizmów kontroli integralności systemu Windows nie opiera się na pojęciach ograniczonych ani nieprzyciągniętych elementów danych i certyfikowanych procedur przekształcania. Jednak te pojęcia są przydatne dla projektantów aplikacji, gdy rozważają przepływ informacji z niezaufanych źródeł do procesów o większej integralności.

Chociaż mechanizm integralności systemu Windows jest podobny do wcześniejszych modeli integralności w zabezpieczeniach komputerów, system Windows Vista nie próbuje zaimplementować żadnego z modeli. Zamiast tego mechanizm integralności systemu Windows ogranicza uprawnienia dostępu, które są dostępne dla procesów uruchomionych z różnymi poziomami uprawnień lub zaufania. Aby uzyskać więcej informacji na temat wcześniejszych prac nad modelami integralności firmy Biba i Clark-Wilson i zasadami integralności dynamicznej, zobacz Zasoby mechanizmu integralności systemu Windows.