Företaget har lagt fram koden för LSM-modulen med implementeringen av mekanismen IPE (Integrity Policy Enforcement) för diskussion i utvecklarlistan för Linux-kärnan. Istället för att binda till etiketter och sökvägar, baseras beslutet att tillåta eller förbjuda en operation inom IPE på de beständiga egenskaperna hos det systemkomponent som operationen utförs på. Modulen möjliggör att definiera en övergripande integritetspolicy för hela systemet, vilket anger vilka operationer som är tillåtna och hur äkthet hos komponenter bör verifieras.
IPE syftar till att skapa helt verifierbara system vars integritet bekräftas från den initiala bootloadern och kärnan till de slutliga körbara filerna, konfigurationerna och de laddade filerna. Till exempel kan man med hjälp av IPE ange vilka körbara filer som får startas, med hänsyn till deras överensstämmelse med referensversionen, med hjälp av kryptografiska hashvärden som tillhandahålls av systemet dm-verity. Om en fil ändras eller ersätts kan IPE blockera operationen eller logga faktumet av integritetsbrott.
Den föreslagna mekanismen kan tillämpas i firmware för inbyggda enheter där mjukvaran och inställningarna är specifikt samlade och tillhandahålls av ägaren, till exempel används IPE i Microsofts datacenter i utrustning för brandväggar. Till skillnad från andra system för integritetskontroll, såsom IMA, är IPE oberoende av metadata i filsystemet – alla egenskaper som definierar tillåtelse för operationer lagras direkt i kärnan.
Regler anges i textform med hjälp av nyckel-värdeset. De grundläggande nycklarna är "op", som definierar operationen som regeln tillämpas på (till exempel kommer op=EXECUTE att träda i kraft vid försök att utföra), och "action", som definierar åtgärden (till exempel "action=DENY" för att blockera). Regler kopplas till egenskaper som tillhandahålls av externa delsystem, såsom dm-verity och fs-verity.
Till exempel, reglerna op=EXECUTE boot_verified=TRUE action=ALLOW op=EXECUTE dmverity_signature=FALSE action=DENY op=EXECUTE fsverity_digest=sha256:401fce…0dec146938 action=DENY tillåter endast inladdning från den verifierade partitionen, förbjuder körning av filer från partitioner utan signaturer i dm-verity, samt selektivt förbjuder körning av filen med hash "401fce…0dec146938".
Den initiala uppsättningen av inladdningsregler definieras med inställningen SECURITY_IPE_BOOT_POLICY och inkluderas i kärnans byggnad, medan övriga regler läggs till efter behov via filen \/sys\/kernel\/security\/ipe\/new_policy. De överförda reglerna krypteras med hjälp av ett certifikat som anges i SYSTEM_TRUSTED_KEYRING.
På allmänna system rekommenderas det att använda IPE i kombination med DIGLIM-mekanismen, utvecklad av Huawei. DIGLIM implementeras med eBPF och möjliggör enkelt integritetskontroll på nivå av individuella filer i vanliga distributioner, utan att kräva deras omskrivning (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 deras hash finns i poolen. Hashlistan kan hämtas från RPM-pakethanteraren eller manuellt genereras av användaren.
Källa: opennet.ru
