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.

Toxikus vezetők szivárványa

Az IT munkakörülményeket, a munkahelyi kultúrát alapjaiban határozzák meg a vezetők, főleg ha még toxikusak is.

Toxikus vezetők szivárványa Az IT munkakörülményeket, a munkahelyi kultúrát alapjaiban határozzák meg a vezetők, főleg ha még toxikusak is.

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.

Nagyon széles az a skála, amin az állásinterjú visszajelzések tartalmi minősége mozog: túl rövid, túl hosszú, semmitmondó, értelmetlen vagy semmi. A friss heti kraftie hírlevélben ezt jártuk körül. Ha tetszett a cikk, iratkozz fel, és minden héten elküldjük emailben a legfrissebbet!

a címlapról