Német kutatók súlyos hibákat fedeztek fel az Amazon Web Services-ben és az Ubuntu cloudjában is használt Eucalyptus platformban. A legkritikusabb - azóta már javított - sebezhetőségek ún. XML Signature Wrapping támadásokra adtak lehetőséget. Ezek a szolgáltatások SOAP interfészeit érintették, melyeken keresztül a felhasználók aláírt XML üzenetket használva adhattak parancsokat.
Ilyen esetben a SOAP fejléc tartalmazza az aláírást, egy időbélyeget és egy hivatkozást a hitelesített üzenettörzsre. A kutatók az utóbbi két komponens többszörözésével illetve az XML fán belüli átmozgatásával kezdtek el játszani, sikerrel. Mint kiderült, dupla üzenettörzs esetén az Amazon szolgáltatása az egyik példányt használta az aláírás ellenőrzéséhez, míg a másikat értelmezte és hajtotta végre. Így egy aláírt üzenet birtokában, az aláíró felhasználó nevében tetszőleges parancs végrehajtható volt. Azaz majdnem, ugyanis az időbélyeg (ami szintén hitelesítésre kerül) öt percet hagy a cselekvésre, ami nem mindig elegendő: az aláírt üzenetek beszerzésének egyik legegyszerűbb módja a fejlesztői fórumok túrása, ahol túlnyomó részt csak rég lejárt üzeneteket találunk.
De semmi gond, az időbélyeg mezővel is el lehet játszani ugyanezt: ha két ilyen adat szerepel a fejlécben, az aláírás ellenőrzése az egyik figyelembevételével történik meg, míg a lejárat ellenőrzése a másikkal. Mikor a kutatók először jelezték a problémát az Amazonnak, az élelmes programozók úgy módosították a webszolgáltatást, hogy dobjon vissza minden üzenetet, amiben dupla időbélyeg fejléc szerepel. A gond az volt, hogy a második időbélyeg mezőt a duplikált üzenettörzsbe helyezve, vagy magát a fejlécet duplikálva újra meg lehetett kerülni az ellenőrzést.
De ezzel nincs vége a problémáknak: amennyiben ugyanis a SOAP üzenet nem került aláírásra, a felhasználó azonosítása és autentikációja pusztán az üzenetbe ágyazott (nyilvános!!!) X.509 tanúsítvány alapján történt meg. Erre már nincsenek szavak.
Az Eucalyptus esetében kicsit bonyolultabb volt a helyzet: itt az eredeti időbélyeget és üzenettörzset a SOAP séma betartása érdekében egy <wsse:Security> elem alá kellett helyezni, a valódi törzset ez után tetszőlegesen lehetett módosítani.
Az elemzésben még szó esik néhány XSS problémáról is, ezeket is javították, bár érdekes kérdés az Eucalyptus esetében, hogy vajon az ezen a platformon működő privát felhőket mikor fogják frissíteni?
Kis adalék a fentiekhez, hogy az AWS egys terheléselosztó hibája miatt nem rég 2 millió, Netflixnek szánt kérést egy másik felhasználóhoz irányított - kíváncsi vagyok mennyi bizalmas infót tartalmazott az adatofolyam!
Aron bacsi 2011.10.30. 21:21:42
buherator · http://buhera.blog.hu 2011.10.31. 11:14:17
Ezeket még én sem olvastam, de úgy nézem leírják a tipikus implementációs hibákat, amik ide vezetnek:
www.nds.rub.de/media/nds/downloads/mjensen/ICWS09.pdf
domino.research.ibm.com/library/cyberdig.nsf/papers/73053F26BFE5D1D385257067004CFD80/
Ha jól emlékszem, egy csomó parser alapból nem foglalkozik a sémával. Viszont a fejlesztőnek ismernie kéne annyira az API-t, hogy be tudja kapcsolni a validációt (és az sem árt, ha tudja mire való). Szerintem.
Aron bacsi 2011.10.31. 13:09:39