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

Ingyen ebéd az AppStore-ban

2012.07.19. 13:20 | buherator | Szólj hozzá!

Már korábban magyarul is több helyen megjelent, hogy egy orosz hacker, bizonyos Alexey Borodin felfedezett egy módszert, melynek segítségével ingyenesen bonyolíthatók le az alkalmazásokon belüli vásárlások (in-App Purchase) a különböző iEszközökön. Én  most egy rövid összefoglalót szeretnék adni a probléma technikai részleteiről, illetve az Apple megoldásáról.

Az in-App Purchase segítségével az alkalmazásfejlesztők fizetős kiegészítőket illetve szolgáltatásokat - például új játék pályák, új tartalmak, előfizetéses prémium hozzáférések -  társíthatnak az appjaikhoz, méghozzá úgy, hogy a vásárlási tranzakciók kezelését az Apple oldja meg az AppStore-on keresztül, ahová a felhasználók már amúgy is be vannak regisztrálva. 

A vásárlás nagy vonalakban úgy történik, hogy a felhasználó a megfelelő termék kiválasztása után indít egy vásárlási kérelmet az alkalmazáson keresztül az AppStore-ba, az AppStore levonja a vásárlótól a megfelelő összeget, majd kiállít egy számlát. Ezek után az alkalmazás, vagy a fejlesztő szervere ellenőrzi a számla hitelességét, és ha mindent rendben talál, elérhetővé teszi az új terméket a felhasználó számára.

Az ingyen ebéd egy egyszerű man-in-the-middle támadással szerezhető meg: a felhasználó átállítja a DNS-ét és telepít egy új megbízható CA-t az eszközére, melynek eredményeként az AppStore felé irányuló kérések egy másik kiszolgálóhoz - esetünkben a Borodin által összerakott In-Appstore.com-ra - érkeznek be. Mivel ez az oldal az újonnan telepített CA által igazoltan az Apple-höz tartozik (valójában persze nem), az alkalmazás mindent el fog neki hinni amit mond. 

A történet innentől két féle képpen folytatódhat: 

  1. Az In-Appstore mindenképpen egy korábbi vásárlás számlájával válaszol. Ha az alkalmazás maga ellenőrzi a számlát, nem tehet mást, minthogy elfogadja azt, mivel a számla nem tartalmaz olyan információt, ami a számlát a konkrét vásárláshoz kötné, a digitális aláírás pedig stimmel.
  2. A másik esetben az alkalmazás a fejlesztő szerveréhez fordul, aki közvetlenül az AppStore-t kérdezi meg arról, hogy a kapott számla érvényes-e. Az AppStore viszont maga állította ki az ellenőrizendő számlát (csak egy másik vásárláshoz), így simán pozitív választ ad a kérésre, mire a fejlesztői szerver leküldi az új tartalmakat az alkalmazásnak. 

Érdemes végiggondolni, hogy hol hibázott az Apple: 

  • A szerver tanúsítványok ellenőrzése fontos, ha a felhasználót meg szeretnénk védeni az Interneten leselkedő veszélyektől. Ez a technológia azonban nem védi meg az alkalmazásokat magától a felhasználótól!
  • A hack emellett azért volt lehetséges, mert a számlákat nem lehetett az egyes vásárlásokhoz kötni. Ez kis túlzással olyan, mintha a NAV elfogadná a fénymásolt számlákat.

Az Apple-t természetesen elég kellemetlenül érintette az eset, ezért mindent megtettek az In-Appstore.com ellehetetlenítésére: a törést bemutató YouTube videó eltávolíttatták és szerzői jogok megsértése miatt is lépéseket tettek, blokkolták az In-Appstore.com hozzáférését az AppStore szervereihez, valamint felvették a kapcsolatot a PayPal-al, hogy megakadályozzák a Borodin költségeinek kompenzálására szervezett gyűjtést (a legitim receptek begyűjtése pénzbe került, az őket kiszolgáló kisteljesítményű szervert pedig le szeretnék cserélni). 

Ennek hatására a szolgáltatást áthelyezték egy másik országba, Borodin pedig most már BitCoin adományokat is elfogad...

A valódi megoldást vélhetően a nem rég számlákra bevezetett egyedi azonosító fogja jelenteni, bár ennek használatának mikéntjéről a hivatalos fejlesztői dokumentáció egyelőre nem tesz említést.

Tipp: A fejlesztői útmutató nem határozza meg, hogy a fejlesztői szerver hogyan juttatja el a terméket az appnak (rá van bízva a fejlesztőre), ez a terület az egyes konkrét alkalmazások esetén igen érdekes lehet :)

Címkék: apple appstore in-app purchase alexey borodin

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.
süti beállítások módosítása