Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Android
  3. Sécurité et bonnes pratiques
Extrait - Android Les fondamentaux de la sécurité des smartphones et tablettes
Extraits du livre
Android Les fondamentaux de la sécurité des smartphones et tablettes
1 avis
Revenir à la page d'achat du livre

Sécurité et bonnes pratiques

Introduction

Dans ce dernier chapitre, nous allons nous concentrer sur la sécurité et les bonnes pratiques à adopter afin de limiter considérablement les risques d’attaque et d’infection par des logiciels malveillants et autre malwares (qui sont en constante augmentation ces dernières années). Quand nous parlons de bonnes pratiques, nous évoquerons également le bon sens et la logique en nous posant les bonnes questions. Nous avons vu que les systèmes Android pouvaient être vulnérables à certaines attaques représentant une menace sévère pour la vie privée, les données personnelles des utilisateurs, le système de sécurité domestique s’il est piloté par une application mobile, etc.

Ces bonnes pratiques seront applicables au système d’exploitation Android, mais également à tous les appareils mobiles. Comme nous avons pu le voir dans cet ouvrage, les appareils mobiles sont tout aussi vulnérables aux attaques que les serveurs et les ordinateurs que nous possédons, et ce peu importe le système d’exploitation. Les risques sont très nombreux et la menace peut venir n’importe quand et quand nous nous y attendons le moins. De plus en plus d’utilisateurs naviguent sur Internet grâce à leur smartphone plutôt qu’avec leur...

Comment ne pas se faire pirater, alors ?

Voilà une très bonne question qui nécessite de s’y attarder un peu. La vraie question n’est pas de savoir si nous allons nous faire pirater ou pas, mais plutôt de savoir quand. Car il est impossible de prédire si de nouvelles failles de sécurité seront découvertes à l’avenir, non seulement au niveau du code applicatif des applications, mais également au niveau du code matériel des composants internes d’Android. Les actions de l’utilisateur constituent la plus grande menace et notamment en ce qui concerne les infections par malwares et autres logiciels malveillants provoqués par un clic maladroit, une mauvaise utilisation de la plateforme, etc. La menace peut être présente également autour de nous : une personne malintentionnée ayant un accès physique à notre smartphone ou tablette peut facilement installer un logiciel d’espionnage, ce qui peut ne prendre que quelques minutes. C’est pourquoi il est indispensable de garder son smartphone à notre portée, car c’est un outil personnel et ce au même titre que notre carte d’identité, carte bancaire, etc. Nous allons donc étudier plus en détail les bonnes pratiques de sécurité, que ce soit pour le particulier ou pour le développeur qui veillera à sécuriser le code de ses applications.

1. Les bonnes pratiques, c’est logique !

Les bonnes pratiques c’est avant tout une affaire de bon sens, bon sens qui doit amener à se poser toujours les bonnes questions pour ne pas tomber dans certains pièges. Voyons cela d’un peu plus près.

1. Ne cliquez pas sur quelque chose et dont vous ne connaissez pas la source : nous ne le dirons jamais assez, la faille la plus critique d’un système d’information est l’utilisateur (qui constitue la faille humaine). Pourquoi ? Simplement parce que tous les systèmes sont conçus de manière à laisser un minimum de liberté à l’utilisateur, qui est le dernier maillon de sécurité de la chaîne. C’est nous et uniquement nous, utilisateurs, qui avons la liberté d’autoriser ou pas le loup à entrer dans la bergerie. Si vous cliquez sur un e-mail...

Notre impuissance face à certaines attaques

Malgré tous les moyens de protection existants et notre pleine conscience des risques liés à l’utilisation de l’outil numérique nous protégeant contre les attaques les plus répandues, il existe cependant des attaques contre lesquelles nous sommes totalement impuissants. Nous pouvons citer les exploits "0Day", nous exposant temporairement aux vulnérabilités le temps que nous recevions les mises à jour de sécurité (ce qui peut prendre plus ou moins de temps suivant les fournisseurs), mais pour nous la plus grande menace face à laquelle nous ne pouvons pas faire grand-chose viendrait d’ailleurs. Elle viendrait de la vente de nos données personnelles. Elle ne présente rien de dangereux en elle-même, et c’est ce qui en est fait le vrai danger.

Certaines sociétés et organismes peu scrupuleux se chargent de collecter massivement nos données personnelles pour les revendre. Et il faut savoir que si une société n’a aucun scrupule à acheter vos données, elle n’en a sans doute pas pour les vendre à des personnes peu scrupuleuses également.

Concernant les organismes qui vendent et achètent les données personnelles sans scrupules, une petite recherche sur le Web peut nous en apprendre un peu plus à leur sujet....

Sécuriser son code source

Nous avons vu dans cet ouvrage que les failles de sécurité dans les applications ne manquaient pas. Cette section concerne surtout les développeurs d’applications Android afin de les aider à appliquer les bonnes pratiques en matière de code sécurisé.

Les bonnes pratiques que nous allons proposer diminueront considérablement les risques liés au développement du code et rendront la tâche plus ardue pour l’attaquant. Nous allons nous focaliser sur les bonnes pratiques fondamentales.

Utilisez ProGuard

Cet outil est un outil en ligne de commande open source et donc totalement gratuit qui réduit, optimise et obscurcit le code Java pour le rendre illisible. Il est capable d’optimiser le bytecode ainsi que de détecter et de supprimer les instructions n’étant pas utilisées. Ainsi, si quelqu’un tente de décoder (décompiler) votre application avec des outils simples et gratuits que toute personne peut utiliser pour accéder à votre code et le voir lisiblement en clair, il sera alors impossible de comprendre le code de l’application. L’obscurcissement du code ou obfuscation de code, présente de nombreux avantages. Même si votre application présente des vulnérabilités en matière de sécurité, il sera très difficile pour les pirates informatiques de lire certains fichiers sensibles, comme par exemple le fichier AndroidManifest.xml, et ainsi tirer profit du travail que vous avez fourni pour développer votre application. Cet outil réduira également la taille de votre code, puisqu’il va supprimer automatiquement le code qui n’est pas utilisé. ProGuard est sous la licence GNU General Public License. Il est distribué dans le cadre du SDK Android et s’exécute lors de la création de l’application en mode édition. Il existe également des outils un peu plus simples à utiliser concernant l’obfuscation de code, mais ils sont payants, comme par exemple DexGuard.

Les mesures de sécurité intégrées à une application Android peuvent donc être gravement compromises si des attaquants parviennent à mettre la main sur du code source. Avant de publier votre application, il est alors...

Pour aller plus loin

Pour aller plus loin et résumer ce que nous avons couvert dans cet ouvrage (du moins le plus important), nous avons constaté que plusieurs composants Android pouvaient être source de problèmes pouvant compromettre la sécurité de nos appareils Android. Nous allons faire un petit résumé de ce que nous avons testé dans cet ouvrage et des moyens de protection fondamentaux.

1. Nous avons constaté que les récepteurs de diffusion (broadcast receivers) pouvaient causer quelques problèmes pouvant compromettre la sécurité Android si nous n’adoptons pas les bonnes pratiques de développement sécurisé, alors voyons ce que nous pouvons faire pour éviter ces problèmes. Il est important de savoir que l’accès aux récepteurs de diffusion peut être contrôlé de deux manières.

L’émetteur d’une émission Intention (Intent) peut limiter les récepteurs de diffusion pouvant la recevoir. Un récepteur de diffusion peut limiter les composants capables de lui envoyer une intention de diffusion. Ainsi, nous sommes en mesure de contrôler à la fois l’émission et la réception d’émissions.

Nous pouvons tout d’abord contrôler qui peut recevoir une émission. L’expéditeur d’une intention de diffusion peut contrôler quels récepteurs de diffusion sont en mesure de recevoir l’émission en transmettant, en plus de l’intention elle-même, une autorisation à la méthode sendBroadcast(). Seuls les récepteurs de diffusion dans les applications qui ont demandé et obtenu cette autorisation peuvent recevoir l’intention de diffusion. Comme indiqué précédemment, sendBroadcast() ne lève pas d’exception de sécurité, car les autorisations sont vérifiées lors de la livraison de l’objectif de diffusion.

Il est également recommandé de contrôler les émissions...

Conclusion

Nous avons vu dans cet ouvrage qu’il existait de nombreuses failles de sécurité.

La menace vient bien souvent des utilisateurs, mais également du développeur s’il n’applique pas les notions fondamentales du développement sécurisé. Heureusement, il existe de nombreux moyens pour se protéger contre ces différents types d’attaques, un grand nombre de choses simples à faire peut grandement diminuer les risques liés à la sécurité des appareils Android (ainsi que les autres plateformes mobiles) et de notre vie privée. Si vous appliquez les bonnes pratiques, que vous restez logique, que vous vous posez les bonnes questions et que vous utilisez votre appareil correctement sans supprimer les protections mises en place ou sans rooter votre appareil, vous limiterez grandement les risques liés à la sécurité.

Restez prudent, logique, gardez du bon sens avant de faire quoi que ce soit qui pourrait nuire à la sécurité.