Sécuriser un appareil Android

Android intègre des fonctionnalités de sécurité de pointe et collabore 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 dynamique d'applications et d'appareils basés sur la plate-forme Android et pris en charge par des services cloud. Par conséquent, 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 plate-forme pour apporter innovation et valeur aux consommateurs. Pour concrétiser cette valeur, la plate-forme offre 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 des problèmes de sécurité et le processus de mise à jour, consultez 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 expérimentés en matière de sécurité peuvent facilement utiliser des contrôles de sécurité flexibles et s'y fier. 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 de sécurité Android recherche les failles potentielles dans les applications et suggère des moyens de résoudre ces problèmes. 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ée pour sécuriser les communications des applications. La sécurité Android a publié un outil de test SSL (nogotofail) qui aide les développeurs à trouver des problèmes de sécurité potentiels sur la plate-forme sur laquelle 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é au démarrage. DICE 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 failles critiques connues qui pourraient être exploitées pour nuire aux développeurs et aux utilisateurs.

Pour en savoir plus sur les développeurs d'applications Android, consultez developer.android.com.

Android est conçu pour les utilisateurs. Les utilisateurs ont une visibilité sur les autorisations demandées par chaque application et un contrôle sur ces autorisations. Cette conception inclut l'attente que les pirates tentent 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 des partenaires et le public pour fournir des correctifs pour tout appareil Android qui continue de recevoir des mises à jour de sécurité.

Pour en savoir plus sur les utilisateurs finaux, consultez le Centre d'aide Nexus, 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 pour les architectes système et les analystes de sécurité. Elle se concentre sur les fonctionnalités de sécurité de la plate-forme de base d'Android et ne traite pas des problèmes de sécurité propres à des applications spécifiques, telles que celles liées au navigateur ou à l'application SMS.

Arrière-plan

Android fournit une plate-forme Open Source et un environnement d'application 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 et les considérations de sécurité 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 d'OS Android exécuté en tant que racine, tout le code au-dessus du noyau Linux est limité par le bac à sable d'application.

Figure 1 : Pile logicielle Android

Figure 1. Pile logicielle Android

Les principaux blocs de construction de la plate-forme Android sont les suivants :

  • Matériel de l'appareil : Android fonctionne sur un large éventail de configurations matérielles y compris les téléphones mobiles, les tablettes, les montres, les automobiles, les téléviseurs connectés, les boîtiers de jeu OTT et les boîtiers décodeurs. Android est indépendant du processeur, mais il tire parti de certaines fonctionnalités de sécurité spécifiques au matériel, telles qu'ARM eXecute-Never.
  • Système d'exploitation Android : le système d'exploitation de base est 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.
  • Environnement d'exécution d'applications Android : les applications Android sont le plus souvent écrites dans le langage de programmation Java et s'exécutent dans l'environnement d'exécution Android (ART). Toutefois, de nombreuses applications, y compris les services et applications Android de base, 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 le bac à sable d'application. Les applications disposent d'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 pour les applications :

  • Applications préinstallées : Android inclut un ensemble d' applications préinstallées, y compris le téléphone, la messagerie, l'agenda, le navigateur Web et les contacts. Elles 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'appareils pour un appareil spécifique.
  • Applications installées par l'utilisateur : Android fournit un environnement de développement ouvert qui prend en charge toutes les applications tierces. Google Play propose aux utilisateurs des centaines de milliers d'applications.

Services de sécurité Google

Google fournit 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 le bilan de la sécurité Android en 2018.

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

  • 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 le Web. Google Play permet aux développeurs d'atteindre facilement les utilisateurs Android et les clients potentiels. Google Play fournit également des avis de la communauté, une vérification des licences d'application, 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 des mises à jour via le Web ou par voie hertzienne (OTA).
  • Services d'application : frameworks qui permettent aux applications Android d'utiliser des fonctionnalités cloud telles que la sauvegarde des données de l'application et des paramètres d'application, et la messagerie cloud-appareil (C2DM) pour la messagerie push.
  • Vérifier les applications : avertir ou bloquer automatiquement l'installation d'applications dangereuses, et analyser en continu les applications sur l'appareil, en avertissant ou en supprimant les applications dangereuses.
  • SafetyNet : système de détection d'intrusion préservant la confidentialité pour aider Google à suivre, à atténuer les menaces de sécurité connues et à identifier de nouvelles menaces de sécurité.
  • Attestation SafetyNet : 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'applications.
  • 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 sont les suivants :

  • Examen de la conception : le processus de sécurité Android commence tôt dans le 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 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 revue de 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 la 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 failles potentielles 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.
  • Open Source et examen de la communauté : AOSP permet un examen de sécurité approfondi 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, tel que 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 de réponse de sécurité complet. 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é signalés dans la base de données de bugs Android. Lorsqu'il découvre des problèmes légitimes, l'équipe Android dispose d'un processus de réponse qui permet d'atténuer rapidement les failles afin de minimiser les risques potentiels 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 d'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 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 contrôles de sécurité classiques 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) ;
  • isoler les applications du système, des autres applications et de 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 sécurisée entre processus
  • Signature d'application
  • Autorisations définies par l'application et accordées par l'utilisateur