r   e   k   l   a   m   a
reklama

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

Strona główna Aktualności

O autorze

Hodowca maszyn wirtualnych i psów, poza tym stary linuksiarz, bonvivant i śmieszek. W 2012 roku napisał na DP o algorytmie haszowania Keccak i wciąż pamięta, jak on działa.

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

Jednym z najbezpieczniejszych dziś systemów (na tyle bezpiecznym, że zachwalanym przez producenta laptopów Purism) jest Qubes OS zespołu Joanny Rutkowskiej. 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żliwia korzystanie ze sprzętowej akceleracji grafiki. Z kolei popularny do anonimowego surfowania po Internecie system Tails przeznaczony jest raczej do jednorazowych sesji uruchamianych z pendrive’a, z kolei Whonix każe nam uruchamiać obok siebie na hoście dwie maszyny wirtualne, z których jedna robi za bramkę do przepuszczonej przez Tora sieci, a druga za pulpit roboczy.

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

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

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

Bezpieczeństwo jest tu rozumiane bardzo konkretnie. System bezpieczny to tak, który zapewnia poufność, spójność i dostępność informacji jakie przechowuje i przetwarza. Nie pozwala więc ujawnić informacji osobom nieupoważnionym, nie pozwala naruszyć lub zmodyfikować informacji osobom nieupoważnionym, a za to gwarantuje, że do informacji dostęp uzyskać mogą ci, którzy są upoważnieni. Jak z niebezpiecznego Linuksa 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łych lub nieużywanych protokołów sieciowych oraz urządzeń, które nie są potrzebne lub mogą stanowić potencjalne zagrożenie. I słusznie, czy na desktopowej maszynie potrzebujemy dziś wsparcia protokołu IPX czy interfejsu LPT dla starych drukarek?

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

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

Oczywiście w założeniu dostęp do systemu plików chroniony jest 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 mniej ekstremalne, a może nie mniej skuteczne rozwiązanie w postaci Oz. Jest to mechanizm kontenerowy, uruchamiający podatne na zdalne ataki aplikacje w izolowanych środowiskach. Przeznaczony jest więc dla przeglądarki, procesora tekstu czy komunikatora, ale już nie dla np. systemowego kalkulatora czy panelu konfiguracji.

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

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

Cebulowe rozmowy

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

Od strony interfejsu użytkownika stworzono rozszerzenie powłoki pozwalające szybko stworzyć w cebulowym routerze nową tożsamość, dodano też panel sterowania dla zapory sieciowej, w której łatwo zablokować dostęp oprogramowania do sieci i sprawdzić aktualnie przyznane 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 ISO został więc nagrany na pendrive za pomocą narzędzia Etcher (można to też zrobić oczywiście systemowym dd, ale jesteśmy leniwi), potem oczywiście rozruch z tego nośnika i proces instalacji na metalu.

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

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

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

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

Ż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ądarki internetowej. W docku widać launchera dla Tor Browsera, który pierwsze co zrobi po kliknięciu, to zacznie pobierać tę przeglądarkę nie z repozytoriów Debiana, lecz prosto z oficjalnej strony projektu Tor (oczywiście po zweryfikowaniu podpisów). Pobieranie odbywa się oczywiście po Torze, więc nie jest zbyt szybkie, ale to nie jest najgorsze.

Gdy launcher już pobrał sobie Tora, rozpoczął jego rozpakowywanie – i na tym skończył bez żadnego komunikatu. Na tym pewnie normalny użytkownik zakończyłby przygodę z systemem, ale nie jesteśmy aż tak normalni. Pogrzebaliśmy w skryptach, by zobaczyć co robią. Okazuje się, że napisany w Pythonie launcher pobierał Tor Browsera w wersji 7.5, rozpakowywał go, a następnie przed 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ąc się do pliku wersji, który po prostu już nie istniał. A że nie wyjątku nie obsłużono, skrypt kończył pracę, pozostawiając martwe okno dialogowe.

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

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ść pilnowania systemu plików przy ich zapisie. To co pobierzemy przeglądarką trafi do Pobrane, ale nie będzie to ten sam katalog Pobrane, który będzie dostępny np. dla edytora tekstu. Aby udostępnić plik drugiej aplikacji, trzeba to zrobić poprzez rozszerzenie powłoki do zarządzania kontenerami Oz. Przydałaby się tutaj automatyzacja tego procesu, przenoszenie plików wg zadanych reguł.

Dość ciekawy jest za to zestaw domyślnie zaoferowanych aplikacji – oprócz standardowego zestawu programików GNOME, instalatora Tor Browsera i LibreOffice mamy do dyspozycji bezpiecznego, łą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 do udostępniania plików przez Tora OnionShare, menedżer haseł KeePassX, lekki portfel bitcoinów Electrum oraz narzędzie do zarządzania sprzętowymi kluczami YubiKey. Oczywiście zainteresowani mogą doinstalować inne oprogramowanie z repozytoriów Debiana.

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

Zabezpieczenia dość bezpieczne?

Sprawdzić bezpieczeństwo systemu w ciągu kilku godzin zabawy nie jest łatwo, ale spróbowaliśmy zobaczyć, jak Subgraph OS radzi sobie z jednym ze znanych ataków na Firefoksa, ręcznie instalując jego starą wersję. Napisany w JavaScripcie exploit uruchomił się, ale izolacja uniemoż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ły zagrożenie, które na jakimś zwykłym Ubuntu już by pozwoliło na skuteczny atak.

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

Wniosek mamy jeden – kierunek wybrany przez twórców tej dystrybucji jest bardzo dobry. Jeśli zdołają w tym roku doszlifować Subgrapha, będzie to domyślnie najbezpieczniejszy system ogólnego przeznaczenia, jaki można zainstalować na pececie. Jeśli ktoś ma powody, by obawiać się cyberataku ze strony przestępców lub zinstytucjonalizowanych napastników, to z niewielkimi niedogodnościami, takimi jak dłuższy czas uruchamiania aplikacji, może się chyba pogodzić.

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

Przydatne linki

© dobreprogramy
reklama
r   e   k   l   a   m   a

Komentarze

reklama
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.   
Polecamy w WP TechnologieWP TechnologieNajsłynniejsze kanały na YouTubie. W Polsce często nieznane