Slack gibt zu, drei Monate lang gehashte Passwörter preisgegeben zu haben PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Slack gibt zu, drei Monate lang gehashte Passwörter preisgegeben zu haben

Das beliebte Kollaborationstool Slack (nicht zu verwechseln mit dem Spitznamen der am längsten laufenden Linux-Distribution der Welt, Slackware) hat gerade einen Cybersicherheits-SNAFU erlitten.

Laut einem Nachrichtenblatt mit dem Titel Hinweis zum Zurücksetzen von Slack-Passwörtern, gab das Unternehmen zu, dass es versehentlich zu viele personenbezogene Daten preisgegeben hatte „wenn Benutzer einen geteilten Einladungslink für ihren Workspace erstellt oder widerrufen haben.“

Von 2022-04-17 bis 2022-07-17 (wir gehen davon aus, dass beide Daten inklusive sind) sagte Slack, dass die Daten, die an die Empfänger solcher Einladungen gesendet wurden, enthalten…

…warte darauf…

…das gehashtes Passwort des Absenders.

Was ist schief gelaufen?

Der Sicherheitshinweis von Slack erklärt den Verstoß nicht sehr klar, sondern sagt nur das „[t]sein gehashtes Passwort war für keine Slack-Clients sichtbar; Um es zu entdecken, war eine aktive Überwachung des verschlüsselten Netzwerkverkehrs von den Servern von Slack erforderlich.“

Wir vermuten, dass dies wie folgt übersetzt wird:

„Die meisten Empfänger hätten nicht bemerkt, dass die empfangenen Daten gehashte Passwortinformationen enthielten, da diese Informationen, obwohl sie in den gesendeten Netzwerkpaketen enthalten waren, ihnen nie absichtlich angezeigt wurden. Und weil die Daten über eine TLS-Verbindung gesendet wurden, hätten Lauscher sie unterwegs nicht ausspionieren können, weil sie erst am anderen Ende der Verbindung entschlüsselt würden.“

Das sind die guten Nachrichten.

Aber Netzwerkpakete enthalten oft Daten, die normalerweise nie verwendet oder von Empfängern gesehen werden.

HTTP-Header sind ein gutes Beispiel dafür, da sie als Anweisungen für Ihren Browser gedacht sind und nicht als Daten, die auf der besuchten Webseite angezeigt werden sollen.

Und Daten, die für Benutzer irrelevant oder unsichtbar sind, landen oft sowieso in Protokollen, insbesondere in Firewall-Protokollen, wo sie auf unbestimmte Zeit aufbewahrt werden könnten.

Das sind die schlechten Nachrichten.

Salz, Hasch und Stretch…

Laut Slack waren die durchgesickerten Daten nicht nur gehasht, Aber gesalzen Dies bedeutet, dass das Passwort jedes Benutzers zuerst mit zufälligen Daten gemischt wurde, die für diesen Benutzer einzigartig sind, bevor die Hash-Funktion angewendet wurde.

Hashes sind im Wesentlichen „nicht umkehrbare“ mathematische Funktionen, die in einer Richtung leicht zu berechnen sind, aber nicht in der anderen.

Zum Beispiel ist es einfach zu berechnen:

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

Aber der einzige Weg, um "rückwärts" zu arbeiten 7FB376..DEAD4B3AF008 zu DUCK ist zu arbeiten vorwärts aus jedem möglichen Wort im Wörterbuch und sehen Sie, ob eines von ihnen den Wert enthält, den Sie zuzuordnen versuchen:

  SHA256("AARDVARK") = 5A9394..467731D0526A [X] SHA256("AARON") = C4DDDE..12E4CFE7B4FD [X] SHA256("ABACUS") = BEDDD8..1FE4DE25AAD7 [X] . . . 3400 übersprungen SHA256("BABBLE") = 70E837..CEAD4B1FA777 [X] SHA256("BADGER") = 946D0D..7B3073C1C094 [X] SHA256("BAGPIPE") = 359DBE..BE193FCCB111 [X] . . . 3200 übersprungen SHA256("CABAL") = D78CF4..85BE02967565 [X] SHA256("CACHE") = C118F9..22F3269E7B32 [X] SHA256("CAGOULE") = 5EA530..5A26C5B56DCF [X] . . . 5400 übersprungen SHA256("DAB") = BBCC8E..E8B98CAB5128 [X] SHA256("DAFFODIL") = 75121D..D6401AB24A98 [X] SHA256("DANGER") = 0BD727..4C86037BB065 [X] . . . 3500 übersprungen SHA256 ("DUCK") =  7FB376..DEAD4B3AF008 [GEFUNDEN!]

Und indem Sie ein Salt pro Benutzer hinzufügen, das nicht geheim sein muss, sondern nur für jeden Benutzer einzigartig ist, stellen Sie sicher, dass selbst wenn zwei Benutzer dasselbe Passwort wählen, sie nicht denselben Passwort-Hash erhalten.

Sie können die Wirkung des Salzens hier sehen, wenn wir das Wort hassen DUCK mit drei verschiedenen Präfixen:

  SHA256("RANDOM1-DUCK") = E355DB..349E669BB9A2 SHA256("RANDOM2-DUCK") = 13D538..FEA0DC6DBB5C <-- Das Ändern von nur einem Eingabebyte erzeugt einen völlig anderen Hash SHA256("ARXXQ3H-DUCK") = 52AD92. .544208A19449

Dies bedeutet auch, dass Angreifer keine vorberechnete Liste wahrscheinlicher Hashes erstellen oder eine Tabelle mit partiellen Hash-Berechnungen erstellen können, die als a bezeichnet wird Regenbogentisch, das kann die Hash-Überprüfung beschleunigen. (Sie bräuchten für jedes mögliche Salz eine brandneue Hashliste oder einen einzigartigen Satz Regenbogentabellen.)

Mit anderen Worten, gehashte und gesalzene Passwörter können nicht einfach geknackt werden, um die ursprüngliche Eingabe wiederherzustellen, insbesondere wenn das ursprüngliche Passwort komplex und zufällig ausgewählt wurde.

Was Slack nicht sagte, ist, ob sie es tun würden ausgedehnt auch die Passwort-Hashes, und wenn ja, wie.

Dehnung ist ein Fachjargon, der bedeutet, dass der Passwort-Hashing-Prozess immer wieder wiederholt wird, beispielsweise 100,000 Mal, um die Zeit zu verlängern, die zum Ausprobieren einer Reihe von Wörtern aus dem Wörterbuch gegen bekannte Passwort-Hashes benötigt wird.

Wenn es eine Sekunde dauern würde, 100,000 Wörterbuchwörter einem einfachen Salt-and-Hash-Prozess zu unterziehen, könnten Angreifer, die Ihren Passwort-Hash kennen, jede Minute 6 Millionen verschiedene Wörterbuchwörter und Ableitungen ausprobieren oder alle drei Stunden mehr als eine Milliarde Vermutungen anstellen .

Wenn andererseits die Salt-and-Hash-Berechnungen auf jeweils eine Sekunde ausgedehnt würden, würde die zusätzliche Verzögerung von einer Sekunde beim Versuch, sich anzumelden, Sie wenig oder gar nicht stören …

…aber würde einen Angreifer auf nur 3600 Versuche pro Stunde reduzieren, was es viel unwahrscheinlicher macht, dass er genug Zeit bekommt, um irgendetwas anderes als die offensichtlichsten Passwörter zu erraten.

Insbesondere sind mehrere angesehene Salt-Hash-and-Stretch-Algorithmen bekannt PBKDF2, bcrypt, scrypt und Argon2, die alle angepasst werden können, um die Zeit zu erhöhen, die zum Ausprobieren einzelner Passwörter benötigt wird, um die Lebensfähigkeit verringern von sogenannten Wörterbuch- und Brute-Force-Angriffen.

A Wörterbuch Angriff bedeutet, dass Sie nur wahrscheinliche Passwörter ausprobieren, z. B. jedes Wort, das Ihnen einfällt aardvark zu zymurgy, und dann aufgeben. EIN Brute-Force-Angriff bedeutet, jede mögliche Eingabe, auch seltsame und unaussprechliche, auszuprobieren AAA..AAAA zu ZZZ..ZZZZ (oder von 0000..000000 zu FFFF..FFFFFF wenn Sie hexadezimal Byte für Byte denken).

Was ist zu tun?

Slack sagt das ungefähr 1 von 200 seiner Benutzer (0.5 %, vermutlich basierend auf Aufzeichnungen darüber, wie viele geteilte Einladungslinks in der Gefahrenperiode generiert wurden) und dass es diese Benutzer zwingen wird, ihre Passwörter zurückzusetzen.

Einige weitere Ratschläge:

  • Wenn Sie ein Slack-Benutzer sind, können Sie Ihr Passwort genauso gut zurücksetzen, auch wenn Sie vom Unternehmen nicht dazu aufgefordert wurden. Wenn ein Unternehmen zugibt, dass es durch die Weitergabe von Hashes nachlässig mit seiner Passwort-Datenbank umgegangen ist, können Sie genauso gut davon ausgehen, dass Ihre Passwort-Datenbank betroffen war, selbst wenn das Unternehmen glaubt, dass dies nicht der Fall war. Sobald Sie Ihr Passwort ändern, machen Sie den alten Hash für Angreifer unbrauchbar.
  • Wenn Sie keinen Passwort-Manager verwenden, sollten Sie sich einen besorgen. Ein Passwort-Manager hilft dabei Wählen Sie die richtigen Passwörter, wodurch sichergestellt wird, dass Ihr Passwort sehr, sehr weit unten in der Liste der Passwörter landet, die bei einem solchen Vorfall geknackt werden könnten. Angreifer können in der Regel keine echten Brute-Force-Angriffe durchführen, da es einfach zu viele mögliche Passwörter zum Ausprobieren gibt. Also probieren sie zuerst die wahrscheinlichsten Passwörter aus, wie Wörter oder offensichtliche Wort-und-Zahlen-Kombinationen, die mit fortschreitendem Angriff länger und komplexer werden. Ein Passwort-Manager kann sich ein zufälliges 20-stelliges Passwort so leicht merken, wie Sie sich den Namen Ihrer Katze merken können.
  • Schalten Sie 2FA ein, wenn Sie können. 2FA bzw Zwei-Faktor-Authentifizierung, bedeutet, dass Sie für die Anmeldung nicht nur Ihr Passwort benötigen, sondern auch einen einmaligen Code, der sich jedes Mal ändert. Diese Codes werden normalerweise an Ihr Mobiltelefon gesendet (oder von diesem generiert) und sind jeweils nur wenige Minuten gültig. Das bedeutet, dass selbst wenn Cyberkriminelle Ihr Passwort knacken, es allein nicht ausreicht, um Ihr Konto zu übernehmen.
  • Wählen Sie einen seriösen Salt-Hash-and-Stretch-Algorithmus, wenn Sie selbst mit Passwörtern umgehen.. Für den unglücklichen Fall, dass Ihre Passwortdatenbank kompromittiert wird, können Sie Ihren Kunden genaue Angaben zu dem von Ihnen verwendeten Algorithmus und den verwendeten Sicherheitseinstellungen machen. Dies wird gut informierten Benutzern helfen, selbst zu beurteilen, wie wahrscheinlich es ist, dass ihre gestohlenen Hashes in der Zeit, die Angreifern bisher zur Verfügung stand, geknackt wurden.

Zeitstempel:

Mehr von Nackte Sicherheit