La popularité d’Android attire de plus en plus de hackers et il ne se passe pas un jour, sans qu’une actualité ne vienne remettre en cause le modèle de sécurité mis en place par Google. Que ce soit les applications du Play Store, ou celles installées via des Markets tiers, des entreprises spécialisées en sécurité s’offusquent de voir un nombre croissant de malwares arriver sur Android.
Ici il n’est pas question de virus, mais bien de malwares, car les applications vont « voler » des données sensibles du téléphone pour ensuite les utiliser à des fins malveillantes. Vous noterez toutefois que les dégâts sont toujours limités grâce aux permissions. Elles permettent de limiter le champs d’action des applications : par exemple si elle ne demande pas l’accès Internet, elle ne pourra pas effectuer une requête distante. Les permissions sont également très utiles pour les utilisateurs qui peuvent doivent s’interroger lorsqu’ils installent une application, en parallèle des avis des autres utilisateurs. Les malwares sont donc dangereux sur Android, mais une très grande partie peuvent être détectés très simplement.
Par ailleurs, en regardant l’actu tech’ vous noterez que chaque jour ou presque de grandes entreprises se font dérober leurs données et Android n’en est pas la cause. Il en est de même pour toutes les entreprises spécialisées dans la sécurité, qui pointent souvent du doigt le secteur des ordinateurs. Android n’est peut-être pas le meilleur élève, mais l’informatique en général a toujours eu son lot de vulnérabilités. Il existe bien évidemment une solution : des logiciels bien plus sécurisés, mais derrière ces belles paroles, l’implémentation n’est pas toujours aisée. N’oublions pas non plus que le secteur des smartphones est tout récent, et offre du pain béni aux entreprises spécialisées en sécurité qui ont très souvent montré leurs limites (conflits d’intérêts, virus créés par leurs soins…).
Android a été bâti sur un modèle de sécurité solide et nous allons essayer de le démystifier (cet article essaie d’être le moins technique possible) :
Votre ordinateur : une porte ouverte
Sur votre ordinateur lorsque vous lancez une application, elle est exécutée par l’utilisateur courant. Par conséquent, si vous démarrez un jeu ou une application quelconque, vous lui donnez accès à l’ensemble de vos fichiers (et ses données potentiellement sensibles), votre historique Internet, votre bibliothèque photos et bien d’autres. Cela peut se révéler extrêmement dangereux, particulièrement chez les utilisateurs de Windows qui ont généralement les droits d’administrateur. On peut assister à un vol de données de manière extrêmement simple et transparente pour l’utilisateur.
Sur Android, l’écosystème fonctionne totalement différemment. Chaque application est lancée par un utilisateur différent, ce qui change alors drastiquement le modèle de sécurité mis en place. Android tire au maximum le modèle de sécurité utilisé dans GNU/Linux, c’est-à-dire celui des utilisateurs et des groupes.
Le modèle de sécurité de Linux
A chaque création d’un utilisateur, un userID (UID) est créé, tout comme pour les groupes avec les groups ID (GID).
Un utilisateur peut appartenir à 0 ou plusieurs groupes et un groupe peut avoir 0 ou plusieurs utilisateurs.
Une ressource (quasiment tout est fichier sur Linux) appartient à un utilisateur (généralement celui qui l’a créée) et à tout moment le propriétaire peut décider de modifier les permissions.
Plusieurs niveaux d’accès sont proposés : lecture (R) / écriture (W) / exécution (X) qui sont attribués à l’utilisateur, ou groupe, mais aussi au reste (un utilisateur qui n’appartient pas au groupe). Les trois niveaux d’accès sont indépendants les uns des autres : on peut avoir le droit d’écrire, sans la lecture, ou les deux par exemple.
Prenons deux utilisateurs A et B. A appartient au groupe G1 et B au groupe G2. Si la ressource appartient à l’utilisateur C et qu’il appartient au groupe G1, alors A aura les droits du groupe G1, tandis que B aura ceux du reste (other). Ces trois niveaux permettent ainsi d’avoir un modèle de sécurité fort, qui a fait ses preuves depuis de nombreuses années.
Le modèle de sécurité d’Android
Sur Android, ce concept est utilisé avec brio. Lorsque vous installez une application (qui n’est pas déjà présente sur le système), un nouvel userID est créé et l’application va lui être rattachée. Il en est de même pour l’ensemble des fichiers de l’applications : les images, les préférences, la base de données…, mais aussi l’accès au processus, à la mémoire et aux périphériques utilisés (GPS, Bluetooth…). Par conséquent seul cet utilisateur (et donc cette application) pourra avoir accès à ses éléments. Essayez par exemple d’ouvrir le fichier contenant les préférences depuis un navigateur de fichiers (type Astro) : vous n’y aurez pas accès, car ce n’est pas le même user ID. (Notez qu’il est possible pour un même développeur – même signature – d’avoir le même utilisateur pour ses applications, mais ce n’est pas le comportement par défaut).
Ce modèle a toutefois ses limites lorsque vous utilisez des cartes SD. En effet, il est beaucoup plus simple d’avoir accès au contenu, notamment depuis un périphérique tiers qui n’a plus connaissance des permissions. C’est pour cela, que les applications utilisent cet emplacement pour stocker des photos et des documents non sensibles, alors que les préférences, base de données… restent toujours sur la mémoire interne. C’est également l’une des raisons pour lesquelles Google ne propose plus de lecteur pour les cartes SD sur ses terminaux Nexus.
Pour ce qui est de la communication entre les processus, on retrouve le système mis en place sur le noyau Linux, qui protège même le code écrit en langage natif (pour rappel les applications Android sont codées en Java, mais du code natif en C/C++ peut lui être greffé).
Les permissions
De base une application dispose d’un accès très limité aux ressources du système. Cela permet par exemple de limiter les dégâts d’une attaque dans un navigateur par exemple, car seules les permissions demandées par le navigateur seront accessibles. Google a fait évoluer son système, car jusqu’à Android 1.5, il était par exemple possible d’écrire sur la carte SD sans en demander la permission.
Lors de l’installation d’une application l’utilisateur doit accepter entièrement les permissions demandées. Il n’est pas possible d’en sélectionner seulement certaines. De même, il est impossible de modifier ultérieurement les permissions utilisées. Si une application essaie d’utiliser des fonctions qui ne lui ont pas été accordées le système lui refusera tout simplement l’accès.
Ce système unique fait qu’Android est très innovant en la matière et va limiter les effets indésirables.
Dans un prochain article, nous vous expliquerons le rôle de chacune des permissions.
Le root : attractif, mais très (trop ?) dangereux
Sur tous les systèmes d’exploitation, il existe un super-utilisateur qui possède tous les droits. Sur les systèmes Unix, son nom est « root » (racine en anglais) et peut accéder à n’importe quelle ressource, quelle qu’en soient les permissions. Sans aucune restriction, il peut se révéler être une véritable bombe à retardement si on ne sait pas l’utiliser (un « rm -fr / » supprime par exemple tout le système de fichiers). Par conséquent, si un terminal Android n’est pas rooté lors de son achat, c’est avant tout pour protéger l’utilisateur.
Aujourd’hui de plus en plus d’utilisateurs décident de rooter leur téléphone (= obtenir les droits root), afin de débloquer certaines fonctionnalités. En voici quelques-unes :
- Supprimer les applications système (généralement les bloatwares)
- Utiliser des applications qui nécessitent des privilèges particuliers (les captures d’écran sur Android 1 et 2)
- Modifier la fréquence du processeur
- Améliorer l’autonomie en jouant sur certains paramètres
- Faire des sauvegardes et restaurations d’applications
- Changer le noyau Linux, utiliser des ROM customs
- Installer une version plus récente du système
- …
Lorsqu’on vous présente cette amélioration, on vous signale généralement deux dangers : la possibilité de bricker le téléphone (= le rendre inopérant) ou de perdre la garantie constructeur/opérateur (mais il est possible de dé-rooter).
Sauf que derrière ces dangers qui semblent pour beaucoup inoffensifs, il y en a d’autres bien plus dévastateurs. Donner les droits roots à une application, c’est lui permettre :
- D’accéder à vos données personnelles
Tout le système décrit auparavant pour limiter l’accès à la base de données et aux diverses ressources n’existe plus. Le super-utilisateur peut y avoir accès les yeux fermés. Que ce soit vos SMS, vos mails… ou votre compte en banque, il peut tout voir ! La cryptographie permet d’éviter que de telles données soient affichées en clair, mais tous les développeurs n’en font pas usage, selon le caractère de leur application.
- De modifier les permissions des applications
En étant root, le système de permissions est également mis à mal. Le super-utilisateur peut tout à fait demander de supprimer des permissions à une application. Cela semble plutôt bénéfique dans certains cas, mais le « root » peut aussi attribuer des permissions sans que vous ne vous en rendiez compte. C’est donc une arme à double tranchant qui reste la plupart du temps cachée, car à moins de vérifier par vous même le code exécuté par l’application, vous ne saurez jamais exactement son champ d’actions. Rooter son téléphone est avant tout dédié aux développeurs.
Nous allons toutefois relativiser ces propos en précisant que le système mis en place aujourd’hui demande à l’utilisateur avant d’attribuer à une application les droits de super-utilisateur.
Android 4.2 : du mieux
Voyant le nombre de malwares croître, Google a mis en place un système permettant de vérifier les applications sur le Play Store. Avant chaque publication d’une nouvelle apk, si un malware est détecté, l’application sera automatiquement supprimée. Toutefois ce système n’est pas sûr à 100% et n’est efficace que si les applications ont été téléchargées depuis la boutique de Google.
Or la force d’Android est de pouvoir installer du contenu depuis des Markets tiers (Amazon AppShop, YAAM…). Ce même système de détection de malwares est maintenant proposé directement par le système. Lors de l’installation, si Google pense que l’application est un malware, son installation sera tout simplement impossible. Si son contenu semble potentiellement dangereux, l’utilisateur en sera averti et il sera le seul juge de l’intérêt ou non de poursuivre la procédure.
Que peut-on conclure ?
Par conséquent dire qu’Android n’est pas un système sécurisé est une absurdité totale. Au contraire son système de permissions est extrêmement bien pensé et offre à l’utilisateur une vision bien plus claire des fonctions utilisées par l’application que sur n’importe quel autre système d’exploitation mobile.
Contrairement aux autres plateformes, les outils de vérifications de malwares ont leur limites et c’est à l’utilisateur de faire attention avant d’installer une application et se demander si les permissions demandées sont appropriées ou non. Pour ce qui est du root, la question reste extrêmement complexe et ne doit être utilisé que par des utilisateurs avancés.
Il reste toutefois une marge de progression, avec par exemple l’obligation pour les développeurs d’expliquer le rôle des permissions demandées (c’est ce que nous faisons par exemple avec l’application FrAndroid). Android ne pourra jamais basculer vers un modèle autoritaire comme sur l’AppStore, mais un mécanisme plus pointu de détection des malwares serait bienvenu.
Lors des rumeurs sur les fonctionnalités d’Android 4.2 (mais qui n’a finalement pas été intégré), nous parlions de la potentielle intégration de SELinux, qui permettrait d’apporter un niveau de sécurité supplémentaire. Du côté des développeurs, les mécanismes à mettre en place sont assez simples, mais encore faut-il qu’ils soient appliqués (cf vidéo à la Google I/O) !
Rendez-vous un mercredi sur deux sur Twitch, de 17h à 19h, pour suivre en direct l’émission SURVOLTÉS produite par Frandroid. Voiture électrique, vélo électrique, avis d’expert, jeux ou bien témoignages, il y en a pour tous les goûts !
Quelques remarques : - Android utilise le kernel Linux. Il reprend également des idées & principes d'UNIX. C'est pas une raison pour l'assimiler à UNIX ni à GNU/Linux. (Mac OS : Reprise de bouts de FreeBSD et NetBSD, qui ne sont pas des UNIX au sens légal du terme.) Ah, euh, aussi : Débuts du projet GNU : 1984. Débuts de Java, langage de Dalvik : 1995. Certes, ça fait bien de se réclamer de GNU, mais ce serait mieux si c'était vrai. - La plus grosse faille de sécurité, c'est l'user. Même le laptop sous OpenBSD de Schneier y est vulnérable (en supposant que Schneier ait un laptop sous OpenBSD - ceci dit, je pense qu'il n'est pas une grosse faille). Android est un système laissant la bride sur le cou à ses utilisateurs, ça paie et ça se paie. - Je n'ai plus d'androphone pour tester (Nokia 1600 power), et l'article n'en fait pas mention : existe-t-il des équivalents plus ou moins proches de sudo (attribution temporaire des droits root à une application, depuis le compte user) ? - La gestion des droits au cas par cas semble également absente. (Sous GNU/Linux, si je veux qu'une application puisse jouer des sons mais pas accéder à mon lecteur de CD, je l'ajoute au groupe audio et pas au groupe cdrom). - Dire qu'Android est un système sécurisé est aussi une absurdité. Il contient des fonctionnalités de sécurité qui sont plus efficaces que celles de certains et moins que celles d'autres. Mais tant qu'il y aura des utilisateurs, aucun système ne sera jamais vraiment sécurisé. - Crackers, pas hackers. À part ça, l'article est intéressant et a une vraie raison d'être.
+ 1000000 !!!!!!!! C'est pour ça que root aussi quand l'envie m'en prend !
Moi qui voulait Rooter mon Samsung Galaxy SII, je pense que je vais attendre une MàJ vers Jelly Bean pour le faire, en esperant plus de sécurité En tout cas merci pour l'arcticle, sa m'a appris beaucoup de chose :D
Moi qui voulait Rooter mon Samsung Galaxy SII, je pense que je vais attendre une MàJ vers Jelly Bean pour le faire. En tout cas merci pour l'arcticle, sa m'a appris beaucoup de chose :D
"Ce modèle a toutefois ses limites lorsque vous utilisez des cartes SD. " formatée en Vfat ... Formaté en ext2/3/4, alors la gestion des droits (la sécurité) y est conservée ... Accessoirement vous pourrez demander à M$ le remboursement de la licence Vfat de votre carte SD ...
Ha? Parce que tu es expert toi? Je travaille aussi en IT , et ne suis plus étudiant, et même si cet article a pour objet une vulgarisation, j'aimerais que tu sois clair sur les "raccourcis" qui font de la désinformation !! Au moins, il essaye d'expliquer une certain nombre de concept là ou tu ne te fend que d'une attaque personelle vraiment minable !! Quand on a rien à dire, c'est toujours la même chose, on s'attaque alors facilement à une prétendu "affiliation" de la personne !! Bref, montre nous que tu t'y connais !! Parce qu'à ce train là, il est aussi facile pour moi de me faire passer pour un pilote de l'air....
Sur Android 4.2 il y a le multi-utilisateur, je suppose et j'espère que ça permet d'avoir accès au Root à volonté mais d'être principalememt en "simple" utilisateur.
pas convaincu ....
edouard n'est pas un expert en sécurité, juste un petit étudiant en IT.Beaucoup trop d'affirmation et de bullshit dans son article. On dirait qu'il a (l'article) pour seul but de rassurer les troupes, quitte à faire des raccourcis ou de la désinformation. N'importe quel personne bien informé te le dira....
Rooter son téléphone permet de sécuriser son téléphone en ajoutant un firewall
Oui, c'est le gros défaut d'Android. Tu acceptes toutes les autorisations ou tu n'installes pas les applications. Pourquoi ne pas laisser le choix à l'utilisateur pour chaque droit individuel(ou du moins les plus importants) ? On laisse un bouton "tout accepter" pour ceux qui ne lisent pas les autorisations.
Ces permissions m'ont toujours fait peur, tout comme les jeux débile sur facebook. je suis peut être parano, mais je me demande toujours qui les fabrique (agence interim ou autre, pour connaitre tes petits secrets ?)
excellent article, une bonne vulgarisation qui permet à des non initiés comme moi de bien comprendre les enjeux. merci! <i>-------<a href="https://play.google.com/store/apps/details?id=com.frandroid.app">Envoyé depuis l'application FrAndroid pour tablette</a></i>
Peut-être qu'il a le bras court ! -----> []
Linux : Linux Is Not UniX :) Comme GNU
qui est en lui même un systême d'autorisation, donc je ne vois pas trop !!! Est-de à dire qu'Android a inventé une interface ou un usage qui permet de gérer ça de manière transparente (les groupes etc... à la osx...) mouai, pas sûr que ce soit innovant mais bon - et j'ai beau relire l'article, je ne vois pas où le "fait qu’Android soit très innovant en la matière" !!! D'ailleurs, le systême d'autorisation d'Unix est très fruste et loin d'être la panacée ! et peut vite être pénible d'usage ! mais à l'avantage d'être basique donc relativement sûr ! et demande beaucoup d'organisation méticuleuse.
surtout que sur android, t'as souvent une liste d'autorisation aussi longue que ton bras.
Si seulement les constructeurs n'installaient pas d'office des cochonneries style Facebook, Twitter, Google+ & Cie, on ne retrouverait pas avec la quasi obligation de devoir rooter son tél pour pouvoir s'en débarrasser !<i>-------<a href="https://play.google.com/store/apps/details?id=com.frandroid.app">Envoyé depuis l'application FrAndroid pour smartphone</a></i>
si toi ça ne te dérange pas, le principe même doit te déranger. En effet même si tu juge que TOUT ce qu'il y'a sur ton tel n'est pas sensible, le fait qu'il puisse être accessible doit être un problème pour toi pour 3 raisons: -tu seras peut être amené a changer d'avis quand au contenu de ton tel (ajout de cb, paiement internet, contenu sensible voire confidentiel, nouvelle fonctionnalité que tu ne connais pas et qui peut t'amener découvrir de nouveaux besoins...) -comme dit plus haut: si pour toi ce n'est pas un problème ca l'est surement pour d'autres, Android regroupant une communauté il faut essayer de voir plus loin que ton nombril -question de principe pourquoi laisser une porte ouverte s'il elle peut etre fermé? c'est pareil pour le tel. sécuriser le téléphone est toujours mieux. tu dis dans le 1er com: "c'est d'avoir des pub ciblé". la sécurité ne se résume pas à avoir des pub ciblé ou non (si seulement ça l’était...). ça te dit d'avoir un malware qui envoie des sms surtaxé? je pense pas a moins que tu sois SM
Je parle du système de permissions. Android étant basé sur Unix (c'est juste écrit dans l'article mais bon...), il ne peut pas inventer ce sur quoi il est basé ;)
Gros lol !! tu crois vraiment que le vol de donnée personnelle, c'est pour rechercher les criminels ?? Les données personnelles, c'est une mine d'or qui a fait la fortune de facebook, google et autres. C'est d'ailleurs une des principales raisons de la création d'Android.
"il n’est pas question de virus, mais bien de malwares, car les applications vont « voler » des données" Un virus est un malware. Un logiciel espion est un malware spécifique qui porte le nom de spyware.
CyanogenMod est open-source (à part quelques blobs dans le noyau Linux et d'autres spécifiques à CyanogenMod). S'il y a des backdoors, il y a de fortes chances pour qu'elles soient découvertes. De toute façon, l'autre choix c'est les ROM de base, dont on ne connaît presque rien du code source (même s'il dérive d'Android stock)...
voila je suis bien d'accord avec Dahevos, tous mes programmes qui ont besoin de l'acces root en font une demande par le biais de superuser sur lequel je ne coche jamais la case memoriser. De plus avec toutes les applis qui utilisent de la pub pour se financer ca devient TRES TRES dur de trouver une appli qui n'ai pas l'acces internet dans ses permissions. Enfin quand au backdoor, meme pas besoin d'aller si loin je rappelle que il y a eu l'affaire QI(je crois me souviens plus trop du nom) qui recoltait nos donnees pour le comtpe des operateurs...
Pour l'instant c'est juste pour de la pub... Avec la masse d'infos que Google obtient sur ses utilisateurs il ne faudrait que ca tombe entre de mauvaises mains.
"son système de permissions offre à l’utilisateur une vision bien plus claire des fonctions utilisées par l’application que sur n’importe quel autre système d’exploitation mobile." Pas d'accords! iOs est en avance sur ce point puisque que l'on peut choisir ce à quoi une application peut avoir accès: contacts, agenda, GPS, centre de notifications, photos, etc... Par défaut une application n'a aucun droit d'accès et l'utilisateur est consulté pour les autoriser. C'est très bien de savoir ce à quoi une app va avoir accès. C'est encore mieux de pouvoir choisir.
Dans le temps, on disait que le problème était entre la chaise et le clavier. Plus de chaise, plus de clavier, mais le problème est toujours le même...
Merci pour cet article intéressant. Je me disais bien aussi que c'était un peu de l'inconscience de rooter un appareil où tournent des applis qu'on ne maitrise pas. Il me semble que sur BlackBerry par contre on peut sélectionner les permissions une par une.
"Ce système unique fait qu’Android est très innovant en la matière et va limiter les effets indésirables." Là vous me faîtes bien rire, on croirait que ce système a été inventé par Android alors que ça fait plus de 30 que ça fonctionne ainsi... c'est la base des systême Unix (dont fait partie d'ailleurs osX et iOs !!!). La seule différence c'est qu'Apple ne donne pas de droits root à l'utilisateur sur iOs et sur OsX, faut le vouloir pour être root ! Alors que jusqu'à Wibndows 7 (ou vista ?), l'utilisateur était par défaut admin d'ou la palanquée de virus etc
Je n'ai pas de CB, problème réglé :) Apres c'est vrai que je parle pour moi, mais certain psychote même a l'idée que l'on puisse savoir qu'ils ont mangé un petit pain au déjeuné. Faut éviter la paranoïa quand même ;)
Donc tu t'en fous de me donner ton numéro de CB alors? On pourra bien cibler quelque chose avec ça...
Oui ben y'a des gens comme moi, qui ont tué personne non plus et qui s'en foutent pas. Désolé. Et puis on parle pas du pub ciblé ici (cf le passage sur les SMS, carnet adresse et comptes bancaire)
A vrai dire, je ne sais pas si SELinux améliorerait vraiment la sécurité. Du peu que je connais SELinux, il me semble que cette technologie ne permettrait pas d'apporter plus que ce que la gestion des permissions d'Android permet. Je vois plus SELinux utile sur un véritable système linux, où les applications sont plus variées, peuvent déclencher des appels systèmes et ne sont pas sandboxées. Mais je peux me tromper.
Y'a aussi des gens, comme moi qui s'en foutent qu'on leur vole des données personnelles ... Apres tout, je n'ai tué personne, et si la seul conséquence, c'est d'avoir des pub ciblé, je prends le risque
On essaye de redorer le blason en bon fanboy demago ? ...
C'est pourquoi il existe des applications, généralement incluse de base dans les CM par exemple, permettant de demander une autorisation quand une application veut utiliser un droit ROOT (un peu comme l'UAC de windows Vista/7). Maintenant, le danger se trouve peut être dans la CM elle même : c'est du code modifié et par conséquent des backdoors peuvent être présente même si le risque semble limité (mais quand je vois des gens installer des versions modifiés de grand inconnu sur leur portable, ça me fait froid dans le dos pour elle !)
"montré leurs limites (conflits d’intérêts, virus créés par leurs soins…)" un exemple de virus créé par eux?
Ce contenu est bloqué car vous n'avez pas accepté les cookies et autres traceurs. Ce contenu est fourni par Disqus.
Pour pouvoir le visualiser, vous devez accepter l'usage étant opéré par Disqus avec vos données qui pourront être utilisées pour les finalités suivantes : vous permettre de visualiser et de partager des contenus avec des médias sociaux, favoriser le développement et l'amélioration des produits d'Humanoid et de ses partenaires, vous afficher des publicités personnalisées par rapport à votre profil et activité, vous définir un profil publicitaire personnalisé, mesurer la performance des publicités et du contenu de ce site et mesurer l'audience de ce site (en savoir plus)
En cliquant sur « J’accepte tout », vous consentez aux finalités susmentionnées pour l’ensemble des cookies et autres traceurs déposés par Humanoid et ses partenaires.
Vous gardez la possibilité de retirer votre consentement à tout moment. Pour plus d’informations, nous vous invitons à prendre connaissance de notre Politique cookies.
Gérer mes choix