Sécuriser un appareil Android

Android intègre des fonctionnalités de sécurité de pointe et travaille avec les développeurs et les implémenteurs d'appareils pour assurer la sécurité de la plate-forme et de l'écosystème Android. Un modèle de sécurité robuste est essentiel pour permettre un écosystème vigoureux d'applications et d'appareils construits sur et autour de la plate-forme Android et pris en charge par les services cloud. En conséquence, tout au long de son cycle de développement, Android a été soumis à 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ées via la plateforme pour apporter innovation et valeur aux consommateurs. Pour réaliser cette valeur, la plateforme propose un environnement d'applications 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 plateforme 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 les utilisateurs de la plate-forme. Pour plus d'informations sur le signalement des problèmes de sécurité et le processus de mise à jour, consultez Mises à jour de sécurité et ressources .

Android est conçu pour les développeurs. Les contrôles de sécurité ont été conçus pour réduire le fardeau des développeurs. Les développeurs avertis en sécurité peuvent facilement travailler avec des contrôles de sécurité flexibles et s'y fier. Les développeurs moins familiers 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 une assistance supplémentaire aux développeurs de plusieurs manières. L'équipe de sécurité Android recherche les vulnérabilités potentielles des applications et suggère des moyens de résoudre ces problèmes. Pour les appareils dotés de Google Play, les services Play fournissent des mises à jour de sécurité pour les bibliothèques de logiciels 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 qu'ils développent.

Android exploite également la prise en charge 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é de démarrage. [DICE](https://pigweed.googlesource.com/open-dice/+/refs/heads/main/docs/android.md) est utilisé pour 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 vulnérabilités critiques connues qui pourraient être exploitées pour nuire à la fois aux développeurs et aux utilisateurs.

Plus d’informations pour les développeurs d’applications Android sont disponibles sur Developer.android.com .

Android est conçu pour les utilisateurs. Les utilisateurs bénéficient d'une visibilité sur les autorisations demandées par chaque application et d'un contrôle sur ces autorisations. Cette conception suppose que les attaquants tenteront de mener des attaques courantes, telles que des attaques d'ingénierie sociale pour convaincre les utilisateurs d'appareils d'installer des logiciels malveillants, ainsi que des attaques contre des applications tierces sur Android. Android a été conçu pour à la fois réduire la probabilité de ces attaques et limiter considérablement l’impact de l’attaque en cas de succès. La sécurité Android continue de progresser une fois que l'appareil est entre les mains de l'utilisateur. Android travaille avec des partenaires et le public pour fournir des correctifs pour tout appareil Android qui continue de recevoir des mises à jour de sécurité.

De plus amples informations destinées aux utilisateurs finaux sont disponibles dans le centre d'aide Nexus , le centre d'aide Pixel ou le centre d'aide du fabricant de votre appareil.

Cette page présente les objectifs du programme de sécurité Android, décrit les principes fondamentaux de l'architecture de sécurité Android et répond aux questions les plus pertinentes destinées aux architectes système et aux analystes de sécurité. Il se concentre sur les fonctionnalités de sécurité de la plate-forme principale d'Android et n'aborde pas les problèmes de sécurité propres à des applications spécifiques, tels que ceux liés au navigateur ou à l'application SMS.

Arrière-plan

Android fournit une plate-forme open source et un environnement d'applications pour les appareils mobiles.

Les sections et pages ci-dessous décrivent les fonctionnalités de sécurité de la plateforme 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 du système d'exploitation Android exécuté en tant que root, tout le code situé au-dessus du noyau Linux est restreint par l'Application Sandbox.

Figure 1 : pile logicielle Android

Figure 1. Pile logicielle Android

Les principaux éléments constitutifs de la plate-forme Android sont :

  • Matériel de l'appareil : Android fonctionne sur un large éventail de configurations matérielles, notamment les téléphones mobiles, les tablettes, les montres, les automobiles, les téléviseurs intelligents, les boîtiers de jeux OTT et les décodeurs. Android est indépendant du processeur, mais il profite de certaines fonctionnalités de sécurité spécifiques au matériel telles que ARM eXecute-Never.
  • Système d'exploitation Android : le système d'exploitation principal est construit 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.
  • Runtime d'application Android : les applications Android sont le plus souvent écrites dans le langage de programmation Java et exécutées dans le runtime Android (ART). Cependant, de nombreuses applications, y compris les principaux services et applications Android, sont des applications natives ou incluent des bibliothèques natives. ART et les applications natives s'exécutent dans le même environnement de sécurité, contenu dans l'Application Sandbox. Les applications disposent d'une partie dédiée du système de fichiers dans laquelle elles peuvent écrire des données privées, notamment 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 comprend un ensemble d'applications préinstallées, notamment le téléphone, la messagerie électronique, le calendrier, le navigateur Web et les contacts. Celles-ci fonctionnent comme des applications utilisateur et fournissent des fonctionnalités clés de l’appareil accessibles par d’autres applications. Les applications préinstallées peuvent faire partie de la plate-forme Android open source ou être développées par un fabricant d'appareil pour un appareil spécifique.
  • Applications installées par l'utilisateur : Android fournit un environnement de développement ouvert qui prend en charge toute application tierce. Google Play propose aux utilisateurs des centaines de milliers d'applications.

Services de sécurité Google

Google fournit un ensemble de services basés sur le 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 plus d'informations sur certains de ces services, consultez le bilan de l'année 2018 d'Android Security.

Les principaux services de sécurité de Google sont :

  • Google Play : Google Play est un ensemble de services qui permettent aux utilisateurs de découvrir, d'installer et d'acheter des applications depuis leur appareil Android ou sur le Web. Google Play permet aux développeurs d'atteindre facilement les utilisateurs Android et les clients potentiels. Google Play propose également un examen par la communauté, une vérification de la licence des applications, une analyse de sécurité des applications et d'autres services de sécurité.
  • Mises à jour Android : le service de mise à jour Android offre de nouvelles fonctionnalités et des mises à jour de sécurité à certains appareils Android, y compris des mises à jour via le Web ou par liaison radio (OTA).
  • Services d'application : cadres qui permettent aux applications Android d'utiliser les fonctionnalités du cloud telles que ( la sauvegarde ) les données et les paramètres des applications et la messagerie cloud-à-appareil ( C2DM ) pour la messagerie push.
  • Vérifier les applications : avertir ou bloquer automatiquement l'installation d'applications nuisibles et analyser en permanence les applications sur l'appareil, en avertissant ou en supprimant les applications nuisibles .
  • SafetyNet : un système de détection d'intrusion préservant la confidentialité pour aider le suivi de Google, atténuer les menaces de sécurité connues et identifier de nouvelles menaces de sécurité.
  • Attestation SafetyNet : API tierce pour déterminer si l'appareil est compatible CTS. L'attestation peut également identifier l'application Android communiquant avec le serveur d'applications.
  • Gestionnaire d'appareils Android : une application Web et une application Android pour localiser un appareil perdu ou volé.

Aperçu du programme de sécurité

Les composants clés du programme de sécurité Android incluent :

  • Examen de la conception : le processus de sécurité Android commence dès le début du cycle de 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 plateforme 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 révision du code : lors du développement de la plate-forme, les composants créés par Android et open source 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 sécurité des informations de Google et des consultants en sécurité indépendants. L'objectif de ces examens est d'identifier les faiblesses et les vulnérabilités possibles bien avant les versions majeures, et de simuler les types d'analyse effectués par des experts en sécurité externes lors de la publication.
  • Examen open source et communautaire : AOSP permet un examen approfondi de la sécurité par toute partie intéressée. 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 fournit un forum permettant aux utilisateurs et aux entreprises de fournir des informations sur des applications spécifiques directement aux utilisateurs.
  • Réponse aux incidents : même avec ces précautions, des problèmes de sécurité peuvent survenir après l'expédition, c'est pourquoi le projet Android a créé un processus complet de réponse de sécurité. Les membres à temps plein de l'équipe de sécurité Android surveillent la communauté de sécurité spécifique à Android et la communauté de sécurité générale pour discuter des vulnérabilités potentielles et examiner les bogues de sécurité enregistrés dans la base de données de bogues Android. Dès la découverte de problèmes légitimes, l'équipe Android dispose d'un processus de réponse qui permet d'atténuer rapidement les vulnérabilités afin de garantir que le risque potentiel pour tous les utilisateurs d'Android est minimisé. Ces réponses prises en charge par 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 Google Android et à tous nos partenaires fabricants d'appareils.

Architecture de sécurité de la plateforme

Android cherche à devenir le système d'exploitation le plus sécurisé et le plus utilisable pour les plates-formes mobiles en réutilisant les contrôles de sécurité traditionnels du système 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 du système, des autres applications et de l'utilisateur

Pour atteindre ces objectifs, Android fournit ces fonctionnalités de sécurité clés :

  • Sécurité robuste au niveau du système d'exploitation via le noyau Linux
  • Bac à sable d'application obligatoire pour toutes les applications
  • Communication interprocessus sécurisée
  • Signature d'application
  • Autorisations définies par l'application et accordées par l'utilisateur
,

Android intègre des fonctionnalités de sécurité de pointe et travaille avec les développeurs et les implémenteurs d'appareils pour assurer la sécurité de la plate-forme et de l'écosystème Android. Un modèle de sécurité robuste est essentiel pour permettre un écosystème vigoureux d'applications et d'appareils construits sur et autour de la plate-forme Android et pris en charge par les services cloud. En conséquence, tout au long de son cycle de développement, Android a été soumis à 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ées via la plateforme pour apporter innovation et valeur aux consommateurs. Pour réaliser cette valeur, la plateforme propose un environnement d'applications 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 plateforme 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 les utilisateurs de la plate-forme. Pour plus d'informations sur le signalement des problèmes de sécurité et le processus de mise à jour, consultez Mises à jour de sécurité et ressources .

Android est conçu pour les développeurs. Les contrôles de sécurité ont été conçus pour réduire le fardeau des développeurs. Les développeurs avertis en sécurité peuvent facilement travailler avec des contrôles de sécurité flexibles et s'y fier. Les développeurs moins familiers 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 une assistance supplémentaire aux développeurs de plusieurs manières. L'équipe de sécurité Android recherche les vulnérabilités potentielles des applications et suggère des moyens de résoudre ces problèmes. Pour les appareils dotés de Google Play, les services Play fournissent des mises à jour de sécurité pour les bibliothèques de logiciels 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 qu'ils développent.

Android exploite également la prise en charge 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é de démarrage. [DICE](https://pigweed.googlesource.com/open-dice/+/refs/heads/main/docs/android.md) est utilisé pour 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 vulnérabilités critiques connues qui pourraient être exploitées pour nuire à la fois aux développeurs et aux utilisateurs.

Plus d'informations pour les développeurs d'applications Android sont disponibles sur Developer.android.com .

Android est conçu pour les utilisateurs. Les utilisateurs bénéficient d'une visibilité sur les autorisations demandées par chaque application et d'un contrôle sur ces autorisations. Cette conception suppose que les attaquants tenteront de mener 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 contre des applications tierces sur Android. Android a été conçu pour à la fois réduire la probabilité de ces attaques et limiter considérablement l’impact de l’attaque en cas de succès. La sécurité Android continue de progresser une fois que l'appareil est entre les mains de l'utilisateur. Android travaille avec des partenaires et le public pour fournir des correctifs pour tout appareil Android qui continue de recevoir des mises à jour de sécurité.

De plus amples informations destinées aux utilisateurs finaux sont disponibles dans le centre d'aide Nexus , le centre d'aide Pixel ou le centre d'aide du fabricant de votre appareil.

Cette page présente les objectifs du programme de sécurité Android, décrit les principes fondamentaux de l'architecture de sécurité Android et répond aux questions les plus pertinentes destinées aux architectes système et aux analystes de sécurité. Il se concentre sur les fonctionnalités de sécurité de la plate-forme principale d'Android et n'aborde pas les problèmes de sécurité propres à des applications spécifiques, tels que ceux liés au navigateur ou à l'application SMS.

Arrière-plan

Android fournit une plate-forme open source et un environnement d'applications pour les appareils mobiles.

Les sections et pages ci-dessous décrivent les fonctionnalités de sécurité de la plateforme 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 du système d'exploitation Android exécuté en tant que root, tout le code situé au-dessus du noyau Linux est restreint par l'Application Sandbox.

Figure 1 : pile logicielle Android

Figure 1. Pile logicielle Android

Les principaux éléments constitutifs de la plate-forme Android sont :

  • Matériel de l'appareil : Android fonctionne sur un large éventail de configurations matérielles, notamment les téléphones mobiles, les tablettes, les montres, les automobiles, les téléviseurs intelligents, les boîtiers de jeux OTT et les décodeurs. Android est indépendant du processeur, mais il profite de certaines fonctionnalités de sécurité spécifiques au matériel telles que ARM eXecute-Never.
  • Système d'exploitation Android : le système d'exploitation principal est construit 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.
  • Runtime d'application Android : les applications Android sont le plus souvent écrites dans le langage de programmation Java et exécutées dans le runtime Android (ART). Cependant, de nombreuses applications, y compris les principaux services et applications Android, sont des applications natives ou incluent des bibliothèques natives. ART et les applications natives s'exécutent dans le même environnement de sécurité, contenu dans l'Application Sandbox. Les applications disposent d'une partie dédiée du système de fichiers dans laquelle elles peuvent écrire des données privées, notamment 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 comprend un ensemble d'applications préinstallées, notamment le téléphone, la messagerie électronique, le calendrier, le navigateur Web et les contacts. Celles-ci fonctionnent comme des applications utilisateur et fournissent des fonctionnalités clés de l’appareil accessibles par d’autres applications. Les applications préinstallées peuvent faire partie de la plate-forme Android open source ou être développées par un fabricant d'appareil pour un appareil spécifique.
  • Applications installées par l'utilisateur : Android fournit un environnement de développement ouvert qui prend en charge toute application tierce. Google Play propose aux utilisateurs des centaines de milliers d'applications.

Services de sécurité Google

Google fournit un ensemble de services basés sur le 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 plus d'informations sur certains de ces services, consultez le bilan de l'année 2018 d'Android Security.

Les principaux services de sécurité de Google sont :

  • Google Play : Google Play est un ensemble de services qui permettent aux utilisateurs de découvrir, d'installer et d'acheter des applications depuis leur appareil Android ou sur le Web. Google Play permet aux développeurs d'atteindre facilement les utilisateurs Android et les clients potentiels. Google Play propose également un examen par la communauté, une vérification de la licence des applications, une analyse de sécurité des applications et d'autres services de sécurité.
  • Mises à jour Android : le service de mise à jour Android offre de nouvelles fonctionnalités et des mises à jour de sécurité à certains appareils Android, y compris des mises à jour via le Web ou par liaison radio (OTA).
  • Services d'application : cadres qui permettent aux applications Android d'utiliser les fonctionnalités du cloud telles que ( la sauvegarde ) les données et les paramètres des applications et la messagerie cloud-à-appareil ( C2DM ) pour la messagerie push.
  • Vérifier les applications : avertir ou bloquer automatiquement l'installation d'applications nuisibles et analyser en permanence les applications sur l'appareil, en avertissant ou en supprimant les applications nuisibles .
  • SafetyNet : un système de détection d'intrusion préservant la confidentialité pour aider le suivi de Google, atténuer les menaces de sécurité connues et identifier de nouvelles menaces de sécurité.
  • Attestation SafetyNet : API tierce pour déterminer si l'appareil est compatible CTS. L'attestation peut également identifier l'application Android communiquant avec le serveur d'applications.
  • Gestionnaire d'appareils Android : une application Web et une application Android pour localiser un appareil perdu ou volé.

Aperçu du programme de sécurité

Les composants clés du programme de sécurité Android incluent :

  • Examen de la conception : le processus de sécurité Android commence dès le début du cycle de 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 plateforme 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 révision du code : lors du développement de la plate-forme, les composants créés par Android et open source 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 sécurité des informations de Google et des consultants en sécurité indépendants. L'objectif de ces examens est d'identifier les faiblesses et les vulnérabilités possibles bien avant les versions majeures, et de simuler les types d'analyse effectués par des experts en sécurité externes lors de la publication.
  • Examen open source et communautaire : AOSP permet un examen approfondi de la sécurité par toute partie intéressée. 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 fournit un forum permettant aux utilisateurs et aux entreprises de fournir des informations sur des applications spécifiques directement aux utilisateurs.
  • Réponse aux incidents : même avec ces précautions, des problèmes de sécurité peuvent survenir après l'expédition, c'est pourquoi le projet Android a créé un processus complet de réponse de sécurité. Les membres à temps plein de l'équipe de sécurité Android surveillent la communauté de sécurité spécifique à Android et la communauté de sécurité générale pour discuter des vulnérabilités potentielles et examiner les bogues de sécurité enregistrés dans la base de données de bogues Android. Dès la découverte de problèmes légitimes, l'équipe Android dispose d'un processus de réponse qui permet d'atténuer rapidement les vulnérabilités afin de garantir que le risque potentiel pour tous les utilisateurs d'Android est minimisé. Ces réponses prises en charge par 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 Google Android et à tous nos partenaires fabricants d'appareils.

Architecture de sécurité de la plateforme

Android cherche à devenir le système d'exploitation le plus sécurisé et le plus utilisable pour les plates-formes mobiles en réutilisant les contrôles de sécurité traditionnels du système 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 du système, des autres applications et de l'utilisateur

Pour atteindre ces objectifs, Android fournit ces fonctionnalités de sécurité clés :

  • Sécurité robuste au niveau du système d'exploitation via le noyau Linux
  • Bac à sable d'application obligatoire pour toutes les applications
  • Communication interprocessus sécurisée
  • Signature d'application
  • Autorisations définies par l'application et accordées par l'utilisateur