Zabezpiecz urządzenie z Androidem

Android zawiera wiodące w branży funkcje zabezpieczeń i współpracuje z programistami i wdrażającymi urządzenia, aby zapewnić bezpieczeństwo platformy i ekosystemu Androida. Solidny model zabezpieczeń jest niezbędny, aby zapewnić sprawny ekosystem aplikacji i urządzeń zbudowanych na platformie Android i wokół niej oraz obsługiwanych przez usługi w chmurze. W rezultacie przez cały cykl rozwoju Androida poddano rygorystycznemu programowi bezpieczeństwa.

Android został zaprojektowany tak, aby był otwarty. Aplikacje na Androida korzystają z zaawansowanego sprzętu i oprogramowania, a także danych lokalnych i udostępnianych za pośrednictwem platformy, aby zapewniać konsumentom innowacje i wartość. Aby zrealizować tę wartość, platforma oferuje środowisko aplikacji, które chroni poufność, integralność i dostępność użytkowników, danych, aplikacji, urządzenia i sieci.

Zabezpieczenie otwartej platformy wymaga silnej architektury zabezpieczeń i rygorystycznych programów bezpieczeństwa. Android został zaprojektowany z wielowarstwowymi zabezpieczeniami, które są na tyle elastyczne, że obsługują otwartą platformę, a jednocześnie chronią wszystkich użytkowników platformy. Aby uzyskać informacje na temat zgłaszania problemów z bezpieczeństwem i procesu aktualizacji, zobacz Aktualizacje i zasoby zabezpieczeń .

Android jest przeznaczony dla programistów. Kontrole bezpieczeństwa zostały zaprojektowane, aby zmniejszyć obciążenie programistów. Programiści znający się na bezpieczeństwie mogą z łatwością pracować i polegać na elastycznych kontrolach bezpieczeństwa. Programiści mniej zaznajomieni z bezpieczeństwem są chronieni bezpiecznymi ustawieniami domyślnymi.

Oprócz zapewnienia stabilnej platformy, na której można budować, Android zapewnia programistom dodatkowe wsparcie na wiele sposobów. Zespół ds. bezpieczeństwa Androida szuka potencjalnych luk w aplikacjach i sugeruje sposoby rozwiązania tych problemów. W przypadku urządzeń z Google Play Usługi Play dostarczają aktualizacje zabezpieczeń dla krytycznych bibliotek oprogramowania, takich jak OpenSSL, który służy do zabezpieczania komunikacji aplikacji. Bezpieczeństwo systemu Android udostępniło narzędzie do testowania protokołu SSL ( nogotofail ), które pomaga programistom znaleźć potencjalne problemy związane z bezpieczeństwem na dowolnej platformie, którą opracowują.

Android wykorzystuje także podstawową obsługę sprzętu w celu zapewnienia bezpieczeństwa. Na przykład technologia ARM TrustZone służy do zapewnienia bezpiecznego przechowywania kluczy kryptograficznych, a także poświadczeń integralności rozruchu. [DICE](https://pigweed.googlesource.com/open-dice/+/refs/heads/main/docs/android.md) służy do pomiaru oprogramowania sprzętowego ładowanego przed uruchomieniem Androida. Umożliwia to zdalną weryfikację, czy na oprogramowanie sprzętowe nie mają wpływu znane, krytyczne luki, które można wykorzystać w celu wyrządzenia szkody zarówno programistom, jak i użytkownikom.

Więcej informacji dla twórców aplikacji na Androida można znaleźć na stronie developer.android.com .

Android jest przeznaczony dla użytkowników. Użytkownicy mają wgląd w uprawnienia wymagane przez każdą aplikację i kontrolę nad tymi uprawnieniami. Projekt ten zakłada, że ​​osoby atakujące będą próbowały przeprowadzić typowe ataki, takie jak ataki socjotechniczne mające na celu przekonanie użytkowników urządzeń do zainstalowania złośliwego oprogramowania oraz ataki na aplikacje innych firm na Androida. Android został zaprojektowany tak, aby zarówno zmniejszyć prawdopodobieństwo tych ataków, jak i znacznie ograniczyć skutki ataku w przypadku jego powodzenia. Bezpieczeństwo Androida stale rośnie, gdy urządzenie znajdzie się w rękach użytkownika. Android współpracuje z partnerami i społeczeństwem , aby dostarczać poprawki dla każdego urządzenia z Androidem, które nadal otrzymuje aktualizacje zabezpieczeń.

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

Na tej stronie przedstawiono cele programu bezpieczeństwa systemu Android, opisano podstawy architektury zabezpieczeń systemu Android i odpowiedzi na najważniejsze pytania architektów systemów i analityków bezpieczeństwa. Koncentruje się na funkcjach zabezpieczeń podstawowej platformy Androida i nie omawia problemów bezpieczeństwa charakterystycznych dla konkretnych aplikacji, takich jak te związane z przeglądarką lub aplikacją do obsługi SMS-ów.

Tło

Android zapewnia platformę i środowisko aplikacji typu open source dla urządzeń mobilnych.

Poniższe sekcje i strony opisują funkcje zabezpieczeń platformy Android. Rysunek 1 ilustruje komponenty zabezpieczeń i rozważania dotyczące różnych poziomów stosu oprogramowania Android. Dla każdego komponentu zakłada się, że poniższe komponenty są odpowiednio zabezpieczone. Z wyjątkiem niewielkiej ilości kodu systemu operacyjnego Android działającego jako root, cały kod powyżej jądra Linuksa jest ograniczony przez piaskownicę aplikacji.

Rysunek 1: Stos oprogramowania Android

Rysunek 1. Stos oprogramowania Android

Główne elementy składowe platformy Android to:

  • Sprzęt urządzenia: Android działa na szerokiej gamie konfiguracji sprzętowych, w tym na telefonach komórkowych, tabletach, zegarkach, samochodach, telewizorach Smart TV, konsolach do gier OTT i dekoderach. Android jest niezależny od procesora, ale wykorzystuje pewne funkcje zabezpieczeń specyficzne dla sprzętu, takie jak ARM eXecute-Never.
  • System operacyjny Android: Podstawowy system operacyjny jest zbudowany na jądrze Linuksa. Dostęp do wszystkich zasobów urządzenia, takich jak funkcje aparatu, dane GPS, funkcje Bluetooth, funkcje telefoniczne i połączenia sieciowe, można uzyskać za pośrednictwem systemu operacyjnego.
  • Środowisko wykonawcze aplikacji na Androida: aplikacje na Androida są najczęściej pisane w języku programowania Java i uruchamiane w środowisku wykonawczym Androida (ART). Jednak wiele aplikacji, w tym podstawowe usługi i aplikacje dla systemu Android, to aplikacje natywne lub zawierają natywne biblioteki. Zarówno ART, jak i aplikacje natywne działają w tym samym środowisku bezpieczeństwa, zawartym w piaskownicy aplikacji. Aplikacje otrzymują dedykowaną część systemu plików, w której mogą zapisywać prywatne dane, w tym bazy danych i surowe pliki.

Aplikacje na Androida rozszerzają podstawowy system operacyjny Android. Istnieją dwa główne źródła aplikacji:

  • Preinstalowane aplikacje: Android zawiera zestaw preinstalowanych aplikacji, w tym telefon, pocztę e-mail, kalendarz, przeglądarkę internetową i kontakty. Działają one jako aplikacje użytkownika i zapewniają kluczowe funkcje urządzenia, do których mogą uzyskać dostęp inne aplikacje. Preinstalowane aplikacje mogą być częścią platformy Android typu open source lub mogą zostać opracowane przez producenta urządzenia dla konkretnego urządzenia.
  • Aplikacje instalowane przez użytkowników: Android zapewnia otwarte środowisko programistyczne, które obsługuje dowolne aplikacje innych firm. Google Play oferuje użytkownikom setki tysięcy aplikacji.

Usługi bezpieczeństwa Google

Google udostępnia zestaw usług w chmurze dostępnych dla zgodnych urządzeń z systemem Android i usług Google Mobile Services . Chociaż te usługi nie są częścią projektu Android Open Source Project (AOSP), są dostępne na wielu urządzeniach z Androidem. Więcej informacji na temat niektórych z tych usług można znaleźć w artykule Przegląd roku 2018 Android Security.

Podstawowe usługi bezpieczeństwa Google to:

  • Google Play: Google Play to zbiór usług umożliwiających użytkownikom odkrywanie, instalowanie i kupowanie aplikacji na urządzeniu z Androidem lub w Internecie. Google Play ułatwia programistom dotarcie do użytkowników Androida i potencjalnych klientów. Google Play zapewnia także sprawdzanie przez społeczność, weryfikację licencji aplikacji, skanowanie bezpieczeństwa aplikacji i inne usługi bezpieczeństwa.
  • Aktualizacje systemu Android: usługa aktualizacji systemu Android zapewnia nowe możliwości i aktualizacje zabezpieczeń dla wybranych urządzeń z systemem Android, w tym aktualizacje przez Internet lub bezprzewodowo (OTA).
  • Usługi aplikacji: struktury umożliwiające aplikacjom na Androida korzystanie z możliwości chmury, takich jak ( tworzenie kopii zapasowych ) danych i ustawień aplikacji oraz przesyłanie wiadomości z chmury do urządzenia ( C2DM ) na potrzeby przesyłania wiadomości w trybie push.
  • Weryfikuj aplikacje: ostrzegaj lub automatycznie blokuj instalację szkodliwych aplikacji i stale skanuj aplikacje na urządzeniu, ostrzegając o szkodliwych aplikacjach lub je usuwając.
  • SafetyNet: chroniący prywatność system wykrywania włamań, który pomaga Google w śledzeniu, łagodzeniu znanych zagrożeń bezpieczeństwa i identyfikowaniu nowych zagrożeń bezpieczeństwa.
  • Atest SafetyNet: interfejs API innej firmy umożliwiający określenie, czy urządzenie jest kompatybilne z CTS. Zaświadczenie może również identyfikować aplikację dla systemu Android komunikującą się z serwerem aplikacji.
  • Menedżer urządzeń Android: aplikacja internetowa i aplikacja na Androida do lokalizowania zgubionego lub skradzionego urządzenia.

Przegląd programu bezpieczeństwa

Kluczowe elementy programu zabezpieczeń Androida obejmują:

  • Przegląd projektu: proces zabezpieczeń systemu Android rozpoczyna się na wczesnym etapie cyklu rozwojowego wraz z utworzeniem bogatego i konfigurowalnego modelu i projektu zabezpieczeń. Każda główna funkcja platformy jest sprawdzana przez inżynierów i specjalistów ds. bezpieczeństwa, a odpowiednie mechanizmy bezpieczeństwa są zintegrowane z architekturą systemu.
  • Testy penetracyjne i przegląd kodu: Podczas opracowywania platformy komponenty stworzone dla systemu Android i komponenty typu open source podlegają rygorystycznym kontrolom bezpieczeństwa. Przeglądy te przeprowadzają Zespół ds. bezpieczeństwa Androida, zespół inżynierii bezpieczeństwa informacji firmy Google oraz niezależni konsultanci ds. bezpieczeństwa. Celem tych przeglądów jest identyfikacja słabych i możliwych luk na długo przed głównymi wydaniami oraz symulacja typów analiz przeprowadzanych przez zewnętrznych ekspertów ds. bezpieczeństwa po wydaniu.
  • Przegląd open source i społeczność: AOSP umożliwia szeroką kontrolę bezpieczeństwa przez każdą zainteresowaną stronę. Android korzysta również z technologii open source, które przeszły znaczącą kontrolę bezpieczeństwa zewnętrznego, takich jak jądro Linuksa. Google Play stanowi forum, na którym użytkownicy i firmy mogą przekazywać informacje o konkretnych aplikacjach bezpośrednio użytkownikom.
  • Reagowanie na incydenty: nawet przy zastosowaniu tych środków ostrożności po wysyłce mogą wystąpić problemy związane z bezpieczeństwem, dlatego w ramach projektu Android opracowano kompleksowy proces reagowania na zagrożenia. Pełnoetatowi członkowie zespołu ds. bezpieczeństwa systemu Android monitorują społeczność zajmującą się bezpieczeństwem Androida i ogólną w celu omówienia potencjalnych luk w zabezpieczeniach i przeglądu błędów bezpieczeństwa zarejestrowanych w bazie danych błędów systemu Android. Po wykryciu uzasadnionych problemów zespół Androida uruchamia proces reagowania, który umożliwia szybkie łagodzenie luk w zabezpieczeniach, aby zminimalizować potencjalne ryzyko dla wszystkich użytkowników Androida. Te odpowiedzi obsługiwane w chmurze 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. bezpieczeństwa Androida co miesiąc udostępnia aktualizacje urządzeniom Google Android i wszystkim naszym partnerom zajmującym się produkcją urządzeń.

Architektura bezpieczeństwa platformy

Android stara się być najbezpieczniejszym i najbardziej użytecznym systemem operacyjnym dla platform mobilnych, zmieniając tradycyjne funkcje kontroli bezpieczeństwa systemu operacyjnego w następujący sposób:

  • Chroń aplikację i dane użytkownika
  • Chroń zasoby systemowe (w tym sieć)
  • Zapewnij izolację aplikacji od systemu, innych aplikacji i od użytkownika

Aby osiągnąć te cele, Android zapewnia następujące kluczowe funkcje bezpieczeństwa:

  • Solidne bezpieczeństwo na poziomie systemu operacyjnego poprzez jądro Linux
  • Obowiązkowa piaskownica aplikacji dla wszystkich aplikacji
  • Bezpieczna komunikacja między procesami
  • Podpisywanie aplikacji
  • Uprawnienia zdefiniowane przez aplikację i nadane przez użytkownika