Superbezpieczny system Qubes OS

15-09-2010, 12:04

O niezwykle bezpiecznym systemie operacyjnym opowiada Joanna Rutkowska z firmy Invisible Things Lab.

Dziennik Internautów (DI): Jakiś czas temu Invisible Things Lab przygotowało system operacyjny Qubes OS oparty o Linuksa, który dzięki wykorzystaniu hiperwizora Xen cechuje się bardzo wysokim poziomem bezpieczeństwa.

Joanna Rutkowska (JR): Po pierwsze, sam fakt wykorzystania Xena nie jest wystarczający, aby zapewnić wysoki poziom bezpieczeństwa – jedyne, co może on zagwarantować, to wysoki poziom izolacji pomiędzy maszynami wirtualnymi (VM-ami), a i to pod warunkiem zastosowania dodatkowych mechanizmów, takich jak np. odpowiednio bezpieczna metoda wirtualizacji GUI (czyli - mówiąc prosto - to, co wyświetlają aplikacje w każdej z maszyn wirtualnych, ich GUI, zostanie odpowiednio złączone w jakąś jedną całość i wyświetlone na prawdziwym ekranie użytkownikowi).

Pulpit KDE w Qubes OS
fot. ITL - Pulpit KDE w Qubes OS
Bezpieczna wirtualizacja GUI jest szczególnie istotna w przypadku systemu desktopowego. Sam Xen natomiast, który był tworzony z myślą o serwerach, oferuje jedynie bardzo prymitywne metody wirtualizacji GUI i do tego mało bezpieczne. Rafał Wojtczuk (współautor Qubesa) użył zresztą błędu w tym podsystemie w 2008 roku do napisania exploita pozwalającego na ucieczkę z nieuprzywilejowanej VM-y Xena (tzw. "DomU") do domeny administracyjnej ("Dom0"). A Kostya Kortchinsky rok później zaprezentował expoita "CloudBurst" pozwalającego "uciec" z maszyny wirtualnej pod VMWare, również wykorzystując dziurę w podsystemie wirtualizacji GUI.

Jednym z podstawowych wyzwań podczas projektowania Qubesa było więc opracowanie odpowiednio bezpiecznej, a zarazem efektywnej metody wirtualizacji GUI, i myślę, że udało nam się to dość dobrze.

Warto tu zwrócić jeszcze uwagę, że wiele narzędzi "sandboxujących", takich jak chroot/jail czy SELinux, w ogóle nie zajmuje się sandboxowaniem na poziomie GUI! Jeśli więc nawet uruchomimy aplikacje w takim sandboxie, to gdy tylko pozwolimy jej dołączyć się do naszego X serwera (po to, aby mogła ona coś wyświetlić na ekranie), to wówczas aplikacja ta będzie mogła zrobić praktycznie wszystko z pozostałymi naszymi aplikacjami GUI. Innymi słowy takie sandboxy nie nadają się do ograniczania aplikacji GUI (były one projektowane z myślą o zastosowaniach na serwerach, np. do sandboxowania tzw. demonów).

No, ale wracając do pytania: izolacja pomiędzy VM-ami to dopiero początek - prawdziwe wyzwanie to zbudować system, który będzie czynił z niej użytek, aby chronić aplikacje użytkownika, ale jednocześnie nie sprawiać mu zbędnego kłopotu i to właśnie jest głównym celem Qubes OS.

DI: Czy użytkownicy rzeczywiście potrzebują aż tak skomplikowanych rozwiązań, by chronić swoje dane? Jeśli nie, to do kogo jest skierowany ten produkt?

JR: Zależy od użytkowników. Słyszałam na przykład, że niektórzy ludzie w ogóle obywają się bez komputerów i podobno udaje im się przeżyć :)

Warto też zauważyć, że architektura Qubesa jest „uproszczeniem” w stosunku do architektur popularnych systemów z monolitycznymi jadrami, takimi jak Windows, Linux czy Mac OS X (który wbrew popularnej opinii również ma monolityczne jadro).

DI: Zwykłe antywirusy to już przeżytek?

JR: Można by to tak ładnie ująć...

>>Czytaj także: NK udostępnia darmowy skaner antywirusowy

Sonda
W systemie operacyjnym ważniejsze jest:
  • Bezpieczeństwo
  • Wygoda
  • Nie wiem
wyniki  komentarze

DI: Wiem, że obok dostępnej obecnie wersji planowane jest także stworzenie edycji systemu przeznaczonej dla firm. Miałaby ona wspierać między innymi aplikacje znane z Windowsa. Jak planowane jest osiągnięcie takiej kompatybilności? Dalsza wirtualizacja czy wykorzystanie bibliotek ze znanego użytkownikom Linuksa oprogramowania Wine?

JR: Wirtualizacja, oczywiście. Jest znacznie szybsza, niż używanie dodatkowej warstwy emulacji pod postacią Wine, oraz zapewnia praktycznie 100% kompatybilności na poziomie aplikacji (jak wiadomo większość "pożytecznych" aplikacji pod Wine się wysypuje).

DI: Wysoki poziom bezpieczeństwa Qubes OS udało się uzyskać głównie dzięki wykorzystaniu tzw. lekkich maszyn wirtualnych (z ang. lightweight Virtual Machines). Już teraz wielu użytkowników zwraca uwagę, iż są one lekkie wyłącznie z nazwy. Jak optymalizowano wydajność, a może nie była ona w ogóle istotnym zagadnieniem?

JR: Te maszyny wirtualne nazywamy w Qubesie AppVM-ami (od Application VM), gdyż ich głównym zadaniem jest hostowanie aplikacji użytkownika. Tak przy okazji, nie jest prawdą, że każda aplikacja w Qubesie uruchamiana jest w osobnej maszynie wirtualnej - to by nie miało sensu z punktu widzenia zużycia zasobów. O AppVM-ach należy raczej myśleć jak o "domenach bezpieczeństwa", w których to czasem używamy kilku różnych aplikacji, często jednocześnie.

Ja używam np. następujących AppVM-ów: "personal" (osobisty e-mail, dokumenty, zdjęcia, terminarz), "work" (firmowy e-mail, dokumenty, kontrakty, projekty), "banking" (dostęp do konta bankowego), "shopping" (Amazon, Komputronik itp.), "random" (dowolne surfowanie po sieci, niewymagające żadnego uwierzytelniania, podawania numeru karty kredytowej, np. czytanie newsów, otwieranie różnych dokumentów "z sieci") i tak dalej.

Sama wirtualizacja nie dodaje zauważalnego spowolnienia, w szczególności że używamy parawirtualizacji. Natomiast do tej pory głównym problemem było zatykanie się AppVM-y w sytuacjach, kiedy użytkownik otworzył w niej zbyt wiele aplikacji (np. Firefoksa, OpenOffice, jakiś czytnik PDF i inne narzędzia), gdyż zaczynało brakować pamięci w danej VM-ie i zaczynało się swapowanie... Aby rozwiązać ten problem, opracowaliśmy metodę dynamicznego balansowania pamięci pomiędzy VM-ami i właśnie testujemy świeży kod, który to robi :)

Inną formą optymalizacji jest wykorzystanie tzw. Template VM, maszyny wzorcowej, której system plików jest dzielony pomiędzy AppVM-ami (jako "read-only", oczywiście). Dzięki temu, każda AppVM-a potrzebuje jedynie miejsce na dysku na swoje prywatne dane ("/home"), a nie na całą kopię systemu plików. Dodatkowo umożliwia to jednoczesna aktualizacja oprogramowania we wszystkich AppVM-ach za jednym zamachem (chyba że użytkownik zdefiniuje wyjątki).

DI: Domowi użytkownicy, którzy są zainteresowani Qubes OS, z pewnością nie są zbyt zadowoleni z braku wsparcia dla gier. Jedynie menedżer okien obsługuje akcelerację grafiki 3D w OpenGL. Czy obsługa zaawansowanych efektów graficznych w aplikacjach równa się mniejszemu bezpieczeństwu?

JR: No niestety, aby móc "dostarczyć" sprzętowe dopalanie 3D (np. pod postacią OpenGL) do aplikacji działających w AppVM-ach, musielibyśmy znacznie skomplikować podsystem wirtualizacji GUI, a nie chcemy tego robić, gdyż jest to jeden z najbardziej krytycznych elementów systemu, jeśli chodzi o bezpieczeństwo (proszę sobie przypomnieć cytowane wyżej dwa ataki używające błędów w GUI do uciekania z maszyn wirtualnych pod Xen i VMWare).

Być może w Qubes 2.0 wprowadzimy pewne rozwiązanie, które umożliwi nam dodanie wirtualizacji OpenGL bez pogarszania bezpieczeństwa, ale na pewno nie będzie tego w pierwszej wersji systemu.

W bezpiecznym systemie nie może się obejść bez mocnych haseł
fot. ITL - W bezpiecznym systemie nie może się obejść bez mocnych haseł
DI: Na stronie projektu dowiadujemy się, że wykorzystując system od Invisible Things Lab, bez problemu odtworzymy między innymi multimedia bądź filmy na YouTube. Czy ze względów bezpieczeństwa zastosowano jakieś restrykcje związane z przeglądaniem internetu? Qubes OS jest wyposażony w standardowego Firefoksa?

JR: Nie ma żadnych restrykcji w przeglądaniu internetu, ITL nie zajmuje się polityką ;)

Tak naprawdę to jednak planujemy wprowadzenie czegoś, co roboczo nazywamy obecnie "firewall VM", która umożliwi użytkownikowi/administratorowi zdefiniowanie polisy odnośnie tego, które AppVM-y mogą łączyć się z jakimi usługami/serwerami. Przykładowo, użytkownik może chcieć, aby jego "banking" AppVM łączyła się jedynie z serwerem bank.com.pl i to jedynie po https, "work" AppVM jedynie zaś z firmową bramką VPN i tak dalej. Chodzi o to, aby użytkownik przez pomyłkę nie mógł np. rozpocząć surfowania po internecie w "work" AppVM, np. w odpowiedzi na otrzymany pocztą link.

Maszyny wirtualne w Qubesie są tworzone z Template VM, który jest oparty o standardową instalację Fedory 13, tak więc każda AppVM-a jest "wyposażona" w Firefoksa.

>>Czytaj także: Totalna inwigilacja w Meksyku?

DI: Choć na razie Qubes OS jest dostępny w wersji aplha (przypomnę, że finalne wydanie planowane jest na koniec 2010 roku), już teraz można obserwować duże zainteresowanie ze strony użytkowników. Czy podobnie było w przypadku firm? A może jest to na razie tak wczesny eksperyment, że na odzew ze strony poważniejszych graczy na rynku trzeba będzie jeszcze poczekać?

JR: Szukamy obecnie poważnego inwestora, który umożliwiłby rozpoczęcie prac nad wersją komercyjną, nazywaną przez nas roboczo "Qubes Pro".

DI: Invisible Things Lab to firma związana z szeroko pojętym bezpieczeństwem.

JR: Nie, ITL to firma związana z bardzo wąsko pojętym bezpieczeństwem, tj. z bezpieczeństwem na poziomie systemu operacyjnego (i niżej). Nie zajmujemy się w ogóle takimi (popularnymi skądinąd) zagadnieniami, jak np. bezpieczeństwo aplikacji webowych, sieci czy pentesting.

DI: Na koniec muszę zapytać o plany dotyczące przyszłości korporacji. Użytkownicy mogą liczyć w najbliższym czasie na nowe produkty czy priorytetem jest usprawnianie tych, które już powstały?

JR: No, "korporacją" to bym nas raczej nie nazwała ;)

Qubes OS jest naszym pierwszym i jedynym produktem. Oprócz Qubesa zajmujemy się zaawansowanymi badaniami nad bezpieczeństwem różnych technologii (np. technologii Trusted Computing), co stanowi nasze główne źródło dochodów. Mam nadzieję, że kiedyś uda nam się zarobić również na Qubesie :)


Następny artykuł » zamknij

Król: Zero innowacyjności

Źródło: DI24.pl
Przepisy na coś słodkiego z kremem Nutella
  
znajdź w serwisie

RSS  
RSS  

RSS - Wywiad
Wywiad  
RSS - Interwencje
RSS - Porady
Porady  
RSS - Listy
Listy  
« Wrzesień 2021»
PoWtŚrCzwPtSbNd
 12345
6789101112
13141516171819
20212223242526
27282930