Zabezpieczanie urządzenia z Androidem

Android ma najnowocześniejsze funkcje zabezpieczeń i współpracuje z deweloperami oraz implementatorami urządzeń, aby chronić platformę i ekosystem Androida. Solidny model zabezpieczeń jest niezbędny do tworzenia dynamicznego ekosystemu aplikacji i urządzeń opartych na platformie Android i obsługiwanych przez usługi w chmurze. W rezultacie przez cały cykl rozwoju Android był poddawany rygorystycznym testom bezpieczeństwa.

Android jest otwarty. Aplikacje na Androida korzystają z zaawansowanego sprzętu i oprogramowania, a także danych lokalnych i serwowanych za pośrednictwem platformy, aby wprowadzać innowacje i przynosić korzyści konsumentom. Aby zapewnić tę wartość, platforma oferuje środowisko aplikacji, które chroni poufność, integralność i dostępność użytkowników, danych, aplikacji, urządzenia oraz sieci.

Zabezpieczenie otwartej platformy wymaga solidnej architektury zabezpieczeń i rygorystycznych programów bezpieczeństwa. Android został zaprojektowany z myślą o wielowarstwowych zabezpieczeniach, które są wystarczająco elastyczne, aby obsługiwać otwartą platformę, a jednocześnie chronić wszystkich jej użytkowników. Informacje o zgłaszaniu problemów z zabezpieczeniami i procesie aktualizacji znajdziesz w artykule Aktualizacje i zasoby dotyczące zabezpieczeń.

Android jest przeznaczony dla deweloperów. Opcje związane z bezpieczeństwem zostały zaprojektowane w celu zmniejszenia obciążenia deweloperów. Deweloperzy zorientowani na bezpieczeństwo mogą łatwo korzystać z elastycznych ustawień zabezpieczeń. Deweloperzy mniej zaznajomieni z bezpieczeństwem są chronieni przez bezpieczne ustawienia domyślne.

Oprócz zapewnienia stabilnej platformy do tworzenia aplikacji Android oferuje deweloperom dodatkowe formy pomocy. Zespół ds. bezpieczeństwa Androida wyszukuje potencjalne luki w zabezpieczeniach aplikacji i podpowiada, jak je naprawić. Na urządzeniach z Google Play Usługi Google Play dostarczają aktualizacji zabezpieczeń dla kluczowych bibliotek oprogramowania, takich jak OpenSSL, które służą do zabezpieczania komunikacji z aplikacją. Zespół ds. bezpieczeństwa Androida udostępnił narzędzie do testowania protokołu SSL (nogotofail), które pomaga deweloperom znajdować potencjalne problemy z bezpieczeństwem na każdej platformie, nad którą pracują.

Android korzysta też z podstawowej obsługi sprzętowej w celu zapewnienia bezpieczeństwa. Na przykład technologia ARM TrustZone jest używana do bezpiecznego przechowywania kluczy kryptograficznych oraz atestorów integralności rozruchu. DICE służy do pomiaru oprogramowania układowego wczytywanego przed uruchomieniem Androida. Umożliwia to zdalne weryfikowanie, czy oprogramowanie sprzętowe nie jest zagrożone znanymi, krytycznymi lukami, które mogą zostać wykorzystane do wyrządzenia szkody zarówno deweloperom, jak i użytkownikom.

Więcej informacji dla deweloperów aplikacji na Androida znajdziesz na stronie developer.android.com.

Android jest zaprojektowany z myślą o użytkownikach. Użytkownicy mają wgląd w uprawnienia wymagane przez każdą aplikację i mają nad nimi kontrolę. W ramach tej funkcji zakładamy, że atakujący będą próbowali przeprowadzić typowe ataki, takie jak ataki inżynierii społecznej mające na celu nakłonienie użytkowników do zainstalowania złośliwego oprogramowania, oraz ataki na aplikacje innych firm na Androidzie. Android został zaprojektowany tak, aby zmniejszać prawdopodobieństwo wystąpienia tych ataków i znacznie ograniczać ich wpływ w przypadku, gdy dojdzie do ich powodzenia. Bezpieczeństwo Androida jest stale udoskonalane, nawet gdy urządzenie jest już w rękach użytkownika. Android współpracuje z partnerami i użytkownikami, aby dostarczać poprawki dla wszystkich urządzeń z Androidem, które nadal otrzymują aktualizacje zabezpieczeń.

Więcej informacji dla użytkowników znajdziesz w Centrum pomocy Nexusa, Centrum pomocy Pixela lub Centrum pomocy producenta urządzenia.

Na tej stronie znajdziesz informacje o celach programu bezpieczeństwa Androida, poznasz podstawy architektury bezpieczeństwa Androida i znajdziesz odpowiedzi na najważniejsze pytania architektów systemów i analistów ds. bezpieczeństwa. Skupia się na funkcjach bezpieczeństwa platformy podstawowej Androida i nie omawia problemów z bezpieczeństwem, które są charakterystyczne dla określonych aplikacji, np. związanych z przeglądarką lub aplikacją do obsługi SMS-ów.

Tło

Android to platforma open source i środowisko aplikacji dla urządzeń mobilnych.

W poniższych sekcjach i na stronach opisaliśmy funkcje zabezpieczeń platformy Android. Rysunek 1 przedstawia komponenty zabezpieczeń i rozważania dotyczące różnych poziomów stosu oprogramowania Androida. Każdy komponent zakłada, że poniższe komponenty są prawidłowo zabezpieczone. Z wyjątkiem niewielkiej ilości kodu systemu operacyjnego Android działającego jako root, cały kod powyżej jądra Linux jest ograniczony przez piaskownicę aplikacji.

Rysunek 1. Warstwy oprogramowania Androida

Rysunek 1. Stos oprogramowania Androida

Główne elementy składowe platformy Android:

  • Sprzęt: Android działa na wielu konfiguracjach sprzętowych, w tym na telefonach komórkowych, tabletach, zegarkach, samochodach, telewizorach smart TV, OTT, dekoderach i dekoderach OTT. Android nie jest zależny od procesora, ale korzysta z niektórych funkcji zabezpieczeń związanych ze sprzętem, takich jak ARM eXecute-Never.
  • System operacyjny Android: podstawa systemu operacyjnego oparta na jądrze Linuksa. Do wszystkich zasobów urządzenia, takich jak funkcje aparatu, dane GPS, funkcje Bluetooth, funkcje telefoniczne i połączenia sieciowe, uzyskuje się dostęp przez system operacyjny.
  • Środowisko uruchomieniowe aplikacji na Androida: aplikacje na Androida są najczęściej pisane w języku programowania Java i uruchamiane w środowisku uruchomieniowym Androida (ART). Jednak wiele aplikacji, w tym podstawowe usługi i aplikacje Androida, są aplikacjami natywnymi lub zawierają natywne biblioteki. Zarówno ART, jak i aplikacje natywne działają w tym samym środowisku zabezpieczeń, które jest zawarte w piaskownicy aplikacji. Aplikacje otrzymują część systemu plików, w której mogą zapisywać dane prywatne, w tym bazy danych i pliki nieprzetworzone.

Aplikacje na Androida rozszerzają podstawowy system operacyjny Android. Istnieją 2 podstawowe źródła aplikacji:

  • Aplikacje wstępnie zainstalowane: Android zawiera zestaw wstępnie zainstalowanych aplikacji, takich jak telefon, poczta e-mail, kalendarz, przeglądarka internetowa i kontakty. Te aplikacje działają jak aplikacje użytkownika i zapewniają dostęp do kluczowych funkcji urządzenia, z których mogą korzystać inne aplikacje. Wstępnie zainstalowane aplikacje mogą być częścią platformy Android typu open source lub mogą być opracowane przez producenta urządzenia dla konkretnego urządzenia.
  • Aplikacje instalowane przez użytkownika: Android zapewnia otwarte środowisko programistyczne, które obsługuje wszystkie aplikacje innych firm. Google Play oferuje użytkownikom setki tysięcy aplikacji.

Usługi Google dotyczące bezpieczeństwa

Google udostępnia zestaw usług w chmurze, które są dostępne na zgodnych urządzeniach z Androidem z usługami mobilnymi Google. Te usługi nie są częścią Projektu Android Open Source (AOSP), ale są dostępne na wielu urządzeniach z Androidem. Więcej informacji o niektórych z tych usług znajdziesz w podsumowaniu za rok 2018 na temat zabezpieczeń Androida.

Główne usługi Google dotyczące bezpieczeństwa to:

  • Google Play: Google Play to zbiór usług, które umożliwiają użytkownikom znajdowanie, instalowanie i kupowanie aplikacji na urządzeniu z Androidem lub w internecie. Google Play ułatwia deweloperom dotarcie do użytkowników Androida i potencjalnych klientów. Google Play oferuje też opinie społeczności, weryfikację licencji aplikacji, skanowanie pod kątem bezpieczeństwa oraz inne usługi bezpieczeństwa.
  • Aktualizacje Androida: usługa aktualizacji Androida udostępnia nowe funkcje i aktualizacje zabezpieczeń na wybranych urządzeniach z Androidem, w tym przez Internet lub bezprzewodowo.
  • Usługi aplikacji: frameworki, które umożliwiają aplikacjom na Androida korzystanie z funkcji chmury, takich jak tworzenie kopii zapasowych danych i ustawień aplikacji oraz przesyłanie powiadomień push z chmury do urządzenia (C2DM).
  • Weryfikacja aplikacji:ostrzeganie o szkodliwych aplikacjach lub automatyczne blokowanie ich instalacji oraz ciągłe skanowanie aplikacji na urządzeniu, ostrzeganie o szkodliwych aplikacjach i usuwanie ich.
  • SafetyNet: system wykrywania włamań zapewniający ochronę prywatności, który pomaga Google w śledzeniu, ograniczaniu znanych zagrożeń bezpieczeństwa i identyfikowaniu nowych zagrożeń bezpieczeństwa.
  • SafetyNet Attestation: interfejs API innej firmy, który określa, czy urządzenie jest zgodne z CTS. Autentyfikacja może też zidentyfikować aplikację na Androida, która komunikuje się z serwerem aplikacji.
  • Menedżer urządzeń z Androidem: aplikacja internetowaaplikacja na Androida do lokalizowania zgubionych lub skradzionych urządzeń.

Omówienie programu zabezpieczającego

Najważniejsze elementy Programu bezpieczeństwa Androida:

  • Sprawdzanie projektu: proces bezpieczeństwa Androida rozpoczyna się na wczesnym etapie cyklu rozwoju, od tworzenia bogatego i możliwego do skonfigurowania modelu i projektu zabezpieczeń. Każda główna funkcja platformy jest sprawdzana przez zespół inżynierów i zabezpieczeń, a odpowiednie zabezpieczenia są zintegrowane z architekturą systemu.
  • Testy penetracyjne i sprawdzanie kodu: podczas tworzenia platformy komponenty tworzone przez Androida i oparte na kodzie open source podlegają rygorystycznej kontroli bezpieczeństwa. Sprawdzanie wykonuje zespół ds. bezpieczeństwa Androida, zespół ds. inżynierii bezpieczeństwa informacji w Google oraz niezależni konsultanci ds. bezpieczeństwa. Celem tych kontroli jest identyfikowanie słabych punktów i potencjalnych luk w zabezpieczeniach na długo przed wydaniem wersji głównych oraz symulowanie rodzajów analizy przeprowadzanych przez zewnętrznych ekspertów ds. bezpieczeństwa po wydaniu.
  • Weryfikacja kodu open source i weryfikacja przez społeczność: AOSP umożliwia kompleksową weryfikację zabezpieczeń przez każdą zainteresowaną stronę. Android korzysta też z technologii open source, które przeszły zewnętrzną kontrolę bezpieczeństwa, np. jądro Linuxa. Google Play to forum, na którym użytkownicy i firmy mogą przekazywać użytkownikom informacje o konkretnych aplikacjach.
  • Reakcja na incydenty: nawet po zastosowaniu tych środków ostrożności problemy z bezpieczeństwem mogą wystąpić po wysyłce. Dlatego projekt Androida opracował kompleksowy proces reagowania na incydenty związane z bezpieczeństwem. Członkowie zespołu ds. bezpieczeństwa Androida na pełen etat monitorują społeczność Androida i ogólnodostępną społeczność zajmującą się bezpieczeństwem w celu omówienia potencjalnych luk w zabezpieczeniach oraz sprawdzania błędów związanych z bezpieczeństwem zgłoszonych w bazie błędów Androida. Gdy zespół Androida wykryje uzasadnione problemy, stosuje proces reakcji, który umożliwia szybkie ograniczenie luk w zabezpieczeniach, aby zminimalizować potencjalne ryzyko dla wszystkich użytkowników Androida. Te działania obsługiwane przez chmurę mogą obejmować aktualizację platformy Android (aktualizacje AOSP), usuwanie aplikacji z Google Play i usuwanie aplikacji z urządzeń w terenie.
  • Comiesięczne aktualizacje zabezpieczeń: zespół ds. zabezpieczeń Androida udostępnia co miesiąc aktualizacje dla urządzeń z Androidem od Google i wszystkich naszych partnerów produkcyjnych.

Architektura zabezpieczeń platformy

Android stara się być najbezpieczniejszym i najbardziej przydatnym systemem operacyjnym na platformy mobilne, wykorzystując tradycyjne funkcje zabezpieczeń systemu operacyjnego do:

  • Ochrona danych aplikacji i użytkowników
  • Chroń zasoby systemu (w tym sieć)
  • zapewnić izolację aplikacji od systemu, innych aplikacji i użytkownika;

Aby osiągnąć te cele, Android udostępnia te kluczowe funkcje zabezpieczeń:

  • niezawodne zabezpieczenia na poziomie systemu operacyjnego za pomocą jądra Linuksa;
  • Obowiązkowy piaskownik dla wszystkich aplikacji
  • Bezpieczna komunikacja między procesami
  • Podpisywanie aplikacji
  • Uprawnienia określone przez aplikację i użytkownika