Tour d’horizon de la sécurité sur Android

1
96

La popularité d’Android attire de plus en plus de pirates 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.

Sur les smartphones, les virus purs et durs sont quasi inexistants : les pirates utilisent plutôt des malwares plus “rentables” de type chevaux de Troie ou “passwords stealer” afin de dérober des données sensibles présentes sur le téléphone pour ensuite les utiliser à des fins malveillantes (fraudes, revente au marché noir, etc).

A noter un bon point por Android, les dégâts sont bien souvent limités grâce aux permissions. Elles permettent en effet 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. Par contre, cela implique que les utilisateurs les lisent attentivement afin de détecter une anomalie potentielle… Les malwares représentent donc un grand risque sur Android, mais une très grande partie de ces derniers peuvent être détectés très simplement.

Par ailleurs, certaines applications pourraient voir leur sécurité améliorée, par exemple en utilisant par défaut et systématiquement des certificats SSL signés.

Le modèle de sécurité d’Android

Lorsqu’une application est installée, 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’application : images, préférences, base de données, etc…, 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 : vous n’y aurez pas accès, car ce n’est pas le même user ID.

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 et base de données restent toujours sur la mémoire interne du téléphone. 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 ê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.

Screenshot_2012-12-15-19-37-52

Ce système unique fait qu’Android est très innovant en la matière et va limiter les effets indésirables.

Rooter son smartphone : 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, 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
  • 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 et/ou de perdre la garantie constructeur/opérateur. 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

android-42-security-verify-apps-1

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.

 

Source : Frandroid

1 COMMENTAIRE

  1. et oui c’est comme ça, plus un systéme est populaire et plus les pirates y affluent, comment pour le cas des OS pour ordinateur, windows est plus touché par les attaques que linux à cause de son succès et sa popularité

Les commentaires sont fermés.