Slack geeft toe dat hij drie maanden lang gehashte wachtwoorden heeft gelekt PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Slack geeft toe drie maanden lang gehashte wachtwoorden te hebben gelekt

De populaire samenwerkingstool Slack (niet te verwarren met de bijnaam van 's werelds langstlopende Linux-distro, Slackware) is zojuist eigendom geworden van een SNAFU op het gebied van cyberbeveiliging.

Volgens een nieuwsbulletin getiteld: Kennisgeving over het opnieuw instellen van Slack-wachtwoorden, gaf het bedrijf toe dat het per ongeluk te veel persoonlijke gegevens had gedeeld "wanneer gebruikers een gedeelde uitnodigingslink voor hun werkruimte hebben gemaakt of ingetrokken."

Van 2022-04-17 tot 2022-07-17 (we gaan ervan uit dat beide datums inclusief zijn), zei Slack dat de gegevens die naar de ontvangers van dergelijke uitnodigingen werden verzonden, omvatten ...

...wacht erop ...

…de het gehashte wachtwoord van de afzender.

Wat ging er mis?

Het beveiligingsadvies van Slack legt de inbreuk niet erg duidelijk uit en zegt alleen dat: “[t]zijn gehashte wachtwoord was niet zichtbaar voor Slack-clients; om het te ontdekken, was het nodig om het versleutelde netwerkverkeer van de servers van Slack actief te monitoren.”

We vermoeden dat dit zich als volgt vertaalt:

“De meeste ontvangers zouden niet hebben opgemerkt dat de gegevens die ze ontvingen gehashte wachtwoordinformatie bevatten, omdat die informatie, hoewel opgenomen in de verzonden netwerkpakketten, nooit opzettelijk aan hen werd getoond. En omdat de gegevens via een TLS-verbinding werden verzonden, hadden afluisteraars ze onderweg niet kunnen opsnuiven, omdat ze pas ontsleuteld zouden worden als ze de andere kant van de verbinding bereikten.”

Dat is het goede nieuws.

Maar netwerkpakketten bevatten vaak gegevens die normaal nooit worden gebruikt of gezien door ontvangers.

HTTP-headers zijn hier een goed voorbeeld van, aangezien ze bedoeld zijn als instructies voor uw browser, niet als gegevens voor weergave op de webpagina die u bekijkt.

En gegevens die niet relevant of onzichtbaar zijn voor gebruikers, komen vaak toch in logboeken terecht, vooral in firewalllogboeken, waar ze voor onbepaalde tijd kunnen worden bewaard.

Dat is het slechte nieuws.

Zout, hasj en stretch...

Volgens Slack waren de gelekte gegevens niet alleen gehashte, Maar gezouten ook, wat betekent dat het wachtwoord van elke gebruiker eerst werd gemengd met willekeurige gegevens die uniek zijn voor die gebruiker voordat de hash-functie werd toegepast.

Hashes zijn in wezen "niet-omkeerbare" wiskundige functies die gemakkelijk in de ene richting kunnen worden berekend, maar niet in de andere.

Het is bijvoorbeeld eenvoudig om te berekenen dat:

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

Maar de enige manier om “achteruit” te werken vanuit 7FB376..DEAD4B3AF008 naar DUCK is om te werken forwards van elk mogelijk woord in het woordenboek en kijk of een van hen de waarde heeft die u probeert te matchen:

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

En door een salt per gebruiker op te nemen, die niet geheim hoeft te zijn, maar alleen uniek hoeft te zijn voor elke gebruiker, zorgt u ervoor dat zelfs als twee gebruikers hetzelfde wachtwoord kiezen, ze niet dezelfde wachtwoordhash krijgen.

Je kunt het effect van zouten hier zien, als we het woord hashen DUCK met drie verschillende voorvoegsels:

  SHA256("RANDOM1-DUCK") = E355DB..349E669BB9A2 SHA256("RANDOM2-DUCK") = 13D538..FEA0DC6DBB5C <-- Het veranderen van slechts één invoerbyte produceert een totaal andere hash SHA256("ARXXQ3H-DUCK") = 52AD92. .544208A19449

Dit betekent ook dat aanvallers geen vooraf berekende lijst met waarschijnlijke hashes kunnen maken, of een tabel met gedeeltelijke hash-berekeningen kunnen maken, ook wel bekend als een regenboog tafel, dat het controleren van hash kan versnellen. (Ze hebben een gloednieuwe hashlijst nodig, of een unieke set regenboogtabellen, voor elk mogelijk zout.)

Met andere woorden, gehashte en gezouten wachtwoorden kunnen niet triviaal worden gekraakt om de oorspronkelijke invoer te herstellen, vooral als het oorspronkelijke wachtwoord complex en willekeurig gekozen was.

Wat Slack niet zei, is of ze dat wel zouden doen uitgerekt de wachtwoord-hashes ook, en zo ja, hoe.

Stretching is een jargonterm die betekent dat het wachtwoord-hashproces steeds opnieuw moet worden herhaald, bijvoorbeeld 100,000 keer, om de tijd te verlengen die nodig is om een ​​aantal woordenboekwoorden uit te proberen tegen bekende wachtwoord-hashes.

Als het één seconde zou kosten om 100,000 woordenboekwoorden door een eenvoudig salt-and-hash-proces te leiden, dan zouden aanvallers die uw wachtwoordhash kennen elke minuut 6 miljoen verschillende woordenboekwoorden en afgeleiden kunnen proberen, of elke drie uur meer dan een miljard keer raden .

Aan de andere kant, als de salt-and-hash-berekeningen zo lang waren dat ze elk één seconde in beslag zouden nemen, dan zou de extra vertraging van één seconde wanneer je probeerde in te loggen weinig of geen ergernis voor je veroorzaken...

… maar zou een aanvaller terugbrengen tot slechts 3600 pogingen per uur, waardoor het veel minder waarschijnlijk is dat ze genoeg tijd zouden krijgen om iets anders te raden dan de meest voor de hand liggende wachtwoorden.

Er zijn verschillende gerespecteerde salt-hash-and-stretch-algoritmen bekend, met name: PBKDF2, bcrypt, scrypt en Argon2, die allemaal kunnen worden aangepast om de tijd te verlengen die nodig is om individuele wachtwoorden te raden om: de levensvatbaarheid verminderen van zogenaamde woordenboek- en brute force-aanvallen.

A woordenboek aanval betekent dat je alleen waarschijnlijke wachtwoorden probeert, zoals elk woord dat je kunt bedenken van aardvark naar zymurgy, en dan opgeven. EEN brute aanval betekent dat je elke mogelijke invoer probeert, zelfs rare en onuitspreekbare, van AAA..AAAA naar ZZZ..ZZZZ (of van 0000..000000 naar FFFF..FFFFFF als u in hexadecimale termen per byte denkt).

Wat te doen?

Slack zegt dat over 1 op 200 van zijn gebruikers (0.5%, vermoedelijk op basis van gegevens over het aantal gedeelde uitnodigingslinks dat in de gevarenperiode is gegenereerd), en dat het die gebruikers zal dwingen hun wachtwoord opnieuw in te stellen.

Nog wat advies:

  • Als u een Slack-gebruiker bent, kunt u net zo goed uw wachtwoord opnieuw instellen, zelfs als u niet door het bedrijf bent geïnformeerd om dit te doen. Als een bedrijf toegeeft dat het onzorgvuldig is omgegaan met zijn wachtwoorddatabase door hashes te lekken, kun je net zo goed aannemen dat het jouwe is aangetast, zelfs als het bedrijf denkt van niet. Zodra je je wachtwoord verandert, maak je de oude hash onbruikbaar voor aanvallers.
  • Als u geen wachtwoordbeheerder gebruikt, overweeg dan om er een aan te schaffen. Een wachtwoordmanager helpt om kies de juiste wachtwoorden, waardoor uw wachtwoord zeer, zeer ver in de lijst met wachtwoorden terechtkomt die bij een incident als dit kunnen worden gekraakt. Aanvallers kunnen doorgaans geen echte brute force-aanval uitvoeren, omdat er gewoon te veel mogelijke wachtwoorden zijn om uit te proberen. Ze proberen dus eerst de meest waarschijnlijke wachtwoorden, zoals woorden of voor de hand liggende woord-en-cijfercombinaties, die langer en complexer worden naarmate de aanval vordert. Een wachtwoordbeheerder kan een willekeurig wachtwoord van 20 tekens net zo gemakkelijk onthouden als de naam van uw kat.
  • Schakel 2FA in als je kunt. 2FA, of two-factor authenticatie, betekent dat je niet alleen je wachtwoord nodig hebt om in te loggen, maar ook een eenmalige code die elke keer verandert. Deze codes worden meestal verzonden naar (of gegenereerd door) uw mobiele telefoon en zijn slechts een paar minuten geldig. Dit betekent dat zelfs als cybercriminelen uw wachtwoord kraken, het alleen niet voldoende is om uw account over te nemen.
  • Kies een gerenommeerd salt-hash-and-stretch-algoritme wanneer u zelf met wachtwoorden omgaat.. In het ongelukkige geval dat uw wachtwoorddatabase wordt geschonden, kunt u uw klanten nauwkeurige details geven over het algoritme en de beveiligingsinstellingen die u hebt gebruikt. Dit zal goed geïnformeerde gebruikers helpen om zelf te beoordelen hoe waarschijnlijk het is dat hun gestolen hashes zijn gekraakt in de tijd die tot nu toe beschikbaar was voor aanvallers.

Tijdstempel:

Meer van Naakte beveiliging