Android zawiera najlepsze w branży funkcje zabezpieczeń i współpracuje z deweloperami oraz specjalistami od wdrażania urządzeń, aby zapewnić bezpieczeństwo platformy i ekosystemu Androida. Solidny model zabezpieczeń jest niezbędny do stworzenia prężnego ekosystemu aplikacji i urządzeń opartych na platformie Android i usługach w chmurze. Dlatego w całym cyklu rozwoju Androida stosujemy rygorystyczny program bezpieczeństwa.
Android został zaprojektowany jako system otwarty. Aplikacje na Androida wykorzystują zaawansowany sprzęt i oprogramowanie, a także dane lokalne i dostarczane przez platformę, aby wprowadzać innowacje i zapewniać konsumentom wartość. Aby to osiągnąć, 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 solidnej architektury zabezpieczeń i rygorystycznych programów bezpieczeństwa. Android został zaprojektowany z wielowarstwowymi zabezpieczeniami, które są na tyle elastyczne, aby obsługiwać otwartą platformę, a jednocześnie chronić wszystkich jej użytkowników. Informacje o zgłaszaniu problemów z bezpieczeństwem i procesie aktualizacji znajdziesz w sekcji Aktualizacje i zasoby dotyczące bezpieczeństwa.
Android został zaprojektowany z myślą o deweloperach. Mechanizmy kontroli bezpieczeństwa zostały zaprojektowane tak, aby zmniejszyć obciążenie deweloperów. Deweloperzy dbający o bezpieczeństwo mogą łatwo korzystać z elastycznych ustawień zabezpieczeń i na nich polegać. Deweloperzy mniej obeznani z bezpieczeństwem są chronieni przez bezpieczne ustawienia domyślne.
Android to nie tylko stabilna platforma do tworzenia aplikacji, ale też dodatkowe wsparcie dla deweloperów na wiele sposobów. Zespół ds. bezpieczeństwa Androida szuka potencjalnych luk w zabezpieczeniach aplikacji i sugeruje sposoby ich naprawienia. W przypadku urządzeń z Google Play Usługi Play dostarczają aktualizacje zabezpieczeń do kluczowych bibliotek oprogramowania, takich jak OpenSSL, która służy do zabezpieczania komunikacji aplikacji. 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 dowolnej platformie, na której pracują.
Android wykorzystuje też sprzętowe zabezpieczenia. Na przykład technologia ARM TrustZone służy do zapewnienia bezpiecznego przechowywania kluczy kryptograficznych oraz atestów integralności rozruchu. DICE służy do pomiaru oprogramowania wgranego przed uruchomieniem Androida. Umożliwia to zdalną weryfikację, czy oprogramowanie sprzętowe nie jest podatne na znane, krytyczne luki w zabezpieczeniach, które mogłyby zostać wykorzystane do wyrządzenia szkody deweloperom i użytkownikom.
Więcej informacji dla deweloperów aplikacji na Androida znajdziesz na stronie developer.android.com.
Android został zaprojektowany z myślą o użytkownikach. Użytkownicy mają wgląd w uprawnienia, o które prosi każda aplikacja, i mogą nimi zarządzać. Zakłada się, że osoby atakujące będą próbować przeprowadzać typowe ataki, takie jak ataki inżynierii społecznej, aby nakłonić użytkowników urządzeń do zainstalowania złośliwego oprogramowania, oraz ataki na aplikacje innych firm na Androidzie. System Android został zaprojektowany tak, aby zmniejszać prawdopodobieństwo takich ataków i znacznie ograniczać ich wpływ w przypadku, gdyby się powiodły. Bezpieczeństwo Androida jest stale ulepszane po tym, jak urządzenie trafi do użytkownika. Android współpracuje z partnerami i opinią publiczną, aby udostępniać poprawki na każde urządzenie z Androidem, które nadal otrzymuje aktualizacje zabezpieczeń.
Więcej informacji dla użytkowników znajdziesz w Centrum pomocy Nexusa, Centrum pomocy Pixela lub w Centrum pomocy producenta urządzenia.
Na tej stronie przedstawiamy cele programu bezpieczeństwa Androida, opisujemy podstawy architektury bezpieczeństwa Androida i odpowiadamy na najważniejsze pytania architektów systemów i analityków ds. bezpieczeństwa. Skupia się na funkcjach zabezpieczeń podstawowej platformy Androida i nie omawia problemów z bezpieczeństwem, które są charakterystyczne dla konkretnych aplikacji, np. związanych z przeglądarką lub aplikacją do obsługi SMS-ów.
Tło
Android to platforma open source i środowisko aplikacji na urządzenia mobilne.
W sekcjach i na stronach poniżej opisujemy funkcje zabezpieczeń platformy Android. Ilustracja 1 przedstawia komponenty zabezpieczeń i zagadnienia związane z bezpieczeństwem na różnych poziomach stosu oprogramowania Androida. Każdy komponent zakłada, że komponenty poniżej są prawidłowo zabezpieczone. Z wyjątkiem niewielkiej ilości kodu systemu Android działającego jako root cały kod powyżej jądra systemu Linux jest ograniczony przez piaskownicę aplikacji.
Rysunek 1. Stos oprogramowania Androida
Główne elementy platformy Android to:
- Sprzęt: Android działa na wielu różnych konfiguracjach 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 korzysta z niektórych funkcji zabezpieczeń specyficznych dla sprzętu, takich jak ARM eXecute-Never.
- System operacyjny Android: podstawowy system operacyjny jest oparty 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, odbywa się za pomocą systemu operacyjnego.
- Środowisko wykonawcze aplikacji na Androida: aplikacje na Androida są najczęściej pisane w języku programowania Java i działają w środowisku wykonawczym Androida (ART). Jednak wiele aplikacji, w tym podstawowe usługi i aplikacje na Androida, to aplikacje natywne lub zawierają biblioteki natywne. Zarówno aplikacje ART, jak i aplikacje natywne działają w tym samym środowisku zabezpieczeń, które jest zawarte w piaskownicy aplikacji. Aplikacje mają wydzieloną część systemu plików, w której mogą zapisywać dane prywatne, w tym bazy danych i surowe pliki.
Aplikacje na Androida rozszerzają podstawowy system operacyjny Android. Aplikacje pochodzą z 2 głównych źródeł:
- Wstępnie zainstalowane aplikacje: Android zawiera zestaw wstępnie zainstalowanych aplikacji, w tym telefon, pocztę e-mail, kalendarz, przeglądarkę internetową i kontakty. Działają one jak aplikacje użytkownika i zapewniają kluczowe funkcje urządzenia, do których mogą mieć dostęp inne aplikacje. Aplikacje zainstalowane fabrycznie mogą być częścią platformy Android o otwartym kodzie źródłowym lub mogą być opracowane przez producenta urządzenia dla konkretnego urządzenia.
- Aplikacje instalowane przez użytkowników: Android to otwarte środowisko programistyczne, które obsługuje dowolne aplikacje innych firm. Google Play oferuje użytkownikom setki tysięcy aplikacji.
Usługi zabezpieczające Google
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 2018 roku na blogu Android Security.
Główne usługi zabezpieczające Google to:
- Google Play: Google Play to zbiór usług, które umożliwiają użytkownikom odkrywanie, instalowanie i kupowanie aplikacji na urządzeniach z Androidem lub w internecie. Google Play ułatwia deweloperom docieranie do użytkowników Androida i potencjalnych klientów. Google Play udostępnia też opinie społeczności, weryfikację licencji aplikacji, skanowanie aplikacji pod kątem bezpieczeństwa i inne usługi związane z bezpieczeństwem.
- Aktualizacje Androida: usługa aktualizacji Androida dostarcza nowe funkcje i aktualizacje zabezpieczeń na wybrane urządzenia z Androidem, w tym aktualizacje przez internet lub bezprzewodowo (OTA).
- Usługi aplikacji: platformy, które umożliwiają aplikacjom na Androida korzystanie z funkcji chmury, takich jak tworzenie kopii zapasowych danych i ustawień aplikacji oraz przesyłanie wiadomości z chmury na urządzenie (C2DM) w celu wysyłania wiadomości push.
- Weryfikacja aplikacji: ostrzega lub automatycznie blokuje instalację szkodliwych aplikacji i stale skanuje aplikacje na urządzeniu, ostrzegając przed szkodliwymi aplikacjami lub je usuwając.
- SafetyNet: system wykrywania włamań, który chroni prywatność i pomaga Google śledzić, ograniczać znane zagrożenia dla bezpieczeństwa i identyfikować nowe zagrożenia.
- SafetyNet Attestation: interfejs API innej firmy, który określa, czy urządzenie jest zgodne z CTS. Atest może też identyfikować aplikację na Androida, która komunikuje się z serwerem aplikacji.
- Menedżer urządzeń z Androidem: aplikacja internetowa i aplikacja na Androida do lokalizowania utraconych lub skradzionych urządzeń.
Omówienie programu zabezpieczeń
Najważniejsze elementy Programu bezpieczeństwa Androida to:
- Sprawdzanie projektu: proces zabezpieczania Androida rozpoczyna się na wczesnym etapie cyklu życia rozwoju od utworzenia rozbudowanego i konfigurowalnego modelu zabezpieczeń oraz projektu. Każda główna funkcja platformy jest sprawdzana przez zespoły inżynierów i specjalistów ds. bezpieczeństwa, a odpowiednie zabezpieczenia są integrowane z architekturą systemu.
- Testy penetracyjne i sprawdzanie kodu: podczas tworzenia platformy komponenty Androida i komponenty open source są poddawane rygorystycznym kontrolom bezpieczeństwa. Sprawdzają je zespół ds. bezpieczeństwa Androida, zespół inżynierów ds. bezpieczeństwa informacji Google oraz niezależni konsultanci ds. bezpieczeństwa. Celem tych weryfikacji jest wykrywanie słabych punktów i potencjalnych luk w zabezpieczeniach na długo przed wprowadzeniem głównych wersji oraz symulowanie rodzajów analiz przeprowadzanych przez zewnętrznych ekspertów ds. bezpieczeństwa po udostępnieniu wersji.
- Open source i weryfikacja przez społeczność: AOSP umożliwia szeroką weryfikację bezpieczeństwa przez każdą zainteresowaną osobę. Android korzysta też z technologii typu open source, które przeszły szczegółową zewnętrzną weryfikację pod kątem bezpieczeństwa, np. jądro systemu Linux. Google Play to forum, na którym użytkownicy i firmy mogą przekazywać informacje o konkretnych aplikacjach bezpośrednio użytkownikom.
- Reagowanie na incydenty: nawet przy zachowaniu tych środków ostrożności po wysyłce mogą wystąpić problemy z bezpieczeństwem. Dlatego w projekcie Android opracowano kompleksowy proces reagowania na incydenty związane z bezpieczeństwem. Członkowie zespołu ds. bezpieczeństwa Androida na pełny etat monitorują społeczność zajmującą się bezpieczeństwem Androida i ogólnie bezpieczeństwem, aby śledzić dyskusje na temat potencjalnych luk w zabezpieczeniach, oraz sprawdzają błędy związane z bezpieczeństwem zgłaszane w bazie danych błędów Androida. W przypadku wykrycia uzasadnionych problemów zespół Androida stosuje proces reagowania, który umożliwia szybkie usuwanie luk w zabezpieczeniach, aby zminimalizować potencjalne ryzyko dla wszystkich użytkowników Androida. Te odpowiedzi obsługiwane przez chmurę mogą obejmować aktualizowanie platformy Android (aktualizacje AOSP), usuwanie aplikacji z Google Play i usuwanie aplikacji z urządzeń w terenie.
- Miesięczne aktualizacje zabezpieczeń: zespół ds. bezpieczeństwa Androida udostępnia miesięczne aktualizacje urządzeniom z Androidem od Google i wszystkim naszym partnerom produkującym urządzenia.
Architektura zabezpieczeń platformy
Android to najbardziej bezpieczny i łatwy w obsłudze system operacyjny na platformy mobilne. Wykorzystuje tradycyjne mechanizmy zabezpieczeń systemu operacyjnego, aby:
- Ochrona aplikacji i danych użytkowników
- Ochrona zasobów systemu (w tym sieci)
- zapewniać 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 dzięki jądru Linuksa
- Obowiązkowe piaskownice aplikacji dla wszystkich aplikacji
- Bezpieczna komunikacja między procesami
- Podpisywanie aplikacji
- Uprawnienia określone w aplikacji i przyznane przez użytkownika