Společnost navrhla k diskusi v mailing listu vývojářů jádra Linux kód LSM modulu s implementací mechanismu IPE (Integrity Policy Enforcement), který rozšiřuje stávající systémy mandátového řízení přístupu. Místo vázání na značky a cesty se rozhodnutí o povolení nebo zákazu operace dělá na základě trvalých vlastností systémové komponenty, se kterou se operace provádí. Modul umožňuje stanovit celkovou politiku zajištění integrity pro celý systém, která určuje, jaké operace jsou přípustné a jakým způsobem by měla být ověřena autentickost komponentů.
IPE je zaměřeno na vytvoření plně verificovatelných systémů, jejichž integrita je potvrzena od počátečního zaváděče a jádra až po koncové spustitelné soubory, konfigurace a načítané soubory. Například pomocí IPE lze určit, které spustitelné soubory lze spouštět s ohledem na jejich shodu s referenční verzí pomocí kryptografických hashů poskytovaných systémem dm-verity. V případě změny nebo podvržení souboru může IPE blokovat operaci nebo zaznamenat fakt porušení integrity.
Navržený mechanismus může být aplikován v firmwarech pro vestavěná zařízení, v nichž je veškerý software a nastavení speciálně sestaveno a dodáváno vlastníkem, například v datacentrech Microsoftu se IPE používá v zařízeních pro firewally. Na rozdíl od jiných systémů kontroly integrity, jako je IMA, se IPE vyznačuje nezávislostí na metadatech v souborovém systému – všechny vlastnosti, které určují přípustnost operací, jsou uloženy přímo v jádru.
Pravidla se definují textovou formou pomocí sad klíč-hodnota. Základními klíči jsou klíč „op“, který určuje operaci, na kterou se pravidlo vztahuje (například op=EXECUTE se aktivuje při pokusu o vykonání), a „action“, která určuje akci (například „action=DENY“ pro blokaci). Pravidla se vážou k vlastnostem poskytovaným externími subsystémy, jako jsou dm-verity a fs-verity.
Například pravidla op=EXECUTE boot_verified=TRUE action=ALLOW op=EXECUTE dmverity_signature=FALSE action=DENY op=EXECUTE fsverity_digest=sha256:401fce…0dec146938 action=DENY povolí pouze načítání z ověřeného oddílu, zakáže spouštění souborů z oddílů, které nemají podpisy v dm-verity, a také selektivně zakáže spouštění souboru s hash „401fce…0dec146938“.
Počáteční sada zaváděcích pravidel je určena pomocí nastavení SECURITY_IPE_BOOT_POLICY a je součástí sestavy jádra, zatímco další pravidla se přidávají podle potřeby přes soubor /sys/kernel/security/ipe/new_policy. Předávaná pravidla jsou šifrována pomocí certifikátu definovaného v SYSTEM_TRUSTED_KEYRING.
Na systémech pro všeobecné použití se doporučuje používat IPE v kombinaci se systémem DIGLIM, který vyvinula společnost Huawei. DIGLIM je realizován pomocí eBPF a umožňuje snadno implementovat kontrolu integrity na úrovni jednotlivých souborů v běžných distribucích, aniž by bylo nutné je předělat (je prezentován jako varianta Secure Boot, fungující na aplikační úrovni). Podstatou DIGLIM je udržování souboru kontrolních hashů pro soubory a metadata a poskytování přístupu k vykonatelným souborům pouze tehdy, pokud jeho hash je v tomto souboru. Seznam hashů může být získán od správce balíčků RPM nebo ručně vygenerován uživatelem.
Zdroj: opennet.ru
