Pålitlig datorbas

Den betrodda beräkningsbasen ( TCB ) för ett datorsystem är uppsättningen av all hårdvara , fast programvara och/eller mjukvarukomponenter som är avgörande för dess säkerhet , i den meningen att buggar eller sårbarheter som uppstår inuti TCB kan äventyra säkerhetsegenskaperna hos helt system. Däremot får delar av ett datorsystem som ligger utanför TCB inte kunna missköta sig på ett sätt som skulle läcka ut fler privilegier än vad de tilldelas i enlighet med systemets säkerhetspolicy .

Den noggranna designen och implementeringen av ett systems betrodda datorbas är avgörande för dess övergripande säkerhet. Moderna operativsystem strävar efter att minska storleken på TCB [ inte verifierad i kroppen ] så att en uttömmande granskning av dess kodbas (genom manuell eller datorstödd mjukvarugranskning eller programverifiering ) blir möjlig.

Definition och karaktärisering

Termen betrodd datorbas går tillbaka till John Rushby , som definierade det som en kombination av operativsystemets kärna och betrodda processer . Det senare avser processer som tillåts bryta mot systemets regler för åtkomstkontroll. I den klassiska artikeln Authentication in Distributed Systems: Theory and Practice Lampson et al. definiera TCB för ett datorsystem som enkelt

en liten mängd mjukvara och hårdvara som säkerheten beror på och som vi skiljer från en mycket större mängd som kan missköta sig utan att det påverkar säkerheten.

Båda definitionerna är, även om de är tydliga och bekväma, varken teoretiskt exakta eller avsedda att vara det, eftersom t.ex. en nätverksserverprocess under ett UNIX -liknande operativsystem kan falla offer för ett säkerhetsbrott och äventyra en viktig del av systemets säkerhet, men ändå inte är en del av operativsystemets TCB. The Orange Book , en annan klassisk litteraturreferens för datorsäkerhet , ger därför en mer formell definition av TCB för ett datorsystem, som

alla skyddsmekanismer inom den, inklusive hårdvara, fast programvara och programvara, vars kombination är ansvarig för att upprätthålla en datasäkerhetspolicy.

Med andra ord är betrodd datorbas (TCB) en kombination av hårdvara, mjukvara och kontroller som samverkar för att bilda en betrodd bas för att upprätthålla din säkerhetspolicy.

Orange Book förklarar det ytterligare

[t]förmågan hos en betrodd datorbas att korrekt tillämpa en enhetlig säkerhetspolicy beror på korrektheten hos mekanismerna inom den betrodda datorbasen, skyddet av dessa mekanismer för att säkerställa att de är korrekta och korrekt inmatning av parametrar relaterade till säkerheten politik.

Med andra ord är en viss hårdvara eller mjukvara en del av TCB om och endast om den har utformats för att vara en del av den mekanism som tillhandahåller dess säkerhet till datorsystemet. I operativsystem består detta vanligtvis av kärnan (eller mikrokärnan ) och en utvald uppsättning systemverktyg (till exempel setuid- program och demoner i UNIX-system). I programmeringsspråk som är designade med inbyggda säkerhetsfunktioner, såsom Java och E , är TCB bildad av språkkörningstiden och standardbiblioteket.

Egenskaper

Utgår från säkerhetspolicyn

Som en konsekvens av ovanstående Orange Book-definition beror TCB:s gränser nära på detaljerna i hur säkerhetspolitiken konkretiseras. I nätverksserverexemplet ovan, även om t.ex. en webbserver som betjänar en fleranvändarapplikation inte är en del av operativsystemets TCB, har den ansvaret att utföra åtkomstkontroll så att användarna inte kan tillskansa sig identiteten och privilegierna för varandra. I denna mening är det definitivt en del av TCB för det större datorsystemet som omfattar UNIX-servern, användarens webbläsare och webbapplikationen; med andra ord, intrång i webbservern genom t.ex. ett buffertspill kan inte betraktas som en kompromiss med det egentliga operativsystemet, men det utgör verkligen ett skadligt utnyttjande av webbapplikationen.

Denna grundläggande relativitet för gränsen för TCB exemplifieras av konceptet "utvärderingsmålet" ('TOE') i säkerhetsprocessen för gemensamma kriterier : under loppet av en säkerhetsutvärdering av gemensamma kriterier, ett av de första besluten som måste göras är gränsen för revisionen när det gäller listan över systemkomponenter som kommer att granskas.

En förutsättning för säkerhet

System som inte har en betrodd datorbas som en del av sin design ger inte sin egen säkerhet: de är bara säkra i den mån säkerheten tillhandahålls till dem med externa medel (t.ex. en dator som sitter i ett låst rum utan nätverksanslutning kan anses vara säker beroende på policyn, oavsett vilken programvara den körs). Detta beror på, som David J. Farber et al. uttryckt det, [i] ett datorsystem behandlas integriteten hos lägre lager vanligtvis som axiomatisk av högre lager . När det gäller datorsäkerhet kräver resonemang om säkerhetsegenskaperna hos ett datorsystem att man kan göra sunda antaganden om vad det kan, och ännu viktigare, inte kan göra; dock kan en dator göra allt som en vanlig Von Neumann-maskin kan. Detta inkluderar uppenbarligen operationer som skulle anses strida mot alla utom de enklaste säkerhetspolicyerna, som att avslöja en e-post eller ett lösenord som bör hållas hemligt; dock, med undantag för särskilda bestämmelser i systemets arkitektur, kan det inte förnekas att datorn skulle kunna programmeras för att utföra dessa oönskade uppgifter.

Dessa särskilda bestämmelser som syftar till att förhindra att vissa typer av åtgärder utförs, utgör i huvudsak den betrodda databasen. Av denna anledning kännetecknar Orange Book (fortfarande en referens om utformningen av säkra operativsystem från och med 2007) de olika säkerhetsnivåer som den definierar främst i termer av strukturen och säkerhetsegenskaperna hos TCB.

Programvarudelar av TCB behöver skydda sig själva

Som beskrivs i ovannämnda Orange Book måste programvarudelar av den betrodda datorbasen skydda sig mot manipulering för att ha någon effekt. Detta beror på von Neumann-arkitekturen som implementeras av praktiskt taget alla moderna datorer: eftersom maskinkod kan bearbetas som bara en annan typ av data, kan den läsas och skrivas över av vilket program som helst. Detta kan förhindras genom särskilda minneshanteringsbestämmelser som sedan måste behandlas som en del av TCB. Specifikt måste den betrodda datorbasen åtminstone förhindra att dess egen programvara skrivs till.

I många moderna processorer uppnås skyddet av minnet som är värd för TCB:n genom att lägga till en specialiserad hårdvara som kallas minneshanteringsenheten ( MMU ), som är programmerbar av operativsystemet för att tillåta och neka ett körande programs åtkomst till specifika intervall för systemminnet. Självklart kan operativsystemet även förbjuda sådan programmering för de andra programmen. Denna teknik kallas supervisor mode ; jämfört med mer grova tillvägagångssätt (som att lagra TCB i ROM , eller motsvarande, med Harvard-arkitekturen ), har det fördelen att tillåta säkerhetskritisk programvara att uppgraderas i fält, även om det tillåter säkra uppgraderingar av den betrodda datorbasen. egna bootstrap-problem.

Pålitlig vs. pålitlig

Som nämnts ovan krävs förtroende för den betrodda datorbasen för att göra några framsteg när det gäller att fastställa datorsystemets säkerhet . Med andra ord är den betrodda datorbasen "betrodd" först och främst i den meningen att den måste litas på, och inte nödvändigtvis att den är pålitlig. Verkliga operativsystem har rutinmässigt säkerhetskritiska buggar upptäckta i sig, vilket vittnar om de praktiska gränserna för sådant förtroende.

Alternativet är formell mjukvaruverifiering , som använder matematiska bevistekniker för att visa frånvaron av buggar. Forskare vid NICTA och dess spinout Open Kernel Labs har nyligen utfört en sådan formell verifiering av seL4 , en medlem av L4-mikrokärnfamiljen , vilket bevisar funktionell korrekthet av C-implementeringen av kärnan. Detta gör seL4 till den första operativsystemkärnan som täpper till gapet mellan tillförlitlighet och trovärdighet, förutsatt att det matematiska beviset är fritt från fel.

TCB storlek

På grund av det ovannämnda behovet av att tillämpa kostsamma tekniker såsom formell verifiering eller manuell granskning, får TCB:s storlek omedelbara konsekvenser för ekonomin i TCB-säkringsprocessen och pålitligheten hos den resulterande produkten (i termer av den matematiska förväntningen av antal buggar som inte hittades under verifieringen eller granskningen). För att minska kostnader och säkerhetsrisker bör TCB därför hållas så liten som möjligt. Detta är ett nyckelargument i debatten att föredra mikrokärnor framför monolitiska kärnor .

Exempel

AIX materialiserar den betrodda datorbasen som en valfri komponent i sitt pakethanteringssystem under installationstid.

Se även