Android intègre des fonctionnalités de sécurité de pointe et collabore avec les développeurs et les implémentateurs d'appareils pour sécuriser la plate-forme et l'écosystème Android. Un modèle de sécurité robuste est essentiel pour permettre un écosystème dynamique d'applications et d'appareils basés sur la plate-forme Android et autour d'elle, et pris en charge par des services cloud. Par conséquent, tout au long de son cycle de développement, Android a fait l'objet d'un programme de sécurité rigoureux.
Android est conçu pour être ouvert. Les applications Android utilisent du matériel et des logiciels avancés, ainsi que des données locales et diffusées, exposés via la plate-forme pour apporter de l'innovation et de la valeur aux consommateurs. Pour exploiter cette valeur, la plate-forme propose un environnement d'application qui protège la confidentialité, l'intégrité et la disponibilité des utilisateurs, des données, des applications, de l'appareil et du réseau.
La sécurisation d'une plate-forme ouverte nécessite une architecture de sécurité solide et des programmes de sécurité rigoureux. Android a été conçu avec une sécurité multicouche suffisamment flexible pour prendre en charge une plate-forme ouverte, tout en protégeant tous ses utilisateurs. Pour en savoir plus sur le signalement de problèmes de sécurité et le processus de mise à jour, consultez la page Mises à jour et ressources de sécurité.
Android est conçu pour les développeurs. Les contrôles de sécurité ont été conçus pour réduire la charge des développeurs. Les développeurs experts en sécurité peuvent facilement utiliser et s'appuyer sur des contrôles de sécurité flexibles. Les développeurs moins familiarisés avec la sécurité sont protégés par des valeurs par défaut sécurisées.
En plus de fournir une plate-forme stable sur laquelle s'appuyer, Android offre aux développeurs une assistance supplémentaire de plusieurs manières. L'équipe chargée de la sécurité Android recherche les failles potentielles dans les applications et suggère des solutions pour les résoudre. Pour les appareils équipés de Google Play, les services Play fournissent des mises à jour de sécurité pour les bibliothèques logicielles critiques, telles qu'OpenSSL, qui est utilisé pour sécuriser les communications des applications. La sécurité Android a publié un outil de test SSL (nogotofail) qui aide les développeurs à détecter les problèmes de sécurité potentiels sur la plate-forme sur laquelle ils développent.
Android exploite également la compatibilité matérielle sous-jacente pour la sécurité. Par exemple, la technologie ARM TrustZone est utilisée pour fournir un stockage sécurisé des clés cryptographiques, ainsi que des attestations d'intégrité du démarrage. DICE permet de mesurer le micrologiciel chargé avant le démarrage d'Android. Cela permet de vérifier à distance que le micrologiciel n'est pas affecté par des failles critiques connues qui pourraient être exploitées pour nuire aux développeurs et aux utilisateurs.
Pour en savoir plus, consultez developer.android.com.
Android est conçu pour les utilisateurs. Les utilisateurs ont accès aux autorisations demandées par chaque application et peuvent les contrôler. Cette conception suppose que les pirates informatiques tenteront d'effectuer des attaques courantes, telles que des attaques d'ingénierie sociale pour convaincre les utilisateurs d'appareils d'installer des logiciels malveillants, et des attaques sur des applications tierces sur Android. Android a été conçu pour réduire la probabilité de ces attaques et limiter considérablement leur impact en cas de réussite. La sécurité Android continue de progresser une fois l'appareil entre les mains de l'utilisateur. Android collabore avec les partenaires et le public pour fournir des correctifs à tous les appareils Android qui continuent de recevoir des mises à jour de sécurité.
Pour en savoir plus, consultez le Centre d'aide Nexus, le Centre d'aide Pixel ou le centre d'aide du fabricant de votre appareil.
Cette page décrit les objectifs du programme de sécurité Android, les principes de base de l'architecture de sécurité Android et répond aux questions les plus pertinentes pour les architectes système et les analystes de sécurité. Il se concentre sur les fonctionnalités de sécurité de la plate-forme de base d'Android et n'aborde pas les problèmes de sécurité propres à des applications spécifiques, comme ceux liés au navigateur ou à l'application de SMS.
Arrière-plan
Android fournit une plate-forme et un environnement d'application Open Source pour les appareils mobiles.
Les sections et pages ci-dessous décrivent les fonctionnalités de sécurité de la plate-forme Android. La figure 1 illustre les composants de sécurité et les considérations des différents niveaux de la pile logicielle Android. Chaque composant suppose que les composants ci-dessous sont correctement sécurisés. À l'exception d'une petite quantité de code Android OS exécuté en tant que root, tout code au-dessus du noyau Linux est limité par le bac à sable de l'application.
Figure 1 : Pile logicielle Android
Les principaux composants de la plate-forme Android sont les suivants:
- Matériel de l'appareil:Android s'exécute sur un large éventail de configurations matérielles, y compris les téléphones mobiles, les tablettes, les montres, les automobiles, les smart TV, les box de jeu OTT et les boîtiers décodeurs. Android est indépendant du processeur, mais il exploite certaines fonctionnalités de sécurité spécifiques au matériel, telles que ARM eXecute-Never.
- Système d'exploitation Android:système d'exploitation principal basé sur le noyau Linux. Toutes les ressources de l'appareil, telles que les fonctions de l'appareil photo, les données GPS, les fonctions Bluetooth, les fonctions de téléphonie et les connexions réseau, sont accessibles via le système d'exploitation.
- Android Application Runtime:les applications Android sont le plus souvent écrites dans le langage de programmation Java et exécutées dans l'environnement d'exécution Android Runtime (ART). Toutefois, de nombreuses applications, y compris les services et applications Android principaux, sont des applications natives ou incluent des bibliothèques natives. Les applications ART et natives s'exécutent dans le même environnement de sécurité, contenu dans le bac à sable d'application. Les applications reçoivent une partie dédiée du système de fichiers dans laquelle elles peuvent écrire des données privées, y compris des bases de données et des fichiers bruts.
Les applications Android étendent le système d'exploitation Android de base. Il existe deux sources principales d'applications:
- Applications préinstallées:Android inclut un ensemble d'applications préinstallées, y compris Téléphone, Courrier, Agenda, Navigateur Web et Contacts. Elles fonctionnent comme des applications utilisateur et fournissent des fonctionnalités clés de l'appareil auxquelles d'autres applications peuvent accéder. Les applications préinstallées peuvent faire partie de la plate-forme Android Open Source ou être développées par un fabricant d'appareils pour un appareil spécifique.
- Applications installées par l'utilisateur:Android fournit un environnement de développement ouvert compatible avec toutes les applications tierces. Google Play propose aux utilisateurs des centaines de milliers d'applications.
Services de sécurité Google
Google propose un ensemble de services cloud disponibles pour les appareils Android compatibles avec les services mobiles Google. Bien que ces services ne fassent pas partie du projet Android Open Source (AOSP), ils sont inclus sur de nombreux appareils Android. Pour en savoir plus sur certains de ces services, consultez l'analyse de l'année 2018 de la sécurité Android.
Les principaux services de sécurité Google sont les suivants:
- Google Play:Google Play est un ensemble de services qui permet aux utilisateurs de découvrir, d'installer et d'acheter des applications depuis leur appareil Android ou le Web. Google Play permet aux développeurs de toucher facilement les utilisateurs Android et les clients potentiels. Google Play propose également des examens par la communauté, une validation des licences, une analyse de la sécurité des applications et d'autres services de sécurité.
- Mises à jour Android:le service de mise à jour Android fournit de nouvelles fonctionnalités et des mises à jour de sécurité à certains appareils Android, y compris via le Web ou par OTA (Over-The-Air).
- Services d'application:frameworks permettant aux applications Android d'utiliser des fonctionnalités cloud telles que la sauvegarde des données et des paramètres des applications, et la messagerie cloud-to-device (C2DM) pour la messagerie push.
- Vérifier les applications:émet un avertissement ou bloque automatiquement l'installation d'applications dangereuses, et analyse en continu les applications de l'appareil, en avertissant ou en supprimant les applications dangereuses.
- SafetyNet:système de détection des intrusions respectueux de la confidentialité qui aide Google à suivre les utilisateurs, à atténuer les menaces de sécurité connues et à identifier de nouvelles menaces de sécurité.
- SafetyNet Attestation:API tierce permettant de déterminer si l'appareil est compatible avec CTS. L'attestation peut également identifier l'application Android qui communique avec le serveur d'application.
- Gestionnaire d'appareils Android:application Web et application Android permettant de localiser un appareil perdu ou volé.
Présentation du programme de sécurité
Les principaux composants du programme de sécurité Android incluent les éléments suivants:
- Examen de la conception:le processus de sécurité Android commence tôt dans le cycle de vie du développement avec la création d'un modèle et d'une conception de sécurité riches et configurables. Chaque fonctionnalité majeure de la plate-forme est examinée par des ressources d'ingénierie et de sécurité, avec des contrôles de sécurité appropriés intégrés à l'architecture du système.
- Tests d'intrusion et examen du code:lors du développement de la plate-forme, les composants Open Source et créés par Android sont soumis à des examens de sécurité rigoureux. Ces examens sont effectués par l'équipe de sécurité Android, l'équipe d'ingénierie de la sécurité de l'information de Google et des consultants indépendants en sécurité. L'objectif de ces examens est d'identifier les faiblesses et les failles potentielles bien avant les versions majeures, et de simuler les types d'analyses effectués par des experts en sécurité externes lors de la publication.
- Examen Open Source et communautaire:AOSP permet à toute personne intéressée d'effectuer un examen approfondi de la sécurité. Android utilise également des technologies Open Source qui ont fait l'objet d'un examen de sécurité externe important, comme le noyau Linux. Google Play propose un forum permettant aux utilisateurs et aux entreprises de fournir directement des informations sur des applications spécifiques.
- Réponse aux incidents:même avec ces précautions, des problèmes de sécurité peuvent survenir après la publication. C'est pourquoi le projet Android a créé un processus de réponse complet en matière de sécurité. Les membres de l'équipe de sécurité Android à temps plein surveillent la communauté de sécurité spécifique à Android et la communauté de sécurité générale pour discuter des failles potentielles et examiner les bugs de sécurité enregistrés dans la base de données de bugs Android. Lorsqu'elle découvre des problèmes légitimes, l'équipe Android dispose d'un processus de réponse qui permet de limiter rapidement les failles afin de minimiser le risque potentiel pour tous les utilisateurs Android. Ces réponses compatibles avec le cloud peuvent inclure la mise à jour de la plate-forme Android (mises à jour AOSP), la suppression d'applications de Google Play et la suppression d'applications des appareils sur le terrain.
- Mises à jour de sécurité mensuelles:l'équipe de sécurité Android fournit des mises à jour mensuelles aux appareils Android Google et à tous nos partenaires de fabrication d'appareils.
Architecture de sécurité de la plate-forme
Android vise à être le système d'exploitation le plus sécurisé et le plus utilisable pour les plates-formes mobiles en réutilisant les commandes de sécurité classiques des systèmes d'exploitation pour:
- Protéger les données des applications et des utilisateurs
- protéger les ressources du système (y compris le réseau) ;
- Assurer l'isolation des applications par rapport au système, aux autres applications et à l'utilisateur
Pour atteindre ces objectifs, Android propose les principales fonctionnalités de sécurité suivantes:
- Sécurité robuste au niveau du système d'exploitation via le noyau Linux
- Bac à sable d'application obligatoire pour toutes les applications
- Communication inter-processus sécurisée
- Signature d'application
- Autorisations définies par l'application et accordées par l'utilisateur