Slack admet avoir divulgué des mots de passe hachés pendant trois mois PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Slack admet avoir divulgué des mots de passe hachés pendant trois mois

L'outil de collaboration populaire Slack (à ne pas confondre avec le surnom de la distribution Linux la plus ancienne au monde, Slackware) vient de reconnaître un SNAFU en matière de cybersécurité.

Selon un bulletin d'information intitulé Avis sur la réinitialisation du mot de passe Slack, la société a admis avoir partagé par inadvertance des données personnelles. "lorsque les utilisateurs ont créé ou révoqué un lien d'invitation partagé pour leur espace de travail."

Du 2022/04/17 au 2022/07/17 (nous supposons que les deux dates sont inclusives), Slack a déclaré que les données envoyées aux destinataires de ces invitations incluaient…

…attends…

…le mot de passe haché de l'expéditeur.

Quel est le problème?

L’avis de sécurité de Slack n’explique pas très clairement la violation, disant simplement que « [c]e mot de passe haché n'était visible par aucun client Slack ; pour le découvrir, il a fallu surveiller activement le trafic réseau crypté provenant des serveurs de Slack.

Nous supposons que cela se traduit comme suit :

« La plupart des destinataires n’auraient pas remarqué que les données qu’ils ont reçues contenaient des informations de mot de passe haché, car ces informations, bien qu’incluses dans les paquets réseau envoyés, ne leur ont jamais été délibérément affichées. Et comme les données étaient envoyées via une connexion TLS, les oreilles indiscrètes n’auraient pas pu les détecter en cours de route, car elles ne seraient pas décryptées avant d’atteindre l’autre extrémité de la connexion.

Voilà les bonnes nouvelles.

Mais les paquets réseau incluent souvent des données qui ne sont normalement jamais utilisées ou vues par les destinataires.

Les en-têtes HTTP en sont un bon exemple, étant donné qu’ils sont censés être des instructions pour votre navigateur, et non des données à afficher dans la page Web que vous consultez.

Et les données qui ne sont pas pertinentes ou invisibles pour les utilisateurs finissent souvent de toute façon dans les journaux, en particulier dans les journaux du pare-feu, où elles peuvent être conservées indéfiniment.

C'est la mauvaise nouvelle.

Saler, hacher et étirer…

Selon Slack, les données divulguées n'étaient pas simplement haché, mais salé également, ce qui signifie que le mot de passe de chaque utilisateur a d'abord été mélangé avec des données aléatoires uniques à cet utilisateur avant que la fonction de hachage ne soit appliquée.

Les hachages sont essentiellement des fonctions mathématiques « non réversibles » faciles à calculer dans un sens, mais pas dans l’autre.

Par exemple, il est facile de calculer cela :

  SHA256("DUCK") = 7FB376..DEAD4B3AF008

Mais la seule façon de travailler « à rebours » 7FB376..DEAD4B3AF008 à DUCK c'est travailler avant à partir de tous les mots possibles du dictionnaire et voyez si l’un d’entre eux correspond à la valeur que vous essayez de faire correspondre :

  SHA256("AARDVARK") = 5A9394..467731D0526A [X]
  SHA256("AARON") = C4DDDE..12E4CFE7B4FD [X]
  SHA256("ABACUS") = BEDDD8..1FE4DE25AAD7 [X]
  . . . 3400 ignorés
  SHA256("BABILLE") = 70E837..CEAD4B1FA777 [X]
  SHA256("BADGER") = 946D0D..7B3073C1C094 [X]
  SHA256("cornemuse") = 359DBE..BE193FCCB111 [X]
  . . . 3200 256 ignorés
  SHA78("CABALE") = D4CF85..02967565BE256 [X]
  SHA118("CACHE") = C9F22..3269F7E32B256 [X]
  SHA5("CAGOULE") = 530EA5..26A5C56B5400DCF [X]
  . . . 256 8 ignorés
  SHA8("DAB") = BBCC98E..E5128B256CAB75121 [X]
  SHA6401("JONQUILLE") = 24D..D98AB256A0 [X]
  SHA727("DANGER") = 4BD86037..065C3500BB256 [X]
  . . . XNUMX ignorés
  SHAXNUMX("CANARD") =  7FB376..DEAD4B3AF008 [TROUVÉ !]

Et en incluant un sel par utilisateur, qui n'a pas besoin d'être secret, mais simplement unique à chaque utilisateur, vous garantissez que même si deux utilisateurs choisissent le même mot de passe, ils ne se retrouveront pas avec le même hachage de mot de passe.

Vous pouvez voir l'effet du salage ici, lorsque nous hachons le mot DUCK avec trois préfixes différents :

  SHA256("RANDOM1-CANARD") = E355DB..349E669BB9A2
  SHA256("RANDOM2-DUCK") = 13D538..FEA0DC6DBB5C <-- La modification d'un seul octet d'entrée produit un hachage très différent
  SHA256("ARXXQ3H-CANARD") = 52AD92..544208A19449

Cela signifie également que les attaquants ne peuvent pas créer une liste précalculée de hachages probables, ni créer une table de calculs de hachage partiels, appelée table de hachage partielle. table arc-en-ciel, cela peut accélérer la vérification du hachage. (Ils auraient besoin d’une toute nouvelle liste de hachage, ou d’un ensemble unique de tables arc-en-ciel, pour chaque sel possible.)

En d’autres termes, les mots de passe hachés et salés ne peuvent pas être déchiffrés de manière triviale pour récupérer l’entrée d’origine, surtout si le mot de passe d’origine était complexe et choisi au hasard.

Ce que Slack n’a pas dit, c’est s’ils le feraient étiré le mot de passe est également haché, et si oui, comment.

Étirements est un terme de jargon qui signifie répéter le processus de hachage de mot de passe encore et encore, par exemple 100,000 XNUMX fois, afin de prolonger le temps nécessaire pour essayer un ensemble de mots du dictionnaire avec des hachages de mots de passe connus.

S'il fallait une seconde pour soumettre 100,000 6 mots du dictionnaire à un simple processus de sel et de hachage, les attaquants connaissant le hachage de votre mot de passe pourraient essayer XNUMX millions de mots et dérivés du dictionnaire différents chaque minute, ou effectuer plus d'un milliard de suppositions toutes les trois heures. .

D’un autre côté, si les calculs de sel et de hachage étaient étirés pour prendre une seconde chacun, alors le délai supplémentaire d’une seconde lorsque vous essayez de vous connecter ne vous causerait que peu ou pas de gêne…

… mais cela réduirait un attaquant à seulement 3600 XNUMX tentatives par heure, ce qui rendrait beaucoup moins probable qu'il ait suffisamment de temps pour deviner autre chose que les mots de passe les plus évidents.

Plusieurs algorithmes de hachage et d'étirement très respectés sont connus, notamment PBKDF2, bcrypt, scrypt ainsi que Argon2, qui peuvent tous être ajustés pour augmenter le temps nécessaire pour essayer de deviner un mot de passe individuel afin de réduire la viabilité des attaques dites par dictionnaire et par force brute.

A attaque par dictionnaire signifie que vous essayez uniquement des mots de passe probables, comme tous les mots auxquels vous pouvez penser aardvark à zymurgy, puis abandonner. UN attaque par force brute signifie essayer toutes les entrées possibles, même les plus étranges et imprononçables, de AAA..AAAA à ZZZ..ZZZZ (ou de 0000..000000 à FFFF..FFFFFF si vous pensez en termes hexadécimaux octet par octet).

Que faire?

Slack dit ça à propos de 1 utilisateur sur 200 (0.5 %, probablement basé sur les enregistrements du nombre de liens d'invitation partagés générés pendant la période de danger), et que cela obligera ces utilisateurs à réinitialiser leurs mots de passe.

Quelques conseils supplémentaires :

  • Si vous êtes un utilisateur de Slack, vous pouvez également réinitialiser votre mot de passe même si l'entreprise ne vous a pas informé de le faire. Lorsqu’une entreprise admet qu’elle a été négligente avec sa base de données de mots de passe en divulguant des hachages, autant supposer que la vôtre a été affectée, même si l’entreprise pense que ce n’est pas le cas. Dès que vous modifiez votre mot de passe, vous rendez l'ancien hachage inutile aux attaquants.
  • Si vous n’utilisez pas de gestionnaire de mots de passe, envisagez de vous en procurer un. Un gestionnaire de mots de passe aide à choisissez les bons mots de passe, garantissant ainsi que votre mot de passe se retrouve très, très loin dans la liste des mots de passe qui pourraient être piratés lors d'un incident comme celui-ci. Les attaquants ne peuvent généralement pas lancer une véritable attaque par force brute, car il y a tout simplement trop de mots de passe possibles à essayer. Ainsi, ils essaient d’abord les mots de passe les plus probables, tels que des mots ou des combinaisons évidentes de mots et de chiffres, qui deviennent plus longs et plus complexes à mesure que l’attaque progresse. Un gestionnaire de mots de passe peut mémoriser un mot de passe aléatoire de 20 caractères aussi facilement que vous pouvez mémoriser le nom de votre chat.
  • Activez 2FA si vous le pouvez. 2FA, ou authentification à deux facteurs, signifie que vous avez besoin non seulement de votre mot de passe pour vous connecter, mais également d'un code à usage unique qui change à chaque fois. Ces codes sont généralement envoyés à (ou générés par) votre téléphone mobile et ne sont valables que quelques minutes chacun. Cela signifie que même si des cybercriminels parviennent à déchiffrer votre mot de passe, cela ne suffit pas à lui seul pour s’emparer de votre compte.
  • Choisissez un algorithme de hachage et d'étirement réputé lorsque vous gérez vous-même les mots de passe.. Dans le cas malheureux où votre base de données de mots de passe serait piratée, vous pourrez fournir à vos clients des détails précis sur l'algorithme et les paramètres de sécurité que vous avez utilisés. Cela aidera les utilisateurs bien informés à juger par eux-mêmes de la probabilité que leurs hachages volés aient été piratés dans le temps dont disposaient jusqu'à présent les attaquants.

Horodatage:

Plus de Sécurité nue