Körülbelül két héttel ezelőtt tett közzé a Symantec egy figyelmeztetést az otthoni felhasználók részére egy videóval együtt, amiben pazar módon elmagyarázzák, hogy hogyan lopható, "törhető" egy Google Account mindössze az áldozat mobilszámának ismeretében. /*azaz hogyan férhető hozzá a Gmail mellett az áldozat összes kapcsolódó Google-szolgáltatáshoz való hozzáférése is a jelszó ismerete nélkül*/
A módszer lényege nagyon röviden:
1. a támadó kattint az elfelejtett jelszóra a Google bejelentkező felületén, megadja az áldozat címét, majd kiválasztja a jelszóhelyreállítás módjainál, hogy SMS-tokent kér a visszaállításhoz. Ez ugye az a rövidke számsor, ami az áldozat mobiljára megérkezik, majd a begépelésével új jelszó állítható be.
2. Az áldozat persze azonnal figyelmeztetést kap, hogy valaki jelszóhelyreállítást kért a nevében és persze magát a tokent /*vegyük figyelembe a pszichés hatást is!*/, ilyennel bizonyára már többen találkoztatok Ti is korábban. Valami ilyesmire kell gondolni:
"Your account was logged into from a new browser or device. Review the login: https://webhely.tld/token_helye"
"Your account was recently logged into from Safari on Windows."
"Facebook Password reset code: [öt-hat számjegyű szám] Or reset your password here: http://fb.com/l/token_helye" [1]
"Access data for your account has been ordered by you personally or by someone else. Your temporary password: [jelszó helye]"
3. És itt jön a csavar, a támadó egy, az áldozat által nem ismert mobilszámról SMS-t küld, ami nagyban hasonlít a webszolgáltatások előbb idézett rendszerüzeneteihez, majd hozzáteszi, hogy a fiókja biztonságosabbá tétele érdekében SMS-ben küldje el válaszként a tokent.
4. Az áldozat kellően beparázik ahhoz, hogy ne vegye észre azt, hogy a válasz SMS-t egy közönséges mobilszámra küldi, ami kézbesítődik is a támadó mobiljára, aki a böngésző előtt vigyorogva szépen bekalapálja a tokent, új jelszót állít be és már el is lopta a fiókot, az áldozat legfeljebb akkor veszi észre, hogy valami nagyon nem stimmel, amikor legközelebb próbál belépni, de akkor már valóban új jelszót kell kérnie, hiszen nyilván nem tudja, hogy mit adott meg a támadó. Esetleg a támadó egy olyan kamu SMS-t küld, amiben egy kamu ideiglenes jelszó van és azt állíttatja be a felhasználóval olyan körítéssel, hogy ne változtassa meg pár napig :)
Videó, hogy szemléletes legyen:
Hozzáteszem, hogy a Symantec a Gmail-en mutatja be a módszert, de vegyük észre, hogy gyakorlatilag bármilyen webalkalmazásnál bevethető a támadás, ideértve a Facebookot, LinkedIN-t, Evernote-ot, stb. aminél a fiókhoz hozzá van rendelve mobilszám.
Adja magát a kérdés, hogy a támadás kivédésére mi jelent megoldást és mi nem?
Első laikus gondolat, ami nemhogy nem jelent megoldást, utalva a korábbi posztjaimra, nagyon veszélyesen hülye ötlet, a fiók még könnyebben ellopható:
- ha nincs beállítva mobilszám - hiszen így akkor sem tud a szolgáltatás azonosítani, amikor a legitim felhasználónak lenne rá szüksége
- ha olyan mobilszám van hozzárendelve, amit más nem ismerhet meg - ne vicceskedjünk már, ilyen egész egyszerűen nincs, soha nem is lesz, még olyan életszerűtlen esetben sem, amikor valaki fene nagy biztonságtudatosságában direkt a webszolgáltatásokhoz vesz egy SIM kártyát, amit a mobilszolgáltató titokban tart, a felhasználó a számot nem árulja el senkinek. Egészen egyszerűen nincs olyan, hogy "beszerezhetetlen mobilszám".
Akkor mi jelent megoldást? Egyszerűen az, ha a felhasználó figyelmes, és semmilyen webes szolgáltatásból érkező SMS-re nem válaszol, mivel ilyet normális webes szolgáltatás szinte sosem kér, néhány nagyon ritka esetet leszámítva!
Egyébként a videó megjelenése óta gondolkoztam rajta, hogy ezt megírjam-e vagy sem, több szempontból. Egyrészt egész egyszerűen azért, mert ez a blog nem news outlet, nem posztolom újra, amit más kitalált, esetleg csak abban az esetben, ha ahhoz eléggé sokmindent hozzá tudok tenni. Másrészt azért, mert ez a tweak nekem konkrétan annyira nem új, hogy már ezer éve találkoztam vele, ugyanakkor felvet egy fogós etikai kérdést. Amikor valaki talál egy programhibát, ami esetlegesen kihasználható, majd azonnal közzéteszi, ezzel kényszerítve a szoftverrendszer fejlesztőjét a minél gyorsabb javításra, full disclosure-nek nevezzük, megoszlanak a vélemények azzal kapcsolatban, hogy ez mennyire jó gyakorlat. Nos, teoretikai szempontból az olyan módszerrel kapcsolatban is tehető közzé full disclosure, mint amilyen ez, azaz egy kevéssé ismert social hack ismertetése, viszont remek kérdés, hogy erre a szolgáltatók hogyan reagálnak, persze legnagyobb valószínűséggel sehogy, ugyanakkor alighanem lesznek olyan pöcsök, akik megtalálják mondjuk ezen a blogon, aztán fel is használják, mivel a téma iránti érdeklődés finoman fogalmazva is intenzív – ja, az egy tálca sört még tartom!
Ugyanakkor egyrészt a blogolás olyan értelemben nem felelősségteljes műfaj, hogy agyalnom kellene annak a közvetett következményein, amit leírok, az is előfordulhat, hogy aki biztonságtudatossági tréningeket tart, esetleg itt találkozik a módszerrel először, aztán be tudja építeni a tananyagba, hogy aztán a felhasználók erre a támadási formára is fel legyenek készítve.
Azoknak írom, akik erre a posztra keresőn keresztül találtak rá törési gyorstalpaló után kutatva és primitív kíváncsiskodó pöcsként nem értik meg, hogy a barát, barátnő, főnök, alkalmazott, feleség fiókjához való illetéktelen hozzáférés milyen súlyosságú dolog, azt tudom mondani, hogy nyugodtan próbálják ki, mivel az előzetes megfelelő anonimizáláshoz, na meg mondjuk úgy, laborkörülmények beállításához elég eszük úgysincs, a web giantek meg nem hülyék, jó esetben szokatlan aktivitás esetén úgyis meggátolják a támadást, bónuszként azonosítják a támadót, de úgy, hogy őt rúgják ki végleg, szóval hajrá!
Sokszor nem értik, amikor arról beszélek, hogy alapvetően mindenféle jelszóemlékeztető, jelszóhelyreállító feature rossz, pláne, ami nem igényel emberi beavatkozást, akármilyen szofisztikáltnak tűnik is. Ugyanakkor erre nyilván szükség van tömegszolgáltatások esetén, hiszen semmilyen szolgáltatás, amelyik közvetlenül nem kér előfizetési díjat a használatáért, egyszerűen nem engedheti meg magának egy harceddzett ügyfélszolgálat fenntartását [2], ugyanakkor azt sem, hogy a felhasználóik semmilyen módon ne férhessenek hozzá a fiókjukhoz például amikor valóban elfelejtették a jelszavukat.
Vegyük észre, hogy a netbank-rendszerek már nem ilyen hülyék, nem lehet beállítani új jelszót csak úgy, néhány banknál még telebankon keresztül sem, ahogy azt is, hogy itt - az én definícióm szerint - ismétcsak szó sincs törésről, csak egy átlagosan kifinomult trükkről, ami az emberi tudat egy sajátosságát használja ki, - ami ugye esetfüggően bug vagy feature :) - nem pedig egy szoftveres hibát!
[1] korábban a FB-ban volt egy olyan jelszóhelyreállító metódus, amiben a mobilra érkező 5 számjegyű számmal lehetett új jelszót beállítani. Nos, ekkor megérkezett egy token SMS-ben, amit a felhasználónak meg kellett adnia, ha pedig elírta, akkor a Facebook figyelmeztette, hogy helytelen, ezért adja meg újra, VISZONT nem korlátozta a próbálkozások számát! #facepalm!!! Tehát akár automatizáltan is bárki bárki másnak a fiókján végigpróbálgathatta a maximálisan 99999 lehetséges ismétléses permutációt - átlagosan ebből ugye tehát mindössze ötvenezer próbálkozás is elegendő volt, majd ha talált, beengedte a szolgáltatás a támadót. A módszer persze azóta már nem működik és a próbálkozások számán túl még nagyon sok mást is figyelnek a normális webszolgáltatások annak kiküszöbölése érdekében, hogy a jelszót valóban a fiók tulajdonosa tudja csak átírni, aztán ha támadást tapasztal, ahogy írtam, szépen szögre akasztja a támadót.
[2] Ami a szolgáltatások supportját illeti, nos, igen, kivétel minden alól van. Ortó nagy botrány volt belőle, amikor kiderült, hogy jelszóvisszaállításkor az Apple telefonos supportja az új jelszó beállításához csak a fióktulajdonos postai címét kérte el meg talán még egy adatot, amit bárki megtudhat, a gyakorlaton mégis csak akkor változtattak, amikor már jópár Apple-fiókot feltörtek. Másrészt bizonyos esetekben a Google csak akkor engedélyezi az új jelszó beállítását, ha a fiók tulajdonosa befizet 1-3 USD-t, ekkor egy alkalmazott is megnézi a felhasználó korábbi aktivitását, majd valamilyen belső policy alapján eldönti, hogy a kapcsolattartói email-címre küld-e átmeneti jelszót. Azt viszont már nem ellenőrzik, hogy a bankkártya, amivel ezt az összeget valaki fizeti, annak a nevén van-e, akinek a nevén regisztrálva van a fiók :)
A legdöbbenetesebb tapasztalatom konkrétan személyes és egy óriásszolgáltatóhoz tartozik, mivel nem tudom, hogy a módszer működik-e még, nem írom meg, hogy melyikről van szó. Történt, hogy egy szolgáltatásba még kiskoromban regisztráltam, nem használtam évekig, amikor pedig ismét léptem volna be, a jelszó nem stimmelt. Gondoltam, semmi probléma, ott az account recovery, igen ám, de a hozzá tartozó email cím már nem élt, már a domain sem, így oda nem tudtam jelszóhelyreállítót kérni. Ahogy az ott szépen le volt írva, felvettem a kapcsolatot a supporttal, megírtam nekik, hogy mi az ábra, viszont lévén, hogy ilyet bárki írhat, feltüntettem azokat az adatokat, amiket csak én tudhatok, nevezetesen, hogy évekkel korábban másodperc pontossággal mikor regisztráltam /*megvolt az ezzel kapcsolatos email a benne lévő aktiváló kóddal együtt*/, melyik netszolgáltatót használtam akkor. Olyan válasz érkezett, hogy azt hittem, nem hiszek a szememnek: a supportos tag ragaszkodott hozzá, hogy arról az email címről írjak nekik, amelyikkel regisztráltam, holott pont azért írtam nekik, mert a postafiók már nem létezett. Aztán küldtem nekik még néhány adatot, ami nyilván megvolt nekik is, rajtuk kívül csak én tudhatok róla, de a tag ragaszkodott a belső policyhoz, aztán ellevelezgettünk pár napig. Végén gondoltam, hogy ez már tuti bukó, nincs vesztenivalóm, aztán lezavartam neki a legcifrább kurvaanyázást, amit csak tudtam, ékes angolsággal viszont - itt jön a lényeg - az emailem fejlécét úgy változtattam meg, hogy annak a feladó mezőjében az általuk kért, a már nem létező címem szerepeljen, válaszcímként pedig olyan, ami létezik és azt is megírtam nekik, hogy egy több tízmilliós szolgáltatásban ez a gyakorlat nevetséges, hiszen ilyen alapon bárki lenyúlhatja más fiókját egyszerűen a supportnak küldött email fejlécének megmókolásával. Nem hiszitek el, hogy mi történt: a supportos azonnal küldött jelszót /*hiszen formálisan arról a címről írtam nekik, amelyikhez tartozott az account!*/ és visszakaptam a hozzáférést a szolgáltatáshoz.
képek: geekpause.com, hackpla.net, mikeyanderson.com