Téléphone, sécurité et mise à jour. C’est le bordel…

Mon téléphone actuel est un Xperia Z1 de marque Sony. Première apparition sur le marché en 2013, j’utilise le mien depuis presque trois années, autant dire une éternité pour un téléphone « moderne ». J’ai arrêté les téléphones vendus par les opérateurs depuis un bout de temps : rien à cirer de la surcouche opérateur ajoutant son lot d’applications inutiles et difficiles, voir impossible à désinstaller. Dans le cas de mon Z1, nous étions donc sur un téléphone constructeur, que je n’ai pas tardé à rooter, pour y faire tourner une ROM alternative, en l’occurrence CyanogenMod en version Nightly et en partie libérée de Google avec freecygn.
Que dire de plus si ce n’est que, pour le moment, il fonctionne parfaitement. Mais, …

Car il y a bien un mais. Le constructeur a arrêté les mises à jour d’Android à la version 5.0.2 en juin 2015 soit à peine plus de 2 ans après la sortie du téléphone. Au revoir mise à jour de sécurité via le canal officiel.  A cette époque, je faisais encore le malin puisque je venais de mettre à jour Cyanogen vers sa version 12-1 soit un Android 5.1.1. C’est ici que s’arrête l’histoire pour les mises à jour. Quelques commits ont eu lieu sur une branche cm-13.0 du dépôt Git, mais pas de builds officiels. Et cela ne risque pas de s’améliorer puisque CyanogenMod a cessé d’exister en décembre 2016. La communauté a repris le projet sous le nom LineageOS, mais l’âge du téléphone n’y changera rien, il y a peu de chance que j’obtienne un binaire pour mettre à jour ou remplacer mon système vers une version récente d’Android.

En parallèle, de nombreuses failles qui se sont succédées, surtout pour 2016, parmi lesquelles de nombreuses failles critiques. Youpi, mon téléphone est donc tout troué du point de vue de la sécurité. Du côté d’Android, il faut noter que nous sommes face à un système qui se ferme de plus en plus. L’article The proprietarization of android google play services and apps nous apprend par exemple que de nombreuses fonctionnalités de base, sont progressivement déplacées du système en lui-même vers le Google Play Services. Il devient alors toujours plus difficile de faire fonctionner des applications sans ce composant, si on a fait le choix de s’en passer, ou si le système ne l’intègre pas (Jolla Sailfish, …). Une alternative semble toutefois se dessiner avec le projet microG.

Bref, je n’ai pas envie d’acheter un nouveau téléphone au prix d’un ordinateur, alors que mon téléphone actuel continue de fonctionner. Du côté sécurité, Apple ne semble pas s’en tirer trop mal, mais les prix sont prohibitifs et je reste réfractaire à l’environnement IOS qui vient avec.

Quelles alternatives alors ?

  • Qu’on ne me parle pas de Windows Phone. Ça ne me tente pas du tout. Les ajouts de type surveillance de l’utilisateur me disent de rester loin de la plateforme mobile de Microsoft en tant qu’utilisateur.
  • Un téléphone chinois pour moins de 100E ? Pourquoi pas, mais à condition d’être certain qu’il n’y ai pas de backdoor. Par ailleurs, le problème des mises à jour n’arrivant plus risque de rester le même et on se retrouve donc à jeter un appareil fonctionnel pour faire tourner la machine économique. On garde donc dans un coin l’idée du téléphone chinois de transition à prix réduit; avec le moins possible de Google dedans ou en remettant une custom rom directement.
  • Le Neo900 encore en cours d’élaboration. Principe très attractif car séparation matérielle du modem et du CPU, l’alimentation du modem pouvant être désactivée (si j’ai bien suivi). Relativement inaccessible de par son prix (Environ 990E , même si réparti sur plusieurs années, cela pourrait se justifier). OS disponible relativement flou pour l’instant. Quelles possibilités ?
  • Dans la même idée, le GTA04.
  • Jolla. Les infographies semblaient proposer quelque chose d’un peu nouveau. Ils se sont plantés avec les tablettes, donc ils se concentrent sur le soft. Une base Linux. Plus de stock de téléphone au moment où j’écris ces lignes. Une entreprise indienne a produit quelques téléphone embarquant le système d’exploitation Jolla pour le marché indien. La poste Russe a annoncé vouloir acquérir des téléphones tournant sous Sailfish OS.
  • Ubuntu Phone. Pas vraiment de stock.
  • Une Fairphone ? Un téléphone plus « éthique » dans ses choix, pourquoi pas, mais le problème de version reste le même. Ici, du Android 5.1. Pour le prix, compter au moins 500E.
  • Construire sa propre ROM en se basant sur AOSP et sur la documentation Sony. Cela semble plutôt bien expliqué et cela me permettrait de mettre en application ce que j’avais eu l’occasion d’apprendre en cours.

Bref, beaucoup de solutions envisageables. Et pourtant, il n’y en a pas une qui me satisfait plus que les autres. D’ailleurs, plus j’y pense et et plus l’idée de mettre les mains dans le cambouis m’attire. Je vois d’ici les heures de travail pour préparer l’environnement de développement, adapter et compiler les sources, puis tester. Le résultat est incertain, l’échec possible, mais voyons le bon côté des choses, la documentation du constructeur semble plutôt complète, il existe quelques dépôts libres sur Github et je ne pars pas de zéro puisque j’ai eu la chance de suivre un cours sur le sujet durant mes études d’ingénieur (LO52 – Merci Fabien !). J’ai donc commencé à lire la documentation et à parcourir les forums, notamment XDA pour mon modèle de téléphone, et ce qu’on peut y lire a de quoi refroidir. A priori, en passant à Android 7, il y a un risque non nul de se retrouver avec un port micro-usb ne rechargeant plus la batterie du téléphone, ce qui est quand même un inconvénient majeur. Par ailleurs, ce qui m’ennuie le plus, c’est d’être obligé de tester directement sur le téléphone que j’utilise quotidiennement. L’idéal serait de mettre la main sur un deuxième exemplaire du téléphone à peu près en état de marche afin de disposer d’une plateforme de test.

Finalement, le problème est intrinsèquement lié au fonctionnement actuel de notre société, basée sur une consommation de masse permanente. Dans ce contexte, un constructeur renouvelle complètement sa gamme en 2 à 3 ans. Au revoir support sur les anciens modèles, les équipes sont assignées à la maintenance de la gamme en cours. Obsolescence par le logiciel donc, le matériel évoluant assez peu, mise à part les ajouts de RAM, puissance de calcul ou nombre de pixel de l’appareil photo. Tout cela pour vider la batterie plus rapidement, bien évidemment.

Pour ma part, je vais donc garder mon téléphone en Android 5.1 pour l’instant et voir comment les choses évoluent.

All your password are belong to us

Ou pourquoi un mot de passe se doit d’avoir une taille minimum et d’éviter de suivre un motif particulier.

Comme vous le savez certainement, il n’est pas toujours aisé, pour un hacker ayant découvert une faille de sécurité dans un système informatique, de contacter les responsables du système pour le leur signaler. Certaines entreprises, la première me venant à l’esprit étant Google, prennent facilement en compte les alertes (il me semble). Dans d’autres cas, le simple fait de signaler la faille vous assimile à un pirate…

Sur cette petite introduction, je vais maintenant revenir sur une situation à laquelle j’ai été confronté. Pas de faille de sécurité à proprement parler, mais un constat sur la politique de création et d’utilisation des mots de passe d’une plate-forme. Penchons-nous donc sur le problème.

La plate-forme en question n’héberge pas de données personnelles sensibles à proprement parler, pas de numéro de carte de crédit, pas d’adresse. Elle propose néanmoins un compte pour l’utilisateur qui contient donc un minimum d’informations le concernant: ses noms et prénoms notamment. Venons en au sujet qui fâche: le mot de passe d’accès à l’espace utilisateur. Premièrement, il n’est pas possible de le modifier via l’interface. Deuxièmement, et c’est là que certains des lecteurs vont commencer à s’étrangler. Le mot de passe n’est composé que de 5 caractères.

Regardons le nombre de mot de passe différents qu’il est possible d’obtenir si on considère que le mot de passe est généré avec au choix:
* les lettres de l’alphabet latin en minuscule ou en majuscule (52 possibilités).
* les chiffres (10 possibilités).
* les caractères spéciaux comme @ / [ {  (34 possibilités environ).
En résumé, pour chaque caractère: 52 + 10 + 34 = 96 possibilités.
Ce qui nous donne donc 96 *96 *96 *96 *96 = 96^5 = 8 153 726 976, un peu plus de 8 milliard de mot de passe différents. C’est peu mais ça reste beaucoup plus élevé que le nombre qui va suivre.

En effet, le massacre n’est pas fini… les mots de passe suivent un motif particulier. Ils sont constitués de l’année de naissance de l’utilisateur avec la première lettre de son nom. En résumé, une lettre et un nombre à 4 chiffres, 10 * 10 * 10 * 10 * 26 soit 260 000 possibilités. Nous sommes loin des 8 milliard initiaux et ça commence à faire peur.

Ce nombre peut encore être réduit, puisqu’on parle d’année de naissance. En considérant un intervalle simple d’une centaine d’année, on est presque sûr d’englober tous les cas possible, à l’exception des personnes plus que centenaire. En définitive, on se retrouve avec grand maximum 100 * 26 = 2 600 mots de passe différents ce qui est tout simplement ridicule.

Alors évidemment, on pourrait me faire remarquer qu’il faudrait connaître l’identifiant du compte pour que cela deviennent dangereux. Effectivement, et dans notre cas, oh malheur! L’identifiant est un nombre à 9 chiffres. A mon sens, la sécurité est insuffisante sur cette plate-forme, à cause d’une politique de génération des mots de passe défectueuse.

Imaginons un instant que l’on puisse tester un mot de passe par seconde… Vous voyez où je veux en venir n’est-ce pas? En moins d’une heure, toutes les possibilités pourraient être essayer. Cela prendrait seulement 43 minutes et 20 secondes pour être précis.

Si j’écris tout cela, c’est pour tenter de montrer combien un mot de passe qui suit un même motif pour tous les utilisateurs est un mauvaise chose et encore plus lorsque la génération se base sur des données personnelles comme la date de naissance. Je peux comprendre une partie des choix qui ont pu mener à une telle situation: facilité de mémorisation pour les utilisateurs, inutilité d’un système de récupération de mot de passe puisque le motif est connu de tous, place réduite en base de donnée. Quand bien même, tous ces arguments me semblent insuffisants pour justifier une telle politique de sécurité, d’autant plus lorsqu’on manipule un minimum de données personnelles.

Sécurité Informatique: Intro et Théorie

Principes fondamentaux

La sécurité informatique est un ensemble de moyens techniques, juridiques, organisationnels et humains pour garantir la sécurité des systèmes d’information (SI). Les critères de la sécurité des SI sont :

  • La disponibilité : Consiste à assurer l’accessibilité de la ressource informatique (utilisable en un temps de réponse acceptable) et la possibilité de mener à terme une session de travail.
  • L’intégrité : Consiste à pouvoir confirmer que les données, les traitements et les serveurs n’ont pas été altérés, modifiés ou détruits de façon intentionnelle ou accidentelle.
  • La confidentialité : Consiste en le maintien du secret des informations, à savoir que l’information est seulement accessible à ceux qui ont droits.

Remarque :

Bien que la sécurité des SI repose sur ces trois critères, le poids donné à chaque critère dépend de l’institution.

Exemple :

Banque → Intégrité

Militaire → Confidentialité

Fournisseur d’accès internet → Disponibilité

 

Deux critères s’ajoutent aux trois premiers :

  • Traçabilité : Consiste à s’assurer qu’un événement a eu lieu et que seuls les entités identifiées sont à l’origine de l’événement. On parle alors de : authentification, non-reproduction, compatibilité, journalisation.
  • Auditabilité : Consiste en la capacité du système à garantir la présence des informations nécessaires à une analyse ultérieure.

 

Périmètre de sécurité 

La sécurité des SI se décline en plusieurs périmètres de sécurité. Nous parlerons donc de :

  • Sécurité physique : Elle concerne l’environnement dans lequel se situent les systèmes et leurs moyens de maîtrise.
  • Sécurité de l’exploitation : Concerne la grande partie des aspects organisationnels, de gestion et de surveillance, qui touchent au bon fonctionnement des SI.
  • Sécurité logique : Elle concerne l’ensemble des mécanismes de sécurité par logiciel.
  • Sécurité applicative : Elle concerne la sécurité des applications installées ou en phase de réalisation.

On peut ajouter la sécurité des télécommunications et la sécurité juridique.

Exemple :

Programmer proprement ->Sécurité applicative

Configuration d’un pare-feu ->Sécurité des télécommunications

Création de configuration et des mises à jour ->Sécurité de l’exploitation

Installation d’antivirus ->Sécurité logique

Protection d’accès ( porte à code) ->Sécurité physique

Analyse des logs ->Sécurité de l’exploitation

Redondance du matériel ->Sécurité physique

 

Les 7 principes de base de sécurité

  1. Moindre privilège : Ce principe stipule que chaque utilisateur et chaque module d’un système ne doit posséder que les droits minimaux pour effectuer ses tâches.
  2. Goulet d’étranglement : Ce principe consiste à éviter tout moyen possible de contourner les points d’accessibilité.
  3. Défense en profondeur : Elle est réalisée en utilisant plusieurs mécanismes de protection redondants.
  4. Maillon le plus faible : Un système de protection n’est jamais plus efficace que son élément le plus faible.
  5. Déni par défaut : Consiste de partir du principe qui consiste à tout interdire sauf ce qui est explicitement permis.
  6. Simplicité : Plus le système de protection est simple, plus il a de chances d’être configuré et maintenu. Il est ainsi capable de fournir une sécurité presque sans faille car il est plus facile à documenter et à valider.
  7. Participation des utilisateurs : Un système de sécurité n’est efficace que si tous les utilisateurs adhèrent à ses principes.