Företaget lade upp koden för en LSM-modul med en implementering av IPE-mekanismen (Integrity Policy Enforcement) för diskussion om Linux-kärnan-utvecklarens e-postlista, som utökar befintliga obligatoriska åtkomstkontrollsystem. Istället för att binda till etiketter och sökvägar i IPE, fattas beslutet att tillåta eller neka en operation baserat på de beständiga egenskaperna hos den systemkomponent som operationen utförs på. Modulen låter dig definiera en generell integritetspolicy för hela systemet, som indikerar vilka operationer som är tillåtna och hur äktheten av komponenter ska verifieras.
IPE syftar till att skapa helt verifierbara system vars integritet verifieras från starthanteraren och kärnan till de slutliga körbara filerna, konfigurations- och startfilerna. Med hjälp av IPE kan du till exempel ange vilka körbara filer som får köras, med hänsyn till deras överensstämmelse med referensversionen med hjälp av kryptografiska hash som tillhandahålls av dm-verity-systemet. Om en fil ändras eller ersätts kan IPE blockera operationen eller logga fakta om en kränkning av integriteten.
Den föreslagna mekanismen kan användas i firmware för inbäddade enheter, där all programvara och inställningar är speciellt sammansatta och tillhandahålls av ägaren, till exempel i Microsofts datacenter, används IPE i brandväggsutrustning. Det som skiljer IPE från andra integritetskontrollsystem, såsom IMA, är dess oberoende från metadata i FS - alla egenskaper som bestämmer tillåtligheten av operationer lagras direkt i kärnan.
Regler specificeras i textform med nyckel-värdesuppsättningar. De grundläggande är "op"-tangenten, som definierar operationen som regeln gäller (till exempel, op=EXECUTE kommer att fungera när du försöker köra), och "action"-tangenten, som definierar åtgärden (till exempel " action=NEJ” för blockering). Regler är bundna till egenskaper som tillhandahålls av externa delsystem som dm-verity och fs-verity.
Till exempel, reglerna op=EXECUTE boot_verified=TRUE action=ALLOW op=EXECUTE dmverity_signature=FALSE action=NEKAR op=EXECUTE fsverity_digest=sha256:401fce…0dec146938 action=NEJ kommer endast att tillåta uppstart från en verifierad partition, vilket förbjuder start av filer från partitioner som inte har signaturer i dm-verity, och kommer också selektivt att förbjuda exekvering av en fil med hashen "401fce...0dec146938".
En initial uppsättning startregler definieras med SECURITY_IPE_BOOT_POLICY-inställningen och ingår som en del av kärnbygget, och andra regler läggs till efter behov genom filen /sys/kernel/security/ipe/new_policy. De överförda reglerna krypteras med certifikatet definierat i SYSTEM_TRUSTED_KEYRING.
På system för allmänna ändamål föreslås det att använda IPE i kombination med DIGLIM-mekanismen som utvecklats av Huawei. DIGLIM implementeras med hjälp av eBPF och låter dig enkelt implementera integritetskontroll på nivån för enskilda filer i vanliga distributioner utan att de behöver göras om (det presenteras som en variant av Secure Boot som fungerar på applikationsnivå). Kärnan i DIGLIM är att upprätthålla en pool av verifieringshashar för filer och metadata, och ge tillgång till körbara filer endast om dess hash finns i poolen. Listan med hash kan erhållas från RPM-pakethanteraren eller skapas manuellt av användaren.
Källa: opennet.ru
