Delen via


Verplicht integriteitsbeheer

Verplicht integriteitsbeheer (MIC) biedt een mechanisme voor het beheren van de toegang tot beveiligbare objecten. Dit mechanisme is naast discretionair toegangsbeheer en evalueert de toegang voordat toegangscontroles worden uitgevoerd op basis van de discretionaire toegangsbeheerlijst (DACL) van een object worden geƫvalueerd.

MIC maakt gebruik van integriteitsniveaus en verplicht beleid om toegang te evalueren. Beveiligingsprincipaals en beveiligbare objecten worden integriteitsniveaus toegewezen die hun beveiligings- of toegangsniveaus bepalen. Een principal met een laag integriteitsniveau kan bijvoorbeeld niet schrijven naar een object met een gemiddeld integriteitsniveau, zelfs als de DACL van dat object schrijftoegang tot de principal toestaat.

Windows definieert vier integriteitsniveaus: laag, gemiddeld, hoog en systeem. Standaardgebruikers ontvangen gemiddeld, gebruikers met verhoogde bevoegdheden ontvangen een hoog niveau. Processen die u start en objecten die u maakt, ontvangen uw integriteitsniveau (gemiddeld of hoog) of laag als het niveau van het uitvoerbare bestand laag is; systeemservices ontvangen systeemintegriteit. Objecten die geen integriteitslabel hebben, worden behandeld als gemiddeld door het besturingssysteem; Hiermee voorkomt u dat code met lage integriteit niet-gelabelde objecten wijzigt. Daarnaast zorgt Windows ervoor dat processen met een laag integriteitsniveau geen toegang krijgen tot een proces dat is gekoppeld aan een app-container.

Integriteitslabels

Integriteitslabels geven de integriteitsniveaus van beveiligbare objecten en beveiligingsprinciplen op. Integriteitslabels worden vertegenwoordigd door integriteits-SID's. De integriteits-SID voor een beveiligbaar object wordt opgeslagen in de systeemtoegangsbeheerlijst (SACL). De SACL bevat een SYSTEM_MANDATORY_LABEL_ACEtoegangsbeheervermelding (ACE) die op zijn beurt de integriteits-SID bevat. Elk object zonder integriteits-SID wordt behandeld alsof het een gemiddelde integriteit heeft.

De integriteits-SID voor een beveiligingsprincipaal wordt opgeslagen in het toegangstoken. Een toegangstoken kan een of meer integriteits-SID's bevatten.

Zie Bekende SID'svoor gedetailleerde informatie over de gedefinieerde integriteits-SID's.

Proces maken

Wanneer een gebruiker probeert een uitvoerbaar bestand te starten, wordt het nieuwe proces gemaakt met het minimale niveau van de gebruikersintegriteit en het niveau van de bestandsintegriteit. Dit betekent dat het nieuwe proces nooit met een hogere integriteit wordt uitgevoerd dan het uitvoerbare bestand. Als de beheerder een programma met lage integriteit uitvoert, wordt het token voor de nieuwe procesfuncties met een laag integriteitsniveau uitgevoerd. Dit helpt een gebruiker te beschermen die onbetrouwbaar code start tegen schadelijke handelingen die door die code worden uitgevoerd. De gebruikersgegevens, die zich op het typische niveau van de gebruikersintegriteit bevinden, worden beveiligd tegen dit nieuwe proces.

Verplicht beleid

De SYSTEM_MANDATORY_LABEL_ACE ACE in de SACL van een beveiligbaar object bevat een toegangsmasker dat de toegang aangeeft die principals met integriteitsniveaus lager zijn dan het object. De waarden die zijn gedefinieerd voor dit toegangsmasker zijn SYSTEM_MANDATORY_LABEL_NO_WRITE_UP, SYSTEM_MANDATORY_LABEL_NO_READ_UPen SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP. Het systeem maakt standaard elk object met een toegangsmasker van SYSTEM_MANDATORY_LABEL_NO_WRITE_UP.

Elk toegangstoken geeft ook een verplicht beleid op dat wordt ingesteld door de Local Security Authority (LSA) wanneer het token wordt gemaakt. Dit beleid wordt opgegeven door een TOKEN_MANDATORY_POLICY structuur die is gekoppeld aan het token. Deze structuur kan worden opgevraagd door de functie GetTokenInformation- aan te roepen met de waarde van de parameter TokenInformationClass ingesteld op TokenMandatoryPolicy-.