Mandatory Integrity Control
Mandatory Integrity Control (MIC) je v informatice označení pro doplňující zabezpečení na úrovni jádra operačního systému pro systémy Windows Vista a novější. MIC zavádí tzv. Integrity Level (IL), který funguje na principu izolace běžících procesů a představuje úroveň důvěryhodnosti objektu. Mechanismus funguje tak, že se IL snaží selektivně omezit oprávnění k přístupu tam, kde systém objekt vyhodnotí za potenciálně méně důvěryhodný.

Implementace 
MIC definuje použití nové ACE (Acces Control Entry) k objektu. Acces Control List se používá k přidělení práv jako je čtení, zápis, spuštění atd. IL však přiřadí k objektu  při jeho inicializaci (např. při přihlášení uživatele) bezpečnostní token. Když se objekt pokouší o nějakou operaci (například čtení souboru), Security Reference Monitor porovná úrovně integrity tokenu proti oprávnění ze Security Descriptoru. Operační systém následně povoluje operaci podle toho, zda je IL objektu vyšší nebo nižší než IL procesu, který s objektem bude pracovat. Bezpečnostní subsystém implementuje úrovně integrity jako povinný atribut.

Windows Vista definuje čtyři úrovně integrity Low (SID: S-1-16-4096), Medium (SID: S-1-16-8192), High (SID: S-1-16-12288) a System (SID: S-1-16-16384).  Ve výchozím nastavení má obyčejný uživatel úroveň Medium, může dosáhnout až úrovně High. Zavedením IL a pomocí MIC je schopen OS některé zranitelné aplikace (např. Internet Explorer) pouštět v sandboxu.

Objekty se seznamem oprávnění jako jsou objekty systému, soubory, registry a dokonce i procesy a vlákna mají zapsaný záznam v ACL tabulce, který upravuje oprávnění, jak k nim přistupovat a definuje minimální IL procesu, který s nimi může pracovat. Operační systém pak zajišťuje, že proces může zapsat nebo odstranit objekt pouze tehdy pokud je jeho IL stejné nebo vyšší. Objekty s vyšším IL proces nemůže ani číst. V důsledku toho však nemůže proces pracovat s dalším procesem, který má vyšší IL.

Aplikace 
I když proces dědí IL od procesu od kterého byl vytvořen, v případě potřeby je ho možné při vytváření procesu změnit. MIC se používá např. pro webové prohlížeče a různé textové editory, aby izolovaly dokumenty z ohrožených objektů v systému. 

Internet Explorer umožňuje zapnout takzvaný MIC-Based Protected Mode, který dokáže spustit různé webové stránky s různou IL za předpokladu, že OS tuto funkci podporuje. Na základě nastavení zabezpečení EI a MIC dokáže předejít některým potenciálním hrozbám. Internet Explorer proto běží s nízkou úrovní IL a tím pádem nemůže měnit soubory na systémové úrovni. Souborové a registrové operace jsou virtualizovány. Google Chrome a Adobe Reader jsou další dvě aplikace, které tohoto principu také využívají. S jeho pomocí se snaží snížit škody způsobené malwarem.

V některých případech je zapotřebí, aby proces s vyšší prioritou využil kód procesu s nižší prioritou nebo proces s nízkou prioritou potřebuje přistoupit ke zdrojům, ke kterým může přistoupit pouze proces s vyšší prioritou (např. při prohlížení webové stránky v módu protected je potřeba uložit stažený soubor do určité složky zvolené uživatelem). Proces s vyšší prioritou a proces s nižší prioritou mezi sebou mohou komunikovat pomocí používaných souborů, pojmenované roury, LPC anebo jiných objektů, které mezi sebou sdílejí. Sdílený objekt musí mít prioritní level stejně nízký jako jako má nižší ze dvojce procesů a musí být oběma procesy sdílen. Vzhledem k tomu, že MIC nebrání sdílení procesu s nízkou prioritou sdílet objekty s procesem s vyšší prioritou, může dojít k ovlivnění činnosti procesu vyššího, což může způsobit nedostatek, kterého využívá Squatting attack.

Reference

Související články 
 Mandatory access control
 Popisovač zabezpečení
 Access Control List
 cacls

Externí odkazy
 Introduction to the Protected Mode API
 Windows Vista Integrity Mechanism technical reference on MSDN
 Introduction to Windows Integrity Control: Security Focus article
Escaping from Microsoft’s Protected Mode Internet Explorer

Microsoft Windows