Szerző: Gálffy Csaba

2012. március 5. 14:40

Botrányos hiba a Rails jogosultságkezelésében

Megelégelte a tétlenkedést és látványos demonstrációt tartott egy szakértő a Ruby on Rails sebezhetőségéről a fejlesztőknek. A reakció kitiltás és magyarázkodás, majd vita arról, hogy a biztonságos beállításoknak alapértelmezettnek kellene-e lenniük.

Rendkívül súlyos hiba található a Ruby on Rails keretrendszerben, amelyet kihasználva a támadó gyakorlatilag teljesen átveheti a hatalmat a rendszert használó szolgáltatás felett, tetszőleges jogosultsággal látva el magát. A hibát Egor Homakov jelezte a Rails fejlesztőinek illetve a keretrendszert használó GitHubnak is, pár napra rá pedig élőben is bemutatta a hiba súlyosságát.

A sebezhetőség meglepően egyszerű: "A Rails keretrendszer lehetővé teszi, hogy egy objektumot egyetlen Hash objektum (asszociatív tömb) átadásával példányosítsunk, az új példány attribútumait a Hash elemeiként felsorolva. A probléma az, hogy alapértelmezetten az objektum bármely paraméteréhez érték rendelhető, vagyis ha a konstruktor paraméternek átadott Hash-t a felhasználó vezérli, hozzáférhet védendő paraméterekhez - például új felhasználó létrehozásakor beállíthatja, hogy a felhasználó az adminisztrátori csoportba tartozzon. A gyakorlatban ehhez egy param[attr] formátumú HTTP paramétert kell hozzácsapni a megfelelő kéréshez, ahol a param a példányosításhoz használt paraméter objektum neve, az attr pedig a beállítandó attribútum." - írja a BuheraBlog.

Commit a master kódban.

A kirajzolódó történet szerint Homakov jelezte a hibát a Rails fejlesztőinek, azok azonban érdemi vita nélkül zárták le a bejelentést. A fejlesztők álláspontja szerint a megfelelő óvintézkedések megtételéről a fejlesztőnek kell gondoskodnia, a megfelelő rugalmasság érdekében pedig az opciót nyitva kell hagyni, a megfelelő kódrészlet kommentelése erre elegendő figyelmeztetés. Homakov nem elégedett meg ezzel a magyarázattal, és példákat keresett arra, hogy nem csak kezdő programozók felejtik el megfelelően kezelni a potenciális hibaforrást.

Szoftvertesztelés: ütött az óra

A tesztelői szakmát rengeteg friss hatás éri, kifejezetten nehezített pálya ez mostanság.

Szoftvertesztelés: ütött az óra A tesztelői szakmát rengeteg friss hatás éri, kifejezetten nehezített pálya ez mostanság.

Homakov a GitHubot használta bizonyításra, a rendkívül népszerű forráskezelő szolgáltatás fejlesztői ugyanis nyitva hagyták a biztonsági rést. A hiba valóban látványosan kiaknázható, a támadó teljes projekteket törölhet, commitolhat, gyakorlatilag teljes hozzáféréssel rendelkezik az oldalon. Homakov a GitHub felületén kívül a Posterous blogszolgáltatást is feltörte, ez szintén a Ruby on Rails keretrendszerre épül. A behatolás ténye csak következtethető, a visszadátumozott hozzászólás azonban egyértelműen erre utal az oldal alján.

A hiba rendkívül érzékenyen érinti a webes fejlesztői közösséget, a Ruby on Rails ugyanis rendkívüli népszerűségnek örvend a változatos online szolgáltatások között, a biztonsági rés bezárására pedig szemmel láthatóan sem a GitHub, sem a Posterous fejlesztői nem fordítottak energiát, ez megcáfolja a Rails fejlesztőinek érvelését. Ugyan a GitHub már javította a hibát, a Railsre épülő több száz vagy több ezer szolgáltatás azonban továbbra is veszélyben lehet.

Csatlakozz partnerprogramunkhoz, mi pedig ajánlunk ügyfeleinknek, ezenkívül egyedi kedvezményeket is adunk webhosting csomagjainkra. Próbáld ki ingyenesen az Aruba Cloud-ot, most 40 ezer forint értékű vouchert adunk!

a címlapról