Linux säkerhetsmoduler - Linux Security Modules

Linux Security Modules ( LSM ) är ett ramverk som tillåter Linux -kärnan att stödja en mängd olika datasäkerhetsmodeller utan fördomar . LSM är licensierat enligt villkoren i GNU General Public License och är en standard del av Linux -kärnan sedan Linux 2.6. AppArmor , SELinux , Smack och TOMOYO Linux är de för närvarande godkända säkerhetsmodulerna i den officiella kärnan.

Design

LSM utformades för att svara på alla krav för framgångsrik implementering av en obligatorisk åtkomstkontrollmodul , samtidigt som man inför minst möjliga ändringar av Linux -kärnan. LSM undviker tillvägagångssättet för systemanropsinterposition som används av Systrace eftersom det inte skalas till multiprocessorkärnor och utsätts för TOCTTOU (ras) attacker. Istället infogar LSM " krokar " (uppkall till modulen) vid varje punkt i kärnan där ett systemanrop på användarnivå är på väg att resultera med tillgång till ett viktigt internt kärnobjekt som inoder och uppgiftskontrollblock.

LSM är begränsat för att lösa problemet med åtkomstkontroll , samtidigt som det inte påtvingar en stor och komplex förändringslapp på den vanliga kärnan. Den är inte avsedd att vara en allmän " hook " eller " upcall " -mekanism, och den stöder inte heller virtualisering på operativsystemnivå .

LSM: s åtkomstkontrollmål är mycket nära relaterat till problemet med systemrevision , men är subtilt annorlunda. Granskning kräver att varje försök till åtkomst registreras. LSM kan inte leverera detta, eftersom det skulle kräva många fler krokar för att upptäcka fall där kärnan " kortslutar " misslyckade systemanrop och returnerar en felkod innan den kommer nära viktiga objekt.

LSM -designen beskrivs i dokumentet Linux Security Modules: General Security Support for the Linux Kernel presented at USENIX Security 2002. På samma konferens var uppsatsen Using CQUAL for Static Analysis of Authorization Hook Placement som studerade automatisk statisk analys av kärnkoden för att verifiera att alla nödvändiga krokar faktiskt har satts in i Linux -kärnan.

Adoption

Historia

Vid Linux Kernel Summit 2001 föreslog NSA att SELinux skulle ingå i Linux 2.5. Linus Torvalds avvisade SELinux då, eftersom han observerade att det finns många olika säkerhetsprojekt under utveckling, och eftersom de alla skiljer sig har säkerhetsgemenskapen ännu inte skapat enighet om den ultimata säkerhetsmodellen. Istället åtalade Linus säkerhetsgemenskapen att "göra det till en modul".

Som svar föreslog Crispin Cowan LSM: ett gränssnitt för Linux -kärnan som ger tillräckligt med "krokar" (uppkallningar) från Linux -kärnan till en laddningsbar modul för att tillåta modulen att genomdriva obligatoriska åtkomstkontroller. LSM -utvecklingen genomfördes under de kommande två åren, inklusive omfattande bidrag från Immunix Corporation , NSA , McAfee , IBM , Silicon Graphics och många oberoende bidragsgivare. LSM accepterades slutligen i Linux -kärnans mainstream och ingick som en standarddel av Linux 2.6 i december 2003.

År 2006 observerade vissa kärnutvecklare att SELinux var den enda allmänt använda LSM -modulen som ingår i det vanliga Linux -kärnkällträdet. Om det bara ska finnas en allmänt använd LSM -modul, var det motiverat, då är inriktning av LSM onödig och LSM bör tas bort och ersättas med SELinux själv. Det finns dock andra LSM -moduler som underhålls utanför det vanliga kärnträdet ( AppArmor , Linux Intrusion Detection System , FireFlier , CIPSO , Multi ADM , etc.), så detta argument ledde till två resultat: 1. att utvecklare av dessa moduler började sätta ansträngningar att uppströms sina respektive moduler, och 2. vid kärnmötet 2006 , hävdade Linus än en gång att LSM skulle stanna eftersom han inte vill skiljedom som är den bästa säkerhetsmodellen.

LSM kommer sannolikt att finnas kvar eftersom ytterligare säkerhetsmoduler Smack (version 2.6.25), TOMOYO Linux (version 2.6.30, juni 2009) och AppArmor (version 2.6.36) accepterades i huvudkärnan.

Referenser

externa länkar