Czy bezpieczny system operacyjny może być wygodny? Sprawdzamy Subgraph OS

Kilka dni temu nasz znakomity autor wielkipiec postawił na łamachswojego bloga pytanie:*w sumie to skąd wiemy, co program tak naprawdę robi?*W swoim wpisie słusznie argumentował, że nie ma mowy, aby systemogólnego przeznaczenia był bezpieczny. Ale przecież chcemykorzystać z bezpiecznych systemów, kompromisy w tej kwestii wydająsię słabym pomysłem. Stosujemy więc zabezpieczenia naniebezpieczne systemy. Z drugiej jednak strony, rozwiązaniapozwalające na skuteczne zabezpieczenie oprogramowania sprawiają,że staje się ono mało wygodne w użyciu. Czy w ogóle jest możliwysystem operacyjny, który będzie nie do sforsowania dla napastnika,a zarazem będzie nadawał się do jakiejś poważnej pracy? Udałosię nam trafić na projekt, który właśnie coś takiego obiecuje –w niniejszym tekście postaramy się go Wam przybliżyć.

Czy bezpieczny system operacyjny może być wygodny? Sprawdzamy Subgraph OS

03.02.2018 | aktual.: 03.02.2018 17:29

Jednym z najbezpieczniejszychdziś systemów (na tyle bezpiecznym, że zachwalanymprzez producenta laptopów Purism) jest Qubes OS zespołu JoannyRutkowskiej. Dzięki izolacji swoich komponentów przez wirtualizacjędrastycznie zmniejsza powierzchnię ataku jak i skutecznośćexploitów, ale narzuca bardzo specyficzny styl pracy i uniemożliwiakorzystanie ze sprzętowej akceleracji grafiki. Z kolei popularny doanonimowego surfowania po Internecie system Tails przeznaczony jestraczej do jednorazowych sesji uruchamianych z pendrive’a, z koleiWhonix każe nam uruchamiać obok siebie na hoście dwie maszynywirtualne, z których jedna robi za bramkę do przepuszczonej przezTora sieci, a druga za pulpit roboczy.

Czy można znaleźć cośpośrodku, system który zarówno zapewniłby najwyższy możliwypoziom bezpieczeństwa, jak i nadawał się do wygodnej pracy? Cośtakiego obiecują twórcy Subgraph OS, zbudowanej na bazie Debianadystrybucji, która z obietnic zapowiada się na twardy orzech dozgryzienia, zarówno dla cyberprzestępców jak i wszelkiego rodzajuinstytucjonalnych napastników.

Architektura Subgraph OS: bezpieczeństwo na wielu poziomach
Architektura Subgraph OS: bezpieczeństwo na wielu poziomach

Na wstępie musimy zaznaczyć, żeopisywany i testowany system operacyjny znajduje się wciąż w faziealfa – jesienią zeszłego roku pojawiło się czwarte z koleieksperymentalne wydanie, pierwsza beta spodziewana jest na wiosnę.Wśród setek linuksowych dystrybucji Subgraph OS jest jednakprawdziwym powiewem świeżości – i choćby dlatego zdecydowaliśmysię mu bliżej przyjrzeć.

Jak piszą sami twórcy systemu,Subgraph OS jest odporną na napastników platformąkomputerową. W założeniu maon umożliwić ludziom bezpieczną komunikację, wymianę danych iwspółpracę bez obaw, że w ten proces ingerować mogłyby osobypostronne. Zarazem jednak ma on być wygodny, oferując użytkownikomdobrze znane środowisko pracy (tj. GNOME) i typowe aplikacje znane zinnych linuksowych dystrybucji.

Bezpieczeństwo jest tu rozumianebardzo konkretnie. System bezpieczny to tak, który zapewniapoufność, spójność i dostępność informacji jakie przechowujei przetwarza. Nie pozwala więc ujawnić informacji osobomnieupoważnionym, nie pozwala naruszyć lub zmodyfikować informacjiosobom nieupoważnionym, a za to gwarantuje, że do informacji dostępuzyskać mogą ci, którzy są upoważnieni. Jak z niebezpiecznegoLinuksa zrobić dobrze zabezpieczony system?

Odchudzanie i utwardzanie

Zmiany zaczynają się już na poziomie kernela (obecnie 4.9.9).Deweloperzy usunęli z niego wsparcie dla licznych przestarzałychlub nieużywanych protokołów sieciowych oraz urządzeń, które niesą potrzebne lub mogą stanowić potencjalne zagrożenie. Isłusznie, czy na desktopowej maszynie potrzebujemy dziś wsparciaprotokołu IPX czy interfejsu LPT dla starych drukarek?

Dodano za to zestaw rozszerzeń bezpieczeństwa grsecurity,wprowadzających automatyczną ochronę przed exploitamiwykorzystującymi uszkodzenia pamięci, oferujących inteligentąkontrolę dostępu i inne utwardzające system mechanizmy. Coszczególnie istotne, włączono mechanizmy ochronny RAP,blokujący ataki wykorzystujące technikę Return-OrientedProgramming, czyli budowanie złośliwego kodu z niegroźnego kodu,już działającego w systemie. Wszystkie wprowadzone zmiany zostałyudokumentowane na GitHubie.

Zadbano także o bezpieczeństwo systemowego oprogramowania –specyficzne dla Subgraph OS-a komponenty napisano w bezpiecznymjęzyku Go, a dla wszystkich aplikacji przygotowano profile AppArmor.

Oczywiście w założeniu dostęp do systemu plików chronionyjest całodyskowym szyfrowaniem LUKS/dm-crypt.

W krainie Oz

Wirtualizacja każdego komponentu systemu zapewnia najlepsząizolację, ale to rozwiązanie ekstremalne. Subgraph OS oferuje mniejekstremalne, a może nie mniej skuteczne rozwiązanie w postaci Oz.Jest to mechanizm kontenerowy, uruchamiający podatne na zdalne atakiaplikacje w izolowanych środowiskach. Przeznaczony jest więc dlaprzeglądarki, procesora tekstu czy komunikatora, ale już nie dlanp. systemowego kalkulatora czy panelu konfiguracji.

Obraz

Oz wykorzystuje funkcję seccomp kernela, pozwalającą przejśćprocesowi w tryb bezpieczny, uniemożliwiający mu zrobieniejakichkolwiek wywołań systemowych poza wyjściem i dostępem douchwytów już otwartych plików – jak proces coś takiegospróbuje, to jest zabijany. Komunikacja z kontenerem odbywa sięprzez filtr pakietowy Berkeley (BPF), odcinający wszelkieniepożądane pakiety. Z kolei mechanizm Linux namespaces umożliwiazwirtualizowanie zasobów systemowych dla kontenera, tak że ma ondostęp tylko do tego, co jest mu dane z sieci czy systemu plików.

Dlaczego kalkulator GNOME chce się łączyć z Internetem?
Dlaczego kalkulator GNOME chce się łączyć z Internetem?

Uruchomionymi w kontenerach Oz aplikacjami zarządzać możnapoprzez rozszerzenie pulpitu GNOME, wyświetlające ich listę,dające dostęp do ich systemu plików i pozwalające siłowo jezamknąć.

Kontrola dostępu do Sieci także dla aplikacji uruchamianych w konsoli
Kontrola dostępu do Sieci także dla aplikacji uruchamianych w konsoli

Cebulowe rozmowy

Domyślnie założono, że cała komunikacja aplikacji SubgraphOS-a będzie odbywała się przez Tora, poprzez specjalną aplikacjęMetaproxy, która przekierowuje wychodzące połączenia dowłaściwych proxy, zapewnia też, że żadne dwie aplikacje nie będąkorzystały z tego samego obwodu Tora. Aby zagwarantować, że żadnaaplikacja nie nadużyje funkcji kontrolnych Tora, zastosowano demonaROFLCopTor. Dzięki temu pozbawiono oprogramowanie zbytecznychuprawnień, mają one dostęp tylko do zasobów niezbędnych doprzeprowadzenia swoich zadań.

Reguły zapory sieciowej podane jak na dłoni
Reguły zapory sieciowej podane jak na dłoni

Od strony interfejsu użytkownika stworzono rozszerzenie powłokipozwalające szybko stworzyć w cebulowym routerze nową tożsamość,dodano też panel sterowania dla zapory sieciowej, w której łatwozablokować dostęp oprogramowania do sieci i sprawdzić aktualnieprzyznane aplikacjom uprawnienia. Jest to dodatkowowe zabezpieczenie– bez zgody użytkownika żaden proces spoza Oz nie może połączyćsię z siecią, o ile nie dostanie pozwolenia. Kto by przypuszczał,że kalkulator GNOME chce łączyć się z Internetem…

Instalacja wersji alfa

Subgraph OS-a nie udało się zainstalować w maszynie wirtualnej,ani w VirtualBoksie, ani w kvm-qemu przez virtmanagera. Obraz ISOzostał więc nagrany na pendrive za pomocą narzędzia Etcher(można to też zrobić oczywiście systemowym dd, ale jesteśmyleniwi), potem oczywiście rozruch z tego nośnika i procesinstalacji na metalu.

Instalator miał problemy z grafiką na testowej maszynie zGeForce GTX 970. Najwyraźniej zmodyfikowany kernel miał jakieśkłopoty z opensource’owym sterownikiem nouveau. Włączyliśmywięc w ustawieniach BIOS-u zintegrowaną grafikę Intela – z niąposzło bez problemów.

Proces instalacji jest prosty. Możemy ustawić własnepartycjonowanie lub wybrać automatyczne partycjonowanie.Automatyczne zakłada szyfrowanie całego dysku, hasło do dm-cryptapodamy zaraz po rozruchu komputera. Trzeba je dobrze zapamiętać,tej pierwszej linii obrony przed napastnikiem z fizycznym dostępemnie ma jak rozbroić, utrata hasła to utrata dostępu do kluczaszyfrującego, a więc i do zaszyfrowanych danych.

Potem podajemy hasło dla użytkownika. Subgraph automatyczniezakłada sobie takiego jednego, którego login to po prostu user.Dopiero później będzie można stworzyć innych użytkowników ociekawszych loginach – nie wiemy czemu tak to zrobiono.

Na tym kończy się proces instalacji – po kilku minutachbędziemy mogli zrestartować komputer, by po momencie zobaczyćekran logowania GNOME.

Podgląd aktywności – widzimy nietypowy zestaw aplikacji w Docku
Podgląd aktywności – widzimy nietypowy zestaw aplikacji w Docku

Życie z zabezpieczonym systemem

Tak jak wspomnieliśmy, Subgraph OS jest wciąż w wersji alfa –i to widać w wielu miejscach. Domyślnie nie ma żadnej przeglądarkiinternetowej. W docku widać launchera dla Tor Browsera, którypierwsze co zrobi po kliknięciu, to zacznie pobierać tęprzeglądarkę nie z repozytoriów Debiana, lecz prosto z oficjalnejstrony projektu Tor (oczywiście po zweryfikowaniu podpisów).Pobieranie odbywa się oczywiście po Torze, więc nie jest zbytszybkie, ale to nie jest najgorsze.

Launcher Tor Browsera – niegotowy na nową wersję przeglądarki
Launcher Tor Browsera – niegotowy na nową wersję przeglądarki

Gdy launcher już pobrał sobie Tora, rozpoczął jegorozpakowywanie – i na tym skończył bez żadnego komunikatu. Natym pewnie normalny użytkownik zakończyłby przygodę z systemem,ale nie jesteśmy aż tak normalni. Pogrzebaliśmy w skryptach, byzobaczyć co robią. Okazuje się, że napisany w Pythonie launcherpobierał Tor Browsera w wersji 7.5, rozpakowywał go, a następnieprzed uruchomieniem chciał sprawdzić numer wersji, by zabezpieczyćprzed atakiem polegającym na podmianie na wersję starszą, byćmoże podatną na jakieś exploity. Sprawdzał to jednak odwołującsię do pliku wersji, który po prostu już nie istniał. A że niewyjątku nie obsłużono, skrypt kończył pracę, pozostawiającmartwe okno dialogowe.

No cóż, launcher Tor Browsera się popsuł
No cóż, launcher Tor Browsera się popsuł

Naprawiliśmy to sobie usuwając sprawdzenie wersji ze skryptu (naponiższym zrzucie ekranu widzicie, gdzie trzeba zrobić) – TorBrowser uruchomił się bez problemów… po dłuższej chwili.

Trochę taśmy klejącej i launcher Tor Browsera znów działa :)
Trochę taśmy klejącej i launcher Tor Browsera znów działa :)

Niestety to podstawowa przypadłość aplikacji w Subgraph OS-ie.Uruchamiają się kilkukrotnie dłużej niż na normalnym systemie.To cena każdorazowego utworzenia własnego izolowanego środowiska.Później już aplikacje działają całkiem normalnie.

Pewną niedogodnością może być konieczność pilnowaniasystemu plików przy ich zapisie. To co pobierzemy przeglądarkątrafi do Pobrane, ale nie będzie to ten sam katalog Pobrane, którybędzie dostępny np. dla edytora tekstu. Aby udostępnić plikdrugiej aplikacji, trzeba to zrobić poprzez rozszerzenie powłoki dozarządzania kontenerami Oz. Przydałaby się tutaj automatyzacjatego procesu, przenoszenie plików wg zadanych reguł.

Rozszerzenie powłoki do zarządzania kontenerami Oz z aplikacjami
Rozszerzenie powłoki do zarządzania kontenerami Oz z aplikacjami

Dość ciekawy jest za to zestaw domyślnie zaoferowanychaplikacji – oprócz standardowego zestawu programików GNOME,instalatora Tor Browsera i LibreOffice mamy do dyspozycjibezpiecznego, łączącego się przez Tora klienta Jabbera CoyIM,klienta e-mail Icedove (tj. Thunderbird) z zestawem rozszerzeńbezpieczeństwa dla poczty (m.in. TorBirdy i Enigmail), narzędzie doudostępniania plików przez Tora OnionShare, menedżer hasełKeePassX, lekki portfel bitcoinów Electrum oraz narzędzie dozarządzania sprzętowymi kluczami YubiKey. Oczywiściezainteresowani mogą doinstalować inne oprogramowanie z repozytoriówDebiana.

Różne różności preinstalowane w systemie
Różne różności preinstalowane w systemie

A jak z dostępem do sprzętu? Tu szczęśliwie nie ma żadnychutrudnień. I nie chodzi tu tylko o możliwość korzystania zpendrive’a czy drukarki, ale też akceleracji GPU. Jak ktoś chce,to na Subgraph OS-ie może sobie pograć, OpenGL działa bez żadnegoproblemu.

Lepiej niż w Qubes OS-ie: można sobie pograć w TuxRacera i inne gry 3D
Lepiej niż w Qubes OS-ie: można sobie pograć w TuxRacera i inne gry 3D

Zabezpieczenia dość bezpieczne?

Sprawdzić bezpieczeństwo systemu w ciągu kilku godzin zabawynie jest łatwo, ale spróbowaliśmy zobaczyć, jak Subgraph OS radzisobie z jednym ze znanychataków na Firefoksa, ręcznie instalując jego starą wersję.Napisany w JavaScripcie exploit uruchomił się, ale izolacjauniemożliwiła mu odczytanie wrażliwych systemowych plików.

Pobawiliśmy się też kilkoma exploitami z bazy exploit-db,zarówno wobec kernela jak i oprogramowania z przestrzeni użytkownika– i tym razem utwardzony kernel i zabezpieczenia Oz zneutralizowałyzagrożenie, które na jakimś zwykłym Ubuntu już by pozwoliło naskuteczny atak.

Sprawdziliśmy też działanie keyloggera logkeys – po jegouruchomieniu w systemie, tak jak obiecywano, nie był w stanieniczego odczytać z okien innych aplikacji X.

Wniosek mamy jeden – kierunek wybrany przez twórców tejdystrybucji jest bardzo dobry. Jeśli zdołają w tym rokudoszlifować Subgrapha, będzie to domyślnie najbezpieczniejszysystem ogólnego przeznaczenia, jaki można zainstalować na pececie.Jeśli ktoś ma powody, by obawiać się cyberataku ze stronyprzestępców lub zinstytucjonalizowanych napastników, to zniewielkimi niedogodnościami, takimi jak dłuższy czas uruchamianiaaplikacji, może się chyba pogodzić.

Jeśli jesteście zainteresowani zabawą z Subgraph OS-em, obrazISO na 64-bitowe procesory x86 można pobrać ze strony twórcówdystrybucji. Jeśli spodoba Wam się ich praca, możecie ichwspomóc, przelewając na podane tam adresy ich portfeli jakieśdrobne bitcoiny, czy jeszcze lepiej tańsze w kosztach transakcji icałkowicie anonimowe monero.

Przydatne linki

Programy

Zobacz więcej
Wybrane dla Ciebie
Komentarze (96)