Linux säkerhetsmoduler
Linux Security Modules ( LSM ) är ett ramverk som tillåter Linux - kärnan att utan fördomar stödja en mängd olika datorsäkerhetsmodeller . LSM är licensierad under villkoren i GNU General Public License och är en standarddel 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 att framgångsrikt implementera en obligatorisk åtkomstkontrollmodul, samtidigt som minsta möjliga ändringar av Linux-kärnan infördes. LSM undviker tillvägagångssättet för systemsamtalsinterposition som används av Systrace eftersom det inte skalas till flerprocessorkärnor och är föremål för TOCTTOU (ras)-attacker. Istället infogar LSM " hooks " (upprop 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 snävt inriktat på att lösa problemet med åtkomstkontroll , samtidigt som det inte påtvingar en stor och komplex ändringskorrigering på den vanliga kärnan. Det är inte avsett att vara en allmän " hook " eller " upcall "-mekanism, och det stöder inte heller virtualisering på operativsystemnivå .
LSM:s mål för åtkomstkontroll är mycket nära relaterat till problemet med systemrevision, men är subtilt annorlunda. Revision 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 " kortsluter " ett misslyckat system anropar och returnerar en felkod innan den kommer i närheten av betydande objekt.
LSM-designen beskrivs i uppsatsen Linux Security Modules: General Security Support for the Linux Kernel som presenterades vid USENIX Security 2002. På samma konferens fanns 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 infogats i Linux-kärnan.
Adoption
Historia
Vid Linux Kernel Summit 2001 föreslog NSA att SELinux skulle inkluderas i Linux 2.5. Linus Torvalds avvisade SELinux vid den tiden, eftersom han observerade att det finns många olika säkerhetsprojekt under utveckling, och eftersom de alla skiljer sig åt har säkerhetsgemenskapen ännu inte bildat konsensus om den ultimata säkerhetsmodellen. Istället delade 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 "hooks" (upprop) från Linuxkärnan till en laddningsbar modul för att tillåta modulen att genomdriva obligatoriska åtkomstkontroller. Utvecklingen av LSM under de kommande två åren genomfördes av LSM-gemenskapen, inklusive betydande bidrag från Immunix Corporation , NSA , McAfee , IBM , Silicon Graphics och många oberoende bidragsgivare. LSM accepterades till slut i Linux-kärnan mainstream och inkluderades som en standarddel av Linux 2.6 i december 2003.
Under 2006 observerade vissa kärnutvecklare att SELinux var den enda allmänt använda LSM-modulen som ingick i det vanliga Linux-kärnans källträd. Om det bara ska finnas en mycket använd LSM-modul, resonerade man, så är inriktningen 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 lägga 2. vid Kernel Summit 2006 hävdade Linus återigen att LSM skulle stanna eftersom han inte vill medla vilken 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 huvudlinjekärnan.
externa länkar
- "Källkod och projektstatistik" . Arkiverad från originalet 2005-03-07 . Hämtad 2006-02-08 .
- SysAdmin tidningsartikel om BSD Secure Levels
- Säkerhetsprojekt baserade på Linux-kärnan