Stan zagrożeń w internecie znajduje się obecnie na poziomie standardowym. Nie występują duże epidemie a eksperci z Kaspersky Lab nie zanotowali żadnych poważnych incydentów związanych z bezpieczeństwem. Poziom zagrożenia: 1

Co to znaczy bezpieczny system operacyjny?

Andriej Nikiszin
Kaspersky Lab Expert
Dodany 20 sierpnia 2015, 13:13 CEST
Tagi:

Po publikacji artykułu na temat włamania hakerskiego do samochodu otrzymaliśmy wiele pytań dotyczących KasperskyOS. Osoby, które napisały do nas, argumentowały, że na rynku istnieje kilka dobrych i niezawodnych systemów operacyjnych, zaprojektowanych, między innymi, dla branży motoryzacyjnej. Główny argument mający wykazać wyższość technologiczną konkurencyjnych rozwiązań brzmiał: zasada izolacji domen bezpieczeństw nie jest niczym nowym i wiele stosowanych obecnie systemów posiada liczne dodatkowe funkcje bezpieczeństwa w zależności od aktualnych potrzeb, takie jak implementacje protokołów kryptograficznych, filtry sieciowe oraz ochrona przed atakami sieciowymi. Niektóre z tych systemów są nawet certyfikowane w zakresie spełnienia różnych standardów bezpieczeństwa!         

Wszystkie te dodatkowe funkcje (w tym certyfikacja) są naturalnie istotne, jednak czy taka funkcjonalność rzeczywiście sprawia, że system operacyjny jest niezawodny i bezpieczny? Aby odpowiedzieć na to pytanie, musimy najpierw dostarczyć odpowiedź na inne: co to jest bezpieczny system operacyjny? Z naszego punktu widzenia bezpieczny system operacyjny powinien gwarantować bezpieczne lub zaufane wykonanie komponentów, które nie są bezpieczne (programy).   

Nasza koncepcja posiada dwa istotne aspekty. Jeden jest oczywisty: nie mamy zaufania do oprogramowania osób trzecich i z zasady nie uważamy je za bezpieczne czy niezawodne. Drugi, już nie tak oczywisty aspekt: powinniśmy mieć zaufanie do systemu operacyjnego i traktować funkcjonalność jądra jako zaufaną. W celu zwiększenia poziomu zaufania (w końcu dżentelmeni nie zawsze wierzą sobie na słowo) jądro powinno przejść formalną i matematyczną weryfikację.      

Uznając ten paradygmat za punkt wyjścia, nie tylko zaimplementowaliśmy bezpieczną architekturę opartą na zaufanym jądrze, ale również wyciągnęliśmy wnioski z dostępnych implementacji bezpiecznego systemu operacyjnego. Fundamentalne zasady, takie jak separacja domen bezpieczeństwa czy mikrojądro, to tylko połowa historii. Badanie innych systemów i ich ograniczeń pomaga nie tylko uniknąć znanych problemów, ale również znaleźć nowe sposoby implementacji właściwości bezpieczeństwa. W efekcie, rozwinęliśmy system operacyjny, który z jednej strony przypomina pod względem zasad działania inne systemy operacyjne, z drugiej jednak posiada funkcje pozwalające przezwyciężyć znane ograniczenia oraz udoskonalić charakterystykę bezpieczeństwa systemu, w którym działa system operacyjny.      

Jako przykład takiego udoskonalenia chciałbym wskazać typizację IPC (interprocess communication – z ang. komunikacja wewnątrzprocesowa). Technologia ta, której koncepcja może wydawać się dość oczywista, zapewnia kontrolę, na niskim poziomie, danych wysyłanych w wywołaniach aplikacji, nadając politykom bezpieczeństwa stopień szczegółowości kontroli, który nigdy wcześniej nie został zaimplementowany na takim poziomie. Inną cechą jest łączenie w jednym systemie różnych typów polityki bezpieczeństwa, takich jak Flow Control oraz Type Enforcement. Powstała w efekcie polityka stanowi połącznie polityki stanowej i bezstanowej, która oferuje to, co najlepsze w obu. Oczywiście możliwości łączenia polityk nie ograniczają się do tych dwóch rodzajów. Żaden komercyjny system operacyjny nie może pochwalić się tak dużą elastycznością. Taka funkcjonalność zapewnia ścisłą kontrolę całej komunikacji międzyprocesowej, która jest oparta nie tylko na znajomości podmiotu i przedmiotu komunikacji (kto żąda i od kogo), ale również na znajomości kontekstu komunikacji na wysokim poziomie (co jest żądane, kiedy i jakie dane są przesyłane).            

Inne funkcje KasperskyOS obejmują elastyczny język definiowania polityk bezpieczeństwa oraz system weryfikacji polityki, który znacznie ułatwia zarówno tworzenie jak i debugowanie polityk. Jest jeszcze wiele innych rzeczy. Unikatowość naszej pracy jest chroniona amerykańskimi i rosyjskimi patentami.

Podsumowując, wierzymy, że rozwinęliśmy system operacyjny, który opiera się na zasadzie zaufanego wykonania niezaufanych aplikacji. Osiągnęliśmy to, między innymi, stosując zasadę separacji domen bezpieczeństwa oraz ścisłą, a zarazem elastyczną kontrolę komunikacji międzyprocesowej. To oznacza, że w systemie operacyjnym moduły mogą współdziałać jedynie zgodnie ze ściśle określonym protokołem, który pozwala na wywoływanie tylko dozwolonych funkcji w dokładnie określonej kolejności. Dla klientów oznacza to, że nawet jeśli istnieje luka w zabezpieczeniu jakiegoś modułu, która może zostać wykorzystana przez hakera (a tak może być), system operacyjny działa w taki sposób, że haker będzie mógł przejąć kontrolę tylko nad modułem zawierającym lukę, nie będzie natomiast w stanie ingerować w działanie innych modułów, ponieważ cała komunikacja jest kontrolowana.     

System operacyjny można porównać do tarczy. Wszystkie dodatkowe wbudowane funkcje bezpieczeństwa, w tym zapory sieciowe, protokoły bezpiecznego przesyłania danych, a nawet certyfikacja, to nity na tarczy. Z pewnością wzmacniają tarczę, ale nie decydują o ogólnym poziomie ochrony. Ważniejsza jest architektura, zasady, na których opiera się system operacyjny. To ona decyduje o tym, czy tarcza jest wykonana z papieru, sklejki czy stali. Wiele systemów operacyjnych posiada mnóstwo nitów – ale do jakiej tarczy są przytwierdzone?