Android P: wszystkie nowe funkcje bezpieczeństwa i prywatności dostępne w systemie Android 10

Na Google I/O dowiedzieliśmy się o ulepszeniach, jakie wprowadza Android Q. Nowe funkcje i ulepszenia dotyczące bezpieczeństwa i prywatności są dostępne w całym nowym systemie operacyjnym Android.

Każda nowa wersja systemu operacyjnego Android wprowadza ulepszenia w niemal każdym aspekcie, począwszy od projektu, funkcji, interfejsów API i nie tylko. Na początku tego miesiąca podczas Google I/O dowiedzieliśmy się o wszystkich ulepszenia, które Android Q przyniesie, i oczywiście nie pominięto na konferencji nowych ogłoszeń dotyczących prywatności i bezpieczeństwa. Bezpieczeństwo platformy jest jednym z najważniejszych aspektów systemu operacyjnego, szczególnie w przypadku systemu operacyjnego, który wszędzie zabieramy ze sobą w kieszeni. Gdyby Android nie był bezpieczny, nie powierzalibyśmy mu połowy tylu funkcji, co my. Płatności NFC nie wchodziłyby w grę, udostępnianie plików byłoby co najmniej wątpliwe, a łączenie się z innymi urządzeniami byłoby wręcz szaleństwem. Pomimo długotrwałego problemu fragmentacji wersji, Google spisał się wyjątkowo dobrze, ograniczając liczbę problemów związanych z bezpieczeństwem do minimum.

Android stał się systemem operacyjnym, który jest zarówno bogaty w funkcje, jak i bardzo bezpieczny. Ale oczywiście zawsze jest miejsce na ulepszenia. Na to bezpieczeństwo składa się wiele czynników, a kilka z nich zostało w jakiś sposób ulepszonych w systemie Android Q.


Szyfrowanie

Ponieważ jest to jedna z najbardziej podstawowych metod bezpieczeństwa, ważne jest, aby każde urządzenie obsługiwało silne szyfrowanie. Obecnie wielu producentów OEM dostarcza swoje urządzenia z dedykowanym sprzętem szyfrującym. Chociaż jest to korzystne, jest również drogie. W związku z tym dedykowany sprzęt był zwykle ograniczony do urządzeń średniego i wyższego poziomu. Nie oznacza to, że są to urządzenia z niższej półki Nie mogę obsługują szyfrowanie, ale bez szyfrowania przyspieszanego sprzętowo ogólne wrażenia użytkownika są gorsze ze względu na długi czas odczytu/zapisu. I tu właśnie pojawia się Adiantum.

Adiantum

W lutym Google ogłosił Adiantum jako alternatywę algorytm szyfrowania dla telefonów z niższej półki które nie obsługują zwykłych zestawów instrukcji AES. Adiantum został specjalnie zaprojektowany do działania bez dedykowanego sprzętu. Służy jako lżejsza alternatywa dla zwykłego szyfrowania AES w systemie Android. Benchmarki Google powiedz nam, że w rzeczywistości jest 5 razy szybszy niż AES, a wadą jest to, że nieznacznie zagraża bezpieczeństwu. To sprawia, że ​​jest to idealny kandydat do telefonów z niższej półki, takich jak te z systemem Android Go Edition. Adiantum to także produkty takie jak smartwatche i różne urządzenia Internetu rzeczy.

Do tej pory Adiantum było opcjonalne; producenci mogli to włączyć na urządzeniach z systemem Android Pie, ale nie był to domyślny algorytm szyfrowania. Teraz Adiantum jest natywnie częścią systemu Android Q. Oznacza to, że wszystkie urządzenia uruchamiane z Q będą musiały szyfrować dane użytkownika, bez wyjątków. W rezultacie urządzenia uruchamiane z systemem Android Q mają gwarancję szyfrowania pamięci, niezależnie od tego, czy odbywa się to za pośrednictwem Adiantum, czy nie.

Biblioteka zabezpieczeń Jetpack

Jetpack to zestaw bibliotek obsługi systemu Android i jeden z najnowszych dodatków jest w wersji alfa: Biblioteka zabezpieczeń Jetpack. Biblioteka upraszcza proces zabezpieczania aplikacji, obsługując takie zadania, jak zarządzanie magazynami kluczy opartymi na sprzęcie oraz generowanie i sprawdzanie poprawności kluczy.

TLS 1.3

Jednak pamięć masowa nie jest jedynym obszarem, w którym poprawiono szyfrowanie. Komunikacja z innymi urządzeniami została znacznie poprawiona dzięki wprowadzeniu Obsługa protokołu TLS 1.3 domyślnie. TLS 1.3 to najnowszy standard kryptografii sieciowej, ukończony przez IETF w sierpniu 2018 r. TLS 1.3 zapewnia większą prywatność podczas wymiany danych poprzez szyfrowanie większej liczby uzgadniań negocjacyjnych. Co więcej, jest szybszy niż TLS 1.2, ponieważ cała podróż w obie strony jest usuwana z uzgadniania nawiązania połączenia. W połączeniu z bardziej wydajnymi, nowoczesnymi algorytmami zapewnia to wzrost prędkości nawet o 40%.

TLS 1.3 w przeglądarce Google Chrome. Źródło: Google.

TLS można teraz aktualizować bezpośrednio z Google Play, ponieważ jest częścią komponentu „Conscrypt”. Możesz przeczytać więcej na ten temat i Project Mainline Tutaj.

Biorąc pod uwagę, że codziennie ufamy tak wielu wrażliwym transakcjom na naszych urządzeniach, ulepszony protokół TLS jest ważniejszy niż kiedykolwiek. Przechowywanie kart pokładowych – a nawet cyfrowe prawa jazdy w pewnym momencie w przyszłości – na Androidzie oznacza, że ​​wszystkie urządzenia powinny szyfrować dane użytkownika najlepiej jak potrafią. Adiantum i wymuszone szyfrowanie umożliwią przechowywanie nawet najbardziej wrażliwych danych na najtańszych urządzeniach. Ale szyfrowanie to nie jedyny sposób, w jaki Google zwiększa bezpieczeństwo Androida w wersji Q.


Zmiany uprawnień i prywatności w systemie Android Q

Magazynowanie o ograniczonym zakresie

Scoped Storage to nowe zabezpieczenie stosowane w celu ograniczenia aplikacjom możliwości odczytu/zapisu plików w pamięci zewnętrznej, które nie znajdują się w ich własnym katalogu aplikacji w trybie piaskownicy. Cel Google jest potrójny: lepsze przypisanie aplikacji, które mają kontrolę nad którymi plikami, ochrona danych aplikacji i ochrona danych użytkowników.

Google zwiększa wykorzystanie interfejsu API MediaStore w celu udostępniania treści audio, wideo i obrazów. Domyślnie wszystkie aplikacje mogą wstawiać, modyfikować i usuwać własne pliki w sklepie MediaStore. Obrazy, MediaStore. Wideo i MediaStore. Kolekcje audio bez konieczności posiadania żadnych uprawnień. Android Q dodaje także nowość Sklep multimedialny. Pliki do pobrania kolekcja do przechowywania treści pobranych przez użytkowników, do której mogą wnosić swój wkład wszystkie aplikacje korzystające z interfejsu API MediaStore. Chociaż pliki przechowywane w katalogach specyficznych dla aplikacji w trybie piaskownicy są usuwane po dezinstalacji, wszystkie pliki dodane do kolekcji MediaStore pozostają po dezinstalacji.

Aby uzyskać dostęp do plików utworzonych przez inną aplikację — niezależnie od tego, czy plik znajduje się w jednej z kolekcji MediaStore, czy poza nimi — aplikacja musi korzystać ze struktury dostępu do pamięci masowej. Ponadto metadane EXIF ​​​​obrazów są redagowane, chyba że Twoja aplikacja ma nowe zezwolenie ACCESS_MEDIA_LOCATION. W systemie Android Q aplikacje mogą również kontrolować, na którym urządzeniu pamięci masowej będą umieszczane multimedia, wysyłając zapytanie o nazwę woluminu za pomocą funkcji getExternalVolume().

Firma Google początkowo nałożyła ograniczenia dotyczące ograniczonej pamięci masowej na wszystkie aplikacje w systemie Android Q, niezależnie od ich docelowych poziomów interfejsu API, ale po otrzymaniu opinii firma stwierdziła, że ​​tak dając programistom więcej czasu aby dokonać regulacji. Pełne szczegóły dotyczące zmian w zakresie magazynu ograniczonego można znaleźć na tej stronie, a możesz dowiedzieć się więcej o zaleceniach Google dotyczących najlepszych praktyk dotyczących współdzielonej pamięci masowej oglądając to Google I/O rozmawiać.

Ostrzeżenia dotyczące aplikacji kierowanych na poziom API < 23

Na tym jednak nie kończą się ograniczenia uprawnień. Zainstalowanie aplikacji, która jest przeznaczona dla poziomu interfejsu API niższego niż 23 (Android Lollipop lub starszy) spowoduje, że system operacyjny wyświetli ostrzeżenie użytkownikowi, jeśli wspomniana aplikacja zażąda wrażliwych uprawnień podczas instalacji. Przed instalacją użytkownicy będą mieli możliwość ręcznego określenia uprawnień, jakie chcą przyznać aplikacji, przed kontynuowaniem. Dlatego Android Q nie pozwala już aplikacjom na omijanie uprawnień środowiska wykonawczego.

Podobnie jak CopperheadOS, standardowy system Android Q umożliwia teraz użytkownikowi wyłączenie wszystkich żądanych niebezpiecznych uprawnień przed pierwszym uruchomieniem aplikacji. Dotyczy to tylko aplikacji przeznaczonych dla poziomu interfejsu API 22 lub niższego, czyli przed wprowadzeniem uprawnień wykonawczych (w systemie Android Marshmallow).

Ewentualne SYSTEM_ALERT_DEPRECATION na korzyść API Bubbles

API Bubbles w akcji. Źródło: Google.

Nie można już przyznać pozwolenia na nakładkę (SYSTEM_ALERT_WINDOW) dla aplikacji działających w systemie Android Q (wersja Go). W przypadku urządzeń innych niż Go Edition Google zachęca programistów do korzystania z nowego interfejsu API Bubbles. Bubbles API to funkcja wprowadzona w Android Q Beta 2 co pozwala na funkcjonalność przypominającą głowice czatu Facebook Messenger. Powiadomienia z aplikacji pojawiają się w postaci małych bąbelków na krawędziach ekranu, które powiększają się po dotknięciu przez użytkownika. W dymku aplikacja może wyświetlić działanie.

Ta zmiana była konieczna, ponieważ umożliwienie aplikacjom swobodnego rysowania nakładek na inne aplikacje stwarza oczywiste ryzyko bezpieczeństwa. Niesławny "Płaszcz i sztylet„ exploit szeroko wykorzystywał tę słabość. Funkcjonalność interfejsu API nakładek była ograniczona już w systemie Android Oreo, ale teraz wersja Go systemu Android Q całkowicie usunęła dostęp do interfejsu API za pomocą przyszłej wersji, aby całkowicie ją wycofać.

Ograniczenia dotyczące uruchamiania aktywności w tle

Aplikacje działające w tle nie mogą już automatycznie uruchamiać działania, gdy telefon jest odblokowany, niezależnie od docelowego poziomu interfejsu API. Istnieje cała lista warunków, pod którymi aplikacje mogą teraz uruchamiać działania, z którymi możesz się zapoznać Tutaj. Aplikacje działające w tle, które nie spełniają tych warunków i chcą pilnie uruchomić działanie, będą teraz musiały poinformować użytkownika za pomocą powiadomienia. Jeśli powiadomienie zostało utworzone z oczekującą intencją pełnoekranową, intencja zostanie uruchomiona natychmiast, jeśli ekran jest wyłączony – jest to przydatne w przypadku alarmów lub połączeń przychodzących.

Ograniczenie dostępu do schowka w tle

Dostęp do schowka w tle jest nie jest już możliwe. Żadna aplikacja, która nie jest na pierwszym planie lub nie jest ustawiona jako domyślna metoda wprowadzania, nie będzie mogła w żaden sposób odczytać Twojego schowka. Szczególnie mocno uderza to w aplikacje takie jak menedżery schowków. Google twierdzi, że ta zmiana dotyczy tylko aplikacji przeznaczonych wyłącznie dla Androida Q, ale nasze testy wskazują, że ograniczenie nie ma charakteru dyskryminującego; żadna aplikacja, którą wypróbowaliśmy, nie widziała schowka.

Ta zmiana oczywiście ma sens. Często kopiujemy do schowka poufne informacje — takie jak hasła i dane kart kredytowych — ale mimo to szkoda, że ​​menedżery schowka marnują się.

Dostęp do lokalizacji tylko wtedy, gdy aplikacja jest używana

Nowe opcje uprawnień do lokalizacji

Nowe ustawienie włączone przez użytkownika pozwala aplikacjom na uzyskiwanie dostępu do Twojej lokalizacji tylko wtedy, gdy aplikacja jest używana. Najnowsza wersja beta Androida Q dodała także powiadomienie przypominające o przyznaniu aplikacji stałego dostępu do lokalizacji.

Role

Role

Dodano nowy interfejs API „Role”. Role są w zasadzie grupy z ustawionymi uprawnieniami dostępu. Na przykład aplikacje z rolą galerii mogą mieć dostęp do Twoich folderów multimediów, podczas gdy aplikacje z rolą dialera mogą obsługiwać połączenia. Aplikacje, którym użytkownik przyznaje określoną rolę, muszą również posiadać wymagane komponenty. Na przykład aplikacje z rolą galerii muszą mieć filtr zamiaru działania android.zamiar.działanie.GŁÓWNY oraz filtr intencji kategorii kategoria.intent.android. APLIKACJA_GALERIA aby wyświetlić się jako aplikacja galerii w ustawieniach.

Czujniki wyłączone Kafelek Szybkich ustawień

Kafelek Szybkie ustawienia czujników

Dostępny jest nowy kafelek szybkich ustawień „Czujniki wyłączone”, który wyłącza odczyty Wszystko czujniki (akcelerometr, żyroskop itp.) w Twoim urządzeniu, aby zapewnić prawdziwą prywatność. Ten kafelek Szybkich ustawień jest domyślnie ukryty, ale można go włączyć, przechodząc do „kafelków programisty szybkich ustawień” w Opcjach programisty.

Ograniczenia dla /proc/net

Aplikacje już nie dostęp do proc/net, co sprawia, że ​​usługi takie jak netstat nie są już opłacalne. Chroni to użytkowników przed złośliwymi aplikacjami monitorującymi strony internetowe i usługi, z którymi się łączą. Aplikacje wymagające ciągłego dostępu, takie jak VPN, muszą korzystać z Menedżer statystyk sieciMenedżer połączeń zajęcia.

Losowe adresy MAC

Twój adres MAC to unikalny identyfikator używany przez sieci do zapamiętywania, które urządzenie jest które. W systemie Android Q za każdym razem, gdy łączysz się z nową siecią, Twoje urządzenie będzie używać nowego, losowego adresu MAC. W rezultacie, sieci nie mogą śledzić Twojej lokalizacji dopasowując sieci Wi-Fi, z którymi się łączysz, z adresem MAC telefonu. Rzeczywisty, fabryczny adres MAC urządzenia może być nadal uzyskiwany przez aplikacje za pośrednictwem getWifiMacAddress() Komenda.


Utwardzanie platformy w Androidzie Q

Pojedynczy błąd w systemie Android nie oznacza, że ​​atakujący mają teraz pełny dostęp do systemu operacyjnego ani że mogą ominąć jakiekolwiek systemy bezpieczeństwa. Częściowo wynika to z szeregu zabezpieczeń, takich jak izolacja procesów, redukcja powierzchni ataku, rozkład architektury i ograniczanie ryzyka exploitów. Dzięki tym zabezpieczeniom wykorzystanie luk w zabezpieczeniach jest trudniejsze lub nawet niemożliwe. W rezultacie napastnicy zazwyczaj potrzebują wielu luk w zabezpieczeniach, zanim będą mogli osiągnąć swoje cele. W przeszłości byliśmy świadkami ataków takich jak DRAMMER które działają poprzez łączenie wielu exploitów w jedną całość.

Android Q wykorzystuje tego typu zabezpieczenia i stosuje je w bardziej wrażliwych obszarach, takich jak multimedia i komponenty Bluetooth, a także w jądrze. Przynosi to wyraźną poprawę.

  • Ograniczona piaskownica dla kodeków programowych.
  • Zwiększone wykorzystanie w produkcji środków dezynfekujących w celu ograniczenia całych klas luk w zabezpieczeniach komponentów przetwarzających niezaufaną zawartość.
  • Shadow Call Stack, który zapewnia integralność przepływu sterowania na krawędzi wstecznej (CFI) i uzupełnia ochronę na krawędzi przodu zapewnianą przez CFI LLVM.
  • Ochrona losowości układu przestrzeni adresowej (ASLR) przed wyciekami przy użyciu pamięci eXecute-Only (XOM).
  • Wprowadzenie wzmocnionego alokatora Scudo, który utrudnia wykorzystanie wielu luk związanych ze stertą.

To mnóstwo żargonu programistycznego. Podstawą jest to, że po pierwsze, kodeki programowe działają teraz w piaskownicach, które mają mniej uprawnień, co oznacza, że mniej prawdopodobne, że złośliwe oprogramowanie będzie mogło uruchamiać polecenia, które mogą uszkodzić Twoje urządzenie, tak jak w przypadku z Trema dawno temu w 2015 roku.

Ograniczona piaskownica dla kodeków programowych. Źródło: Google.

Po drugie, Android sprawdza teraz dostęp do tablic poza granicami w większej liczbie miejsc, a także przepełnienia. Zapobieganie przepełnieniom i instruowanie procesów, aby bezpiecznie zawiodły, znacznie zmniejsza odsetek luk w zabezpieczeniach przestrzeni użytkownika. Oznacza to, że jeśli złośliwy program celowo próbuje spowodować awarię czegoś uzyskaj dostęp do danych, które nie istnieją, Android teraz to rozpozna i zamiast tego wyjdzie z programu upaść.

Po trzecie, Shadow Call Stack chroni adresy zwrotne, przechowując je w oddzielnym stosie Shadow, czyniąc je niedostępnymi dla zwykłych programów. Adresy zwrotne są zazwyczaj wskaźnikami do funkcji, dlatego ochrona tych adresów jest ważna, aby mieć pewność, że atakujący nie będą mieli dostępu do funkcji, do których nie powinni mieć dostępu.

Po czwarte, ASLR to metoda ochrony, która losowo losuje, gdzie programy są przechowywane w pamięci, dzięki czemu trudniej jest ustalić, gdzie programy są przechowywane w pamięci, na podstawie lokalizacji innych programy. Pamięć eXecute wzmacnia to, czyniąc kod nieczytelnym.

Wreszcie Scudo to dynamiczny alokator sterty, który aktywnie zarządza pamięcią w sposób znacznie utrudniający wykorzystanie luk opartych na stertach. Możesz przeczytać więcej na ten temat Tutaj.


Uwierzytelnianie

Aktualizacje BiometricPrompt w Androidzie Q

Google wprowadziło nowy interfejs API BiometricPrompt ponad rok temu w Wersja deweloperska Androida P 2. Miał to być ogólny monit Androida o metody odblokowania biometrycznego. Pomysł jest taki, aby urządzenia obsługujące coś więcej niż tylko skanowanie linii papilarnych, np. skanowanie tęczówki w telefonie Samsung Galaxy S line będzie mogło korzystać z tych metod, gdy aplikacje poproszą o weryfikację.

Android Q zapewnia solidną obsługę weryfikacji twarzy i odcisków palców, a także rozszerza interfejs API o obsługę niejawnego uwierzytelniania. Uwierzytelnianie jawne wymaga, aby użytkownik w jakiś sposób uwierzytelnił się przed kontynuowaniem, podczas gdy uwierzytelnianie niejawne nie wymaga dalszej interakcji z użytkownikiem.

Przepływ niejawny i jawny API BiometricPrompt. Źródło: Google.

Co więcej, aplikacje mogą teraz w prosty sposób sprawdzić, czy urządzenie obsługuje uwierzytelnianie biometryczne wywołanie funkcji, co pozwala im nie tracić czasu na wywoływanie BiometricPrompt na urządzeniach, które tego nie robią Wspieraj to. Idealnym rozwiązaniem byłoby, gdyby aplikacje chciały ustawić opcję „Włącz logowanie biometryczne” w zależności od tego, czy urządzenie obsługuje uwierzytelnianie biometryczne.

Elementy składowe obsługi identyfikatora elektronicznego

Na początku tego roku znaleźliśmy dowody na to, że Google tak prace nad obsługą identyfikatorów elektronicznych w Androidzie. Podczas I/O firma Google poinformowała nas o postępie tej funkcji. Google twierdzi, że współpracuje z ISO nad standaryzacją wdrażania mobilnych praw jazdy, a prace nad paszportami elektronicznymi są w toku. Programistom Google udostępni bibliotekę Jetpack, dzięki której będzie można rozpocząć tworzenie aplikacji tożsamościowych.


Projekt Mainline w systemie Android Q

Project Mainline to duże przedsięwzięcie Google mające na celu zmniejszenie fragmentacji niektórych modułów systemu i aplikacji. Google będzie kontrolował aktualizacje około 12 komponentów systemu za pośrednictwem Sklepu Play. Rozmawialiśmy szczegółowo o Project Mainline w poprzednim artykule jeśli jesteś zainteresowany przeczytaniem więcej.


Wniosek

Bezpieczeństwo zawsze było kluczowym elementem rozwoju Androida. Google wykonał imponującą robotę, aktualizując Androida o najnowsze funkcje zabezpieczeń, a także wprowadzając własne innowacje. Kontynuują proces rozwoju Androida Q, dodając do niego mnóstwo funkcji bezpieczeństwa, dzięki którym Twoje dane będą bezpieczniejsze niż kiedykolwiek wcześniej.


Źródło 1: Co nowego w Androidzie Q Security [Google]

Źródło 2: Bezpieczeństwo na Androidzie: co dalej [Google]

Źródło 3: Kolejka ulepszeń wzmacniających [Google]

Przy udziale Mishaala Rahmana i Adama Conwaya.