Mot de passe

Dernière mise à jour : 24 juin 2019

Le mot de passe est un élément extrêmement sensible dans la chaîne de la sécurité. C’est le point faible le plus souvent rencontré et, forcément, le plus souvent utilisé pour les piratages et les actes malveillants. Il ne sert à rien de sécuriser sa connexion SSH si vous laissez un mot de passe faible…

On s’en débarrasse bientôt ?

Euh non. Nul ne peut prédire l’avenir, mais tout comme on nous promet depuis 30 ans des merveilles de l’intelligence artificielle, on nous annonce depuis des années la fin du mot de passe. J’attends toujours. Ca devient drôle quand on voit des articles entiers consacré au sujet, et se terminer de façon sibylline1 en disant qu’il faudra peut-être le garder en secours. On ne sait jamais, on n’est jamais trop prudent.

Pot de Masse : grands principes

Trois principes forts :

  • Tous les utilisateurs (ayant des privilèges élevés, et donc a minima le user root) doivent avoir un mot de passe fort.
  • Aucun utilisateur ne doit pouvoir se connecter au système sans mot de passe, et encore une fois l’idéal est que tout utilisateur ait un mot de passe fort.
  • Un mot de passe doit rester secret.

Inutile de compter sur la biométrie pour remplacer les mots de passe ; quand à une alternative sérieuse et crédible, je n’en connais pas aujourd’hui.

Autre recommandation très utile : utiliser un gestionnaire de mots de passe (de codes secrets) éprouvé et réputé, comme KeePass.

C’est quoi un mot de passe fort ?

C’est un mot de passe difficile à trouver. Mais encore ?

  • Un mot de passe ayant au moins 8 caractères de long (c’est un minimum), voire plus ;
  • Il ne doit pas contenir de mot du dictionnaire, de nom propre ou facile à deviner ;
  • Il doit contenir des caractères, des chiffres, de majuscules, des minuscules ;
  • Il faut utiliser des caractères spéciaux si c’est possible (genre * ! ; ? _ ç ou ce que vous voulez) ;
  • Ne doit avoir aucun rapport avec le site, avec l’auteur du site, etc ; par exemple, n’utilisez pas le nom de votre chat ou chien, votre date de naissance, votre surnom ;

Exemple de bon mot de passe : Zs01_A!rt

Exemple de mauvais mot de passe : sitejean, 23051991 (ma date de naissance), motdepassesecure, adminpwd, …

Ça n’est pas parce que le mot de passe est long que la protection est assurée : il faut à la fois une certaine longueur mais il faut aussi de la complexité. Mine de rien, ça suffit à se protéger d’une bonne partie des attaques sans trop se casser la tête. Ça vaut le coup de faire ce petit effort, non ?

Faut-il changer régulièrement son mot de passe ?

Pas si évident que ça. Par exemple, si vous êtes au bureau et que la politique de sécurité de votre entreprise vous oblige à changer régulièrement votre mot de passe, on induit un risque dérivé : celui que vous écriviez votre mot de passe sur un bout de papier (car vous finissez par oublier votre mot de passe tellement vous le changez souvent) ; même rangé dans un tiroir, l’accès à ce précieux sésame restera d’une facilité infinie. Donc il vaut parfois mieux un bon mot de passe, respectant les principes ci-dessus, et qui n’apparaisse que dans votre tête !

Idéalement, il ne faut changer son mot de passe que s’il a été compromis, ou si on suspecte qu’il a été compromis2, mais on ne le sait pas toujours.

Comment savoir si mon mot de passe est compromis ?

Bêtement : s’il est dans le top 25 des mots de passe les plus utilisés, laissez tomber. Sinon, un site tente d’agréger tous les mots de passe issus de fuites de données connues (cf ci-dessous), et s’il est impossible que le site soit exhaustif, on peut être sûr que si son mot de passe y figure, c’est mort…

Une initiative intéressante

Troy Hunt a eu l’idée de compiler un maximum de mots de passe ayant été exfiltré au cours du temps3, en les regroupant dans une base unique. Ainsi, il est facile de savoir si son mot de passe est à risque, car s’il est apparu quelque part, il y a fort à parier qu’il sera testé en priorité par des pirates.

Un outil4 exploite également cette base : 1password. Je ne connais pas la qualité de cet outil, mais ça peut être également utile.

Comment retenir un mot de passe complexe ?

En ne le changeant que rarement (cf paragraphe précédent, en respectant les restrictions d’usage), ou en le construisant selon une méthode souvent recommandée : chaque caractère est l’initiale des mots d’une phrase.

Exemple 1 : MFp?KilB2 (traduction : Mon Film préféré ? Kill Bill 2)

Exemple 2 : g1so210L (traduction façon SMS : j’ai un seau de 10 litres)

Après il faut jouer avec les majuscules/minuscules, etc. A vous de voir si ça peut vous faciliter la vie. Moi j’avoue ne pas m’en servir, mais l’essentiel est de trouver ce qui vous convient le mieux.

Le fameux mot de passe par défaut

  • https://news.sophos.com/fr-fr/2018/03/29/mots-de-passe-par-defaut-objets-connectes-sur-google/

Au sujet des attaques

Quelques attaque amusantes

  • L’usage de la caméra intégrée aux PC portables pour regarder votre frappe clavier ;
  • Les keyloggers (enregistreurs de frappe) ;
  • Plus rigolo : l’analyse de nos traces thermiques. Pas forcément très fiable, mais peut être réalisée sans accès logique à la machine, ni accès physique direct, ni même être réalisée exactement au moment de la frappe : il suffit d’une caméra thermique. Cependant, les scénarios d’attaque sont limités.

Quelques types d’attaque

  • L’attaque par force brute consiste à tester une grande quantité de mot de passe sur un même compte. Elle est facile à détecter et à contenir (en limitant le nombre de tentatives dans un laps de temps donné), à condition d’y penser ! Pour éviter la détection, certains utilisent des botnets pour répartir les tentatives dans le temps et sur différentes IP, afin de brouiller les détections5.
  • Le credential stuffing est la réutilisation (souvent automatisée) d’identifiants valides sur une multitude de sites, en partant du principe que les utilisateurs réutilisent souvent leurs mots de passe…
  • Password spraying, ou pulvérisation de mot de passe (traduction ANSSI), qui consiste à essayer quelques mots de passe communs sur une grande quantité de comptes.
  • Le shoulder surfing est l’observation directe par l’attaquant du mot de passe, en regardant ce que fait l’utilisateur (par dessus son épaule notamment).

Recommandations

Le groupe Gartner recommandait les huit pratiques suivantes (avec mes commentaires) :

  1. Mettez en place un système de blocage automatique des sessions. La session est bloquée soit après une période d’inactivité d’une durée définie, soit lorsque le « token » d’identification de l’utilisateur s’éloigne du poste de travail. C’est souvent une règle de base du système d’exploitation ; cela peut également être complété par certains outils.
  2. Utilisez un système de blocage en cas de tentatives d’accès répétées avec des mots de passe erronés. Le mieux est de mettre en place un blocage temporisé, qui présente l’avantage d’être plus robuste en cas d’attaques visant à bloquer les comptes utilisateurs (attaque équivalente à un déni de service). Ce travail est effectué par certains HIDS comme Ossec, dont je parle sur le site.
  3. Mettez en oeuvre une authentification forte. Les attaques automatiques simples deviennent alors inefficaces. Cela n’est hélas pas possible sur un serveur à distance dutype OVH ou Dedibox, il faut se contenter de l’authentification par mot de passe. L’authentification forte fait appel à des systèmes physiques comme des cartes générant des mots de passe périodiques.
  4. Limitez (ou au moins contrôlez) le nombre de sessions simultanées ouvertes avec un même identifiant. Idéalement, il ne devrait y avoir qu’une personne utilisant un identifiant donné, à un instant donné. Si l’on est amené à tolérer l’utilisation épisodique de sessions simultanées, il n’est tout de même pas normal d’avoir deux sessions simultanées, ouvertes sur des postes situés dans les lieux éloignés. De plus, il est possible d’identifier les comportements anormaux, comme par exemple des connexions depuis l’extérieur avec des identifiants appartenant à des gens travaillant au bureau. Cette recommandation est valable pour les postes de travail comme pour un serveur. Inconvénient : en cas d’attaque avérée, si quelqu’un se connecte en root, personne d’autre (y compris l’administrateur véritable) ! ne pourra se connecter.
  5. Rappelez toujours aux utilisateurs, au démarrage d’une session, les dates et heures de début et de fin de leur session précédente ; et apprenez-leur à contrôler la justesse de cette information. Inutile pour un serveur à distance s’il n’y a que l’administrateur qui s’y connecte.
  6. Accordez toujours, par défaut, des autorisations minimum aux acteurs. Il est plus facile d’ouvrir ensuite les droits indispensables que d’accorder des droits très larges au départ, puis de supprimer ensuite les droits inutiles. En effet, il faut se souvenir que les droits inutiles constituent autant de failles potentielles.
  7. Assurez-vous que les comptes périmés sont supprimés ou inactivés le plus vite possible. Suivez également la création d’utilisateur (Ossec le permet) : rien ne doit se faire sans l’accord de l’administrateur…
  8. Surveillez et protégez-vous contre les codes malins. En effet, les logiciels espions, notamment, sont capables de voler facilement les mots de passe. Pour cela, HIDS, pare-feu et tous les outils recommandés sur ce site.

Sources

Voir aussi

Articles connexes

Liens externes