14. marraskuuta 2019

Yleisimpien nettipalveluiden hakkerointi salasana resetoimalla

Tein sarjan hakkerointikokeita yleisiä ja turvallisina pidettyjä nettipalveluja vastaan. Kohteikseni valikoituivat Facebook, Google, Microsoft, Protonmail, Twitter ja Veikkaus. Katsoin, miten helppoa niihin olisi hakkeroitua - lakiteknisistä syistä omille tileilleni - käyttäen lapsellista keinoa:"Olen unohtanut salasanani." Tulos oli jäätävä. Vain Protonmail osasi suojautua tältä hyökkäykseltä täydellisesti ja Facebook ynnä Veikkaus jonkin verran tehokkaasti. Google, Microsoft ja Twitter eivät käytännössä lainkaan, ei, vaikka Googlessa tilillä, johon hyökkäykseni tein, on käytössä "Advanced Protection Program"!

Täsmennän vielä, että olen itse vääntänyt näissä palveluissa asetukset niin tiukoille kuin mahdollista. Olen siis, tietoisena ja asiaan perehtyneenä, tehnyt kaikki mahdolliset toimet minimoidakseni tätä riskiä ja huolehtiakseni tietoturvastani. Suurinosa peruskäyttäjistä ei osaa, eikä välitä tehdä näitä toimia, joten heidän tilinsä on vielä paljon suuremmassa vaarassa tämän tyyppistä hyökkäystä vastaan, kuin mitä minun tilini näissä kokeissa on. Tämä minun kokeeni osoittaa siis, miten parhaimmassakaan tilanteessa uhri ei ole juurikaan suojattu - ei suinkaan sitä, miten käsittämättömän heikosti suojattu keskimääräinen uhri on!

Itse tuloksiin:

Google, Microsoft ja Twitter antavat mahdollisuuden resetoida salasana ja poistaa kaikki 2-vaiheisen tunnistautumisen vaatimukset, kunhan tiedät jotain aivan yleisesti saatavilla olevia tietoja uhristasi ja pystyt kaappaamaan hänelle lähetetyn salasanojen resetointiin toimivan, salaamattoman sähköpostin (tai joissain tapauksissa tekstiviestin). Toisin sanoen, pelkästään se, että uhrillasi on koneellaan käytössä vaikkapa Thunderbird tai Outlook -sähköpostisovellus ja pääset sen äärelle alle minuutiksi, riittää uhrin ko. tilien kaappaamiseen...tai uhrisi jättää moisen palvelun hetkeksi auki ollessaan kirjautuneena siihen nettiselaimensa kautta...tai nappaat sähköpostin, kun se siirtyy selkokielisenä pitkin nettiä (esim. sähköpostioperaattorin palveluksessa oleva henkilö jne.)...tai vilkaiset uhrin puhelinta sopivalla hetkellä...tai teet sim-swap hyökkäyksen, jne. yms. vaihtoehtoja on monia. Tällöin saat ko. uhrin tilin salasanan resetoitua tuossa viestissä olevilla tiedoilla ja 2-vaiheisen kirjautumisenkin poistettua päältä ja voit kaikessa rauhassa tunkeutua kyseiseen nettipalveluun - sekä luonnollisesti estää uhriasi itseään kirjautumasta ko. palveluun enää ikinä! Huvittavinta on, että joskus resetointisähköposti on mahdollista tilata myös täysin vieraaseen sähköpostiin, siis hakkerin omaan, kunhan tarpeeksi ruikuttaa siitä, että ei pääse mukamas käyttämään oikeaa sähköpostiaan jostain syystä. Jäätävää.

Epäloogisuutta lisää se fakta, että kaikki nämä palvelut vaativat kirjautunutta käyttäjää kirjoittamaan salasanansa uudelleen, kun tämä tekee jotain "tärkeitä" toimia, esimerkiksi haluaa vaihtaa salasanaansa tms. Tällöin, jos hyökkääjä pääsee hetkeksi vaikkapa tietokoneelle, jossa uhri on kirjautuneena sisälle ko. palveluihin, ei hyökkääjä voi tätä kautta edetä ja kaapata tiliä mitenkään. Näin se pitääkin olla. Mutta samaa logiikkaa ja varovaisuutta ei noudateta salasanan palauttamisessa! Miksi hyökkääjä koettaisi muuttaa vaikkapa salasanaa sitä suoraan palvelussä sisällä kirjatuneena ollessaan, kun sen voi muuttaa menemällä sähköpostiboksiin ja klikkaamalla sieltä resetointilinkkiä? Aivan. Ketju on vain niin vahva kuin sen heikoin lenkki.

Google tarjoaa niin monta eri tapaa poistaa 2-vaiheinen tunnistautuminen ja resetoida salasana, että ihan hirvittää. Kyllä hakkeri noista jonkun tietää, arvaa tai murtaa. Mitä useampi tapa, sitä enemmän vuotokohtia. Ja miksi Google tarjoaa resetointimahdollisuutta esim. tekstiviestillä, kun kuitenkin "Advanced Protection Program" nimenomaan väittää, että KAIKKI kirjautumisetkin pitää varmistaa AINA fyysisellä avaimella (U2F)? Eihän tässä ole mitään järkeä, eikä logiikkaa, hakkeri kun menee siitä mistä aita on matalin! Helposti lähtee salasanan ja 2-vaiheisen resetointiviestit sähköpostiin tai tekstareina puhelimiin täältä.

Googlelta pystyi ainakin joskus lähetyttämään resetointiviestin myös sellaiseen sähköpostiin, jota uhrilla ei ole edes koskaan ollutkaan - eli suoraan hakkerin omaan sähköpostiin. Tämä onnistuu, jos osaa vastata riittävän moneen kysymykseen oikein ja ruikuttaa sitten, ettei muka pääse käyttämään tavanomaista sähköpostiaan. Naurettavaa. Luultavasti tämä onnistu yhä, mutta loputtomien vaihtoehtojen lomassa en siihen asti päässyt tällä kertaa (aiemmin tein ko. kokeen).

Epäloogisuuden huipentuma on minusta Microsoft, jonka tileihin on olemassa "Recovery Code", joka pitää syöttää. Niinhän se pitäisi ollakin, että jokaisella palvelulla olisi oma "Recovery Code", joka esimerkiksi kerrotaan vain kerran ko. tiliä perustettaessa ja jolla tilin saa myöhemmin palautettua itselleen. (Tämmöistähän minä ehdotin käytettäväksi kaikissa palveluissa jo yli 10 vuotta sitten!) Loistavaa! Juuri näin! Mutta...mikä tässä on epäloogisuuden huipentuma Microsoftin osalta? No se, että Microsoft kyllä kysyy ko. "Recovery Code", mutta jos sitä ei ole antaa, niin Microsoft suostuu SILTI resetoimaan ko. tilin tunnistetautumistiedot!!! Aivan käsittämätöntä idiotismia!

Microsoft tarjoaa Googlen tavoin niin monta eri tapaa poistaa 2-vaiheinen resetointi ja salasana, että ihan hirvittää. Taas kerran totean: Mitä useampi tämmöinen mahdollisuus, sitä useampi aukko, jota hakkeri voi käyttää hyväkseen. Typerää toimintaa tämäkin Microsoftilta!

Microsoftiltakin on joskus pystynyt lähetyttämään resetointiviestin myös sellaiseen sähköpostiosoitteeseen, jota uhrilla ei ole koskaan edes ollut. Tällä kertaa en siinä onnistunut kuitenkaan, ehkä tämä aukko on korjattu tai sitten en vain löytänyt sitä tällä kertaa. Huolestuttavaa kyllä sekin tieto, että noin on voitu aiemmin toimia!

Microsoftin toiminta myös naurattaa melkoisesti: Kaikista näistä palveluntarjoajista vain ja ainoastaan Microsoft tarjoaa Fido2-tunnistautumista palveluunsa, joka on siis turvallisin mahdollisin tunnistautumismenetelmä, mitä olemassa on. Mutta silti, sama Microsoft mahdollistaa sen(kin) turvallisuusmenetelmän kiertämisen lapsellisen helposti tilin salasanan palauttamisen kautta!!! Ei tälle voi kuin nauraa!

Microsoft toimii pähkähullusti myöskin sikäli, että se tarjoaa mahdollisuutta siihen, että käyttäjä voi heti salasanan resetoinnin jälkeen kirjautua sisälle uudella salasanallaan (jonka voi luoda saadusta resetointisähköpostista) tietokoneisiin, jotka ovat ko. Microsoftin tiliin liitetty, vaikka muutoin seuraakin 30 vuorokauden odottelujakso tietoturvasyistä. Microsoft lukitsee siis kaikkein hyödyttömimmät ja tietoturvan- ja tietosuojan kannalta epäolennaisemmat palvelunsa salasanaresetin jälkeen, mutta ei kaikkein tärkeintä ja uhanalaisinta systeemiä: Itse tietokoneisiin kirjautumisia! Aivan pähkähullua. Järjetöntä.

Twitterinkin toiminta naurattaa: Twitteristä voi asetuksista laittaa päälle option, jossa käyttäjältä varmistetaan henkilökohtaisia tietoja ennen, kuin salasanaa suostutaan resetoimaan. Nämä "henkilökohtaiset tiedot" ovat sähköposti, käyttäjätunnus ja puhelinnumero - eli kenen tahansa kenestä tahansa melko helposti saatavilla olevia tietoja! Uskomatonta pelleilyä. Noin helpolla lähtee salasanan ja 2-vaiheisen kirjautumisen resetointiviesti uhrin sähköpostiin (tai joissain tapauksissa tekstiviestinä tai sähköpostiosoitteeseen, jota uhrilla ei ole koskaan ollutkaan).

Facebookissa asia on paremmalla tolalla: Se paitsi lähettää sähköpostin salattuna palvelimelta palvelimelle (jos tämä tukee sitä), niin mahdollistaa myös sähköpostin sisällön salaamisen käyttäjän omalla PGP-avaimella. Tällöin hyökkääjä, joka pääsee urkkimaan sähköpostipalvelinten välistä liikennettä, ei voi saada selkokielistä resetointilinkkiä mitenkään. Vaikka hyökkääjä pääsisi lukemaan uhrinsa sähköpostiboksia, hän ei siltikään saisi resetointilinkkiä, koska se olisi vielä salattu uhrin PGP-avaimella (jota hyökkääjällä tuskin on). Tämä on hyvä juttu. Todella on hyvä ja kuitenkin kohtuullisen simppeli, mutta Facebookin käyttäjän pitää itse tajuta ottaa se käyttöönsä.

Facebook ei anna armoa, eikä kuuntele selityksiä: Jos hakkeri yrittää selittää, ettei voi käyttää palauttamisen sähköpostiosoitettasi, homma tyssää siihen. Toisin sanoen, et voi valita jotain muuta palauttamisvaihtoehtoa tai saada palautuskoodeja vaikkapa johonkin aivan toiseen sähköpostiin. Ja jos koetat palauttaa ne oikeaan sähköpostiin, ne menevät sinne todellakin salattuina ja vieläpä sen päälle luultavasti PGP:llä salattuina.

Veikkaus ei mahdollista salasanan resetointia kuin pankkitunnuksilla. Tämä on erittäin hyvä asia ja vahva suojauskeino. Toisaalta, salasanan palauttaminen ON silti aina olemassa, sitä ei voi kytkeä pois päältä. Lisäksi Veikkaus ei tuo millään muotoa mitään 2-vaiheista tunnistautumista, ei edes tekstiviestiä, Fido2 nyt puhumattakaan, joten isot miinuspisteet tästä puutteesta tietoturvan osalta: Uhrin salasanan kaapannut voi rauhassa kirjautua Veikkauksen palveluihin tekemään mitä lystää, koska 2-vaiheinen tunnistauminen puuttuu kokonaan. Ei näin!

Protonmailissa asia on juuri, kuten sen pitäisikin olla: Tilin palautus on optio, joka pitää kytkeä itse päälle - se ei ole oletuksena päällä lainkaan. Jos unohdat salasanasi, tilisi on mennyttä ja sillä hyvä. Protonmail ei myöskään kerro hakkerille, onko sinulla tilin palautus päällä vaiko ei, joten tämä saattaa tuhlata paljonkin aikaansa sitä kaivellaakseen - turhaan. Siinäkin tapauksessa, että tilin palautus olisi kytkettynä päälle, tilin palautus tuhoaa kaikki sähköpostit ko. tililtä, koska niiden salausavain on tällöin myös tuhoutunut. Loistava juttu. Isot pisteet tästä! Näin tämän kuuluu olla. Pieni miinus toki Protonmailillekin muutoin tietoturvasta siitä syystä, että 2-vaiheisista tunnistautumismuodoista se tukee vain TOTP:ia.

Sivuhuomautus:

Monessa näistä palveluista on valittavana erilaisia 2-vaiheisen kirjautumisen muotoja, esim. (turvallisuusjärjestyksessä) tekstiviesti, sähköpostivarmennus, TOTP, U2F ja Fido2. Umpihulluksi asian tekee se, että monessa näistä palveluista on pakko käyttää kahta ERI 2-vaiheista kirjautumista, esim. tekstiviestiä ja U2F:ää. Mikä järki tässä on? Ei mikään. Miksi hyökkääjä edes yrittäisi murtaa vahvaa U2F:ää, kun hän voi paljon helpommalla kaapata tekstiviestin? Niih. Tässäkin asian pitäisi olla niin, että käyttäjä voi täysin itse päättää täysin, mitä 2-vaiheisen tunnistamisen muotoja hän käyttää ja olla käyttämättä kaikkia muita, sekä tietenkin estää 2-vaiheisen tunnistamisen kiertämisen millään muotoa. Eihän koko touhussa ole muuten mitään järkeä: Hyökkääjä menee sisään siitä, missä on heikoin lenkki. Yleensä se on koko turvajuttujen ohittaminen salasana resetoimalla - ja 2-vaiheisen osalta heikoimman 2-vaiheisen turvamenetelmän käyttäminen/hakkerointi (jos sitä ei haluta tai tarvitse resetoida samalla salasanan kanssa).

Suositukseni parannuksiksi:
  1. Nettipalveluiden pitäisi ottaa käyttöön "Recovery Code", joka tarjottaisiin käyttäjälle vain ja ainoastaan tilin perustamisvaiheessa ja jolla - ja vain ainoastaan sillä - voisi resetoida kaikki salasanat, tunnistautuneet laitteet, 2-vaiheisen tunnistuksen systeemit ja muut. Näin estettäisiin tilien kaappaus varastetuilla salasanoilla ja muilla, sekä estettäisiin tilin turvallisuustietojen resetointi hakkerien toimesta. (Tämmöistähän minä ehdotin käytettäväksi kaikissa palveluissa jo yli 10 vuotta sitten!)
  2. Nettipalveluiden pitäisi toteuttaa "Recovery Code" käyttö siten, että käyttäjä saisi salasanan unohdettuaan sähköpostiinsa ilmoituksen ja linkin (voimassa esim. 10min), jonne tuo "Recovery Code" syötetään. Näin estetään se, että hyökkääjä, joka on saanut "Recovery Code" varastettua itselleen, ei voi sitä käyttää itsessään, koska hänellä pitää olla myös pääsy uhrin sähköpostiin! Tämä yhdistelmä toisi huomattavaa lisäturvallisuutta. Ei olisi toki pahasta toimia kuten Facebook, eli tarjota mahdollisuutta tämän linkinkin kryptaamiseen käyttäjän PGP-avaimella lisäturvallisuuden saavuttamiseksi.
  3. Nettipalveluiden pitäisi sallia vaihtoehtoina se, ettei tiliä voi palauttaa, jos valitut tunnistetiedot (salasana, 2-vaiheinen tunnistus jne.) hukkuvat. Tämä mahdollistaisi suurimman mahdollisen tietoturvan niille, jotka sitä haluavat ja jotka pitävät hyvää huolta noista tunnistautumisvälineistään. Tämä vaihtoehto pitäisi olla oletuksena päällä, koska käyttäjät ovat idiootteja, eivätkä kuitenkaan välitä sitä itse laittaa päälle.
  4. Nettipalveluiden pitäisi sallia erilaisia 2-vaiheisen tunnistautumisen muotoja ja antaa asiakkaan määritellä tarkasti, mitä niistä hän haluaa ylipäätään käyttää, eikä pakottaa mihinkään tiettyyn menetelmään. Näin käyttäjä voisi olla halutessaan käyttämättä turvattomia menetelmiä ja estää siten niiden käyttämisen hänen tilin kaappaamiseenkin. Niin ja sanomattakin on selvää, että nettipalveluiden pitäisi kaikkien tukea vähintään U2F ja mieluiten Fido2 2-vaiheista kirjautumista!
  5. Mikäli palautussähköpostia ja puhelinnumeroa on pakko antaa, käyttäjän kannattaa ottaa käyttöön tätä tarkoitusta varten oma, erillinen sähköposti/numero, jonka osoite on mahdollisiman arvaamaton ja satunnainen, eikä siitä voi päätellä käyttäjän oikeaa nimeä tai käyttäjätunnusta. Näin palautusta yrittävän hakkerin pitää osata arvata ko. sähköpostiosoite oikein ja vieläpä pystyä hakkeroitumaan sinne, mikä nostaa hyökkäyksen vaativuustasoa huomattavasti.
  6. Ymmärrettäisiin, että vaikka yleensä vika on tyhmissä käyttäjissä ja huonoissa salasanoissa, aina ei näin ole asian laita. Usein vika on palveluntarjoajassa, joka ei ymmärrä, tai välitä, tietoturvasta yhtään mitään.


PS. Kuvankaappaukset testien etenemisistä voitte katsoa täältä.Samalla ymmärrätte ehkä paremmin, mitä missäkin kohdassa tarkoitan.

Ei kommentteja:

Lähetä kommentti