W erze wszechobecnego malware i szpiegostwa przemysłowego, wciąż podejmowane są próby zbudowania bezpiecznego mobilnego systemu operacyjnego. Ostatnio spore zainteresowanie budzi linuksowy PureOS dla smartfonu Librem 5. Czy jednak faktycznie tego typu rozwiązania mają sens? Po pierwsze, zupełnie nowe systemy będą pozbawione pożądanego przez użytkowników oprogramowania mobilnego. Po drugie, sam Linux nie jest taki znowu bezpieczny. Dlatego warto przyjrzeć się bliżej projektowi Android Hardening, który od niedawna nosi nazwę GrapheneOS. Z jednej strony rozwiązuje on problem dostępności oprogramowania, z drugiej zaś otwiera drogę do wyrzucenia Linuksa z Androida.
Głównego dewelopera GrapheneOS zainteresowanym przedstawiać nie trzeba. Projekt ten jest dziełem Daniela Micaya, byłego głównego programisty innego nastawionego na bezpieczeństwo forka Androida o nazwie CopperheadOS, a także jednego z najważniejszych twórców bezpiecznego języka Rust. W założeniu przeznaczony jest dla wszystkich tych, którzy chcą mieć możliwość uruchamiania aplikacji na Androida, ale zarazem pragną nieosiągalnego na tym systemie dziś bezpieczeństwa i prywatności.
Bezpieczny Android na bezpieczne urządzenia
Dlatego GrapheneOS jest forkiem Android Open Source Project (AOSP), dostarczanym jako kod źródłowy oraz gotowy obraz custom ROM dla smartfonów Google Pixel 2 i Pixel 3 (wraz z ich wariantami XL). Ograniczenie się do tego wąskiego podzbioru urządzeń z Androidem wynika ze strategicznych założeń projektu: nie chodzi o to, aby działał on wszędzie, lecz jedynie na tym sprzęcie, który oferuje należyty potencjał zabezpieczenia firmware’u i łatwość aktualizacji. Jeśli niezależni programiści chcą wziąć się za przeniesienie GrapheneOS na inne urządzenia, to droga wolna, jednak Micay sam tego robić nie zamierza.
Za to już dzisiaj na wspierane urządzenia dostarcza zabezpieczoną wersję Androida, która wyróżnia się wśród innych utwardzonym alokatorem pamięci, zintegrowanym z biblioteką libc Androida (Bionic), wbudowaną w system aplikacją Auditor, która wykorzystuje sprzętowe mechanizmy bezpieczeństwa do sprawdzenia tożsamości urządzenia i integralności uruchamianego oprogramowania, oraz łatek na przeglądarkę Chromium, która pod marką Vanadium uwalnia użytkowników od ciekawskiego spojrzenia Google.
GrapheneOS oferuje też automatyczne aktualizacje OTA z obsługą aktualizacji przyrostowych oraz ochronę przed obniżeniem wersji firmware, analogicznie jak to jest np. na konsolach. Działa też z ponownie po instalacji zablokowanym bootloaderem, dając dostęp do takich funkcji bezpieczeństwa jak Verified Boot.
Zobacz też: Powiadomienia push na Androidzie już nie dla aplikacji na wolnej licencji
Czy monolityczny kernel da się w ogóle dobrze zabezpieczyć?
To jednak dopiero początek śmiało zakrojonych prac. Spore zainteresowanie wzbudziła deklaracja autora, który stwierdził, że chce pozbyć się z GrapheneOS linuksowego kernela. „Pingwin” miałby zostać zastąpiony przez mikrokernel z warstwą kompatybilności z Linuksem, od podstaw zaprojektowany z myślą o bezpiecznym uruchamianiu podpisanego kodu i radykalnie zmniejszający powierzchnię ataku – tak, że nawet wymierzone w Androida exploity podsystemów nie byłyby dla GrapheneOS groźne. Oczywiście zająć to może wiele lat – zanim do tego dojdzie, Micay chce zacząć od izolacji Linuksa za pomocą wirtualizacji, a następnie piaskownic takich jak gVisor.
Zobacz też: Apple odpiera zarzuty o monopol i... pokazuje, że konkurencja w App Store nie ma szans
Jeśli chodzi o instalację, proces jest prosty, nie różni się od instalacji innych custom ROM-ów na Pixelach. Wystarczy odblokować bootloader telefonu, pobrać obraz odpowiadający urządzeniu z oficjalnej strony i wgrać go na smartfona za pomocą komputera z zainstalowanymi sterownikami Android Debug Bridge.
Po kilku minutach dostaniemy smartfon ze stabilnym i bezpiecznym systemem, kompatybilnym z większością oprogramowania na Androida, które nie wymaga bibliotek Google Play. Na pewno nie jest więc to rozwiązanie dla wszystkich – ale wciąż mimo to dające większe możliwości niż wspomniany na początku PureOS.
Warto podkreślić, że na pracach nad GrapheneOS skorzysta cała niezależna społeczność programistów Androida. Poszczególne komponenty systemu są bowiem dostępne jako niezależne podprojekty, gotowe do zastosowania w innych forkach AOSP-a.
Więcej informacji znajdziecie na GitHubie i stronie projektu.