Co je mechanismus integrity systému Windows?

Mechanismus integrity systému Windows je základní součástí architektury zabezpečení Windows, která omezuje přístupová oprávnění aplikací spuštěných pod stejným uživatelským účtem, které jsou méně důvěryhodné.

Mechanismus integrity systému Windows Vista® rozšiřuje architekturu zabezpečení operačního systému přiřazením úrovně integrity aplikačním procesům a zabezpečitelným objektům.

Úroveň integrity představuje důvěryhodnost spuštěných aplikačních procesů a objektů, jako jsou soubory vytvořené aplikací. Mechanismus integrity umožňuje správcům prostředků, jako je systém souborů, používat předdefinované zásady, které blokují procesy s nižší integritou nebo nižší důvěryhodností ve čtení nebo úpravách objektů s vyšší integritou. Mechanismus integrity umožňuje modelu zabezpečení systému Windows vynucovat nová omezení řízení přístupu, která nelze definovat udělením oprávnění uživatelů nebo skupin v seznamech řízení přístupu (ACL).

Architektura zabezpečení Windows je založená především na udělování přístupových práv (oprávnění ke čtení, zápisu a spouštění) a oprávnění uživatelům nebo skupinám, které jsou interně reprezentovány identifikátory zabezpečení (SID). Když se uživatel přihlásí k Windows, subsystém zabezpečení nastaví IDENTIFIKÁTOR SID uživatele a sid členství ve skupinách v přístupovém tokenu zabezpečení. Přístupový token zabezpečení je přiřazen každému procesu aplikace, který je spuštěn tímto uživatelem. Pokaždé, když proces aplikace otevře objekt, například soubor nebo klíč registru, správce prostředků, který objekt spravuje, zavolá v subsystému zabezpečení, aby se rozhodl o přístupu. Kontrola přístupu určuje povolená přístupová oprávnění pro tohoto uživatele. Subsystém zabezpečení (označovaný také jako referenční monitorování zabezpečení) porovnává identifikátory SID uživatelů a skupin v přístupovém tokenu s přístupovými právy v popisovači zabezpečení, který je přidružený k objektu. Pokud jsou identifikátoru SID uživatele udělena úplná přístupová práva v seznamu ACL objektu, má proces aplikace, který uživatel spustí, úplný přístup k objektu. Další informace o architektuře zabezpečení Windows najdete v tématu Zdroje informací o mechanismu integrity systému Windows.

Rozšíření architektury zabezpečení Windows

Mechanismus integrity systému Windows rozšiřuje architekturu zabezpečení definováním nového typu řízení přístupu (ACE), který představuje úroveň integrity v popisovači zabezpečení objektu. Nový ACE představuje úroveň integrity objektu. Úroveň integrity se také přiřadí přístupovém tokenu zabezpečení při inicializaci přístupového tokenu. Úroveň integrity v přístupovém tokenu představuje úroveň integrity subjektu. Úroveň integrity v přístupovém tokenu se porovnává s úrovní integrity v popisovači zabezpečení, když referenční monitorování zabezpečení provádí kontrolu přístupu. Systém Windows Vista používá funkci AccessCheck k určení, jaká přístupová práva jsou povolena k zabezpečitelnému objektu. Systém Windows omezuje povolená přístupová práva v závislosti na tom, jestli je úroveň integrity subjektu vyšší nebo nižší než u objektu, a v závislosti na příznakech zásad integrity v novém řízení přístupu ACE. Subsystém zabezpečení implementuje úroveň integrity jako povinný popisek, aby se odlišil od volitelného přístupu pod kontrolou uživatele, který seznamy ACL poskytují.

Cíle návrhu mechanismu integrity Windows

Mechanismus integrity systému Windows umožňuje v systému Windows Vista řadu důležitých scénářů. Aby bylo možné tyto požadavky splnit, musel návrh mechanismu integrity systému Windows splňovat následující cíle.

  • Úrovně integrity musí být při vytváření přístupového tokenu automaticky přiřazeny každému přístupovém tokenu zabezpečení, aby každý proces a vlákno mělo efektivní úroveň integrity pro řízení přístupu.
  • Subsystém zabezpečení automaticky přiřadí určité typy objektů povinné popisky.
  • Systém musí používat co nejméně úrovní integrity, aby základní architektura byla jednoduchá a snadno se používala.
  • Zásady integrity musí být flexibilní, aby splňovaly požadavky na přístup různých správců prostředků objektů a umožňovaly budoucí rozšiřitelnost.
  • Mechanismus integrity se musí integrovat se stávající architekturou zabezpečení, aby se minimalizoval dopad na rozsáhlé starší verze systémového a aplikačního kódu, který závisí na zabezpečení Windows.
  • Neexistuje žádný požadavek, aby správci nebo uživatelé nakonfigurovali úrovně integrity, aby mechanismus vynucení fungoval správně.

Mechanismus integrity systému Windows splňuje tyto cíle definováním nového povinného typu ACE popisku pro přiřazování úrovně integrity k objektům. Podrobnosti o této struktuře jsou popsány v pozdější části tohoto dokumentu. Povinný popisek ACE však definuje úroveň integrity objektu beze změn v existující definici datové struktury popisovače zabezpečení nebo v běžně používaném volitelném seznamu řízení přístupu.

Mechanismus integrity systému Windows je založen na povinném popisku, který operační systém přiřadí, aby se odlišil od volitelného přístupu pod kontrolou uživatele. Volitelné řízení přístupu umožňuje vlastníkovi objektu nebo skupině, která má udělená oprávnění, změnit přístupová oprávnění k objektu. Systém Windows poskytuje pro pokročilé uživatele grafické uživatelské rozhraní, které umožňuje zobrazit a upravit oprávnění zabezpečení (představovaná volitelným seznamem ACL) k objektům, jako jsou soubory a klíče registru. Povinné popisky jsou vždy přiřazeny konkrétním objektům a existují ovládací prvky, jak může tvůrce objektu nastavit nebo inicializovat popisek při vytváření objektu. V systému Windows Vista nebylo implementováno žádné grafické uživatelské rozhraní pro správu popisků integrity, protože správa popisků je k dispozici nebo je nezbytná pro relativně málo oblastí.

Proč existuje mechanismus integrity systému Windows?

Účelem mechanismu integrity systému Windows je omezit přístupová oprávnění aplikací, které běží pod stejným uživatelským účtem a které jsou méně důvěryhodné. Neznámý potenciálně škodlivý kód stažený z internetu nesmí měnit stav systému, měnit soubory uživatelských dat nebo manipulovat s chováním jiných aplikací. Subsystém zabezpečení Windows přiřadí kódu spuštěným na různých úrovních oprávnění pro stejného uživatele jednoduchou hierarchii úrovní integrity. Předchozí verze Systému Windows mohou upravit oprávnění přístupového tokenu zabezpečení procesu aplikace, i když taková úprava není běžná. Před Windows Vista běžela většina aplikací pomocí účtu správce s úplnými oprávněními správce. Systém Windows Vista zahrnuje koncept nejnižších oprávnění tím, že umožňuje širší použití standardních uživatelských účtů. Řízení uživatelských účtů v režimu Správa schvalování pro účty správců znamená, že na stejné ploše běží několik aplikací s různými úrovněmi oprávnění. Například Aplikace Internet Explorer v chráněném režimu používá mechanismus integrity ke spuštění webového prohlížeče v procesu s omezenými přístupovými oprávněními.

Primárním problémem zabezpečení, který řeší mechanismus integrity systému Windows, je neoprávněné manipulování s uživatelskými daty a nepřímo se stavem systému. Sekundárním problémem, se kterým mechanismus integrity pomáhá, je zpřístupnění informací. Zpřístupnění informací je však zabráněno pouze s ohledem na přístup k adresní prostoru procesů. Sdílení informací je mezi aplikacemi windows velmi běžné a pohodlné sdílení informací mezi aplikacemi je pro uživatelské prostředí zásadní. Jedním z příkladů je kopírování a vkládání. Pevné hranice zabezpečení sdílení informací mezi aplikacemi spuštěnými pod stejným uživatelským účtem můžou vážně ovlivnit kompatibilitu aplikací a uživatelské prostředí.

Nedůvěryhodný kód se může pokusit upravit uživatelská data mnoha způsoby. Některé útoky se můžou pokusit manipulovat s daty přímo vytvořením, úpravou nebo odstraněním souborů. Jiné útoky cílí na jiný proces spuštěný s vyššími oprávněními s cílem získat spuštění libovolného kódu v jiné aplikaci, která má požadovanou úroveň přístupu. Existuje mnoho typů útoků mezi procesy. Vzhledem k široké škále návrhu a implementace aplikací nemůže mechanismus integrity poskytnout úplnou izolační bariéru. Mechanismus integrity systému Windows není určen jako sandbox aplikací. Může se ale jednat o jeden z nástrojů zabezpečení, které vývojáři aplikací používají k omezení chování méně důvěryhodných aplikací.

Mechanismus integrity systému Windows Vista a dřívější modely integrity

Některé vlastnosti mechanismu integrity systému Windows se podobají dřívějším modelům integrity pro zabezpečení počítače. Mechanismus integrity systému Windows je ale primárně navržený tak, aby řešil manipulaci nebo zvýšení oprávnění v prostředí aplikací pro Windows s vysokou podporou spolupráce. Předchozí modely integrity se více zabývaly udržováním integrity důvěryhodných procesů prostřednictvím vynucování zásad, které brání čtení nedůvěryhodných dat.

Model zabezpečení Biba je založen na hierarchii popisků integrity a zásad přístupu, které jsou povoleny, když úroveň integrity subjektu dominuje úrovni integrity objektu. Mechanismus integrity systému Windows se podobá modelu Biba následujícími způsoby:

  • Používá hierarchii popisků integrity (popisky integrity nejsou stejné jako popisky zabezpečení v modelu Bell-LePadula).
  • Systém používá sadu seřazených předmětů, objektů a úrovní integrity.
  • Úroveň integrity objektu dominuje (je větší než nebo rovna) úrovni integrity objektu.
  • Zásady integrity brání přístupu k objektům, ale nepoužívají se primárně k omezení toku informací.
  • Zabránění zpřístupnění informací není cílem mechanismu integrity v systému Windows Vista.

Úrovně integrity windows jsou seřazené tak, aby nižší hodnota značí menší důvěryhodnost a vyšší hodnota znamená větší důvěryhodnost. Subjekt nižší úrovně nemůže změnit objekt vyšší úrovně. Úroveň integrity subjektu není dynamická. Například úroveň integrity subjektu se nezmění na nižší hodnotu, pokud proces čte data z objektu s nízkou integritou. Striktní model integrity v Biba neumožňuje procesu vyšší integrity číst data s nižší integritou. Tato zásada integrity se někdy označuje jako zásada integrity bez čtení. Zásady integrity systému Windows, které jsou podrobněji popsány níže, neinhibují ani nebrání subjektům s vyšší integritou ve čtení nebo spouštění objektů s nižší integritou. Existuje mnoho příkladů útoků, kdy čtení poškozených a nedůvěryhodných vstupních dat vede ke zneužití ohrožení zabezpečení v aplikaci a spuštění libovolného kódu. Mechanismus integrity systému Windows nebrání čtení dat na žádné úrovni ani ji nezabrání. Systém Windows nevynucuje striktní zásady integrity popsané v modelu Biba. Návrh integrity předpokládá, že procesy, které jsou navrženy pro zpracování nedůvěryhodných dat z neznámého nebo nedůvěryhodného zdroje, jsou spuštěny na nižší úrovni integrity nebo že nedůvěryhodná data jsou před použitím ověřena. Mechanismus integrity systému Windows však toto omezení nevynucuje.

Mechanismus integrity systému Windows neimplementuje dynamické zásady (low-water-mark). Dynamické zásady mění úroveň integrity předmětu, protože předmět otevírá objekty s nižší integritou. Problémem s dynamickou integritou je, když proces s vysokou integritou získá otevřené popisovače mnoha objektů na základě vysoké integrity a po otevření určitého souboru s nízkou integritou se náhle stane subjektem s nižší integritou. Vynucení všech otevřených popisovačů k zavření objektů s vyšší integritou při změně úrovně integrity výrazně ovlivňuje chování aplikace. Samotný dynamický proces s nižší integritou se stává cílovým objektem jiných procesů na nižší úrovni integrity. Tyto procesy teď můžou měnit chování aplikace (na stejné nižší úrovni), která má otevřené popisovače pro objekty s vyšší integritou.

Mechanismus integrity systému Windows není navržen pro ochranu integrity dat, aby podporoval vojenské nebo obchodní požadavky, jak je popsáno v modelu Clark-Wilson. Implementace ovládacích prvků integrity systému Windows není stavět na konceptech omezených nebo neomezené datové položky a certifikovaných transformačních procedur. Tyto koncepty jsou však užitečné pro návrháře aplikací, kteří zvažují tok informací z nedůvěryhodných zdrojů do procesů s vyšší integritou.

Přestože je mechanismus integrity systému Windows podobný dřívějším modelům integrity v zabezpečení počítače, systém Windows Vista se nepokouší implementovat žádný z modelů. Mechanismus integrity systému Windows místo toho omezuje přístupová oprávnění, která jsou k dispozici pro procesy spuštěné s různými úrovněmi oprávnění nebo důvěryhodnosti. Další informace o dřívější práci na modelech integrity od biby a zásad Clark-Wilson a dynamické integrity najdete v tématu Prostředky mechanismu integrity systému Windows.