:

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.

Ünnepi mix a bértranszparenciától a kódoló vezetőkig

Négy IT karrierrel kapcsolatos, érdekes témát csomagoltunk a karácsonyfa alá.

Ünnepi mix a bértranszparenciától a kódoló vezetőkig Négy IT karrierrel kapcsolatos, érdekes témát csomagoltunk a karácsonyfa alá.

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.

a címlapról