Dela via


Obligatorisk integritetskontroll

Obligatorisk integritetskontroll (MIC) tillhandahåller en mekanism för att styra åtkomsten till skyddsbara objekt. Den här mekanismen är utöver diskretionär åtkomstkontroll och utvärderar åtkomst innan åtkomstkontroller mot ett objekts diskretionära åtkomstkontrollista (DACL) utvärderas.

MIC använder integritetsnivåer och obligatorisk princip för att utvärdera åtkomsten. säkerhetsobjekt och skyddsbara objekt tilldelas integritetsnivåer som bestämmer deras skyddsnivå eller åtkomst. Ett huvudnamn med låg integritetsnivå kan till exempel inte skriva till ett objekt med en medelhög integritetsnivå, även om objektets DACL tillåter skrivåtkomst till huvudkontot.

Windows definierar fyra integritetsnivåer: låg, medel, hög och system. Standardanvändare får medelhöga, upphöjda användare som får hög. Processer som du startar och objekt som du skapar får din integritetsnivå (medelhög eller hög) eller låg om den körbara filens nivå är låg. systemtjänster får systemintegritet. Objekt som saknar en integritetsetikett behandlas som medium av operativsystemet. Detta förhindrar att kod med låg integritet ändrar omärkta objekt. Dessutom ser Windows till att processer som körs med låg integritetsnivå inte kan få åtkomst till en process som är associerad med en appcontainer.

Integritetsetiketter

Integritetsetiketter anger integritetsnivåer för skyddsbara objekt och säkerhetsobjekt. Integritetsetiketter representeras av integritets-SID:er. Integritets-SID för ett skyddsbart objekt lagras i dess lista över systemåtkomstkontroll (SACL). SACL innehåller en SYSTEM_MANDATORY_LABEL_ACEåtkomstkontrollpost (ACE) som i sin tur innehåller integritets-SID. Alla objekt utan integritets-SID behandlas som om det hade medelhög integritet.

Integritets-SID för ett säkerhetsobjekt lagras i dess åtkomsttoken. En åtkomsttoken kan innehålla en eller flera integritets-SID:er.

Detaljerad information om de definierade integritets-SID:erna finns i välkända SID:er.

Skapa process

När en användare försöker starta en körbar fil skapas den nya processen med minsta möjliga användarintegritetsnivå och filintegritetsnivå. Det innebär att den nya processen aldrig körs med högre integritet än den körbara filen. Om administratörsanvändaren kör ett program med låg integritet fungerar token för de nya processfunktionerna med låg integritetsnivå. Detta hjälper till att skydda en användare som startar opålitlig kod från skadliga handlingar som utförs av koden. Användardata, som är på den typiska användarintegritetsnivån, är skrivskyddade mot den nya processen.

Obligatorisk princip

Den SYSTEM_MANDATORY_LABEL_ACE ACE i SACL för ett skyddsbart objekt innehåller en åtkomstmask som anger åtkomsten som huvudnamn med integritetsnivåer som är lägre än objektet beviljas. De värden som definierats för den här åtkomstmasken är SYSTEM_MANDATORY_LABEL_NO_WRITE_UP, SYSTEM_MANDATORY_LABEL_NO_READ_UPoch SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP. Som standard skapar systemet varje objekt med en åtkomstmask på SYSTEM_MANDATORY_LABEL_NO_WRITE_UP.

Varje åtkomsttoken anger också en obligatorisk princip som anges av Local Security Authority (LSA) när token skapas. Den här principen anges av en TOKEN_MANDATORY_POLICY struktur som är associerad med token. Den här strukturen kan efterfrågas genom att anropa funktionen GetTokenInformation med värdet för parametern TokenInformationClass inställd på TokenMandatoryPolicy.