Tweets by @buherablog
profile for buherator at IT Security Stack Exchange, Q&A for IT security professionals

A BitBetyár Blog

Túljártál a nagyokosok eszén? Küldd be a mutatványodat! (e-mail a buherator gmailkomra jöhet)

Full-Disclosure / Névjegy / Coming out


Promó

H.A.C.K.

Címkék

0day (110) adobe (87) adobe reader (21) anonymous (26) apple (60) az olvasó ír (49) blackhat (20) botnet (22) bug (200) buherablog (44) buhera sörözés (39) bukta (49) deface (38) dns (22) dos (29) esemény (82) facebook (26) firefox (64) flash (33) gondolat (31) google (59) google chrome (36) hacktivity (37) hírek (117) incidens (224) internet explorer (88) iphone (35) java (50) jog (22) kína (21) kriptográfia (68) kultúra (21) linux (24) malware (43) microsoft (142) móka (48) mozilla (23) office (26) oracle (40) os x (43) patch (197) php (20) politika (31) privacy (58) programozás (22) safari (34) sql injection (62) windows (85) xss (77) Címkefelhő

Licensz

Creative Commons Licenc

Spotify

2013.06.19. 17:26 | buherator | Szólj hozzá!

A Spotify egyik felhasználója fórumbejegyzésben hívta fel a közösség (és a fejlesztők) figyelmét, hogy tetszőleges felhasználói fiók felett át lehet venni az irányítást. A történet a Unicode karakterek kezelésével volt összefüggésben, a Spotify ugyanis úttörő módon megengedi a nem-ASCII karakterek használatát a felhasználónevekben. A támadás valahogy így nézett ki:

  1. Vegyük az áldozat felhasználónevét - az eredeti példánál maradva legyen ez a példában a bigbird
  2. Generáljunk egy új, unicode felhasználónevet valahogy így: ᴮᴵᴳᴮᴵᴿᴰ 
    ( u’\u1d2e\u1d35\u1d33\u1d2e\u1d35\u1d3f\u1d30′)
  3. Kérjünk jelszóemlékeztetőt az új fiókra
  4. A jelszóemlékeztető e-mail megérkezik a címünkre, de az abban szereplő link már bigbird jelszavának megváltoztatására szolgál

És hogy mi okozta ezt a furcsa hibát?

A Spotify a regisztrált felhasználóneveket kanonizálja, vagyis úgy alakítja át, hogy a kanonizált formában eltűnjenek az eredeti forma apró különbségei, melyek az adatok felhasználása során problémát okozhatnak. Például nem regisztrálható olyan felhasználónév, melynek kanonizált alakja már regisztrált, elkerülendő például a bigbird és Bigbird felhasználók összekeverését.

A Spotify különböző alrendszereiben gyakran kanonizálták a felhasználóneveket, abban a tudatban, hogy a művelet idempotens, vagyis egy bemenetet többször kanonizálva mindig ugyanazt az első kanonizált alakot kapjuk - így nem kell odafigyelni, hogy két modul együttműködésekor az interfészeken közlekedő adat milyen formában érkezik. 

Esetünkben azonban ez nem volt így, a felhasznált Twisted könyvtár ugyanis a Python egyik API-jának megváltozásának következtében nem idempotens kimenetet adott:

>>> canonical_username(u'\u1d2e\u1d35\u1d33\u1d2e\u1d35\u1d3f\u1d30')
u'BIGBIRD'
>>> canonical_username(canonical_username(u'\u1d2e\u1d35\u1d33\u1d2e\u1d35\u1d3f\u1d30'))
u'bigbird'

A regisztrációkor illetve a jelszóemlékeztető küldésénél a felhasználónevek egyszer kerültek kanonizálásra, míg a jelszó kiütésénél kétszer, így a támadás 4. lépésében más felhasználóval dolgozott a rendszer mint az előző háromban. 

A Spotify élvezetes blogposztban foglalta össze a hiba feltárását, valamint a javítás folyamatát, melyben néhány hasznos tanulságot is összegeztek, ezek az én interpretációmban valahogy így szólnak:

  • Megfelelő bemenetellenőrzéssel a problmának elejét lehetett volna venni
  • A Unicode nehéz, és sokszor még az elterjedt könyvtárak sem kezelik jól
  • Nem érdemes nekimenni a hibát feltáró felhasználónak, hiszen hasznos információkkal szolgálhat a probléma megoldásához. A tárgyalt hibát bejelentő felhasználót a Spotify ingyen hónapokkal jutalmazta
  • Néha a verziófrissítés is bevezethet új hibákat.

Címkék: python twisted unicode spotify

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.