Zaufana baza obliczeniowa

Zaufana baza obliczeniowa ( TCB ) systemu komputerowego to zestaw całego sprzętu , oprogramowania układowego i / lub komponentów oprogramowania , które są krytyczne dla jego bezpieczeństwa , w tym sensie , że błędy lub luki występujące w TCB mogą zagrozić właściwościom bezpieczeństwa cały system. Natomiast części systemu komputerowego, które znajdują się poza TCB, nie mogą działać niewłaściwie w sposób, który mógłby spowodować wyciek dalszych uprawnień polityką bezpieczeństwa systemu .

Staranne zaprojektowanie i wdrożenie zaufanej bazy obliczeniowej systemu ma nadrzędne znaczenie dla jego ogólnego bezpieczeństwa. Nowoczesne systemy operacyjne dążą do zmniejszenia rozmiaru TCB [ niezweryfikowanego w ciele ] , tak aby możliwe było wyczerpujące zbadanie jego bazy kodu (za pomocą ręcznego lub wspomaganego komputerowo audytu oprogramowania lub weryfikacji programu ).

Definicja i charakterystyka

Termin zaufana baza obliczeniowa wywodzi się od Johna Rushby'ego , który zdefiniował ją jako połączenie jądra systemu operacyjnego i zaufanych procesów . To ostatnie odnosi się do procesów, które mogą naruszać zasady kontroli dostępu systemu. W klasycznym artykule Uwierzytelnianie w systemach rozproszonych: teoria i praktyka Lampson et al. zdefiniuj TCB systemu komputerowego jako prosty

niewielka ilość oprogramowania i sprzętu, od których zależy bezpieczeństwo, i którą odróżniamy od znacznie większej ilości, która może działać niewłaściwie bez wpływu na bezpieczeństwo.

Obie definicje, choć jasne i wygodne, nie są ani teoretycznie dokładne, ani takie miały być, ponieważ np. proces serwera sieciowego w systemie operacyjnym podobnym do systemu UNIX może paść ofiarą naruszenia bezpieczeństwa i naruszyć ważną część bezpieczeństwa systemu, ale nie jest część TCB systemu operacyjnego. Orange Book , kolejna klasyczna literatura dotycząca bezpieczeństwa komputerowego , zawiera zatem bardziej formalną definicję TCB systemu komputerowego, jako

całość mechanizmów ochronnych w nim zawartych, w tym sprzęt, oprogramowanie sprzętowe i oprogramowanie, których połączenie odpowiada za egzekwowanie polityki bezpieczeństwa komputera.

Innymi słowy, zaufana baza obliczeniowa (TCB) to połączenie sprzętu, oprogramowania i kontrolek, które współpracują ze sobą, tworząc zaufaną bazę do egzekwowania zasad bezpieczeństwa.

Pomarańczowa Księga wyjaśnia to dalej

Zdolność zaufanej bazy obliczeniowej do prawidłowego egzekwowania ujednoliconej polityki bezpieczeństwa zależy od poprawności mechanizmów w ramach zaufanej bazy obliczeniowej, ochrony tych mechanizmów w celu zapewnienia ich poprawności oraz poprawnego wprowadzania parametrów związanych z bezpieczeństwem polityka.

Innymi słowy, dany sprzęt lub oprogramowanie jest częścią TCB wtedy i tylko wtedy, gdy zostało zaprojektowane jako część mechanizmu zapewniającego jego bezpieczeństwo systemowi komputerowemu. W systemach operacyjnych zazwyczaj składa się z jądra (lub mikrojądra ) i wybranego zestawu narzędzi systemowych (na przykład programów setuid i demonów w systemach UNIX). W językach programowania zaprojektowanych z wbudowanymi funkcjami bezpieczeństwa, takimi jak Java i E , TCB składa się ze środowiska wykonawczego języka i biblioteki standardowej.

Nieruchomości

Opiera się na polityce bezpieczeństwa

W konsekwencji powyższej definicji Orange Book, granice TCB zależą ściśle od specyfiki tego, jak kształtuje się polityka bezpieczeństwa. W powyższym przykładzie serwera sieciowego, nawet jeśli, powiedzmy, serwer WWW , który obsługuje aplikację dla wielu użytkowników, nie jest częścią TCB systemu operacyjnego, odpowiada za przeprowadzanie kontroli dostępu aby użytkownicy nie mogli uzurpować sobie nawzajem tożsamości i przywilejów. W tym sensie zdecydowanie jest częścią TCB większego systemu komputerowego, który obejmuje serwer UNIX, przeglądarki użytkownika i aplikację internetową; innymi słowy, włamanie do serwera WWW poprzez np. przepełnienie bufora nie może być traktowane jako kompromitacja właściwego systemu operacyjnego, ale z pewnością stanowi szkodliwy exploit w aplikacji WWW.

Ta podstawowa względność granic TCB jest zilustrowana przez koncepcję „celu oceny” („TOE”) w procesie bezpieczeństwa Common Criteria : w trakcie oceny bezpieczeństwa Common Criteria, jedna z pierwszych decyzji, które muszą do wykonania jest granica audytu pod względem listy elementów systemu, które zostaną poddane kontroli.

Warunek bezpieczeństwa

Systemy, które nie mają zaufanej bazy obliczeniowej w ramach swojej konstrukcji, same w sobie nie zapewniają bezpieczeństwa: są bezpieczne tylko wtedy, gdy zapewniają im bezpieczeństwo za pomocą środków zewnętrznych (np. komputer siedzący w zamkniętym pokoju bez połączenia sieciowego) mogą być uważane za bezpieczne w zależności od polityki, niezależnie od oprogramowania, na którym działają). Dzieje się tak, ponieważ, jak twierdzi David J. Farber i in. mówiąc, [w] systemie komputerowym integralność niższych warstw jest zwykle traktowana jako aksjomat przez wyższe warstwy . Jeśli chodzi o bezpieczeństwo komputerowe, rozumowanie na temat właściwości bezpieczeństwa systemu komputerowego wymaga umiejętności poczynienia rozsądnych założeń na temat tego, co może, a co ważniejsze, czego nie może zrobić; jednakże, o ile nie ma powodu, by sądzić inaczej, komputer jest w stanie zrobić wszystko, co może zrobić ogólna maszyna von Neumanna . Obejmuje to oczywiście operacje, które zostałyby uznane za sprzeczne ze wszystkimi, z wyjątkiem najprostszych zasad bezpieczeństwa, takie jak ujawnienie adresu e-mail lub hasła , które należy zachować w tajemnicy; jednak, pomijając szczególne przepisy w architekturze systemu, nie da się ukryć, że komputer można zaprogramować do wykonywania tych niepożądanych zadań.

Te szczególne przepisy, których celem jest zapobieganie wykonywaniu niektórych rodzajów działań, w istocie stanowią zaufaną bazę obliczeniową. Z tego powodu Pomarańczowa Księga (od 2007 r. wciąż odniesienie do projektowania bezpiecznych systemów operacyjnych) charakteryzuje różne poziomy zapewnienia bezpieczeństwa, które definiuje głównie pod względem struktury i cech bezpieczeństwa TCB.

Części oprogramowania TCB muszą się chronić

Jak opisano we wspomnianej wyżej Orange Book, części oprogramowania zaufanej bazy obliczeniowej muszą chronić się przed manipulacją, aby odniosły jakikolwiek skutek. Wynika to z architektury von Neumanna zaimplementowanej przez praktycznie wszystkie nowoczesne komputery: ponieważ kod maszynowy może być przetwarzany jako kolejny rodzaj danych, może być odczytywany i nadpisywany przez dowolny program. Można temu zapobiec poprzez specjalne dotyczące zarządzania pamięcią , które następnie należy traktować jako część TCB. W szczególności zaufana baza obliczeniowa musi przynajmniej zapobiegać zapisywaniu własnego oprogramowania.

W wielu nowoczesnych procesorach ochrona pamięci obsługującej TCB jest realizowana poprzez dodanie wyspecjalizowanego elementu sprzętowego zwanego jednostką zarządzania pamięcią (MMU), który jest programowalny przez system operacyjny w celu zezwalania lub odmawiania uruchomionemu programowi dostępu do określonych zakresy pamięci systemowej. Oczywiście system operacyjny może również uniemożliwić takie programowanie innym programom. Technika ta nazywana jest trybem nadzorcy ; w porównaniu z bardziej prymitywnymi podejściami (takimi jak przechowywanie TCB w pamięci ROM lub równoważnie przy użyciu architektury Harvarda ), ma tę zaletę, że umożliwia aktualizację oprogramowania o krytycznym znaczeniu dla bezpieczeństwa w terenie, chociaż umożliwienie bezpiecznych aktualizacji zaufanej bazy obliczeniowej samo w sobie stwarza problemy z ładowaniem początkowym.

Zaufany kontra godny zaufania

Jak wspomniano powyżej , zaufanie do zaufanej bazy obliczeniowej jest niezbędne do poczynienia jakichkolwiek postępów w zapewnieniu bezpieczeństwa systemu komputerowego. Innymi słowy, zaufana baza obliczeniowa jest „zaufana” przede wszystkim w tym sensie, że należy jej ufać, a niekoniecznie, że jest godna zaufania. W rzeczywistych systemach operacyjnych rutynowo wykrywane są krytyczne dla bezpieczeństwa błędy, co świadczy o praktycznych ograniczeniach takiego zaufania.

Alternatywą jest formalna weryfikacja oprogramowania , która wykorzystuje matematyczne techniki dowodzenia w celu wykazania braku błędów. Naukowcy z NICTA i jej spinout Open Kernel Labs przeprowadzili ostatnio taką formalną weryfikację seL4 , członka rodziny mikrojąder L4 , udowadniając funkcjonalną poprawność implementacji jądra w C. To sprawia, że ​​seL4 jest pierwszym jądrem systemu operacyjnego, które wypełnia lukę między zaufaniem a wiarygodnością, zakładając, że dowód matematyczny jest wolny od błędów.

Rozmiar TCB

Ze względu na wspomnianą konieczność stosowania kosztownych technik, takich jak weryfikacja formalna czy przegląd ręczny, wielkość TCB ma natychmiastowe konsekwencje dla ekonomiki procesu zapewniania TCB oraz wiarygodności powstałego produktu (w zakresie matematycznych oczekiwań liczba błędów nie znalezionych podczas weryfikacji lub przeglądu). W celu zmniejszenia kosztów i zagrożeń dla bezpieczeństwa, TCB powinna być zatem jak najmniejsza. Jest to kluczowy argument w debacie preferującej mikrojądra do jąder monolitycznych .

Przykłady

AIX materializuje zaufaną bazę obliczeniową jako opcjonalny komponent w swoim systemie zarządzania pakietami w czasie instalacji.

Zobacz też