Kötelező integritás-vezérlés
A kötelező integritás-vezérlés (MIC) lehetővé teszi a biztonságos objektumokhoz való hozzáférés szabályozását. Ez a mechanizmus a diszkrecionális hozzáférés-vezérlés mellett a hozzáférést is kiértékeli, mielőtt a hozzáférés-ellenőrzést egy objektum diszkrecionális hozzáférés-vezérlési lista (DACL) kiértékeli.
A MIC integritási szinteket és kötelező szabályzatokat használ a hozzáférés kiértékeléséhez. biztonsági tagok és biztonságos objektumok olyan integritási szinteket kapnak, amelyek meghatározzák a védelmi vagy hozzáférési szinteket. Az alacsony integritási szinttel rendelkező egyszerű felhasználók például nem írhatnak közepes integritási szinttel rendelkező objektumokba, még akkor sem, ha az objektum DACL-jével írási hozzáférés érhető el az egyszerű felhasználóhoz.
A Windows négy integritási szintet határoz meg: alacsony, közepes, magas és rendszerszintű. A standard felhasználók közepes, emelt szintű felhasználókat kapnak. A létrehozott folyamatok és objektumok integritási szintje (közepes vagy magas) vagy alacsony, ha a végrehajtható fájl szintje alacsony; rendszerszolgáltatások kapják a rendszer integritását. Az integritáscímkét nem tartalmazó objektumokat az operációs rendszer közepesnek kezeli; ez megakadályozza, hogy az alacsony integritású kód módosítsa a nem címkézett objektumokat. Emellett a Windows biztosítja, hogy az alacsony integritási szinttel futó folyamatok ne férhessenek hozzá egy alkalmazástárolóhoz társított folyamathoz.
Integritáscímkék
Az integritáscímkék a biztonságos objektumok és a biztonsági tagok integritási szintjeit határozzák meg. Az integritáscímkéket integritásazonosítókjelölik. A biztonságos objektumok integritási biztonsági azonosítója a rendszerhozzáférés-vezérlési listájában (SACL) található. A SACL tartalmaz egy SYSTEM_MANDATORY_LABEL_ACEhozzáférés-vezérlési bejegyzést (ACE), amely viszont tartalmazza az integritási SID-t. Az integritás nélküli objektumokat a rendszer úgy kezeli, mintha közepes integritású lenne.
A rendszer a biztonsági tag integritási BIZTONSÁGI azonosítóját a hozzáférési jogkivonatában tárolja. A hozzáférési jogkivonatok egy vagy több integritási SID-t tartalmazhatnak.
A definiált integritási SID-kkel kapcsolatos részletes információkért lásd jól ismert SID-k.
Folyamat létrehozása
Amikor egy felhasználó végrehajtható fájlt próbál elindítani, az új folyamat a felhasználói integritási szint és a fájlintegritási szint minimális szintjével jön létre. Ez azt jelenti, hogy az új folyamat soha nem lesz nagyobb integritású, mint a végrehajtható fájl. Ha a rendszergazda felhasználó alacsony integritású programot hajt végre, az új folyamat jogkivonata alacsony integritási szinttel működik. Ez segít megvédeni egy olyan felhasználót, aki nem megbízható kódot indít el a kód által végrehajtott rosszindulatú cselekedetekkel szemben. A tipikus felhasználói integritási szinten lévő felhasználói adatok írásvédettek az új folyamattal szemben.
Kötelező szabályzat
A biztonságos objektumok SACL-jében található SYSTEM_MANDATORY_LABEL_ACE ACE egy hozzáférési maszkot tartalmaz, amely meghatározza az objektumnál alacsonyabb integritási szintű tagok hozzáférését. A hozzáférési maszkhoz definiált értékek a következők: SYSTEM_MANDATORY_LABEL_NO_WRITE_UP, SYSTEM_MANDATORY_LABEL_NO_READ_UPés SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP. Alapértelmezés szerint a rendszer minden objektumot SYSTEM_MANDATORY_LABEL_NO_WRITE_UPhozzáférési maszkkal hoz létre.
Minden hozzáférési jogkivonat egy kötelező szabályzatot is meghatároz, amelyet a helyi biztonsági szolgáltató (LSA) állít be a jogkivonat létrehozásakor. Ezt a szabályzatot a jogkivonathoz társított TOKEN_MANDATORY_POLICY struktúra határozza meg. Ez a struktúra lekérdezhető úgy, hogy meghívja a GetTokenInformation függvényt a TokenInformationClass paraméter értékével a TokenMandatoryPolicy .