Egy gyors poszt mielőtt lelépek szülinapozni/hétvégézni/karácsonyozni/évvégét ünnepelni.
Joernchen újabb gondolatébresztő poszttal gazdagította a Phenoelite blogját: a kutató arra kívánja felhívni a figyelmet, hogy egyes Ruby on Rails-t használó fejlesztők nem gondolkodnak eleget alkalmazásaik publikálása előtt, ami könnyedén tömeges törésekhez vezethet.
A RoR keretrendszer előszeretettel tárol hitelesítő adatokat kliens oldalon, ami nem lenne baj, ugyanis a visszakapott adatok hitelessége szerver oldalon HMAC-el ellenőrizve van. A problémát az okozza, hogy sokan a forráskóddal együtt vígan megosztják az algoritmus kulcsát is például GitHub-on, telepítéskor pedig kevesen cserélik le azt.
Ilyen módon egy megfelelő célpontot találva bárki átírhatja például a felhasználói azonosítóját mondjuk egy adminisztrátoréra vagy idegen felhasználókéra, melynek hatását (az évvégi doksihegyekkel a hátam mögött) remélem nem kell ecsetelnem :) Külön vicces, hogy a RoR Authlogic autentikációs módban annyira megbízik a HMAC-ben, hogy a felhasználótól kapott, ellenőrzött adatokat gond nélkül hozzácsapja egy SQL lekérdezéshez, SQL injection-re adva lehetőséget.* Ez ugyebár azért nagyobb baj, mint a sima privilégiumemelés/felhasználó megszemélyesítés, mert az adatbázis simán futhat egy másik kiszolgálón, rossz konfiguráció esetén pedig az injection akár operációs rendszer szintű parancsvégrehajtásra is lehetőséget adhat (legutóbb december elején Kingcope exploitjainál került elő a téma).
Szóval kedves nyílt-forrást fejlesztők, egy jó tanács az ünnepekre: Push/commit előtt gondolkodjatok egy kicsit el azon, mennyi bedrótozott érzékeny infót tartalmaznak az alkalmazásaitok!
* Friss: A probléma valójában nem az Authlogic-kal, hanem RoR-el van, viszont az elterjedt esetekben csak Authlogic-on keresztül kihasználható. Részletes leírás a ma (jan 3.) javított problémáról itt olvasható.
hrgy 2012.12.21. 19:56:20
dr poljakov 2012.12.22. 09:45:35