Slack priznava uhajanje zgoščenih gesel za tri mesece PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Slack priznava, da je tri mesece razkrival zgoščena gesla

Popular collaboration tool Slack (not to be confused with the nickname of the world’s longest-running Linux distro, Slackware) has just owned up to a cybersecurity SNAFU.

Glede na bilten z naslovom Obvestilo o ponastavitvi gesla za Slack, je podjetje priznalo, da je nenamerno posredovalo osebne podatke "ko so uporabniki ustvarili ali preklicali skupno vabilo za svoj delovni prostor."

Od 2022-04-17 do 2022-07-17 (predvidevamo, da oba datuma vključujeta) je Slack dejal, da so podatki, poslani prejemnikom takšnih povabil, vključevali ...

…počakaj…

... zgoščeno geslo pošiljatelja.

Kaj je šlo narobe?

Slackovo varnostno svetovanje kršitve ne razloži zelo jasno, ampak samo to »[t]ovo zgoščeno geslo ni bilo vidno nobenemu odjemalcu Slack; odkritje je zahtevalo aktivno spremljanje šifriranega omrežnega prometa, ki je prihajal iz Slackovih strežnikov.«

Predvidevamo, da se to prevaja takole:

»Večina prejemnikov ne bi opazila, da podatki, ki so jih prejeli, vključujejo kakršno koli zgoščeno informacijo o geslu, ker jim te informacije, čeprav so bile vključene v poslanih omrežnih paketih, niso bile nikoli namerno prikazane. In ker so bili podatki poslani prek povezave TLS, jih prisluškovalci med potjo ne bi mogli zavohati, ker se ne bi dešifrirali, dokler ne bi dosegli drugega konca povezave.«

To je dobra novica.

Toda omrežni paketi pogosto vključujejo podatke, ki jih prejemniki običajno nikoli ne uporabljajo ali vidijo.

Glave HTTP so dober primer tega, glede na to, da so namenjene navodilom za vaš brskalnik in ne podatki za prikaz na spletni strani, ki si jo ogledujete.

Podatki, ki so uporabnikom nepomembni ali nevidni, pa se tako ali tako pogosto znajdejo v dnevnikih, zlasti v dnevnikih požarnega zidu, kjer bi se lahko hranili za nedoločen čas.

To je slaba novica.

Salt, hash and stretch …

Po Slackovih besedah ​​razkriti podatki niso bili le ošišan, Vendar nasoljena preveč, kar pomeni, da je bilo geslo vsakega uporabnika najprej pomešano skupaj z naključnimi podatki, edinstvenimi za tega uporabnika, preden je bila uporabljena zgoščevalna funkcija.

Zgoščene vrednosti so v bistvu »nereverzibilne« matematične funkcije, ki jih je enostavno izračunati v eno smer, ne pa tudi v drugo.

Na primer, enostavno je izračunati, da:

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

Toda edini način za delo "za nazaj". 7FB376..DEAD4B3AF008 do DUCK je delati naprej iz vseh možnih besed v slovarju in preverite, ali se katera od njih izkaže z vrednostjo, ki jo poskušate ujemati:

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

In z vključitvijo soli za posameznega uporabnika, ki ni nujno, da je skrivna, le edinstvena za vsakega uporabnika, zagotovite, da tudi če dva uporabnika izbereta isto geslo, ne bosta imela enake zgoščene vrednosti gesla.

Učinek soljenja si lahko ogledate tukaj, ko premlemo besedo DUCK s tremi različnimi predponami:

  SHA256("RANDOM1-DUCK") = E355DB..349E669BB9A2 SHA256("RANDOM2-DUCK") = 13D538..FEA0DC6DBB5C <-- Spreminjanje samo enega vhodnega bajta ustvari zelo drugačen hash SHA256("ARXXQ3H-DUCK") = 52AD92. .544208A19449

To tudi pomeni, da napadalci ne morejo ustvariti vnaprej izračunanega seznama verjetnih zgoščenih vrednosti ali ustvariti tabele delnih izračunov zgoščene vrednosti, znane kot mavrična miza, ki lahko pospeši preverjanje zgoščene vrednosti. (Potrebovali bi popolnoma nov hashlist ali edinstven niz mavričnih tabel za vsako možno sol.)

Z drugimi besedami, zgoščenih in soljenih gesel ni mogoče trivialno vdreti, da bi obnovili prvotni vnos, še posebej, če je bilo prvotno geslo zapleteno in naključno izbrano.

Česar Slack ni povedal, je, ali bodo raztegne tudi zgoščene vrednosti gesel in če da, kako.

Raztezanje je izraz v žargonu, ki pomeni ponavljanje postopka zgoščevanja gesel znova in znova, na primer 100,000-krat, da se podaljša čas, potreben za preizkušanje množice besed iz slovarja z znanimi zgoščenimi vrednostmi gesel.

Če bi trajalo eno sekundo, da bi 100,000 slovarskih besed dali skozi navaden postopek soli in zgoščevanja, bi lahko napadalci, ki poznajo zgoščeno vrednost vašega gesla, poskusili vsako minuto 6 milijonov različnih slovarskih besed in izpeljank ali pa vsake tri ure zahtevali več kot milijardo ugibanj. .

Po drugi strani pa, če bi bili izračuni soli in zgoščevanja raztegnjeni tako, da bi vsak trajal eno sekundo, bi vas dodatna enosekundna zamuda, ko bi se poskusili prijaviti, malo ali nič motila ...

… vendar bi napadalca zmanjšali na samo 3600 poskusov na uro, zaradi česar je veliko manj verjetno, da bi imel dovolj časa, da bi uganil karkoli, razen najbolj očitnih gesel.

Znanih je predvsem več cenjenih algoritmov zgoščevanja in raztezanja soli PBKDF2, bcrypt, scrypt in Argon2, ki jih je mogoče prilagoditi tako, da se podaljša čas, potreben za preizkušanje posameznega ugibanja gesla, da bi zmanjšajo sposobnost preživetja tako imenovanih napadov po slovarju in brutalne sile.

A slovarski napad pomeni, da preizkušate samo verjetna gesla, na primer vsako besedo, ki se je spomnite aardvark do zymurgy, nato pa obupal. A napad na brutalne sile pomeni preizkušanje vseh možnih vnosov, tudi čudnih in neizgovorljivih AAA..AAAA do ZZZ..ZZZZ (ali iz 0000..000000 do FFFF..FFFFFF če razmišljate v šestnajstiškem smislu bajt za bajtom).

Kaj storiti?

Slack pravi, da približno 1 od 200 njegovih uporabnikov (0.5 %, verjetno na podlagi zapisov o tem, koliko skupnih vabilnih povezav je bilo ustvarjenih v nevarnem obdobju) in da bo te uporabnike prisilil v ponastavitev gesel.

Še nekaj nasvetov:

  • Če ste uporabnik Slacka, lahko ponastavite geslo, tudi če vas podjetje o tem ni obvestilo. When a company admits it has been careless with its password database by leaking hashes, you might as well assume that yours was affected, even if the company thinks it wasn’t. As soon as you change your password, you make the old hash useless to attackers.
  • Če ne uporabljate upravitelja gesel, razmislite o nakupu. Upravitelj gesel pomaga pri izberite ustrezna gesla, s čimer zagotovite, da se vaše geslo znajde zelo, zelo daleč na seznamu gesel, ki bi jih lahko vlomili v takšnem incidentu. Napadalci običajno ne morejo izvesti pravega napada s surovo silo, ker je na voljo preveč možnih gesel, ki bi jih lahko preizkusili. Zato najprej preizkusijo najverjetnejša gesla, kot so besede ali očitne kombinacije besed in številk, ki z napredovanjem napada postajajo daljša in bolj zapletena. Upravitelj gesel si lahko zapomni naključno 20-mestno geslo tako enostavno, kot se vi spomnite imena svoje mačke.
  • Vklopite 2FA, če lahko. 2FA oz dvokomponentna overitev, pomeni, da za prijavo ne potrebujete le gesla, temveč tudi enkratno kodo, ki se vsakič spremeni. Te kode so običajno poslane (ali ustvarjene) na vaš mobilni telefon in veljajo le nekaj minut. To pomeni, da tudi če kibernetski prevaranti razbijejo vaše geslo, to samo po sebi ni dovolj, da bi prevzeli vaš račun.
  • Pri sami obdelavi gesel izberite ugleden algoritem za razprševanje in raztezanje soli.. V nesrečnem primeru, da pride do vdora v vašo zbirko gesel, boste svojim strankam lahko dali natančne podatke o algoritmu in varnostnih nastavitvah, ki ste jih uporabili. To bo dobro obveščenim uporabnikom pomagalo, da sami presodijo, kako verjetno je, da so bili njihovi ukradeni zgoščeni podatki vlomljeni v času, ki je bil doslej na voljo napadalcem.

Časovni žig:

Več od Gola varnost