Kun hakkerit tai tunkeutumistestaajat rikkovat järjestelmän ja haluavat päästä käsiksi selkeän tekstin salasanaan tietokannan dumpista, heidän on ensin murrettava tallennettu salasanan hash-arvo. Monet hyökkääjät syöksyivät tähän käsitteeseen: he yrittivät mitä tahansa salasanahyökkäystä, jota he halusivat kokeilla, melkein ilman syytä. Tässä keskustelussa esitellään joitain tehokkaita salasanojen murtamismenetelmiä ja kuinka salasanojen tilastollista analyysiä voidaan käyttää työkalujen kanssa aikarajoitetun lähestymistavan luomiseksi tehokkaaseen ja onnistuneeseen murtamiseen.
Salasanojen murtaminen on kuolevaa yritystä. Käyttäjien on luotava monimutkaisempia salasanoja, ja jotkut taustakehittäjät ovat alkaneet käyttää mekanismeja, kuten Bcrypt , korvaamaan tavalliset hash-toiminnot. Bcrypt-hash-arvojen luominen kestää kauemmin, joten salasanojen murtaminen on vaikeampaa. Krikkereiden on tuotava hash-arvot erittäin nopeasti murtaakseen salasanat tehokkaasti, joten Bcrypt on erittäin tehokas työkalu tällaisten hyökkäysten torjumiseksi. Tämän esimerkin havainnollistamiseksi vuonna 2012 lanseerattu 25 GPU-klusterista valmistettu salasananmurtausohjelma pystyy saavuttamaan NTLM-hash-generointinopeuden 350 miljardia hash sekunnissa, kun taas BCrypt-hash-generointinopeus on 71 000 hash. Tätä vertailumallina voidaan generoida 5 miljoonaa NTLM-hash jokaiselle syntyneelle BCrypt-hash-ohjelmalle. BCRPYTED-algoritmin edessä hakkereiden on tehtävä laskennallisempia arvauksia salasanasta, eivätkä he voi luottaa raakavoiman käyttöön jokaiselle mahdollisuudelle.
Huomautus: Jos hyökkääjä tietää, että salasanan pituus on niin lyhyt, että avainavaruuden murtaminen ei vie kauan, ei tarvitse ryhtyä inkrementaaliseen hyökkäykseen.
Aikatehokkuudesta tulee avaintekijä onnistuneessa salasanojen murtamisessa. Vaikka käyttäjän salasanan koko kriittinen tila olisi hyvä, siihen tarvittava aika ei yleensä ole toteuttamiskelpoinen. Siksi krakkaamisen yhteydessä on tärkeää kokeilla ensin aikaa säästäviä hyökkäyksiä ja jos ne eivät onnistu, jatkaa hitaampia salasanahyökkäyksiä, jotka kattavat enemmän avaintilaa. Nopein tapa on yksinkertainen sanakirjahyökkäys, joka perustuu yleisesti käytettyihin käyttäjäsalasanoihin ja aikaisempiin salasanapumpuihin. Sieltä kannattaa yrittää manipuloida sanakirjaa lisäämään numeroita tai symboleja loppuun tai vaihtamaan kirjaimia. Tätä kutsutaan hybridihyökkäykseksi tai sääntöihin perustuvaksi hyökkäykseksi. Seuraavaksi voit yrittää luoda mahdollisia salasanoja koneoppimistoimintojen avulla. Markov-ketju on hyvä esimerkki. Yhdistämällä englannin kielellä esiintyviä yleisiä elementtejä sanojen muodostamiseksi (esim. "ing", "er", "qu"), voidaan luoda hyvä arvaus salasanasta, kuten alla oleva. Vaikka tämä salasana on helppo murtaa millä tahansa menetelmällä, käytämme tätä salasanaa yksinkertaistaaksemme kaikkia hyökkäysvektoreita. salasana1234salasana1234
Lopuksi kohdennetut brute force-hyökkäykset, joita kutsutaan maskihyökkäyksiksi, kattavat tietyn salasanan kaiken avainavaruuden salasanarakenteen perusteella. Salasanan "rakenteella" tarkoitan salasanan luomiseen käytettyjen merkkien tyyppiä ja järjestystä. Esimerkiksi "rakenne", jossa on isot kirjaimet, jota seuraa 7 pientä kirjainta, jota seuraa 4 numeroa (merkitty nimellä). salasana1234ullllllldddd
Pienet kirjaimet, isot kirjaimet, symbolit, numerot (l) (u) (s) (d)
Joten jos hyökkääjä päättää käyttää tätä rakennetta luodakseen kaikki mahdollisuudet merkkiyhdistelmään, hän lopulta löytää salasanan. Sitten hyökkääjän kysymys tulee: Mikä rakenne tulisi kohdistaa ensin, kun hyökkäät hash-arvojen joukkoon? salasana1234
Auttaakseni vastaamaan tähän kysymykseen, tein tilastollista analyysiä suosituista salasanakuljetuksista nähdäkseni, onko olemassa salasanarakennetta, joka on yleisempi kuin muut salasanarakenteet, ja missä määrin tämä rakenne on oikea. Yli 34 miljoonan julkisesti paljastetun salasanan näytekoko sisältää kuuluisia salasanan kaatopaikkoja, kuten RockYou, LinkedIn, phpBB jne.
Alla olevassa kuvassa näkyy maskirakenteen taajuus jokaiselle yksilölliselle maskille. Punainen viiva edustaa 50%-viivaa, joka esiintyy 13. yleisimmin esiintyvän maskin jälkeen.
Tämä tarkoittaa, että 13 ensimmäistä ainutlaatuista maskirakennetta muodostavat 50 % näytesalauksista. Näytteen yli 20 miljoonan salasanan rakenne on 13 ensimmäisen maskin joukossa. Tulokset ovat varsin järkyttäviä strukturoitujen salasanojen yleismaailmallisuuden kannalta. Loput 50 prosenttia on pitkässä oikeassa hännässä, joka on pienennetty tässä kaaviossa. Itse asiassa 260 500 yksilöllisestä maskista tässä kaaviossa näkyy vain 400. Tämän yleisen rakenteen salasanan käsite on uskomaton; Tämä ei kuitenkaan ole yllättävää, kun miettii, miten käyttäjät luovat ja muistavat salasanansa. Analyysitietojen perusteella on joitain loogisia tekijöitä, jotka auttavat selittämään, kuinka tämä on mahdollista. Kun käyttäjää pyydetään antamaan isoja kirjaimia sisältävä salasana, sitä käytetään ensimmäisenä merkkinä yli 90% ajasta. Kun numeroita pyydetään, useimmat käyttäjät lisäävät salasanansa loppuun (todennäköisesti valmistumisvuosi) kaksi numeroa. Seuraavaksi suosituin vaihtoehto on salasanan lopettaminen neljällä numerolla (ehkä edellisenä tai tänä vuonna). Tällöin seuraavalla suosituimmalla numerolla on yksi numero lopussa ja kolme numeroa lopussa. Tällaiset rakenteelliset yhteydet antavat hyökkääjille mahdollisuuden ennustaa, mikä on todennäköisimmin käyttäjän salasanan rakenne.
Näitä rakenteellisia tietoja hyödyntäen voidaan turvallisesti olettaa, että käyttäjä todennäköisesti asettaa salasanansa TAN (satunnaiset kirjaimet), vaikka ne molemmat alkavat 9 kirjaimella ja niissä on 9 kirjainta. Oletamme siis, että kun otetaan huomioon salasanarakenne, jos näemme peräkkäisiä kirjaimia, se on todennäköisesti sana. Tämä on erittäin hyödyllinen oletus Crackersille, koska se poistaa paljon avaintilaa. Sitten tästä tulee hybridihyökkäys, joka hyödyntää yleisen salasanan rakenteen tilastollista merkitystä. potatoespwivwdhpp
Yleensä tunkeutumistestaajina, vaikka rikkoisimme joukon hash-arvoja, meillä ei ehkä ole aikaa murtaa kaikkia hash-arvoja. Niiden rikkominen voi kuitenkin auttaa päivittämään pääsyä järjestelmään ja tuomaan hyödyllisempiä löydöksiä asiakkaille. Siksi salasanan murtamisen yhteydessä voi olla hyödyllistä määrittää, kuinka paljon aikaa varataan hash-arvojen murtamiseen. Käyttämällä edellisessä analyysissä löydettyjä rakenteita hyökkääjä voi määrittää, mitkä 10 suosituinta rakennetta hän haluaa kattaa salasanan monimutkaisuusvaatimusten perusteella, jotka on järjestetty nopeimman suoritusajan mukaan. Lopuksi hyökkääjä voi aikarajoittaa menetelmänsä käyttämällä enintään tunnin murtumisen suorittamiseen. Tämä havaittiin äskettäisessä tunkeutumistestissä, jossa saatiin hash. Alla on tilannekuva CPU-pohjaisen krakerin tuloksista.
Tässä tapauksessa nopeimmin valmistuva rakenne on se, että määrittelemme sen yhdeksi isokirjaimeksi, jota seuraa kolme pientä kirjainta ("W" tarkoittaa "sanaa") ja sitten neljä numeroa. Hash-setissä on 69 salasanaa, jotka vastaavat rakennetta, ja tavallinen CPU pystyy läpäisemään kaikki rakenteen mahdollisuudet minuutissa. Pysäytimme krakkauksen 62 minuutissa, ja krakkaus tuotti 221 ainutlaatuista krakkaushash-arvoa, jotka vastaavat 491 tiliä, mikä johti yhteensä 11 prosentin vuotoon. Syy siihen, miksi salasanojen murtumisen ja tilivuotojen määrä vaihtelee suuresti, on se, että Office-asetukset johtavat usein käyttämään yleisesti käytettyjä salasanoja. Jos hyökkääjä määrittää, että ympäristössä käytetään yleistä salasanaa, kaikki käyttäjät, joilla on sama salasana, ovat myös vaarassa. U (W3) dddd
Vaikka hybridihyökkäykset tai esimerkiksi sääntöihin perustuvat hyökkäykset voivat murtaa useita näistä salasanoista nopeammin, hyökkäävien salasanojen rakenne antaa meille mahdollisuuden peittää enemmän avaintilaa. Tämä menetelmä on tehokas seuraava askel, jos nopeampi hyökkäys osoittautuu epäonnistuneeksi rikkomaan kohde-hash. Lisäksi on tärkeää muistaa, että tämä esimerkki on tehty melko keskinkertaisella CPU:lla ja saman hyökkäyksen suorittaminen tehokkaalla GPU:lla voi lyhentää tämän ajan muutamaan sekuntiin. Siksi tarkka ajoitus ei ole yhtä tärkeä kuin teorian tehokas toteutus. best64
tilastollinen analyysi auttaa meitä hyökkäämään yleisesti yleisiin salasanarakenteisiin; On kuitenkin olemassa työkaluja, jotka voivat auttaa tiettyjen sovellusten paikantamisessa. Työkalut, kuten CeWL , voivat indeksoida sanoja verkkosivuilta ja niitä käytetään luomaan nimenomaan yritykselle suunnattuja sanaluetteloita tai sanakirjoja. Se toimii, koska yrityksillä on taipumus käyttää salasanoja, jotka liittyvät toimialaansa, yritykseensä tai työhönsä. Lisäksi, koska olemme todenneet, että yleisesti käytetyt salasanat ovat suosittuja työympäristössä, on mahdollista käyttää myös jo murtuneita salasanoja muiden salasanojen pohjana, mikä voi olla samanlaista. Jos esimerkiksi huomaamme, että "" on käyttäjän salasana, voimme laittaa "" uuteen sanaluetteloon, laittaa sen sääntöjoukkoon ja sitten havaita, että jollakin toisella on salasana "". Tämä käsite murtautuneiden perussanojen (kuten ' ') käyttämisestä ja muokkaamisesta ympäröivillä merkkeillä toimii erittäin tehokkaasti yritysympäristöstä kaadettujen hash-arvojen murtamisessa, joka voidaan jäljittää salasanan uudelleenkäytön käsitteeseen. Suorittamamme penetraatiotestien perusteella tämä sopii parhaiten viimeisten 20 prosentin halkeamattomien hash-arvojen murtamiseen. AcmeCorp1234AcmeCorpAcmeCorp@2015AcmeCorp
On myös tärkeää leikata sanakirja niin, että kaikki arvatut salasanat täyttävät sovelluksen asettamat vaatimukset, jotta aikaa ei tuhlaa arvaamaan salasanoja, joita ei pituuden tai merkkikoostumuksen vuoksi voida arvata.
Nopeimmasta hyökkäyksestä alkaen, joka kattaa vähiten avaintilaa (tavallinen sanakirjahyökkäys) hitaimpaan ja suurimpaan avaintilaan (puhdas raakavoima) on ihanteellinen eteneminen hyökkäyksille varatun ajan huomioon ottamiseksi. Siksi hyökkääjän tulisi toteuttaa vakiomenetelmä, joka ottaa tämän huomioon. Jos tili, johon hyökkääjä haluaa hakkeroida, on suoritettu ensimmäisessä vaiheessa, ei ehkä ole syytä jatkaa muiden hyökkäysten käyttöä; Monissa tapauksissa yksinkertainen sanakirjahyökkäys ei kuitenkaan välttämättä riitä, jos kohdetili on olemassa, tai hyökkääjä haluaa vain tuhota mahdollisimman monta tiliä, joten tilastorakenteita käyttävien hybridihyökkäysten ja kohdennettujen brute force-hyökkäysten saattaa olla tarpeen. Siksi onnistuneen krakkauksen kannalta on ratkaisevan tärkeää rakentaa menetelmiä, jotka voivat sisältää edellä mainitut menetelmät sekä joitain automatisoituja prosesseja. Viimeaikaiset työkalut, kuten PRINCE, voivat auttaa helpottamaan salasanan murtamista. On tärkeää kehittää työkalunauha, esimerkiksi PRINCE kokeilee menetelmässä, mutta ymmärtää työkalujen taustalla olevat ominaisuudet sen sijaan, että luottaisit niihin kokonaan, tekee krakkauksesta tehokkaampaa.
Näiden salasanojen avulla analysoimalla voidaan määrittää suosituimmat rakenteet tietyllä halutulla monimutkaisuudella. Siksi kehittäjien pitäisi todennäköisesti toteuttaa joitain ohjauksia, jotka estävät käyttäjiä käyttämästä joitain erittäin suosittuja rakenteita tasoittamaan edellisen grafiikan käyrää. Ajatuksen ongelmana on kuitenkin se, että ilman yksinkertaista rakennetta käyttäjien voi olla vaikea muistaa salasanansa. Suosittelen salasananhallintaa, joka vaatii kaksoistodennuksen. Nämä sovellukset luovat ja tallentavat kaikki salasanasi puolestasi, joten muisti ei ole ongelma. Niiden luomat salasanat ovat rakenteeltaan satunnaisia ja niitä voidaan käyttää niin kauan kuin sovellus sallii sen. Kuten aiemmin mainitsin, salasanan salaus on toinen erittäin tehokas tapa hidastaa hyökkääjän näkymiä. Lopuksi toimistossa toimivien strategioiden toteuttaminen, jotka auttavat käyttäjiä ymmärtämään salasanojen jakamisen tai uudelleenkäytön vaarat, on onnistunut askel oikeaan suuntaan, vaikka käyttäjät eivät aina noudata niitä. Vaikka ne eivät todennäköisesti noudata sitä koko ajan, se on tehokas valvonta.
Salasanan murtaminen voi olla epämääräinen käsite. Kun halkeilun vaikeus kasvaa, tarvitaan tehokkuuteen perustuvia kohdennettuja hyökkäyksiä ja henkilökohtaisia halkeilumenetelmiä tulisi luoda. Ei kannata investoida rahaa lopulta hash-generoinnin nopeuden lisäämiseksi. Siksi menetelmän ja yksinkertaistetun prosessin toteuttaminen tilastotietojen ja työkalujen avulla hyökkäysvälineenä voi helpottaa salasanojen murtamista. Kehittäjät voivat kehittää valvontatoimenpiteitä tämän tilanteen torjumiseksi, ja käyttäjät voivat käyttää suojattuja salasananhallintoja minimoidakseen näiden hyökkäysten tehokkuuden; Tällaiset toteutukset eivät kuitenkaan ole kovin suosittuja. Tällä hetkellä tilastolliset hyökkäykset salasanoihin ovat tehokkaita sekä halkeamien määrän että aikayhteyden tehokkuuden suhteen. Ajattele omaa salasanaasi ja kysy itseltäsi, kuinka nopeasti ne voidaan murtaa salasanan rakenteen perusteella ja toimistosi valvontatoimenpiteet voivat aiheuttaa hyökkääjän tunkeutumisen käyttäjän tiliin.