REKLAMA

O Qubes OS i nie tylko – Rozmowa z Joanną Rutkowską, założycielką firmy Invisible Things Lab

Joanna Rutkowska

Joanna Rutkowska

Czy może się Pani przedstawić tym spośród naszych czytelników, którzy jeszcze Pani nie znają, i opowiedzieć, czym się zajmuje Pani na co dzień?

Dziś lubię o sobie myśleć (i mówić) jako o architekcie bezpieczeństwa systemów komputerowych (po angielsku brzmi to trochę zgrabniej). Obecnie zajmuję się planowaniem architektury i rozwoju systemu Qubes OS oraz Qubes Odyssey Framework, nad którym mój zespół pracuje od ponad 3 lat.
Wcześniej byłam dość szeroko znana w branży jako tzw. security researcher. Wówczas moim, oraz mojego zespołu, głównym celem było tworzenie i demonstrowanie ataków na różne technologie bezpieczeństwa, stosowane głównie w systemach wirtualizacji (np. rodzina Intel vPro) oraz sprzętowego bezpieczeństwa (TPM i ogólnie tzw. Trusted Computing).

Jest Pani autorką Qubes OS. Skąd zrodził się pomysł na ten system, ile czasu zajęło jego wypuszczenie oraz ile osób pracowało nad nim?

Pomysł zrodził się z dogłębnego sfrustrowania poziomem bezpieczeństwa, a właściwie jego brakiem, we współczesnych systemach desktopowych (klienckich). W odróżnieniu od systemów przeznaczonych na serwery, systemy desktopowe stawiane są przed szeregiem zupełnie innych wyzwań, które to niestety przez szereg lat były kompletnie ignorowane bądź bagatelizowane. Ot, choćby taki klasyczny przykład: dlaczego moja przeglądarka internetowa ma mieć dostęp (tzn. móc przeczytać) wszystkie moje osobiste pliki (maile, dokumenty itp.)? No, wiadomo, po to, aby móc „uploadnąć” moje najnowsze zdjęcia na facebooka. Z drugiej jednak strony to oznacza, że jak złośliwa strona skompromituje mi przeglądarkę, to wówczas może ukraść moje prywatne listy miłosne albo projekty tajnego silnika turbinowego… A dlaczego głupi installer gry Tetris ma mieć dostęp do wszystkich moich plików?
Qubes OS jest próbą zmiany podejścia do bezpieczeństwa systemów desktopowych. Zamiast próbować budować perfekcyjny, tzn. bezbłędny system operacyjny, oraz wszystkie aplikacje w sposób, który miałby zapobiec ich kompromitacji, Qubes implementuje podejście „Security by Isolation”. W podejściu tym zakładamy, że „cyfrowe życie” użytkownika, jak też i różne podsystemy samego systemu operacyjnego (np. stosy sieciowe czy USB), są po-partycjonowane na szereg domen, zaimplementowanych jako lekkie maszyny wirtualne. W ten sposób kompromitacja mojej przeglądarki, której używam do czytania porannej prasy, nie daje adwersarzowi automatycznie dostępu do mojego konta bankowego, portfela Bitcoinowego, dokumentów zawodowych itp.
Tak jak wspomniałam wyżej, nad Qubes OS pracujemy już ponad 3 lata. Ostatnimi czasy coraz więcej ludzi zaczyna kontrybuować kod implementujący różne rozszerzenia do Qubes'a, jak np. TorVM. Licząc ich wszystkich, będzie to ok. tuzin developerów z całego świata.

Qubes OS niedawno doczekał się oficjalnego wydania. Jak wygląda jego popularność, prowadzone są statystyki ukazujące ilość pobranych kopii? Jakie są reakcje społeczności na nowy OS? Czy są już znane większe wdrożenia?

„Oficjalnego wydania”? Rozumiem, że chodzi o wydanie otagowane jako „wersja 1.0”? Rzeczywiście, wydaliśmy je jesienią zeszłego roku. Jednak wszystkie wydania Qubes'a są „oficjalne”. Różnica pomiędzy wydaniem, które nazywamy np. „Beta 2”, a tym, które będzie nosić przydomek „Release 2”, jest jednak, w dużej mierze, dość umowna, raczej chodzi o zasygnalizowanie, jak dalece zaawansowani jesteśmy w realizacji naszego roadmap'a, aniżeli podkreślenia, czy owa wersja jest stabilna, czy nie.
„Wdrożenia?” Qubes OS to opensource'owy projekt, podobnie jak np. Linux Kernel, GNU Emacs czy Xen, i nie ma on (obecnie) żadnego komercyjnego wsparcia dla końcowego klienta. Jedynym wsparciem są listy mailingowe (mamy już dwie: qubes-users i qubes-devel).
Jeśli zaś chodzi o komercyjne wdrożenia, to nastawiamy się na współpracę z innymi producentami oprogramowania, dostarczając im różne „klocki”, z których mogą oni zbudować skrojonego na swoją miarę, często wyspecjalizowanego do współpracy ze swoją linią produktów „Qubes'a”.
Nawet niekoniecznie opartego na Xenie, ale być może na np. Hyper-V. Jest to dokładnie opisane w tym artykule. Natomiast sam Qubes OS zdaje się zyskiwać coraz bardziej na popularności, odkąd wydaliśmy tę „oficjalną” wersję 1.0 na jesieni. Wersję 1 ściągnęło ok. 30 tyś. użytkowników, natomiast najnowszą wersję beta 2 wersji Release 2, która opublikowana została parę miesięcy temu, prawie 12 tyś. Jak na egzotyczny system operacyjny, który dopiero co doczekał się pierwszej wersji „oficjalnej”, który ma bardzo wyśrubowane wymagania hardware'owe oraz co do „poziomu ogarnięcia się” użytkownika, to całkiem niezłe wyniki, jak myślę.

Jak Qubes OS prezentuje się na tle innych systemów operacyjnych pod względem wydajności? Czy wirtualizacja nie pochłania większych zasobów procesora niż systemy bez wirtualizacji? Jakie minimalne wymagania sprzętowe muszą być spełnione do komfortowej pracy z Państwa systemem?

Oczywiście, że wirtualizacja pochłania więcej zasobów. Nie ma cudów, pomimo że nasze „VMki” są dość mocno odchudzone. Zasobem najbardziej pochłanianym jest oczywiście pamięć RAM.
Minimalne wymagania, tak jak i w przypadku „zwykłych” systemów operacyjnych, uzależnione będą głównie od profilu użytkowania, czyli np. od tego, jakich programów się używa, co się „na nich robi” itp. W przypadku Qubes'a dodatkowym czynnikiem będzie to, ile domen (a więc „Vmek”) zdefiniuje sobie użytkownik i ile będzie używał średnio w jednym momencie. Podejrzewam, że „zwykły człowiek” powinien potrzebować pewnie nie więcej niż 5-ciu domen. Do tego spokojnie powinno wystarczyć 4GB RAMu (nawet jeśli wszystkie miałyby być aktywne w jednym momencie). Ja np. mam zdefiniowanych ok. 30-tu domen i niejednokrotnie mam ponad 10 działających jednocześnie – mój laptop ma 8GB RAMu i świetnie sobie z tym radzi, ale 4 GB już pewnie byłoby za mało. Muszę jednak dodać, że posiadam również szybki dysk SSD, który bardzo poprawia ogólną wydajność systemu (niezależnie już od tego, czy jest to Qubes czy tradycyjny system desktopowy).

VT-x czy VT-d, czy po doświadczeniach pracy nad systemem pojawiły się sugestie, iż warto by rozszerzyć listę instrukcji x86 o nowe rodzaje rozkazów, które by zwiększyły wydajność wirtualizacji? Jakie rozwiązania w wirtualizacji widzi Pani w przyszłości?

Intel VT-x czy VT-d (warto zdać sobie sprawę, że to zupełnie dwie różne rzeczy) to bardzo mocne technologie. Nie słyszałam, aby komukolwiek udało się „złamać VT-x”, natomiast jedyny atak przeciwko VT-d został zaprezentowany i opisany przez mój zespół, ale i tak dotyczył systemów, które Intel wypuścił na początku i które nie miały pewnego mechanizmu, tzw. Interrupt Remapping, a który był jednak w planach na długo przed opublikowaniem naszego ataku [1]. Obecnie, o ile wiem, większość nowych systemów (konkretniej procesorów, bo dzisiaj northbridge jest częścią układu procesora) posiada już ten system, więc jest na takie ataki odporna.
Warto tu nadmienić, że co innego np. sama technologia VT-x, a zupełnie co innego produkt pt. hypervisor/system wirtualizacji, jak np. VMWare Workstation, który z tej technologi korzysta. I tak np. technologia VT-x może być naprawdę bezpieczna, tylko co z tego, skoro ów hypervisor wystawi VMce jeszcze emulowany GPU albo DirectX (zależnie, na jakim poziomie wirtualizujemy) i w tymże kodzie, który taką emulację implementuje, będzie masa bugów typu buffer overflow. Wtedy „zwykły” exploit (tzn. taki, który nie ma nic wspólnego z atakowaniem VT-x'a) wystarczy, aby z takiej VMki uciec. I takie ataki były demonstrowane publicznie w przeszłości.
Nie warto więc się za bardzo ekscytować, że coś jest „sprzętowo wirtualizowane”, bo tak naprawdę to zawsze jest masa software'u dobudowana do tych sprzętowych technologii, i to prawie zawsze ona zostanie zaatakowana. Jednym z naszych celów w Qubes OS jest właśnie jak największe zmniejszenie ilości tego „dodatkowego” software'u. Większość systemów wirtualizacyjnych jednak nie podąża tą drogą.
Mówiąc jednak o VT-x i VT-d, warto wspomnieć jeszcze o trzeciej technologii z rodziny Intel vPro, mianowicie o Intel Trusted Execution Technology (TXT). No coż, tę technologię wielokrotnie udawało nam się zaatakować z sukcesem [2][3][4]. I mówimy tu oczywiście o czysto software'owych atakach, a nie jakichś tam fizycznych atakach z użyciem lutownicy i oscyloskopu. Czysty software przeciwko hardwarowi, czyli kwintesencja ataków systemowych.
Intel TXT, o ile mi wiadomo, nie jest jeszcze używany przez żaden komercyjny system ani produkt, jednak jest to ważna technologia, która mogłaby umożliwić robienie bardzo ciekawych rzeczy, takich jak choćby tworzenie systemów, gdzie administrator nie mógłby „podsłuchać” ani zmodyfikować procesów/VMek użytkowników zdalnych [5]. Obecnie coś takiego jest oczywiście nierealne.
Mogłaby… gdyby tylko nie była tak bardzo dziurawa… A niestety jest dziurawa z przyczyn częściowo „politycznych” - bo np. BIOS (jakkolwiek go dziś nazwiemy: BIOS czy UEFI, czy SMM, to jednak wszystko to samo z punktu widzenia naszych ataków) ma zbyt duże prawa na procesorach x86/x64 i nic nie zapowiada, aby to się zmieniło. I to strasznie komplikuje sprawę stworzenia naprawdę silnej technologii implementującej, tzw. Dynamiczny Trusted Boot (DRTM), czyli właśnie tego, co robi Intel TXT.

Obecne trendy na rynku ujawniają zapotrzebowanie na wydajność – chmury (gdzie moc kosztuje) oraz małe urządzenia przenośne (gdzie mniejsza wydajność oznacza krótszy czas pracy na baterii) – a wirtualizacja nie jest „darmowa” w sensie wydajnościowym. Dodatkowo rośnie także popularność architektury ARM. Jak Qubes OS wychodzi tym wyzwaniom naprzeciw? Czy widzi Pani szansę Qubes OS w tych segmentach rynku?

Qubes nie ściga się pod względem wydajności z innymi systemami. Qubes stara się być lepszy w kwestii bezpieczeństwa oferowanego użytkownikom.

Jak wiadomo, obecnie większość innowacyjnych pomysłów (projektów) w IT zmierza w stronę zastosowań mobilnych (tablety, smartfony, urządzenia przenośne etc…). W tym segmencie wchodzą coraz to nowe produkty i możliwości (mobilne płatności, elektroniczne kupony (passbook) i portfele etc…). Ponieważ jest to obszar bardzo świeży, nowy, niezbadany jeszcze dokładnie, więc prawdopodobnie podatny na wiele ataków. Jak wobec tego Pani widzi sprawę bezpieczeństwa w tego typu zastosowaniach?

Prawdę mówiąc, nie widzę specjalnej różnicy pomiędzy desktopowym/laptopowym system operacyjnym a mobilnym. Czyli że mamy tu bardzo podobne problemy i wyzwania oraz, według mnie, podobne rozwiązania (np. Qubes).

Inny aspekt to sprawa zaufania klientów, czy nie będą się oni obawiali nowych możliwości (kanałów), które się przed nimi otwierają?

Jakoś ludzie nie protestują, że każdy dzisiejszy telefon wyposażony jest w co najmniej jedną kamerę oraz, coraz częściej, w niewyjmowalną baterię. Dziwne, prawda?
Może jednak za kilka lat będą dostępne modele „premium” z mechanicznym wyłącznikiem mikrofonu i kamery?

Jak Pani postrzega bezpieczeństwo danych w kontekście „uczynnych, ułatwiających życie funkcji systemu” w aplikacjach internetowych? Mamy tu na myśli takie portale jak Facebook, Badoo i funkcje typu „podaj nam hasło do skrzynki, a my pobierzemy kontakty i skojarzymy Cię z Twoimi znajomymi”. Co się dzieje z takim hasłem po wysłaniu requesta?

Generalnie jestem zdania, że dorosły człowiek powinien być traktowany jako dojrzała, myśląca i odpowiedzialna za siebie istota, a nie jak dziecko, które trzeba we wszystkim wyręczyć za jego plecami, czy tego chce, czy nie chce - no bo „dziecko” przecież i tak nie wie, co jest dla niego dobre! Takie podejście uwłacza naszej inteligencji i godności.
Ten pogląd rozszerzam również na inne aspekty życia, nie tylko związane z komputerami, ale również np. na zagadnienia takie jak eutanazja. Traktujmy ludzi dorosłych poważnie, a nie jak dzieci!

Jest Pani znana z licznych wystąpień na konferencjach dotyczących bezpieczeństwa systemów informatycznych. Czy i gdzie planuje Pani najbliższe wystąpienia i jakich tematów będą dotyczyć?

W ostatnich latach trochę mi zbrzydło jeżdżenie po świecie i występowanie na konferencjach, więc obecnie nie mam w planach tego rodzaju atrakcji…

Wracając jeszcze do Qubes OS. Czy jest on nastawiony na domowych użytkowników, czy jednak docelową grupą są osoby bardziej zaawansowane? Czy przeciętny użytkownik doceni zalety Qubes OS?

Qubes OS celuje mniej więcej w tę samą grupę odbiorców, co różne dystrybucje Linuxa. Natomiast, wspominany już wcześniej, Qubes Odyssey Framework ma umożliwić tworzenie całej gamy produktów skierowanej do przeróżnych odbiorców, choć wiadomo, że głównie będą to odbiorcy korporacyjni (bo przeciętny Kowalski nie jest szczególnie zainteresowany zabezpieczaniem swojego cyfrowego życia).

Czy w Pani opinii rozwiązania oferowane przez Qubes OS staną się w przyszłości standardem, czy inne systemy operacyjne będą dążyć do wirtualizacji w celu zapewnienia użytkownikom większego bezpieczeństwa?

Nie wiem, czas pokaże.

I na koniec pytanie o wprowadzony przez Panią termin „evil maid”. Czy może Pani wytłumaczyć dokładne znaczenie tego terminu i czy systemy takie jak np. Chrome OS są odporne na tego typu ataki?

Terminu „Evil Maid Attack” użyłam do nazwania jednego z ataków na systemy szyfrowania dysków, który zaimplementowaliśmy parę lat temu. Jeśli chodzi o szczegóły, to odsyłam do oryginalnego artykułu, od którego się wszystko zaczęło. Co do Chrome OS, to nie miałam przyjemności go testować, więc nie wiem, czy ma on zaimplementowane jakieś mechanizmy typu Anti-Evil Maid… Na pewno da się to zrobić, jak można przeczytać w innym z kolei artykule.

Wywiad pochodzi z magazynu "Programista" 7/2013 (14)