What's on my mind

Just working on some awesome projects...

Want to know more? ping me!

S pomočjo nizko cenovne delovne sile do poljubnega gesla študenta

Thu 19 September 2013 | tags: univerza, ljubljana, estudent, eštudent, id, ponastavitev, resetiranje, captcha, -- (permalink)

Opozorilo:

V tem članku ni bil zlorabljen noben uporabniški račun, vsi testi so bili opravljeni na naših lastnih uporabniških računih. Tudi bralce tega članka pozivamo, da je resetiranje gesla drugega študenta nedovoljeno in ne-etično, in če boste to počeli vam želim čim več težav!

Uvod

Luka Pušić je napisal članek o ranljivosti e-identitete univerze v Ljubljani in tudi demonstriral, kako lahko kateremukoli študentu brez večjih težav ponastaviti geslo, ki se uporablja na več spletnih portalih za študente, ki so kritičnega pomena za njihov študij. Za uspešno uporabo njegove metode si potreboval ime študenta, priimek, rojstni datum, vpisno številko in ime fakultete - podatke, ki si jih zlahka pridobil. Edina ovira je bilo uporabniško ime, ki ga je bilo treba ugotoviti z avtomatiziranim ugibanjem (do 10.000 poizkusov). Nekaj časa po objavi članka so na Univerzi formo za ponastavitev gesla zaščitili s t.i. CAPTCHA sistemom, ki preveri, ali so poizkusi človeški, ali pa nek program.

Ali je taka zaščita res dovolj dobra? Kaj če je nekdo pripravljen vložiti še več truda in celo nekaj denarja, da nekomu ponastavi geslo?

Demonstracija

Edina večja ovira, ki nam v tem trenutku preprečuje ponastavitev gesla, je CAPTCHA. Ampak tudi taka zaščita se da zaobiti. V Aziji obstaja veliko podjetij, ki za smešne cene ponujajo reševanje CAPTCHA besed. Za manj kot 1$ za 1000 poizvedb. Dober članek o takih storitvah najdete na: http://www.troyhunt.com/2012/01/breaking-captcha-with-automated-humans.html

Za uspešno izveden napad bomo potrebovali približno 10$ (10.000x Captcha) in naš namenski program. Le ta naloži ustrezne podatke iz https://id.uni-lj.si/index.php?action=resetpass in potem poizkuša vsa mogoča uporabniška imena, dokler geslo ni zamenjano in uporabniško ime ugotovljeno. Tako preprosto!

Kot vidimo smo imeli srečo in že po približno 1500 uspešnih poizkusih smo uspešno pridobili uporabniško ime, še edini manjkajoči podatek, ki je potreben za ponastavitev gesla.

Storitev, ki smo jo uporabili za razbijanje CAPTCHA omogoča interaktivni pregled in tako lažji razvoj aplikacije

Izkaže se, da so nekatere CAPTCHA tako zakomplicirane, da je stopnja uspeha le okoli 50%, vendar če upoštevamo, da geslo v povprečju ugotovimo že mnogo prej, potrebna cena za poskušanje v povprečju ostane ista. Če bi vedeli kako so uporabniška imena generirana, bi lahko bila naša napoved mnogo boljša, morda celo perfektna.

Ugotovitev

Kot lahko vidimo, zaščita s CAPTCHA ni vedno primerna. Kot boljšo alternativo predlagamo resetiranje gesla preko elektronske pošte.

Uporabnik se žal pred tem napadom težko zaščititi. Tudi, če skriva svoj rojstni datum ter vpisno številko, to ne pomaga. Izkaže se, da se da te podatke na preprost način pridobiti.

comments powered by Disqus